我正在编写一个文档,其中我经常使用包含破折号的单词(“Foo-Bar”)。我想全局禁用该单词的连字符。这可能吗?我正在寻找可以在文档序言中使用的解决方案。我知道我可以使用命令在文档序言中设置连字符\hyphenation
,并且我可以使用此命令完全禁用给定单词的连字符,然后不包括任何破折号。但我不知道如何禁用本身包含破折号的单词的连字符。
主文档本身是用 Markdown 编写的(并使用 Pandoc 转换为 LaTeX 和其他格式),因此定义新命令(\def\FooBar{\mbox{Foo-Bar}}
)的典型解决方案不起作用——这就是为什么我正在寻找可以在文档序言中实现的解决方案。
答案1
你可以设置
\exhyphenpenalty=10000
-
这将在该设置范围内明确禁用所有连字符。
如果你使用 luatex,你可以全局地处理一个单词,因为它允许语法-
在连字模式中指定文字,或者你可以使用回调来input_buffer
全局替换foo-bar
\mbox{foo-bar}
对于 pdftex,你需要说服 pandoc 生成\mbox{foo-bar}
,或者在调用 pandoc 后在构建脚本中添加一行以运行
sed -i -e 's/foo-bar/\\mbox{foo-bar}/g' file.tex
并非所有事情都必须用 tex 来完成。