这是我的代码:
\usepackage[section]{algorithm}
\usepackage{algorithmic}
\begin{document}
\makeatletter\renewcommand{\ALG@name}{Algorithme}
\renewcommand{\listalgorithmname}{Liste des \ALG@name s} \makeatother
\begin{algorithm}[H]
\caption{My-algo}
\begin{algorithmic}[1]
\Debut
\LState instruction1
\Fin
\end{algorithmic}
\end{algorithm}
\end{document}
使用此代码,我将 Algorithme 改为 Algorithme。请问您是否有想法,我有一个算法,我想将其更改为 Algorithme --> Pseudo Algorithme?请问我该怎么做?只需一个算法,而不是所有算法。
答案1
以下最小示例定义了\newalgname{<alg name>}
您可以从algorithm
环境内部调用以更改算法的名称。由于您在 内调用它algorithm
,因此 的重新定义\ALG@name
将是本地的,因此它只会影响您所在的特定算法。
算法0.1我的算法
...伪算法0.2我的算法
...算法0.3我的算法
...
\documentclass{article}
\usepackage[section]{algorithm}% http://ctan.org/pkg/algorithms
\usepackage{algorithmic}% http://ctan.org/pkg/algorithms
\makeatletter
\newcommand{\newalgname}[1]{%
\renewcommand{\ALG@name}{#1}%
}
\newalgname{Algorithme}% All algorithms will be called "Algorithme"
\renewcommand{\listalgorithmname}{Liste des \ALG@name s}
\makeatother
\begin{document}
\begin{algorithm}
\caption{My-algo}
\begin{algorithmic}[1]
\STATE \textbf{Begin}
\STATE instruction1
\STATE \textbf{End}
\end{algorithmic}
\end{algorithm}
\begin{algorithm}
\newalgname{Pseudo Algorithme}% This algorithm will be called "Pseudo Algorithme"
\caption{My-algo}
\begin{algorithmic}[1]
\STATE \textbf{Begin}
\STATE instruction1
\STATE \textbf{End}
\end{algorithmic}
\end{algorithm}
\begin{algorithm}
\caption{My-algo}
\begin{algorithmic}[1]
\STATE \textbf{Begin}
\STATE instruction1
\STATE \textbf{End}
\end{algorithmic}
\end{algorithm}
\end{document}
也许根据您的要求,也可以创建一个专门用于“伪算法”的全新浮动环境。这可以使用float
包裹,加载者algorithm
默认情况下。它将有自己的计数器,因此将独立于环境进行编号algorithm
。以下是对此的快速查看:
算法1我的算法
...伪算法1我的算法
...算法2我的算法
...
\documentclass{article}
\usepackage{algorithm}% http://ctan.org/pkg/algorithms
\usepackage{algorithmic}% http://ctan.org/pkg/algorithms
\newfloat{pseudoalgorithm}{htb}{lop}
\floatname{pseudoalgorithm}{Pseudo Algorithme}
\makeatletter
\newcommand{\newalgname}[1]{%
\renewcommand{\ALG@name}{#1}%
}
\newalgname{Algorithme}
\renewcommand{\listalgorithmname}{Liste des \ALG@name s}
\makeatother
\begin{document}
\begin{algorithm}
\caption{My-algo}
\begin{algorithmic}[1]
\STATE \textbf{Begin}
\STATE instruction1
\STATE \textbf{End}
\end{algorithmic}
\end{algorithm}
\begin{pseudoalgorithm}
\caption{My-algo}
\begin{algorithmic}[1]
\STATE \textbf{Begin}
\STATE instruction1
\STATE \textbf{End}
\end{algorithmic}
\end{pseudoalgorithm}
\begin{algorithm}
\caption{My-algo}
\begin{algorithmic}[1]
\STATE \textbf{Begin}
\STATE instruction1
\STATE \textbf{End}
\end{algorithmic}
\end{algorithm}
\end{document}
计数器调整也很容易。第一个例子(在article
文档类中)使用了
\usepackage[section]{algorithm}% http://ctan.org/pkg/algorithms
它将选项传递section
给algorithm
。这意味着算法编号将按节进行。也就是说,第 7 节中的算法(例如)将编号为 7.1、7.2 等等。如果您的文档类支持\chapter
(如book
或report
),那么使用
\usepackage[chapter]{algorithm}% http://ctan.org/pkg/algorithms
只对章节执行相同的操作。这也意味着算法的编号将在每一章开始时重置。
在第二个例子中,没有选项传递给algorithm
包,并且编号在整个文档中是连续的(跨越任何部分单元)。
要为你的环境使用相同的编号pseudoalgorithm
,你可以使用以下方法创建它
\newfloat{pseudoalgorithm}{htb}{lop}[<within>]
其中<within>
指定要使用哪个部分单位进行编号(chapter
,section
, ...)。有关以这种方式创建新浮点数的讨论包含在float
文档(部分2 用户界面 - 新浮点数,第 2 页)。