algorithm2e 命令 \algorithm 已定义

algorithm2e 命令 \algorithm 已定义

我想用 画垂直线\SetAlgoLined,但是 LaTeX 告诉我Undefined control sequence

然后我\usepackage{algorithm2e}在序言的末尾添加了以下内容。然后它说Command\algorithm already defined

\usepackage{graphicx}  
\usepackage{xthesis}  
\usepackage{xtocinc}  
\usepackage{mystyle}  
\usepackage{url}  
\usepackage{subfigure}  
\usepackage{booktabs}  
\usepackage{multirow}  
\usepackage[printonlyused]{acronym}  
\usepackage{algorithm} 
\usepackage{algorithmic}  
\usepackage{float}  
\usepackage{epstopdf}  
\usepackage{amssymb,amsmath}  
\usepackage{graphicx,epsfig}  
\usepackage{multicol}  
\usepackage{ifthen}  
\usepackage{algorithm2e}  

我使用的是 Windows 7 + TexWorks。我有另一张纸可以完美地与algorithm2e和配合使用\SetAlgoLined

\usepackage{cite} 
\usepackage{url}  
\usepackage{ifthen} 
\usepackage{multicol}  
\usepackage[utf8]{inputenc} 
\usepackage{graphicx}
\usepackage{graphicx,epsfig}
\usepackage{amssymb,amsmath}
\usepackage{subfigure}
\usepackage{epstopdf}
\usepackage{float}
\usepackage{algorithm2e}
\usepackage{multirow}  

只是不知道为什么会发生这种情况?请帮忙。

答案1

由于algorithmalgorithm2e包都定义了一个algorithm环境,因此,如果不采取额外的预防措施而简单地加载它们,就会导致像您所遇到的名称冲突。

不过,你仍然可以同时使用这两个包(如果你真的两者都需要),但您需要将选项传递algo2ealgorithm

\usepackage[algo2e]{algorithm2e} 

此选项将包algorithm中的环境名称更改为,从而避免与已经定义环境的包发生冲突;该选项还将算法列表的命令名称更改为。algorithm2ealgorithm2ealgorithm\listofalgorithmes

完整示例:

\documentclass{article}
\usepackage{algorithm} 
\usepackage{algorithmic}  
\usepackage[algo2e]{algorithm2e} 

\begin{document}

\begin{algorithm}%>- from algorithm package
test
\end{algorithm}

\begin{algorithm2e}%>- from algorithm2e package
test
\end{algorithm2e}

\end{document}

在此处输入图片描述

答案2

algorithms(提供algorithmalgorithmic包)与不兼容algorithm2e后者是独立的,既提供浮动环境algorithm(也由algorithms'algorithm包提供),也提供编程结构(如IfElseWhile等)。

就算法布局而言,您必须选择 - 使用algorithms捆绑包中的元素构建算法,或者algorithm2e

相关内容