让自定义连字模式在 xelatex 中发挥作用

让自定义连字模式在 xelatex 中发挥作用

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

...

相关内容