Previous: 创建Y轴标签列, Up: print-Y-axis 函数   [Contents][Index]


C.2.4 print-Y-axis的未完全最终版本

由Y-axis-column函数构建的列表被传递给print-Y-axis函数,该函数将列表作为列插入。

(defun print-Y-axis (height full-Y-label-width)
  "使用HEIGHT和FULL-Y-LABEL-WIDTH插入Y轴。
Height必须是图形的最大高度。
全宽度是最高标签元素的宽度。"
;; 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函数创建的Y轴标签。此外,它将点放置在正确的位置以打印图形的主体。

您可以测试print-Y-axis:

  1. 安装
    Y-axis-label-spacing
    Y-axis-tic
    Y-axis-element
    Y-axis-column
    print-Y-axis
    
  2. 复制以下表达式:
    (print-Y-axis 12 5)
    
  3. 切换到*scratch*缓冲区,并将光标放在希望开始轴标签的位置。
  4. 键入M-:(eval-expression)。
  5. 使用C-y(yank)将graph-body-print表达式粘贴到迷你缓冲区中。
  6. 按下RET以评估表达式。

Emacs将垂直打印标签,顶部的标签为‘10 - ’.(在这种情况下,print-graph函数将传递height-of-top-line的值,这将最终变为15,从而消除可能出现的错误。)