Polyglossia 不适用于 ltxdoc 文档类

Polyglossia 不适用于 ltxdoc 文档类

我有一个使用ltxdoc文档类和docstrip代码和文档生成程序。该软件包处理一些多语言内容,需要 XeTeX(准确地说,polyglossia本身,但这应该是无关紧要的),所以我用 来处理它xelatex

现在我想使用该polyglossia包在文件中排版一段另一种语言的文本。但是,当我向文档中添加或命令.dtx时,出现了一个奇怪的错误:\setdefaultlanguage\setotherlanguage

! Package doc Error: Character table corrupted.

See the doc package documentation for explanation.
Type  H <return>  for immediate help.
 ...                                              

l.26 %   Right brace   \}     Tilde         \~}

我已将其简化为这个测试用例:

% \iffalse
\documentclass{ltxdoc}

\usepackage{polyglossia}
\setdefaultlanguage{english}

\begin{document}
  \DocInput{test.dtx}
\end{document}
% \fi
%
% \CharacterTable
%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%   Digits        \0\1\2\3\4\5\6\7\8\9
%   Exclamation   \!     Double quote  \"     Hash (number) \#
%   Dollar        \$     Percent       \%     Ampersand     \&
%   Acute accent  \'     Left paren    \(     Right paren   \)
%   Asterisk      \*     Plus          \+     Comma         \,
%   Minus         \-     Point         \.     Solidus       \/
%   Colon         \:     Semicolon     \;     Less than     \<
%   Equals        \=     Greater than  \>     Question mark \?
%   Commercial at \@     Left bracket  \[     Backslash     \\
%   Right bracket \]     Circumflex    \^     Underscore    \_
%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%   Right brace   \}     Tilde         \~}
%
% Hello World!
%
% \StopEventually{}
% \Finale
\endinput

我观察到,一旦我将\setdefaultlanguage(一行)放在另一个文件中\usepackage(但不是\input!)它,它就会起作用。我没有主意了。如何修复这个错误?

(我有 TeX Live 2010 和最新polyglossia版本。)

答案1

语言定义文件将 @ 的 catcode 更改为 11,但从未恢复原始 catcode。这是一个严重的错误,可能会导致更多麻烦。请报告。要重现的最小示例:

\documentclass{minimal}
\usepackage{polyglossia}
\setmainlanguage{english}
\begin{document}
\the\catcode`@ % should print 12, but prints 11
\end{document}

直到错误被修复,在命令\makeatother后直接添加\setmainlanguage

(顺便说一句,我没想到字符表检查有一天会派上用场!)

编辑:报道于https://github.com/fc7/polyglossia/issues/#issue/13

编辑2:固定的。

相关内容