允许对带破折号的单词进行连字符连接,如果破折号上有连字符,则在下一行添加另一个破折号

允许对带破折号的单词进行连字符连接,如果破折号上有连字符,则在下一行添加另一个破折号

我有两个要求。我可以分别实现这两个要求,但我无法将它们结合起来。

首先,我需要允许使用连字符连接虚线单词(例如:“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

相关内容