すでにハイフンが含まれている単語のハイフネーションを抑制する

すでにハイフンが含まれている単語のハイフネーションを抑制する

受け入れられた回答によるとこの質問TeXは、すでにハイフンが含まれている単語をハイフンで区切ることはありません。しかし、この文書では、「Modula-2」という単語がハイフンで区切られているのがわかります。次の画像がそれを示しています(このファイルXeLaTeX、バージョン 3.1415926-2.4-0.9998 (MiKTeX 2.9 64 ビット) を使用。

\documentclass[10pt]{article}
\begin{document}
  Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum Modula-2
  nisi urna, congue sed congue id, iaculis et lacus.
\end{document}

不要なハイフネーション

どうやらこれを防ぐためには使えないようです\hyphenation。しかし、この単語が何度も出てくるので、どちらも使いたくありません\mbox。もっと良い解決策はありますか?

答え1

ハイフンでつながれた単語にハイフンを付けないということは、もっとハイフン。既存のハイフンで改行されないようにしたいのですが、

   \exhyphenpenalty=10000

プリアンブルで明示的なハイフンで改行した場合に無限のペナルティを与える

ここに画像の説明を入力してください

答え2

David の回答では、明示的なハイフンの後の改行をグローバルに抑制する方法 (つまり、明示的なハイフンを含むすべての単語) が示されています。

多くの場合、特定のケースでのみ破損を抑制したい場合があり、これには 2 つのアプローチがあります。

\mbox{Modula-2}

パッケージなしでも動作します。

ngerman.sty または babel パッケージの ngerman オプションには、分割不可能なハイフンの便利な省略形が含まれています。

Modula"~2

ここで「~」は次のように定義される

\leavevmode\hbox{-}

関連情報