《LaTeX 指南》(第 4 版)指出,\/
用于拆分连字(第 30 页和第 469 页),我认为这是使用的标准方法{}
。正如\/
通常插入斜体更正(参见“斜体校正如何起作用?“), 和{}
和\/
产生明显不同的输出,这两个选项中的哪一个被认为是最佳实践? 在选择其中一个时,需要注意哪些细微之处?
在下面的代码中
\documentclass{article}
\begin{document}
shelfful % (1) ligature
shelf{}ful % (2) no ligature
shelf\/ful % (3) no ligature, wider than in the line above
\end{document}
第 3 行中两个“f”字母之间的间距比第 2 行中更宽,这并不奇怪,但如果指的是细微间隙,那么问题就在于这样做是否合理,以及为此进行斜体校正是否有意义(因为斜体实际上不存在这种情况)。
其他选项:David Carlisle 链接的问题列出了其他(有创意但不太好用的)选项:(根据该来源,与{shelf}ful
相同)、 、和(解决方案本质上将这种方法与一些微调相结合)。这个问题旨在区分人们可能遇到的两种建议(即和),以帮助学习者消除困惑。无论如何,似乎两者都不是最佳的,最好的解决方案是。这个问答集可作为整个情况的记录。shelf{}ful
shelf{\kern0pt}ful
shelf\-ful
shelf\discretionary{-}{}{\kern.033333em}ful
babel
"|
{}
\/
babel
"|
答案1
正如您所指出的,\/
这并不是为了打破连字符,而是斜体校正的命令,也是您获得额外空间的原因。对于连字符断开,最好的选择是 babel 简写"|
,其定义为
\declare@shorthand{...}{"|}{%
\textormath{\penalty\@M\discretionary{-}{}{\kern.03em}%
\allowhyphens}{}}
并且还允许连字符,但\/
不允许:
(上面两组三个“shelfful”实例中的每一组都是用ff
、f{}f
和f\/f
(按此顺序)生成的 - 也就是说,不是用"|
。)
答案2
也可以看看
它提出了一个更全面的问题并包含各种相关信息。
使用{}
有缺点(正如 TeXBook 的 TeX3 版本所指出的),它通常不起作用。如果单词带连字符,则 TeX 会重新插入连字符(如果该连字符f{}f
位于其中一个组成部分中)。这不会影响shelfful
两个 f 之间的唯一连字符点。