![包含撇号的单词的连字](https://linux22.com/image/286070/%E5%8C%85%E5%90%AB%E6%92%87%E5%8F%B7%E7%9A%84%E5%8D%95%E8%AF%8D%E7%9A%84%E8%BF%9E%E5%AD%97.png)
我的问题很简单。
有没有办法用连字符连接“Lor'themar”,“Kel'Thuzad”等单词?
使用时\hyphenation{Kel'-Thu-zad}
会出现此错误,例如在编译时。
Error in hyphenation.tex (line 37): Not a letter. l.37 \hyphenation{Kel'
-Thu-zad}
Letters in \hyphenation words must have \lccode>0.
Proceed; I'll ignore the character I just read.
我想定义一个全局连字符,但我不介意每次想要连字符时使用本地定义(有点乏味,但这样也可以完成工作)。
答案1
正如我在回答中解释的那样Listings 和 Babel(对于某些语言)破坏了连字符,当尝试连字时,TeX 会将非零字符\lccode
视为形成单词的字符。
因此
``the masters''
在正常设置下,只有the
和masters
才被视为单词,其中`
和'
为零\lccode
。如果
\lccode`\'=`\'
(相当于在 之后有 39 =
)在顶层发出,上面的短语将有“单词”
masters''
TeX 会很乐意将其连字符化为
大师级
因为这符合连字符后面至少有三个字母的规则(英语连字符规则中有),并且中的\righthyphenmin=3
模式使其成为一个非常好的连字符点。aster5
hyphen.tex
因此,\lccode
中不允许使用零字符\hyphenation
。
我的建议是使用宏来处理这些撇号,例如
\documentclass{article}
\newcommand{\?}{'\-\nobreak\hspace{0pt}}
\hyphenation{the-mar thu-zad}
\begin{document}
\begin{minipage}{0pt}
and Lor\?themar felt that Kel\?Thuzad's controlled tone
\end{minipage}
\end{document}
零宽度minipage
只是为了触发尽可能多的连字。