mylanguage.tex
我有一个包含连字模式的文件mylanguage
:
\newlanguage\mylanguage
\begingroup
\language\mylanguage
\patterns{
1b
}
\endgroup
还有一个测试文件foo.tex
:
\documentclass{article}
\language=\mylanguage
\usepackage{testhyphens}
\begin{document}
\begin{checkhyphens}{}
foobar
\end{checkhyphens}
\end{document}
foobar
我希望中的单词foo.tex
被标记为foo-bar
。
为了编译所有内容,我执行以下操作:
xelatex -jobname=mylanguage -ini "&xelatex mylanguage\dump"
xelatex -fmt mylanguage foo
但是,第一个命令输出此错误消息:
Too late for \patterns.
相应的帮助信息如下:
All patterns must be given before typesetting begins.
我试图忽略错误消息并继续,并且确实设法在最后输出 PDF,但是我的自定义连字符模式被忽略,并且foobar
输出中没有连字符。
我究竟做错了什么?
答案1
您可以输入xelatex.ini
源而不是回收格式。
将您的更改mylanguage.tex
为
\let\DUMP\dump
\let\dump\relax
\input xelatex.ini
\newlanguage\mylanguage
\begingroup
\language\mylanguage
\patterns{
1b
}
\endgroup
\let\dump\DUMP
\let\DUMP\undefined
\dump
然后是命令行
xelatex -etex -ini mylanguage
显示你的新语言为 85:
...
Hyphenation trie of length 437140 has 9487 ops out of 35111
1 for language 85
143 for language 84
...