放
\documentclass{svmono}%%% v5.6 from http://www.springer.com/gp/authors-editors/book-authors-editors/resources-guidelines/rights-permissions-licensing/manuscript-preparation/5636
\begin{document}
\begin{example}\label{e}
\end{example}
\end{document}
进入file.tex
。运行pdflatex
结果
$ pdflatex file
This is pdfTeX, Version 3.14159265-2.6-1.40.19 (TeX Live 2019/dev/Debian) (preloaded format=pdflatex)
restricted \write18 enabled.
entering extended mode
(./file.tex
LaTeX2e <2018-04-01> patch level 5
(./svmono.cls
Document Class: svmono 2018/06/25 v5.6
Springer Verlag global LaTeX document class for monographs
(/usr/share/texlive/texmf-dist/tex/latex/base/article.cls
Document Class: article 2014/09/29 v1.4h Standard LaTeX document class
(/usr/share/texlive/texmf-dist/tex/latex/base/size10.clo))
(/usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty
(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg)
(/usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def)
(/usr/share/texlive/texmf-dist/tex/latex/xcolor/x11nam.def))
(/usr/share/texlive/texmf-dist/tex/latex/ntheorem/ntheorem.sty
Style `ntheorem', Version 1.33 <2011/08/15>
(/usr/share/texlive/texmf-dist/tex/latex/base/ifthen.sty)))
No file file.aux.
(/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
[Loading MPS to PDF converter (version 2006.09.02).]
))
! Incomplete \iffalse; all text was ignored after line 3.
<inserted text>
\fi
<*> file
?
哪里出了问题?有没有什么方法可以破解 svmono 来纠正它?当然,上面的例子非常小。实际上,你会在环境周围和内部有其他包和文本。一个简单的解决方法是提供一个空的文本:\begin{example}{}\label{e}\end{example}
,但这违背了example
§2.6(日期为 2019-02-05)中refguide.pdf
声明为不带参数或带一个(可选)参数的事实。我想知道是否有可能纠正 svmono 使其行为与往常一样,即简单地打印
例 1.
在这种情况下,以前的类版本(svmono v5.5)成功运行,没有任何问题。
(PS:请不要过分批评我:我无法直接获得 Springer 的帮助;我之前的电子邮件在 SMTP 级别被拒绝了。因此,如果 Springer 的任何人读到这里:请参阅@moewe 的回答并进行改进,例如,删除第 1980-1981 行中的重新定义。)
答案1
svmono.cls
定义example
两次。一次以定理的方式在第 1498 行中
\spn@wtheorem{example}{Example}{\itshape}{\rmfamily}
据推测这是记录的定义。
后来在%%%SOPHIE TEMPLATE BEGIN%%%
1980-1981 年的区块中,该类
\renewenvironment{example}[1]{\ignorespaces\def\stmtopen##1{##1}%
\formtmp{example}{#1}}{\par\noindent\textcolor{example}{\rule{\columnwidth}{1pt}}\vskip2pt\par\addvspace{\baselineskip}}%
这重新定义了example
,特别是意味着它现在需要一个强制性论点。这正是 MWE 中出现问题的地方,因为\label
现在被吸收为强制性论点。
Sophie 的模板是 5.6 版新增的功能svmono.cls
。
您可以通过添加来恢复可能预期的定义
\makeatletter
\let\example\relax
\spn@wtheorem{example}{Example}{\itshape}{\rmfamily}
\makeatletter
到你的序言中。当然你也可以注释掉不需要的\renewenvironment{example}
。
也可以观察到类似的效果question
。
这看起来像是类中(或文档中)的一个错误,应该报告给维护人员(SMTP 故障或其他情况)。