
《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
相同) 、、、和(該解決方案本質上將這種方法與一些微調結合起來)。這個問題的目的是為了區分可能遇到的兩個建議(即和),以幫助學習者消除困惑。無論如何,似乎都不是最優的,最好的解決方案是s 。此問答集可作為整個情況的文檔。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 之間存在唯一的連字符點。