我正在使用伦斯勒公司springer 课程的最新版本。
MWE1:
\documentclass[runningheads]{llncs}[2018/03/10]
\usepackage{blindtext}
\begin{document}
\maketitle
\blindtext[10]
\end{document}
输出:
MWE2:
\documentclass[runningheads]{llncs}[2018/03/10]
\usepackage[english]{babel}
\usepackage{blindtext}
\begin{document}
\maketitle
\blindtext[10]
\end{document}
输出:
重现方式如下:
docker run --rm -it -v "$(pwd):/home" danteev/texlive pdflatex paper-min.tex
适用于 Linux 和 PowerShell。系统配置:https://github.com/dante-ev/docker-texlive/blob/master/Dockerfile
*File List*
llncs.cls 2018/03/10 v2.20
LaTeX document class for Lecture Notes in Computer Science
article.cls 2014/09/29 v1.4h Standard LaTeX document class
size10.clo 2014/09/29 v1.4h Standard LaTeX file (size option)
multicol.sty 2017/04/11 v1.8q multicolumn formatting (FMi)
aliascnt.sty 2009/09/08 v1.3 Alias counter (HO)
remreset.sty
babel.sty 2018/02/14 3.18 The Babel package
english.ldf 2017/06/06 v3.3r English support from the babel system
blindtext.sty 2012/01/06 V2.0 blindtext-Package
xspace.sty 2014/10/28 v1.13 Space after command names (DPC,MH)
***********
在 MiKTeX 上也会发生这种情况:
*File List*
llncs.cls 2018/03/10 v2.20
LaTeX document class for Lecture Notes in Computer Science
article.cls 2014/09/29 v1.4h Standard LaTeX document class
size10.clo 2014/09/29 v1.4h Standard LaTeX file (size option)
multicol.sty 2018/04/20 v1.8s multicolumn formatting (FMi)
aliascnt.sty 2009/09/08 v1.3 Alias counter (HO)
remreset.sty
babel.sty 2018/06/05 3.22 The Babel package
bblopts.cfg 2005/09/08 v0.1 add Arabic and Farsi to "declared" options of b
abel
english.ldf 2017/06/06 v3.3r English support from the babel system
blindtext.sty 2012/01/06 V2.0 blindtext-Package
xspace.sty 2014/10/28 v1.13 Space after command names (DPC,MH)
***********
德语和法语也存在类似的问题。
答案1
哈维尔·贝佐斯已经成功了,我们应当给予他荣誉。
直到 Springer 修复与此相关的错误\switcht@albion
,顺便说一下,可以通过简单的
\documentclass{llncs}
\usepackage[english]{babel}
\begin{document}
X\selectlanguage{english}X
\end{document}
打印“X <several spaces>
X”,你可以一劳永逸地递归修补错误的宏:
\documentclass[runningheads]{llncs}
\usepackage[english]{babel}
\usepackage{etoolbox}
\makeatletter
\def\recursivepatch{%
\ifpatchable\switcht@albion{ \def}
{%
\patchcmd\switcht@albion{ \def}{\def}{}{}%
\recursivepatch
}
{\undef\recursivepatch}%
}
\recursivepatch
\makeatother
\begin{document}
\maketitle
X\selectlanguage{english}X
\clearpage
X\selectlanguage{english}X
\end{document}
或者,将其添加\relax
到宏中并用于\xpatchcmd*
一步完成所有修补。
\documentclass[runningheads]{llncs}
\usepackage[english]{babel}
\usepackage{regexpatch}
\makeatletter
\edef\switcht@albion{%
\relax\unexpanded\expandafter{\switcht@albion}%
}
\xpatchcmd*{\switcht@albion}{ \def}{\def}{}{}
\xpatchcmd{\switcht@albion}{\relax}{}{}{}
\makeatother
\begin{document}
\maketitle
X\selectlanguage{english}X
\clearpage
X\selectlanguage{english}X
\end{document}
事实上,法语和德语也存在同样的问题。对于这些语言,也需要重复补丁:
\makeatletter
\edef\switcht@albion{%
\relax\unexpanded\expandafter{\switcht@albion}%
}
\xpatchcmd*{\switcht@albion}{ \def}{\def}{}{}
\xpatchcmd{\switcht@albion}{\relax}{}{}{}
\edef\switcht@deutsch{%
\relax\unexpanded\expandafter{\switcht@deutsch}%
}
\xpatchcmd*{\switcht@deutsch}{ \def}{\def}{}{}
\xpatchcmd{\switcht@deutsch}{\relax}{}{}{}
\edef\switcht@francais{%
\relax\unexpanded\expandafter{\switcht@francais}%
}
\xpatchcmd*{\switcht@francais}{ \def}{\def}{}{}
\xpatchcmd{\switcht@francais}{\relax}{}{}{}
\makeatother
答案2
这是 中的一个错误llncs.cls
,即%
第 79-114 行末尾缺少以下内容。应为:
\def\switcht@albion{%
\def\abstractname{Abstract.}%
\def\ackname{Acknowledgement.}%
\def\andname{and}%
\def\lastandname{\unskip, and}%
\def\appendixname{Appendix}%
\def\chaptername{Chapter}%
\def\claimname{Claim}%
\def\conjecturename{Conjecture}%
\def\contentsname{Table of Contents}%
\def\corollaryname{Corollary}%
\def\definitionname{Definition}%
\def\examplename{Example}%
\def\exercisename{Exercise}%
\def\figurename{Fig.}%
\def\keywordname{{\bf Keywords:}}%
\def\indexname{Index}%
\def\lemmaname{Lemma}%
\def\contriblistname{List of Contributors}%
\def\listfigurename{List of Figures}%
\def\listtablename{List of Tables}%
\def\mailname{{\it Correspondence to\/}:}%
\def\noteaddname{Note added in proof}%
\def\notename{Note}%
\def\partname{Part}%
\def\problemname{Problem}%
\def\proofname{Proof}%
\def\propertyname{Property}%
\def\propositionname{Proposition}%
\def\questionname{Question}%
\def\remarkname{Remark}%
\def\seename{see}%
\def\solutionname{Solution}%
\def\subclassname{{\it Subject Classifications\/}:}%
\def\tablename{Table}%
\def\theoremname{Theorem}}
babel
尝试修复此类错误,但并不总是成功(在这种特殊情况下,因为这个宏被添加到\extrasenglish
,而不是\captionsenglish
)。
此外\switcht@francais
,还有\switcht@deutsch
未受保护的线路末端,尽管隐藏得很好。
答案3
该错误已在llncs.cls
2.21 版本中修复。