我可以想象,这似乎是一个奇怪的问题。我在日志文件中收到以下警告:
Package rerunfilecheck Warning: File `manualArithInOctave.aux' has changed. Rer
un.
可以看到,Rerun
由于文件名太长,所以被拆分了。由于我编写了一个自动检查重新运行的软件,我没有考虑换行符,因此我的软件目前失败了。对于所有 latex 编译器来说,这种换行符都是一样的。你会如何处理?是否可以将行变长?
目前我帮助自己检查
Package rerunfilecheck Info: Checksums for
总是出现在这样的语境中
Package rerunfilecheck Info: Checksums for `manualArithInOctave.aux':
(rerunfilecheck) Before: AE29388CCDAB80FD9099D31C76042CA5;26803
(rerunfilecheck) After: 3FBBC4F917BC53D0C178CFCE6CA06FBB;26803.
并表示重新运行。
但这当然是一种 hack。肯定有人对 tex 编程有更好的理解,并能想出更好的解决方案。
一个解决方案是让编译器根本不产生换行符。
答案1
\documentclass{article}
\begin{document}
\typeout{Package rerunfilecheck Warning: File `manualArithInOctave.aux' has changed. Rerun.}
\end{document}
生产
Package rerunfilecheck Warning: File `manualArithInOctave.aux' has changed. Rer
un.
(./ee4450.aux) )
No pages of output.
Transcript written on ee4450.log.
但是如果你在命令行中设置,max_print_line
则texmf.cnf
可以有超过 80 个字符:
$ pdflatex --cnf-line="max_print_line=100" ee4450
This is pdfTeX, Version 3.141592653-2.6-1.40.25 (TeX Live 2023) (preloaded format=pdflatex)
restricted \write18 enabled.
entering extended mode
(./ee4450.tex
LaTeX2e <2023-11-01>
L3 programming layer <2023-11-09>
(/usr/local/texlive/2023/texmf-dist/tex/latex/base/article.cls
Document Class: article 2023/05/17 v1.4n Standard LaTeX document class
(/usr/local/texlive/2023/texmf-dist/tex/latex/base/size10.clo))
(/usr/local/texlive/2023/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def) (./ee4450.aux)
Package rerunfilecheck Warning: File `manualArithInOctave.aux' has changed. Rerun.
(./ee4450.aux) )
No pages of output.
Transcript written on ee4450.log.
这适用于所有引擎,pdftex、xetex luatex,该--cnf-line
选项适用于 texlive,在 miktex 中使用-max-print-line, as in -max-print-line=100
您没有提供示例,但实际上来自包的几乎所有消息都在文件名后提供了换行符,我猜您使用了aux
具有特殊情况的选项来避免强制换行。代码确实
\ifx\\#4\\%
\space Rerun%
\else
\MessageBreak
#4%
\fi
因此,如果你避免[aux]
使用任何自定义消息检查辅助文件,而是指定它,那么在Rerun
\documentclass{article}
\usepackage{rerunfilecheck}
\RerunFileCheck{\jobname.aux}{}{Rerun, see new line}
\begin{document}
\makeatletter
% force it to never stabilise so you always get a rerun message
\write\@auxout{\global\c@page=\the\numexpr\c@page+1\relax}
this is page \label{aaa}\pageref{aaa}
\end{document}
产生终端输出
Package rerunfilecheck Warning: File `vvvverrrryyyylonnngnaame.aux' has changed
.
(rerunfilecheck) Rerun, see new line.