有没有办法在包含破折号的单词的序言中禁用连字符

有没有办法在包含破折号的单词的序言中禁用连字符

我正在编写一个文档,其中我经常使用包含破折号的单词(“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 来完成。

相关内容