\documentclass{article}
\usepackage[english]{babel}
\usepackage{filecontents}
\begin{filecontents*}{english.yp}
hom-ony-mous
gene-ral-ly
\end{filecontents*}{english.yp}
\hyphenation{
\input english.yp
}
\begin{document}
spinach.
\end{document}
这不能编译,(但如果我移动文件的第一行和最后一行,就会编译。)为什么不呢\hyphenation{
?}
答案1
LaTeX 实现\input
不可扩展,因此无法进行括号测试。但是,\hyphenation
需要一个完全扩展为文本的参数。因此,您必须使用底层原语
\documentclass{article}
\usepackage[english]{babel}
\usepackage{filecontents}
\begin{filecontents*}{english.yp}
hom-ony-mous
gene-ral-ly
\end{filecontents*}
\makeatletter
\hyphenation{
\@@input english.yp
}
\makeatother
\begin{document}
spinach.
\end{document}