喂食
\documentclass{svmono}% v5.10 from http://resource-cms.springernature.com/springer-cms/rest/v1/content/20566/data/monographs .
\usepackage[ngerman]{babel}% whether you use babel or not, you get an error.
\usepackage[num,ngerman]{isodate}% USenglish instead of ngerman fails as well.
\begin{document}
\author{Author}
\title{Title}
\maketitle
\end{document}
任何[xe|lua|pdf]latex
吐出错误
! Extra \or.
\ifthenelse #1->\toks@ {#1}\TE@repl \or
\TE@or \TE@repl \and \TE@and \TE@rep...
l.7 \maketitle
在本期中,我使用了当前最新的 TeX Live:
pdfTeX,版本 3.141592653-2.6-1.40.24(TeX Live 2022)
LaTeX2e <2022-06-01> 补丁级别 5
L3编程层 <2022-07-15>
svmono 2021/09/08 v5.10
巴贝尔 2022/07/20 3.78
isodate 2010/01/03 v2.30
之前 Debian 测试版 (2022) 的 TeX Live 加载了 babel 至少在使用 时不会出现任何问题pdflatex
。但是,现在如果你删除 ,就会出现错误\usepackage[ngerman]{babel}
。使用的版本如下:
pdfTeX,版本 3.141592653-2.6-1.40.24(TeX Live 2022/Debian)
LaTeX2e <2021-11-15> 补丁级别 1
L3编程层 <2022-06-02>
svmono 2021/09/08 v5.10
巴贝尔 2022/05/22 3.75
isodate 2010/01/03 v2.30
svmono
SPi的维护者(他们是当前的维护者吗?)和的维护者isonum
(电子邮件取自的文档babelbib
)已被告知。
谁是罪魁祸首?我们该怎么办?
答案1
svmono
做
\if!\@date!\else
{\large \@date}% % Date set in \large size.
\@date
这是对空(即文档具有)的“乐观”测试\date{}
。
很难确切列举它何时会失败,但本质上如果\@date
被定义为执行任何有趣的操作,它就会失败。这是一种特别激进的扩展形式,因此 etex\protected
定义不会有帮助,而 latex \protect
robust 定义只会在某些情况下有所帮助。
isodate
定义\@date
为使用包\ifthenelse
中的测试ifthen
,这可能对于简单的顶级测试有用,但极其脆弱,不能在任何类型的代码或扩展上下文中使用。
在以前的版本中,这种组合会产生默认显示的错误,但如果您还添加了\usepackage[ngerman]{babel}
一系列意外效果,则可以避免运气而非设计上的错误。
babel 中的一些变化意味着运气耗尽,现在无论有没有 babel 都会出现错误。我没有追踪变化的原因,因为指望其他软件包来维持如此脆弱的测试是不合理的。
svmono 可以使用
\ifx\@date\@empty
也许
\if$\detokenize\expadafter{\@date}$
如下所示,或者他们可以合理地声称,作为出版商类别,他们仅支持 Springer Journals 使用的日期格式,因此支持其他日期格式包超出了范围。
\makatletter
\def\@maketitle{\newpage
\null
\vskip 2em % Vertical space above title.
\begingroup
\def\and{\unskip, }
\parindent=\z@
\pretolerance=10000
\rightskip=\z@ \@plus 3cm
{\LARGE % each author set in \LARGE
\lineskip .5em
\@author
\par}%
\vskip 2cm % Vertical space after author.
{\Huge \@title \par}% % Title set in \Huge size.
\vskip 1cm % Vertical space after title.
\ifx\@subtitle\@empty\else%<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
{\LARGE\ignorespaces\@subtitle \par}
\vskip 1cm % Vertical space after subtitle.
\fi
\ifx\@date\@empty\else %<<<<<<<<<<<<<<<<<<<<<<<<<
{\large \@date}% % Date set in \large size.
\par
\vskip 1.5em % Vertical space after date.
\fi
\vfill
{\Large Springer Nature\par}
%\vskip 5\p@
%\large
% Berlin\enspace Heidelberg\enspace New\kern0.1em York\\
% Hong\thinspace Kong\enspace London\\
% Milan\enspace Paris\enspace Tokyo\par
\endgroup}
\makeatother