看起来它们在 LaTeX 中的换行行为--
有所\textendash
不同。我以为它们只会插入一个短划线字符,然后执行相同的操作,但从这个来看它们似乎没有例子:
\documentclass{article}
\usepackage[utf8]{inputenc}
\begin{document}
I'm going to write a really, really, really long numerical range: 10000000\textendash 20000000 which should overflow the justification box, which you can see from my continued typing below the above line.
I'm going to write a really, really, really long numerical range: 10000000--20000000 which should overflow the justification box, which you can see from my continued typing below the above line.
% This paragraph uses an en dash character directly
I'm going to write a really, really, really long numerical range: 10000000–20000000 which should overflow the justification box, which you can see from my continued typing below the above line.
\end{document}
为什么会出现这种情况?我还应该注意其他差异吗?
请注意,直接插入一个短划线(最后一段)似乎也起到了类似的作用\textendash
,这让我怀疑它是否--
真的是一个短划线?
答案1
使用--
,有一个可行的断点,因为连字符以默认连字符结尾。(注:仅当\hyphenchar
当前字体的参数是连字符时才会发生这种情况。)
另一方面,\textendash
本质上等同于,\char21
并且由于这与连字符无关,因此其后没有断点。如果您输入–
U+2013,也会发生同样的情况,因为在 pdflatex 中,它会被转换为\textendash
。
答案2
我要补充的是,我在所有三个 TeX 引擎中运行了这个文件。pdfTeX 不出所料地给出了所描述的结果。XeTeX 正确地在所有三个段落中在 – 处中断。令人惊讶的是,LuaTeX 在 – 处没有中断任何短划线。最后这个行为似乎很糟糕。我坚持我的建议,对于那些想要使用 Unicode 输入的人,我建议他们优先选择 XeLaTeX 而不是其他引擎。