故障排除警告

故障排除警告

我收到此警告:

You have requested document class `Classes/PhDThesisPSnPDF',
           but the document class provides `PhDThesisPSnPDF'.

我该如何让它静音?它看起来像一个多行警告,我不知道如何在\WarningFilter命令中复制它。这是我失败的尝试:

 \WarningFilter{latex}{ `Classes/PhDThesisPSnPDF',but the document class provides `PhDThesisPSnPDF'}

答案1

这是因为您有PhDThesisPSnPDF.cls一个Classes子文件夹。因此,您通常使用以下方式包含它:

\documentclass[..]{Classes/PhDThesisPSnPDF}

对吧?好吧,在 的强制参数中提供的内容(类)与inside\documentclass的强制参数中写的内容应该相似。如果它们不匹配,LaTeX 会抛出您看到的警告。\ProvidesClassPhDThesisPSnPDF.cls

你不能使用silence包裹除非你加载它调用\documentclass。此外,您不必提供满的警告消息以便过滤它;只要匹配的开始就可以了。

如何纠正此警告?有多种方法:

  1. 编辑子文件夹PhDThesisPSnPDF.cls内的文件Classes并更改

    \ProvidesClass{PhDThesisPSnPDF}
    

    \ProvidesClass{Classes/PhDThesisPSnPDF}
    

    然后直接使用

    \documentclass[..]{Classes/PhDThesisPSnPDF}
    

    在您的文档内。

  2. PhDThesisPSnPDF.cls从文件夹移至源Classes所在的位置.tex

  3. 移动PhDThesisPSnPDF.cls到您的本地 TeXMF 文件夹并重新运行texhash(使其适用于所有文档)。

答案2

以下内容直接来自模板自述文件

故障排除警告

W1:我收到 LaTeX 警告:您已请求文档类Classes/PhDThesisPSnPDF,但文档类提供PhDThesisPSnPDF,我应该担心吗?

不!什么也不做,或者如果您不想要任何警告消息,请将类文件顶部附近的行更改为\ProvidesClass{Classes/PhDthesisPSnPDF}如果您不打算将类文件安装在更标准的位置。您可以将其安装在标准位置/usr/share/texmf/tex/latex/,然后运行 ​​texhash 进行重新配置。

另请参阅第 112 期

答案3

我遇到了同样的问题,对我来说,我无法移动 .cls 文件,因为它对该目录中的文件有一些依赖关系(作为 Git 子模块导入)。而且我的自定义类也需要在其自己的目录中使用。我的解决方案是在 .cls 文件的开头执行此操作:

    \IfFileExists{./<your class name>.cls}{
        \ProvidesClass{<your class name>}[<your class description>]
    }{
        \ProvidesClass{./<subdirectory>/<your class name>}[<your class description>]
    }

并且它删除了在 .cls 子目录和顶级目录内进行编译时出现的警告。

相关内容