我有一份文档,其中包含许多 AAA+BBB 形式的单词,这些单词在多列文档的行末未正确拆分(“带连字符”而没有“连字符”)。我希望得到类似这样的结果
\babelhyphenation{AAA\babelhyphen{empty}+\babelhyphen{empty}BBB}
不幸的是,+ 号不被视为字母。虽然定义和使用新命令的解决方法是通过
\newcommand{\AAAplusBBB}{AAA\babelhyphen{empty}+\babelhyphen{empty}BBB}
有效,我真的很想了解如何修复 babel 规则,这样在我的应用程序中使用许多包含特殊字符的不同术语时,它将运行得更好。
非常感谢任何提示!
答案1
使用 pdftex 或(据我所知)xetex 是不可能的,但如果可以选择切换到 luatex,则可以按以下方式定义转换:
\documentclass{article}
\usepackage[english]{babel}
% 2 alphabetic, either + or ? or /, 2 alphabetic
\babelprehyphenation{english}{ {a}{a}[+?/]{a}{a} }
{ {}, {},
{insert, penalty=50},
{},
{insert, penalty=50},
{}, {}
}
\begin{document}
\hsize1pt
XXX AAA+BBB YYY XXX AAA?BBB YYY XXX AAA/BBB YYY
\end{document}
结果将会是这样的:
XXX
AAA
+
BBB
YYY
XXX
AAA
?
BBB
YYY
XXX
AAA
/
BBB
YYY
这不是唯一的选择,但这是一个想法。