--------------------------- 如何工作?

--------------------------- 如何工作?

当我输入

---------------------------

放入 LaTeX 中,它有时会生成如下连续行:

在此处输入图片描述

但是,如果我没有“足够”数量的-,那么有时最后一个-将不会形成连续的线,如下所示:

在此处输入图片描述

-为了得到一条连续的线,你必须拥有的神奇数字是多少?

答案1

通常的 TeX 约定是,连续两个连字符会生成一个短破折号,而三个连字符会生成一个长破折号。

连续的 em 或 en-dash 看起来形成一条实线,尽管它是由不同的字符组成的。但是连字符不会组合,因此如果连字符的数量是三的倍数或比三的倍数少一,则会得到一条实线。如果除以三的余数是一,则会在末尾得到一个连字符。

然而,线条的坚固性取决于字体。

普通 TeX 示例

--------- % nine hyphens

-------- % eight hyphens

------- % seven hyphens

\bye

在此处输入图片描述

可以利用这一点,通过叠加短划线来制作一条长线(至少 0.5em):

\def\solidline#1{%
  \leavevmode
  \hbox to #1{--\leaders\hbox{\kern-.125em--\kern-.125em}\hss--}%
}

\solidline{1cm}

\solidline{2em}

\solidline{1em}

\solidline{0.5em}

\bye

然而,\vrule(或 LaTeX 的)规则更有效。同样的效果可以通过

\def\solidline#1{%
  \vrule width #1 height 0.64ex depth\dimexpr0.2pt-0.64ex\relax
}

\solidline{1cm}    

\solidline{2em}

\solidline{1em}

\solidline{0.5em}

\bye

(需要pdftex;当然,它也可以与 Knuth TeX 一起工作)。

答案2

千万不要这么做。

两个--连字对应一个 n 破折号,三个---连字对应一个 em 破折号,因此,如果有三个的倍数,-则会有一排 em 破折号,根据字体的不同,它们之间可能有也可能没有空格。使用\rule\hrulefill来画一条线。

相关内容