svmono v5.6 不喜欢未命名的标签示例

svmono v5.6 不喜欢未命名的标签示例

\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 故障或其他情况)。

相关内容