`--` 和 `\textendash` 有什么区别?

`--` 和 `\textendash` 有什么区别?

看起来它们在 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 而不是其他引擎。

相关内容