调试文本文件和其他内容中的无限循环

调试文本文件和其他内容中的无限循环

我有一些旧代码,想恢复一下。以前运行正常,但现在不行了,但代码没有改变(所以这是由于软件配置改变造成的)。没有真正有意义的错误消息。

问题是似乎有一个或多个包正在干扰,因为当我删除它们时,tex 代码可以编译,但当然会出现很多错误。

通过删除依赖于包的代码,我已经使部分代码能够正常工作。(如果唯一的行是 usepackage 语句,它仍然会崩溃,这意味着它是包)

这些套餐包括

xparse atbegshi xfrac mdframed(我的很多代码都依赖于此)

Package: xpatch 2012/10/02 v0.3 Extending etoolbox patching commands
.................................................
)
Runaway argument?
\q_stop \exp_args:NNo \group_end: \iow_log:n \l__iow_wrap_tl \iow_log:n \ETC.
! File ended while scanning use of \__iow_wrap_loop:w.

删除一些东西后,无限循环就消失了(我认为主要是 mdframed 和 xparse)。

这似乎是一些过时的包裹存在的问题,有什么想法可以查找或我可以做些什么来尝试解决它?

%\tracingall
\documentclass[12pt,oneside]{book}\batchmode

\usepackage[T1]{fontenc}
\usepackage{silence}
\usepackage[x11names]{xcolor}
\usepackage[margin=1in,a4paper]{geometry} % a5paper for electronic reading
\usepackage{luatex, graphicx}
\usepackage[space]{grffile}
\usepackage{tikz, pgffor}
\usepackage{pdfcolmk}
\usepackage[export]{adjustbox}
\usepackage{chngpage}
\usepackage{multicol}
\usepackage{xparse}
\usepackage{everypage}
\usepackage{afterpage}
\usepackage{pdfpages}
\usepackage{etoolbox}
\usepackage{indentfirst}
\usepackage{relsize}
\usepackage{endnotes}
\usepackage{placeins}
\usepackage{flafter}
\usepackage{inconsolata}
\usepackage{fancyvrb}
\usepackage{listings}
\usepackage{letltxmacro}
%\usepackage[framemethod=TikZ]{mdframed}
%\usepackage{xpatch}
%\usepackage{atbegshi}
\usepackage[hidelinks]{hyperref}
%\usepackage{movie15}
%\usepackage{xfrac}






















\scrollmode


%\batchmode
\begin{document}\scrollmode%\chapendfootnote





\batchmode\end{document}

使用 miktex 2.9。可能是我的安装问题,但应该可以工作(以前也可以)

答案1

这编译得很好(请注意这里注释掉的内容:命令\batchmodesilence包、以及带有包的行luatex)。

%\tracingall
\documentclass[12pt,oneside]{book}
%\batchmode

\usepackage[T1]{fontenc}
%\usepackage{silence}
\usepackage[x11names]{xcolor}
\usepackage[margin=1in,a4paper]{geometry} % a5paper for electronic reading
%\usepackage{luatex, graphicx}
\usepackage[space]{grffile}
\usepackage{tikz, pgffor}
\usepackage{pdfcolmk}
\usepackage[export]{adjustbox}
\usepackage{chngpage}
\usepackage{multicol}
\usepackage{xparse}
\usepackage{everypage}
\usepackage{afterpage}
\usepackage{pdfpages}
\usepackage{etoolbox}
\usepackage{indentfirst}
\usepackage{relsize}
\usepackage{endnotes}
\usepackage{placeins}
\usepackage{flafter}
\usepackage{inconsolata}
\usepackage{fancyvrb}
\usepackage{listings}
\usepackage{letltxmacro}
\usepackage[framemethod=TikZ]{mdframed}
\usepackage{xpatch}
\usepackage{atbegshi}
\usepackage[hidelinks]{hyperref}
\usepackage{movie15}
\usepackage{xfrac}


%\scrollmode
%\batchmode
\begin{document}
%\scrollmode%\chapendfootnote

asdf % <-- add some content

%\batchmode
\end{document}

评论

  • 如果您不知道它的用途,请不要使用它\batchmode;如果您知道它的用途,您就知道在尝试查找错误时不应使用它。 也一样\scrollmode

  • 可以说,在尝试定位错误时也不应该使用该silence包。(但是,在大多数情况下,保留它可能没问题。)

  • 该包luatex.sty不能与引擎一起使用pdfTeX,但其他包(例如)fontenc表明您打算使用pdfTeX

  • 如果你提供了 100 多个文件,那么你可能没有提供最小示例,这通常是其他人提供有意义的解决方案所必需的。(这与“态度”无关,而是关于通常什么是获得有用和/或有意义的解决方案的最佳和最快方法的一般观点。)

    • 因此,如果问题中提供的文件是不是与“真实”文件的“真实”问题有意义地相关,无法保证解决该问题中给出的文件的问题也能解决“真实”问题。

编辑

如果你使用 LuaTeX 作为引擎,至少在这个例子中,你需要不是load movie15.sty(无论如何都已经过时了) 或 load luatex85.sty,这有助于处理 LuaTeX > 0.80 版本中引入的重大更改。但是,作为一般规则,您也不应该 load fontenc

相关内容