三个破折号连在一起

三个破折号连在一起

在许多书目样式中,重复的作者用三个破折号表示,形成一行。这在某些字体中效果很好,而在其他字体中会留下空白:

\documentclass[a4paper]{article}
\usepackage[utf8]{inputenc}
\newcommand*{\threeemdashes}{\textemdash\kern-1pt\textemdash\kern-1pt\textemdash}

\begin{document}
\raggedright
\fontfamily{lmr}\selectfont%
Latin Modern \textemdash{}\textemdash{}\textemdash{} Latin Modern \linebreak
Latin Modern \threeemdashes{} Latin Modern \linebreak
Latin Modern \rule[0.6ex]{2.3em}{.4pt} Latin Modern\linebreak
Latin Modern mmm Latin Modern


\fontfamily{LinuxLibertineO-OsF}\selectfont
Linux Libertine \textemdash{}\textemdash{}\textemdash{} Linux Libertine \linebreak
Linux Libertine \threeemdashes{} Linux Libertine \linebreak
Linux Libertine \rule[.55ex]{2.2em}{.5pt} Linux Libertine\linebreak
Linux Libertine mmm Linux Libertine
\end{document}

正如你所见,我尝试自己调整字距,但是效果并不好,比较一下,例如{\tiny\threeemdashes}{\Huge\threeemdashes}我已经学会了我无法通过添加字距调整对来解决这个问题,至少无法通过 TeX 来解决。我甚至尝试手工绘制一条长线,但也无法缩放,而且 LaTeX 线是矩形,而虚​​线的圆形末端看起来要好得多。此外,获得厚度和凸起的正确值似乎很难。令我惊讶的是,我还了解到,在大多数字体中,emdash 的宽度不如 m,而且长度1em不能描述 m 的宽度!?

我认为这不是一个小问题,应该有很多解决方案。那么,有没有一个真正的解决方案可以随字体大小、字体类型等而扩展?

是的,我绝对想使用 pdflatex。

答案1

正如前面所说,四边形不一定是大写字母 M 的宽度,而是字体设计师认为的最佳宽度。

获得长划线的方法可能是这样的:

\documentclass[a4paper]{article}

\newcommand*{\threeemdashes}{%
  \makebox[3\fontcharwd\font`M]{% or \makebox[3em]
    \rlap{\textemdash}\kern.5em
    \cleaders\hbox{\kern-.3em\textemdash\kern-.3em}\hfill\kern.5em
    \llap{\textemdash}}%
}

\begin{document}

\raggedright
\fontfamily{lmr}\selectfont%
Latin Modern \threeemdashes{} Latin Modern \linebreak
Latin Modern MMM Latin Modern

\fontfamily{LinuxLibertineO-OsF}\selectfont
Linux Libertine \threeemdashes{} Linux Libertine \linebreak
Linux Libertine MMM Linux Libertine

\end{document}

三个破折号是通过重复破折号产生的,确保有合适数量的备份并且宽度正是我们想要的。

在此处输入图片描述

答案2

ams 文档类将此规则定义为

\def\bysame{\leavevmode\hbox to3em{\hrulefill}\thinspace}

这完全避免了破折号之间可能出现的任何间隙。

至于 的长度1em,它传统上与特定字体的标称大小相同,并且与字体的样式无关;即使在扩展或压缩字体中,1em10pt 字体也为 10pt。字母“M”可能很1em宽,也可能不宽,尽管它通常位于普通的中等或“书本”粗细字体中。此外,特定字体中的破折号(金属)将位于 1em 方块上;但是,破折号的可打印宽度可能会或可能不会包含整个宽度,这取决于字体设计者的想法。这种差异延续到数字类型。

相关内容