包含撇号的单词的连字

包含撇号的单词的连字

我的问题很简单。

有没有办法用连字符连接“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''

在正常设置下,只有themasters才被视为单词,其中`'为零\lccode。如果

\lccode`\'=`\'

(相当于在 之后有 39 =)在顶层发出,上面的短语将有“单词”

masters''

TeX 会很乐意将其连字符化为

大师级

因为这符合连字符后面至少有三个字母的规则(英语连字符规则中有),并且中的\righthyphenmin=3模式使其成为一个非常好的连字符点。aster5hyphen.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只是为了触发尽可能多的连字。

在此处输入图片描述

答案2

感谢评论,我意识到完成我需要的方法。在示例中,我将使用这个词洛瑟玛

全局定义(在序言中):

\lccode`\'=39\hyphenation{Lor'-the-mar}

本地定义(正在运行的文本中):

[...] Aethas replied, and Lor'\-the\-mar felt that his controlled tone [...]

两种方式似乎同样有效(显然使用\lccode\=\可能有不利影响,正如指出的那样埃格尔)。但为了方便起见(我不仅用 LaTeX 编写文本,还制作了 ePub 版本)我使用的是第一种方法:全局定义。

相关内容