algorithm2e и xeCJK вызывают превышение пропускной способности TeX на texlive2016

algorithm2e и xeCJK вызывают превышение пропускной способности TeX на texlive2016

Мой документ не может быть скомпилирован после того, как я обновил texlive на моем Mac до версии 2016. Он отлично работает на texlive 2013.

Вот пример:

\documentclass[12pt]{report}

\usepackage[vlined,linesnumbered,noend,ruled]{algorithm2e}
\usepackage{xeCJK}

\begin{document}
  hello
\end{document}

Выход:

This is XeTeX, Version 3.14159265-2.6-0.99996 (TeX Live 2016) (preloaded format=xelatex)
 restricted \write18 enabled.
entering extended mode
(./test.tex
LaTeX2e <2016/03/31>
Babel <3.9r> and hyphenation patterns for 83 language(s) loaded.
(/usr/local/texlive/2016/texmf-dist/tex/latex/base/report.cls
Document Class: report 2014/09/29 v1.4h Standard LaTeX document class
(/usr/local/texlive/2016/texmf-dist/tex/latex/base/size12.clo))
(/usr/local/texlive/2016/texmf-dist/tex/latex/algorithm2e/algorithm2e.sty
(/usr/local/texlive/2016/texmf-dist/tex/latex/base/ifthen.sty)
(/usr/local/texlive/2016/texmf-dist/tex/latex/tools/xspace.sty)
(/usr/local/texlive/2016/texmf-dist/tex/latex/relsize/relsize.sty)
********************************************************
Package `algorithm2e' Release 5.1 -- october 19 2015 --
- [email protected] mailing list for announcement about releases
- [email protected] mailing list for discussion about package
subscribe by emailing [email protected] with 'subscribe <list> <firstname name>'
- Author: Christophe Fiorio ([email protected])
********************************************************
) (/usr/local/texlive/2016/texmf-dist/tex/xelatex/xecjk/xeCJK.sty
(/usr/local/texlive/2016/texmf-dist/tex/latex/l3kernel/expl3.sty
(/usr/local/texlive/2016/texmf-dist/tex/latex/l3kernel/expl3-code.tex)
(/usr/local/texlive/2016/texmf-dist/tex/latex/l3kernel/l3xdvipdfmx.def))
(/usr/local/texlive/2016/texmf-dist/tex/latex/l3packages/xtemplate/xtemplate.st
y) (/usr/local/texlive/2016/texmf-dist/tex/latex/l3packages/xparse/xparse.sty)
(/usr/local/texlive/2016/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty)
! TeX capacity exceeded, sorry [save size=80000].
<argument> ..._xeCJK_begin_int =\l__xeCJK_tmp_int
                                                  \int_incr:N \l__xeCJK_begi...
l.642 \xeCJKResetCharClass

No pages of output.
Transcript written on test.log.

Я пробовал увеличить размер сохранения, но это не сработало. Есть идеи, как решить эту проблему?

решение1

Проблема в строке 1061 algorithm2e.sty, которая гласит:

\newboolean{algocf@displaygroupmarkers}{\setboolean{algocf@displaygroupmarkers}{false}

но {предыдущая скобка \setbooleanнеправильная (и несбалансированная).

Это в основном остается незамеченным, вызывая только предупреждение в файле журнала; в случае с xeCJK, множество назначений, которые он делает, выполняются в открытой группе, что приводит к исчерпанию памяти.

Пока разработчик не исправит проблему (о которой уже сообщалось несколько месяцев назад), единственным решением будет сделать копию файла, удалить неверные данные {и поместить их в «личное» дерево TeX или в ту же папку, что и основной файл.

Связанный контент