我陷入了大麻烦,无法摆脱。
我使用standalone
包将不同的 latex 文件合并为一个。每个 latex 文件都可以单独编译。当我将它们合并时,我发现了冲突,因为我algorithm2e
在一个文件中使用了algorithm
不同的算法,而在另一个文件中使用了不同的算法。standalone
一个必须包含所有文件中使用的所有包的并集。所以我现在必须包含这两个包。我现在陷入困境。我不想重写我做的算法,因为这花了很长时间。
这是 MWE
\documentclass[11pt]{article}%
\usepackage{amsmath}
\usepackage[linesnumbered,ruled,lined,boxed,algo2e]{algorithm2e}
\usepackage{algorithm,algorithmicx,algpseudocode}
\begin{document}
\begin{algorithm}[H]
\begin{algorithmic}[1]
\If {$i\geq 1$}
\State $i\gets 0$
\Else
\State $i\gets 2$
\EndIf
\end{algorithmic}
\end{algorithm}
\end{document}
错误是
pdflatex foo.tex
Document Style algorithmicx 1.2 - a greatly improved `algorithmic' style
) (/usr/local/texlive/2015/texmf-dist/tex/latex/algorithmicx/algpseudocode.sty
Document Style - pseudocode environments for use with the `algorithmicx' style
) (./foo.aux)
! You can't use `\prevdepth' in horizontal mode.
\nointerlineskip ->\prevdepth
-\@m \p@
l.13 \State $
i\gets 0$
?
如果我注释掉algorithm2e
它,编译成功。但是同样,我必须将两者都包含在主文档中,因为它使用独立文件来组合许多不同的 latex 文件,并且其中一个文件(此处未显示)需要algorithm2e
。
有什么办法可以解决这种情况吗?我正在使用 TL 2015。请注意,我还必须使用 pdflatex 而不是 lualatex,因为algorithm2e
它不能用 lualatex 进行编译。
*File List*
article.cls 2014/09/29 v1.4h Standard LaTeX document class
size11.clo 2014/09/29 v1.4h Standard LaTeX file (size option)
amsmath.sty 2013/01/14 v2.14 AMS math features
amstext.sty 2000/06/29 v2.01
amsgen.sty 1999/11/30 v2.0
amsbsy.sty 1999/11/29 v1.2d
amsopn.sty 1999/12/14 v2.01 operator names
algorithm.sty 2009/08/24 v0.1 Document Style `algorithm' - floating
float.sty 2001/11/08 v1.3d Float enhancements (AL)
ifthen.sty 2014/09/29 v1.1c Standard LaTeX ifthen package (DPC)
algorithmicx.sty 2005/04/27 v1.2 Algorithmicx
algpseudocode.sty
algorithm2e.sty 2013/01/06 v5.00 algorithms environments
xspace.sty 2014/10/28 v1.13 Space after command names (DPC,MH)
relsize.sty 2013/03/29 ver 4.1