{} 和 \/ 之間用來斷開連字的區別

{} 和 \/ 之間用來斷開連字的區別

《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{}fulshelf{\kern0pt}fulshelf\-fulshelf\discretionary{-}{}{\kern.033333em}fulbabel"|{}\/babel"|

答案1

正如您所指出的,\/不是用於破壞連字,而是用於斜體校正的命令以及獲得額外空間的原因。對於斷線,最好的選擇是 babel 簡寫"|,定義為

 \declare@shorthand{...}{"|}{%
  \textormath{\penalty\@M\discretionary{-}{}{\kern.03em}%
              \allowhyphens}{}}

並且還允許連字符,但\/不允許:

在此輸入影像描述

(上述兩組「shelfful」的三個實例中的每一個都是用fff{}ff\/f(按該順序)產生的 - 也就是說,不是用 生成的"|。)

答案2

也可以看看

透過正確的連字符和全面的單字清單進行連字抑制?

它提出了更全面的問題並包含各種相關資訊。

使用它{}的缺點是(正如 TeXBook 的 TeX3 版本中指出的那樣)它通常不起作用。如果單字被連字符連接,那麼 TeX 將重新插入連字(如果f{}f屬於組成部分之一)。這不會產生影響,shelfful因為兩個 f 之間存在唯一的連字符點。

相關內容