当我在 LaTeX 手稿中输入以下内容时,我试图显示类似这样的内容:Min(Right(x)):
\begin{algorithmic}[1]
...
\State \Return \Call{Min}{\Call{Right}{$x$}}
...
\end{algorithmic}
它报告以下错误:
! Argument of \equal has an extra }.
\par
l.652 ...e \Return \Call{Min}{ \Call{Right}{$x$} }
有任何想法吗?
--
你好,
我只是通过查找 algpseudocode.sty 找到了一种快速而又肮脏的方法:
\State \Return \textproc{Min}(\Call{Right}{$x$})
但如果有任何更好的解决方案,我们将不胜感激。
答案1
我以前偶然发现过这个问题,并发现只要使命令变得强大就可以修复它:
\documentclass{article}
\usepackage{fixltx2e}
\usepackage{algpseudocode}
\MakeRobust{\Call}
\begin{document}
\begin{algorithmic}[1]
\State \Return \Call{Min}{\Call{Right}{$x$}}
\end{algorithmic}
\end{document}
答案2
\Call
进行一些内部检查,在某些情况下会弄乱格式。我\Call
在论文模板中重新定义了省略这些检查。结果效果很好:
\renewcommand*\Call[2]{\textproc{#1}(#2)}
然而,这意味着\Call
现在总是即使没有参数,也要有括号。我个人认为这很好,但它不再符合原作者的意图。