
Я создаю грамматику вымышленного языка и создал для этого языка собственный шрифт. В шрифте есть система, в которой символы и лигатуры накладываются на предыдущий символ, чтобы создать более сложные «символы» с меньшим набором глифов. Если 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
показывая, что в новом языке все переносы отключены, за исключением слов, где вы указываете точки переноса