gpt4 book ai didi

latex - 我如何将 LaTeX 警告视为错误

转载 作者:行者123 更新时间:2023-12-04 01:10:56 25 4
gpt4 key购买 nike

我正在使用适用于 Windows 的 MiKTeX 2.8 发行版。

我们主要开发软件,并使用 LaTeX 来制作我们的用户说明。我们使用 LaTeX 是因为:

  • 它在源代码控制下非常适合跟踪更改等。
  • 与 Word 文档不同,源文件不会突然决定损坏。
  • 多个文档可以共享单个部分,因此我们可以将 DRY 原则应用于我们的文档并避免某些文档与其他文档不同步。您可以在 Word 中拥有主文档,但我发现它们非常脆弱。

  • 作为构建服务器上无人参与构建过程的一部分,我们使用 MiKTeX 的 texify 可执行文件构建文档。这工作得很好。

    但是,当开发人员犯错时会出现问题(例如,\ref 到不存在的\label)。诸如此类的错误只会在 LaTeX 中生成警告。 texify 没有注意到警告,我们在文档中留下了错误。

    我目前有一个构建步骤,它扫描日志文件中以“LaTeX 警告”开头的行,如果有的话,构建失败。这有效,但显然非常不稳定,并且可能会让警告漏掉。它目前不用于开发机器上的本地构建,但如果这是唯一的方法,我可能需要将它与我们当前使用的编辑器(MiKTeX 附带的 TeXworks)集成。

    如果出现任何警告(例如 undefined reference ),我希望构建失败,并且我不想对日志文件进行片状扫描。有什么提供这个功能吗?

    如果我可以在开发机器和构建服务器上的本地构建中使用此功能,那将是一个巨大的好处。

    最佳答案

    以下(未经测试)代码应将任何警告转换为错误:

    \renewcommand{\GenericWarning}[2]{\GenericError{#1}{#2}{}{This warning has been turned into a fatal error.}}

    那么您可能对 silence感兴趣包过滤警告。

    但是,您还需要安排仅在 LaTeX 的最后一次运行时执行此操作,因为在第一次运行期间会出现一些警告,例如 undefined reference 。

    具有良好 LaTeX 支持的编辑器会告诉您是否需要重新运行 LaTeX(TeXworks 不这样做吗?)。他们通过解析控制台输出或日志文件来做到这一点。它实际上相当健壮(如果您真的担心,可以重新定义 \GenericWarning 以向所有警告添加特征字符串)。我认为解析日志是正确的方法。

    将此视为针对文档运行的测试。如果存在 undefined reference ,则文档构建成功。构建产品是 pdf(或其他)和 TeX 日志。检查日志中的警告是一项测试。

    关于latex - 我如何将 LaTeX 警告视为错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3244908/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com