允許連字符連字符,如果在連字符上連字符,則在下一行添加另一個連字符

允許連字符連字符,如果在連字符上連字符,則在下一行添加另一個連字符

我有兩個要求。我可以分別實現這兩個要求中的每一個,但我無法將它們結合起來。

首先,我需要允許虛線單字的連字號(例如:「entendendo-se」),預設情況下這是不可能的。例子:

enten-
dendo-se

或者

en-
tendendo-se

然後,當一個單字用連字號連接時,如果破折號出現在破折號上,則應在​​下一行中添加另一個破折號(這是葡萄牙語規則)。例子:

entendendo-
-se

extdash我知道我可以透過使用套件來實現第一個,\-/並且可以透過定義一個用 替換破折號的巨集來實現第二個\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}並替換entendendo-seentendendo\-/se.這是必需的,因為 LaTeX 預設不會破壞虛線單字。你會發現單字斷得更快(因為 LaTeX 認為它讓第一行更漂亮),這是我想要實現的目標之一。這個詞看起來像這樣:enten- dendo-se
  • 我的第二個要求的解決方案是將替換entendendo-seentendendo\discretionary{-}{-}{-}se.您會看到,當單字在破折號上斷開時,下一行中會添加另一個破折號(這是葡萄牙語規則),這是我的第二個要求。這個字看起來像這樣: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-seentendendo"-se

相關內容