了解日志文件

了解日志文件

我在编译时收到一些对我来说难以理解的错误和警告。根据我能找到的几乎所有互联网资源的建议,我深入研究了 .log 文件。问题是,我不知道如何解释我看到的内容。

我不想占用别人的时间,那么,在哪里可以找到《初学者阅读 LaTex .log 文件》文档?

答案1

以下是.log文件的一些元素:

  • .log文件首先会提供一些有关您正在运行的编译器的信息。例如,运行latexpdflatex输出为

    This is pdfTeX, Version 3.1415926-2.3-1.40.12 (Web2C 2011)
    

    运行时xelatex会输出

    This is XeTeX, Version 3.1415926-2.3-0.9997.5 (Web2C 2011)
    
  • 加载的每个文件(包括文档类.cls和样式.sty文件)都以开头的“ (”和文件名开头。文件加载完成后,以结尾的“ )”结尾。该文件加载过程中发生的所有消息都写在括号内。有时,这包括文件版本或文件的简短描述(由软件包作者编写)。

    (./test.tex (./hello.tex This is a message from hello.tex) [1] )
    
  • 页码写在[ ]方括号中。

  • 每当框(一般的 TeX 布局结构)中包含的内容不适合时,LaTeX 就会发出“坏框”警告。这是一个小的工作示例

    \documentclass{article}
    \begin{document}
    Thisisaverylonglinethatdoesnotbreakproperlyattheendofthelineandcausesanoverfulhbox
    \end{document}
    

    产生

    Overfull \hbox (46.52866pt too wide) in paragraph at lines 3--4
    []\OT1/cmr/m/n/10 Thisisaverylonglinethatdoesnotbreakproperlyattheendofthelinea
    ndcausesanoverfulhbox 
     []
    

    在您的.log文件中。这意味着框(在本例中为宽度为 的框)的内容在代码的第 3-4 行\linewidth超出46.52866pt。实际输出代码段也是可见的,其中加载了字体以排版文档的“坏”部分(OT1/cmr/m/n/10)。这些“坏框”被统计并显示在编译的最后(尽管这不构成实际文件的一部分.log):

    LaTeX-Result: 0 Error(s), 0 Warning(s), 1 Bad Box(es), 1 Page(s)
    
  • 您有时可能会收到以下警告

    LaTeX Warning: Reference myref on page 1 undefined on input line 6.
    

    这意味着您使用了\ref或其相关项之一,但没有适当的\label。在这种情况下,您还将获得

    LaTeX Warning: There were undefined references.
    

    在文件末尾log

  • \label类似地,如果你在多个地方定义相同的,那么你将得到

    LaTeX Warning: Label `mypage' multiply defined.
    

    这将导致

    LaTeX Warning: There were multiply-defined labels.
    

    在文件末尾log

  • 有时找不到字体。字体形状(例如倾斜)或某些请求的字体大小不可用。然后您会收到如下消息:

    LaTeX Font Warning: Font shape `OT1/cmr/m/bx' undefined
    (Font)              using `OT1/cmr/m/n' instead on input line 3.
    

    或者

    LaTeX Font Warning: Font shape `OT1/cmr/m/n' in size <5.42497> not available
    (Font)              size <5> substituted on input line 72.
    

上述许多信息都是通过问题 获得的,\typeout{<stuff>}该问题输出<stuff>到终端窗口(随后进入文件.log)。警告和错误(也包含在文件中).log来自问题\<cmd>Warning或 ,\<cmd>Error其中<cmd>或 指的是ClassPackage

在某种程度上,可以.log通过使用silence包裹. 它提供了一种过滤或激活来自包的警告、错误或其他消息的方法。

答案2

有关错误和警告,请参阅《LaTeX Companion》第 2 版附录 B:跟踪和解决问题

相关内容