破折号使用 |

破折号使用 |

我偶然发现|在文本模式下使用会产生一个破折号。我快速搜索了一下,但找不到提到这一点的参考资料。我想知道这和 之间有什么区别吗---?否则,只输入一个字符而不是三个字符似乎更容易。

答案1

这是默认字体编码的结果OT1。它在与 | 相关联的位置放置了一个 —(长破折号)。为了突出显示这一点,请考虑以下示例:

\documentclass{article}

\begin{document}

\showoutput

|

---

\end{document}

\showoutput将内容添加到.log显示输出页面构造的 。以下摘录自上述示例.log

Completed box being shipped out [1]
\vbox(633.0+0.0)x407.0
.\glue 16.0
.\vbox(617.0+0.0)x345.0, shifted 62.0
..\vbox(12.0+0.0)x345.0, glue set 12.0fil
...\glue 0.0 plus 1.0fil
...\hbox(0.0+0.0)x345.0
..\glue 25.0
..\glue(\lineskip) 0.0
..\vbox(550.0+0.0)x345.0, glue set 527.9436fil
...\write-{}
...\glue(\topskip) 5.69446
...\hbox(4.30554+0.0)x345.0, glue set 319.99998fil
....\hbox(0.0+0.0)x15.0
....\OT1/cmr/m/n/10 |
....\penalty 10000
....\glue(\parfillskip) 0.0 plus 1.0fil
....\glue(\rightskip) 0.0
...\glue(\parskip) 0.0 plus 1.0
...\glue(\baselineskip) 7.69446
...\hbox(4.30554+0.0)x345.0, glue set 319.99998fil
....\hbox(0.0+0.0)x15.0
....\OT1/cmr/m/n/10 | (ligature ---)
....\discretionary
....\penalty 10000
....\glue(\parfillskip) 0.0 plus 1.0fil
....\glue(\rightskip) 0.0
...\glue 0.0 plus 1.0fil
...\glue 0.0
...\glue 0.0 plus 0.0001fil
..\glue(\baselineskip) 23.55556
..\hbox(6.44444+0.0)x345.0, glue set 170.0fil
...\glue 0.0 plus 1.0fil
...\OT1/cmr/m/n/10 1
...\glue 0.0 plus 1.0fil

该字体的使用场景有 3 个:

  • ....\OT1/cmr/m/n/10 |=|
  • ....\OT1/cmr/m/n/10 | (ligature ---)=---
  • ...\OT1/cmr/m/n/10 1= 页码

注意连字---使用相同的字体字符|。现在添加

\usepackage[T1]{fontenc}

读完序言,你就会得到

  • ....\T1/cmr/m/n/10 |=|
  • ....\T1/cmr/m/n/10 ^^V (ligature ---)=---
  • ...\T1/cmr/m/n/10 1= 页码

从字体编码下的字体表中|抓取不同的字符,导致不同的显示。---T1


我会坚持使用在查看代码时提供一些直观语义的语法。也就是说,如果您想要一个破折号,请使用---(或) 而不是。\usepackage{inputenc}|

类似地,最好在代码中使用一些类似于输出的内容。例如,使用将\circle圆定义为输出,而不是输出正方形或直线。

相关内容