ダッシュ付きの単語のハイフネーションを許可し、ダッシュでハイフネーションされている場合は、次の行に別のダッシュを追加します。

ダッシュ付きの単語のハイフネーションを許可し、ダッシュでハイフネーションされている場合は、次の行に別のダッシュを追加します。

私には 2 つの要件があります。これら 2 つの要件はそれぞれ個別に達成できますが、組み合わせることができませんでした。

まず、ダッシュ付きの単語のハイフネーションを許可する必要があります (例: "entendendo-se")。これはデフォルトでは不可能です。例:

enten-
dendo-se

または

en-
tendendo-se

次に、単語がハイフンで区切られるときに、ダッシュで改行が発生した場合は、次の行に別のダッシュを追加する必要があります (これはポルトガル語のルールです)。例:

entendendo-
-se

最初の目的は、extdashパッケージを使用することで実現でき\-/、2 番目の目的は、ダッシュを に置き換えるマクロを定義することで実現できることがわかっています\discretionary{-}{-}{-}

しかし、両方の要件をソリューションで組み合わせるにはどうすればよいでしょうか?

そして最後に、必須ではありませんが、テキストの一部にあるすべてのダッシュにソリューションを適用することは可能でしょうか(すべてのダッシュをコマンド(または使用されるもの)に置き換える必要がないように)?

PS: 現在、XeLaTeX コンパイラを使用しています。

詳細情報を編集

最小限の動作例

\documentclass{report}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[portuguese]{babel}
\usepackage{hyphenat}

\begin{document}

\chapter{Exemplo}
Texto completamente aleatório, foi feito para demonstrar o porquê de entendendo-se não ser hifenizado corretamente.

\end{document}

この例では、単語はentendendo-seダッシュで分割されていますが、もっと早く分割することもできました。

  • 最初の要件に対する解決策は、 を追加して に\usepackage[shortcuts]{extdash}置き換えることです。これは、LaTeX がデフォルトでは破線の単語を分割しないために必要です。単語が早く分割されることがわかります (LaTeX は最初の行をきれいにすると判断するため)。これは私が実現したいことの 1 つです。単語は次のようになります。entendendo-seentendendo\-/seenten- dendo-se
  • entendendo-se2 番目の要件の解決策は、を に置き換えることですentendendo\discretionary{-}{-}{-}se。単語がダッシュで区切られると、次の行に別のダッシュが追加されます (これはポルトガル語のルールです)。これが 2 番目の要件です。単語は次のように表示されます: entendendo- -se注記単語がダッシュで区切られない場合は、追加のダッシュを追加しないでください。

しかし、私は両方を組み合わせることができませんでした...

答え1

試行錯誤の末、両方の要件を満たす方法を見つけました。

\documentclass{report}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[portuguese]{babel}
\usepackage{hyphenat}

\begin{document}

\chapter{Exemplo}
Texto completamente aleatório, foi feito para demonstrar o porquê de entendendo\babelhyphen{repeat}se não ser hifenizado corretamente.

\end{document}

より便利にするために、\defineshorthand{"-}{\babelhyphen{repeat}}前文に以下をentendendo-se追加して、entendendo"-se

関連情報