不知道我应该如何详细说明。我在环境中
\documentclass[10pt,a4paper]{llncs}
使用大量(可能是多余的) usepackage 命令
\usepackage{ngerman}
\usepackage[utf8]{inputenc}
\usepackage{rotating}
\usepackage[dvips]{epsfig}
\usepackage{graphicx}
\usepackage{acronym}
\usepackage[english]{babel}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{txfonts}
\usepackage{mathdots}
\usepackage[classicReIm]{kpfonts}
\usepackage[dvips]{graphicx}
\usepackage[T1]{fontenc}
\usepackage{hyperref}
\usepackage{microtype}
\usepackage{xcolor}
\usepackage{titling}
并有一个图片标题
\begin{figure}
\centering
\includegraphics[scale=1]{images/heur}
\caption{$\overrightarrow{E}$ for random $M_0$, probably optimal solution.}
\label{fig:heur}
\end{figure}
这里的臭味是
$\overrightarrow{E}$
在正文中运行没有问题。大括号(在数学中也是如此)对我的标题也没有问题。只有这一个引发了投诉
<images/heur.png, id=97, 144.54pt x 144.54pt> <use images/heur.png>
! Illegal parameter number in definition of \reserved@a.
<to be read again>
\crcr
l.112 ...m $M_0$, probably optimal solution.}
删除臭名昭著的命令或只是为了好玩而用模拟帽子命令替换它(做完全相同的事情,只有帽子而不是箭头)编译没有问题。
我知道 LaTeX 是黑魔法 :-) 但我并不是一个彻头彻尾的新手,这个错误对我来说毫无意义。有人知道这是怎么回事吗?
答案1
使用 TeX Live 从 2017 到 2022 我会更早地收到错误,即
! TeX capacity exceeded, sorry [input stack size=10000].
<argument> \bbl@tempe
USenglish
或类似的。
该文档在 TeX Live 2016 版中产生了错误。是时候更新了吗?
问题在于\overrightarrow
是以前是很脆弱,但几年后就不再脆弱了。如果您目前无法更新,请使用\protect\overrightarrow
。但……
- 该
ngerman
软件包已过时且不推荐使用 - 如果你用英语写,加载它就没有意义了
epsf
已经过时了大约 30 年- 同时加载
txfonts
和kpfonts
不仅是多余的,而且还会产生奇怪的错误 - 我倾向于认为这
titling
与llncs
hyperref
应该最后装载(除了少数例外,这些例外都不会出现在您的卡车包裹中)。
“满载”这个词其实非常适合描述它。不要复制旧的前言,到处添加一些东西。例如,始终会加载一些包amsmath
(graphicx
但不会加载两次不同的选项)。
重新开始,只添加你需要的包做文档中需要的内容。这可以降低不兼容和奇怪错误的风险。
另一个例子:如果您加载覆盖同一组符号的或,amssymb
则不需要。txfonts
kpfonts
\documentclass[10pt,a4paper]{llncs}
\usepackage[utf8]{inputenc} % not necessary with recent LaTeX
\usepackage[T1]{fontenc}
\usepackage[english]{babel}
\usepackage{amsmath}
\usepackage{mathdots}
\usepackage{graphicx}
\usepackage[classicReIm]{kpfonts}
\usepackage{acronym}
\usepackage{microtype}
\usepackage{xcolor}
\usepackage{hyperref}
\begin{document}
\begin{figure}
\centering
\includegraphics[scale=1]{images/heur}
\caption{$\protect\overrightarrow{E}$ for random $M_0$, probably optimal solution.}
\label{fig:heur}
\end{figure}
\end{document}
您可以\protect
在更新 TeX 发行版时将其删除。