Babel 连字

Babel 连字

我有一份文档,其中包含许多 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

这不是唯一的选择,但这是一个想法。

相关内容