连字符、大写 T 和字距调整

连字符、大写 T 和字距调整

当在大写字母 T 旁边直接使用连字符时,间距(字距)看起来很奇怪:
输入:Abc-Tuv
输出: 大写字母 T 旁边连字符的字距调整

似乎连字符和 T 之间有太多空格。我可以使用默认字体在 PdfLaTeX 和 XeLaTeX(甚至 Word)中重现这种行为。

这在印刷上正确吗?如果不正确,那正确的是什么?如何才能在整个文档中实现一致的正确字距调整,而无需\kern在每次出现时手动指定?

谢谢您的回答。

编辑:鉴于这个问题被标记为重复,我意识到我对这个问题的表述有些误导。也许强调一下这个问题的排版方面会更好:通常自动字距调整效果很好(这意味着我以前从来不用为此操心)。为什么在这个特殊情况下间距看起来“不对”?我是不是搞错了,这实际上是(排版)正确的?如果不是,我应该提供哪个值\kern?猜测一个值并更改它直到“感觉”良好?有没有更好的方法,可以自动选择最佳值?

我希望这可以澄清一切,抱歉一开始就不够准确。

答案1

使用 XeTeX,您可以使用\XeTeXinterchartoks

\XeTeXinterchartokenstate=1
\newXeTeXintercharclass\exhyph
\newXeTeXintercharclass\negbear
\XeTeXcharclass`-\exhyph
\XeTeXcharclass`T\negbear
\XeTeXinterchartoks\exhyph\negbear={\kern-.2em}
Abc-Tuv Abc-Tuv
\bye

在此处输入图片描述

无论是“印刷正确”,还是“要想违反规则,首先必须了解规则”,但话又说回来,“唯一的规则就是没有规则”。

答案2

我同意 Werner 的观点,这是一个非常主观的问题。减小字距后,连字符会被 T 字符遮住,因此使用小字体时,很难看出“Abc-Tuv”是复合词,而不是维基词中间有一个小点。

也就是说,另一个不可调的解决方案可以$\!$在连字符后输入:

\documentclass{article}
\begin{document}
Abc-$\!$Tuv
\end{document}

结果大致相同,\kern-.1em但打字更容易(4 次击键 vs 10 次),而且更不容易分散注意力。

编辑:egreg 的评论展示了如何\!在文本中使用,将输入减少到 2 个字符(加上连字符。为了促进写作的懒惰,这是一个零输入的替代方法,使用自己的 egreg 武器: \newunicodechar。在这里你可以简单地输入¬而不是连字符:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{newunicodechar}
\newunicodechar{¬}{-\ensuremath\!}
\begin{document}
Abc¬Tuv 
\end{document}

我之所以选择它,¬是因为它类似于连字符,我从来不需要这个符号,而且它在我的键盘上显示,但可以随意¬用另一个未使用的字符替换。当然,您也可以将定义形式更改-\ensuremath\!-kern.1em或您想要的任何形式。

相关内容