print-Y-axis 的接近最终版 ¶由 Y-axis-column 构造的列表会被传给 print-Y-axis 函数,由它将列表以列的形式插入。
(defun print-Y-axis (height full-Y-label-width) "使用 HEIGHT 和 FULL-Y-LABEL-WIDTH 插入纵轴。 高度应为图表的最大高度。 总宽度为最高标注元素的宽度。" ;; height 和 full-Y-label-width 的值 ;; 由 print-graph 传入。
(let ((start (point)))
(insert-rectangle
(Y-axis-column height full-Y-label-width))
;; 将光标定位到适合插入图表主体的位置。
(goto-char start)
;; 将光标向前移动 full-Y-label-width 宽度
(forward-char full-Y-label-width)))
print-Y-axis 使用 insert-rectangle 函数插入由 Y-axis-column 创建的纵轴标注。此外,它还会将光标放到正确位置,以便打印图表主体。
你可以测试 print-Y-axis:
Y-axis-label-spacing Y-axis-tic Y-axis-element Y-axis-column print-Y-axis
(print-Y-axis 12 5)
eval-expression)。
yank)将 graph-body-print 表达式粘贴到小缓冲。
Emacs 会纵向打印标注,最上方一条是 ‘10 - ’。(print-graph 函数会传入 height-of-top-line,在本例中最终为 15,从而消除看似 bug 的表现。)