标题中的神秘数学错误

标题中的神秘数学错误

不知道我应该如何详细说明。我在环境中

\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。但……

  1. ngerman软件包已过时且不推荐使用
  2. 如果你用英语写,加载它就没有意义了
  3. epsf已经过时了大约 30 年
  4. 同时加载txfontskpfonts不仅是多余的,而且还会产生奇怪的错误
  5. 我倾向于认为这titlingllncs
  6. hyperref应该最后装载(除了少数例外,这些例外都不会出现在您的卡车包裹中)。

“满载”这个词其实非常适合描述它。不要复制旧的前言,到处添加一些东西。例如,始终会加载一些包amsmathgraphicx但不会加载两次不同的选项)。

重新开始,只添加你需要的包文档中需要的内容。这可以降低不兼容和奇怪错误的风险。

另一个例子:如果您加载覆盖同一组符号的或,amssymb则不需要。txfontskpfonts

\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 发行版时将其删除。

相关内容