![抑制已包含连字符的单词的连字符](https://linux22.com/image/476308/%E6%8A%91%E5%88%B6%E5%B7%B2%E5%8C%85%E5%90%AB%E8%BF%9E%E5%AD%97%E7%AC%A6%E7%9A%84%E5%8D%95%E8%AF%8D%E7%9A%84%E8%BF%9E%E5%AD%97%E7%AC%A6.png)
根据接受的答案这个问题TeX 永远不会对已经包含连字符的单词进行连字符处理。然而,在这里的一篇文档中,我发现单词“Modula-2”带有连字符,如下图所示(使用这个文件使用 XeLaTeX,版本 3.1415926-2.4-0.9998(MiKTeX 2.9 64 位))。
\documentclass[10pt]{article}
\begin{document}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum Modula-2
nisi urna, congue sed congue id, iaculis et lacus.
\end{document}
显然我不能使用\hyphenation
它来防止这种情况发生;但是这个词出现了好几次,所以我也不想使用\mbox
。有更好的解决方案吗?
答案1
不连字符连字,是指不添加更多的连字符。您要防止的是现有连字符处的换行,而您只需要
\exhyphenpenalty=10000
在序言中,对在明确连字符处断开的情况给予无限惩罚
答案2
David 的回答向您展示了如何全局抑制显式连字符后的断字(即,对于每个带有显式连字符的单词)。
人们通常希望仅在特定情况下抑制中断,有两种方法可以实现此目的:
\mbox{Modula-2}
无需任何包即可工作。
ngerman.sty 或 babel 包的 ngerman 选项包含不可断开连字符的巧妙简写:
Modula"~2
其中“~定义为
\leavevmode\hbox{-}