我有两个要求。我可以分别实现这两个要求,但我无法将它们结合起来。
首先,我需要允许使用连字符连接虚线单词(例如:“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-se
为entendendo\-/se
。这是必要的,因为 LaTeX 默认不会破坏虚线单词。你会看到单词更快地被破坏(因为 LaTeX 认为它使第一行更漂亮),这是我想要实现的目标之一。单词显示如下:enten- dendo-se
- 我的第二个要求的解决方案是将其替换
entendendo-se
为entendendo\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-se
为entendendo"-se