TeX/LaTeX 能在精确的位置画线吗?

TeX/LaTeX 能在精确的位置画线吗?

我需要以特定距离(以毫米为单位)绘制线条。例如:

---- 第 0 行
---- 线 1 位于线 0 下方 35.64 毫米处
---- 线 2 位于线 1 下方 33.64 毫米处

我使用的宏如下(我不记得从哪里复制来的):

\def\fr#1{
  \vbox{  
    \dimen0=#1
    %\advance \dimen0 by -2.41pt
    \advance \dimen0 by -1pt
    \vskip \dimen0
    \vrule height 0.5pt depth 0.5pt width 2in
  }
}

我的使用方法如下:

\parindent=0pt
\baselineskip=-\maxdimen
\lineskiplimit=\maxdimen
\lineskip=0pt


\#0 \fr{1mm}
\#1 \fr{35.64}
\#2 \fr{33.64}

但是我无法让线条出现在所需的位置。

答案1

这应该只是个问题\vrule\vskip以下方法应该有效:

\def\fr#1#2{\vskip #2\noindent\smash{#1}%
  \vrule height 0.4pt depth 0pt width 2in\relax}

\fr{0}{0mm}
\fr{1}{35.64mm}
\fr{2}{33.64mm}

\bye

请注意如何\smash使用宏来防止数字增加任何高度或深度。

答案2

一个简单的解决方案(受Andrey的启发):

\def\fr#1#2{\vskip #2\smash{#1 \vrule height 0.4pt depth 0pt width 2in}}

\offinterlineskip

% A ruler in the margin to show alignment
\llap{\smash{\vtop to 100pt{
  \leaders\vbox to 20pt{\leaders\vrule\vfill\hrule width 2mm}\vfill}}}

\fr{0}{20pt}
\fr{y}{40pt}
\fr{2}{20pt}

\bye

在此处输入图片描述

相关内容