XeLaTeX 和 pdfLaTeX 忽略 \hyphenation

XeLaTeX 和 pdfLaTeX 忽略 \hyphenation

我正在尝试获取 LaTeX 算法给出的所有连字符。因此,我正在尝试这样做:

echo "\\\documentclass{standalone}
\\\hyphenation{Py-ra-mi-de}
\\\showhyphens{Pyramide}" | xelatex

这没有给我任何错误,因此输出包含

\TU/lmr/m/n/10 Py-ra-mide

我可以解析。但是它给我的连字符不是 Py-ra-mi-de,而是 Py-ra-mide。我在这里做错了什么?

答案1

默认语言(美式英语)设置\lefthyphenmin=2和。因此,无论您定义什么连字点,\righthyphenmin=3TeX 引擎都不会在 之后进行连字。m

如果你试试

\documentclass{article}
\usepackage[italian,english]{babel}

\begin{document}

\hyphenation{Py-ra-mi-de}

\showhyphens{Pyramide}

\selectlanguage{italian}

\hyphenation{Py-ra-mi-de}

\showhyphens{Pyramide}

\end{document}

你得到

Underfull \hbox (badness 10000) in paragraph at lines 8--8
\TU/lmr/m/n/10 Py-ra-mide

Underfull \hbox (badness 10000) in paragraph at lines 14--14
\TU/lmr/m/n/10 Py-ra-mi-de

实际上,没有必要再次设置连字点,因为您想要的连字符合意大利语的模式。此语言的设置有\lefthyphenmin=2\righthyphenmin=2

答案2

您必须正确设置连字符:

\documentclass{standalone}
\hyphenation{Py-ra-mi-de}


\begin{document}
\showhyphens{Pyramide}

\righthyphenmin1
\lefthyphenmin1

\showhyphens{Pyramide}

\end{document}

第一个 \showhyphens 给出了你的输出,但是第二个现在

\TU/lmr/m/n/10 Py-ra-mi-de

相关内容