如何指定一組自訂連字規則僅套用於自訂字體?

如何指定一組自訂連字規則僅套用於自訂字體?

我正在創建一種虛構語言的語法,並為這種語言創建了一種自訂字體。該字體有一個系統,其中字符和連字覆蓋前一個字符,以使用較小的字形集創建更複雜的“字符”。如果 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

顯示在新語言中,除指定連字符點的單字外,所有連字符都被停用

相關內容