我收到此警告:
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 会抛出您看到的警告。\ProvidesClass
PhDThesisPSnPDF.cls
你不能使用silence
包裹除非你加载它前调用\documentclass
。此外,您不必提供满的警告消息以便过滤它;只要匹配的开始就可以了。
如何纠正此警告?有多种方法:
编辑子文件夹
PhDThesisPSnPDF.cls
内的文件Classes
并更改\ProvidesClass{PhDThesisPSnPDF}
到
\ProvidesClass{Classes/PhDThesisPSnPDF}
然后直接使用
\documentclass[..]{Classes/PhDThesisPSnPDF}
在您的文档内。
PhDThesisPSnPDF.cls
从文件夹移至源Classes
所在的位置.tex
。移动
PhDThesisPSnPDF.cls
到您的本地 TeXMF 文件夹并重新运行texhash
(使其适用于所有文档)。
答案2
答案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 子目录和顶级目录内进行编译时出现的警告。