一些 .CLS 错误

一些 .CLS 错误

http://www.mmnp-journal.org/author-information/latex-examples

我正在帮助一个朋友使用 LaTeX,但我对 .cls 宏不太熟悉。来源来自上面的地址。

当我尝试编译该文件时,出现以下错误:

! Undefined control sequence.
l.1295 \StandardLayout

它是 .cls 文件中的第 1295 行,我不确定它是否是由加载的旧包还是其他原因造成的。

有什么建议么?

谢谢。

答案1

更改以下内容mmnp.cls

  • \StandardLayout将 的旧版本提供的内容替换babel为新版本中的等效内容:

    \frenchbsetup{StandardLayout=true}
    
  • twosideshift=0mm在包的选项前添加注释符号geometry。这是一个不再存在的旧选项。

  • 将此行移至\RequirePackage[frenchb,english]{babel}紧接在 之前\frenchbsetup{StandardLayout=true}。将此行移至\RequirePackage[sort&compress,square,comma]{natbib}紧接在 之前,\RequirePackage[frenchb,english]{babel}使得此部分现在显示为

    %Babel
    %\StandardLayout
    \RequirePackage[sort&compress,square,comma]{natbib}
    \RequirePackage[frenchb,english]{babel}
    \frenchbsetup{StandardLayout=true}
    

    这种改组的目的是natbib在之前加载babel,但natbib取决于更上层的定义,因此不能上移太远。

  • 至于natbib错误我不太清楚。可能是因为没有足够的参考书目。

答案2

如果您想在 MMNP 上发表手稿,请要求他们提供更新的课程文件。也许,他们在此期间还更改了其他内容。

类文件mmnp.cls下载于2017-02-13发布,包含以下版本日期和版本号:

\ProvidesClass{mmnp}[2011/12/16
^^JLaTeX document class for MMNP journals - version 1.0]

除了没有定义之外,没有什么特别之处\StandardLayout。如果类文件在过去的某个时间运行过,那么这个名称太过普通,无法找到线索,无法了解其中配置了哪些布局方面,也无法了解它来自哪里。

下一个怪癖是关于 的错误消息twosideshift。它来自geometry在版本 5 中删除了该选项的软件包。由于该选项实际上没有使用,如值 0mm 所示,因此可以禁用它。

这两个问题都可以通过以下代码修复,必须输入 \documentclass

\makeatletter
\RequirePackage{keyval}
\define@key{Gm}{twosideshift}{%
  \ifdim#1=0pt %
    % Ignore zero shift value
  \else
    \PackageWarning{geometry}{Option `twosideshift` is gone since version 5}%
  \fi
}
\makeatother
\providecommand*{\StandardLayout}{}

第一部分提供了选项的默认定义,twosideshift如果选项使用非零值,则会打印警告。

最后一句出自 Christian Hupfer 的评论并为 提供了一个空定义\StandardLayout

如果我运行pdflatex示例文件MMNP-format.tex,则会出现以下错误(除了由于缺少图像而导致的两个错误):

! Package natbib Error: Bibliography not compatible with author-year citations.

(natbib)                Press <return> to continue in numerical citation style.

至少,出版商应该澄清应该使用哪种参考书目和引用样式。

相关内容