
我正在創建一種虛構語言的語法,並為這種語言創建了一種自訂字體。該字體有一個系統,其中字符和連字覆蓋前一個字符,以使用較小的字形集創建更複雜的“字符”。如果 LaTeX 在原本應該覆蓋前一個字符的字符之前使用連字符連接一個單詞,那麼看起來會非常糟糕。我一直在透過手動將 \mbox 放在我注意到的特定單字周圍來「解決」這個問題,但顯然這不是一個永久的解決方案。如何指定一組僅適用於以此自訂字體編寫的文字的自訂連字規則?即使像“不要用連字符連接任何單詞,只在空格上換行”這樣簡單的規則也可以,但是,我希望常規英文文本能夠像平常一樣用連字符連接。如果重要的話,字體中也有很多連字,但我還沒有註意到 LaTeX 試圖在需要形成連字的兩個字元之間連接單字。
答案1
切換字體時,也會切換到新語言,可以是現有的無連字符語言,也可以是您為其定義了自訂模式的語言。除非您使用 luatex 載入模式,否則需要建立自訂格式,因為您無法將模式載入到正常的 tex 運行中。
最簡單的方法可能是不使用任何模式,預設不使用連字符,然後用於\hyphenation
您想要允許使用連字符的單字。
\documentclass{article}
\showhyphens{football}% hyphenates in english
\newlanguage\something
\language\something
\showhyphens{football}% but not here
\hyphenation{foo-tball}
\showhyphens{football}% but does now
\language0
\showhyphens{football}% back to english
\begin{document}
{\language\something\ttfamily % your font
stuff here
}
\end{document}
顯示日誌
Underfull \hbox (badness 10000) in paragraph at lines 3--3
[] \OT1/cmr/m/n/10 foot-ball
Underfull \hbox (badness 10000) in paragraph at lines 6--6
[] \OT1/cmr/m/n/10 football
Underfull \hbox (badness 10000) in paragraph at lines 8--8
[] \OT1/cmr/m/n/10 foo-tball
Underfull \hbox (badness 10000) in paragraph at lines 10--10
[] \OT1/cmr/m/n/10 foot-ball
顯示在新語言中,除指定連字符點的單字外,所有連字符都被停用