我正在尝试获取 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=3
TeX 引擎都不会在 之后进行连字。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