减少 LaTeX 的控制台输出

减少 LaTeX 的控制台输出

当我运行 pdfLaTeX 时,我得到非常详细的输出:

(/usr/local/texlive/2008/texmf-dist/tex/generic/pgf/frontendlayer/tikz/librarie
s/tikzlibrarycalc.code.tex)
...

是否有一个脚本可以吸收所有详细输出并允许重要内容通过,例如错误、过满的水平盒子等等?

另外,为什么对于长度超过 79 个字符的行,它会向控制台发送硬回车?

答案1

79 个字符后的换行符在 Web2C 的配置文件 texmf.cnf 中定义。变量名称是max_print_line您可以在文件中更改的(一般不推荐,但在这种情况下设置是真的无害);并且如果您从 shell 运行 TeX,您还可以在环境中设置此变量(export max_print_line=1048576对于类似 Korn 的 shell,set max_print_line 1048576对于 C shell)。

我不知道如何完全禁止换行;只有当这种行为令我烦恼时,我才会将变量设置为一个非常大的值。

答案2

解决方案是

  1. 使用-interaction batchmode开关或放在\batchmode文档的开始处(或任何您想要停止显示输出的地方)。

  2. 在您想要启用输出生成的任何位置使用\scrollmode\nonstopmode或。启用错误交互。\errorstopmode\errorstopmode

  3. \batchmode在任何您想要禁用输出生成的地方使用。

    • 为了减少混乱,请使用命令行开关,并使用以下模板。

>

     \begin{document}
     \scrollmode
     ....
     \batchmode
     \end{document}    

\scrollmode这只会显示和之间的乳胶输出,\batchmode几乎没有其他内容。


如果您使用 WinEdt(或者可能是其他自动化流程),它似乎喜欢无缘无故地打开长度为 0 的 pdf。它似乎也没有简单的方法来检查长度为 0 的文件。

  • 将以下内容添加到ExecCompiler.edt文件中\执行字符串“// 检查输出是否已生成...”后面的目录。(它位于底部附近)

执行编译器

Run('DeleteFileIfEmpty.exe "%P\%N.pdf"','%P',0,0,'%N.pdf',0,0,1);
IfFileExists("%P\%N.pdf", "Relax;", !"JMP('Exit');");
  • 这是一个简单工具的 C 代码,如果文件为空,它会删除它。

删除文件若为空.cpp

#include <tchar.h>
#include <Windows.h>

long GetFileSize(const TCHAR *fileName)
{    
    WIN32_FILE_ATTRIBUTE_DATA fileInfo;
    if (NULL == fileName) return -1;
    if (!GetFileAttributesEx(fileName, GetFileExInfoStandard, (void*)&fileInfo)) return -1;
    return (long)fileInfo.nFileSizeLow;
}

int _tmain(int argc, _TCHAR* argv[])
{
    argv = CommandLineToArgvW(GetCommandLine(), &argc); if (argc < 2) return -1;

    _TCHAR *fn = new _TCHAR[1000]; ZeroMemory(fn, 1000*sizeof(_TCHAR)); _TCHAR *fn2 = fn; 
    for(int i = 1; i < argc; i++) { _tcscpy(fn2, argv[i]); fn2 += _tcslen(argv[i]); _tcscpy(fn2++, _T(" ")); } fn2--;
    if (GetFileSize(fn) > 0) return -1;

    DeleteFile(fn);
    return 1;
}

您可以在以下位置下载此文件

http://www.freefilehosting.net/deletefileifempty

将 DeleteFileIfEmpty.exe 放在 %path% 环境或 WinEdt 设置使用的 bin 目录中的路径中。


已使用 WinEdt6 进行了测试,可以正常工作。减少输出混乱(没有包加载消息、横幅等...)并且不会在出现错误时打开空文件。

答案3

这就是安静此包旨在提供帮助。

答案4

为了整齐地格式化输出,我创建了自己的解决方案:pydflatex. 您可以使用以下方式编译文件

pydflatex myfile.tex

并得到如下输出

pydflatex 运行

除了提供整洁、简洁的输出之外,它还会隐藏辅助文件,以免使您的文件夹混乱。

编辑现在也可以运行

pydflatex -l file.tex

它将会解析现有的日志而无需排版。

相关内容