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.
至少,出版商应该澄清应该使用哪种参考书目和引用样式。