我想将一个算法的编号从算法 5 更改为算法 2.1。
我已经尝试过所有这些方法:
https://github.com/hadizadeh/Latex_algorithm
无论我如何修改代码,结果始终是一样的。以下是一个例子。
\usepackage[ruled, vlined, linesnumbered, nofillcomment]{algorithm2e}
\usepackage{algpseudocode}
...
\begin{algorithm}[H]
\renewcommand{\thealgorithm}{2.1}
\caption{Name of the algorithm}
test1\\
test2
\end{algorithm}
\renewcommand{\thealgorithm}{2.1}
无论我把它放在算法环境内部还是外部都没有关系。
提前致谢。
答案1
此代码将使算法编号为节号.算法编号
\documentclass[12pt,a4paper]{article}
\usepackage[ruled, vlined, linesnumbered, nofillcomment]{algorithm2e}
\usepackage{algpseudocode}
%****************************************** added <<<<<<<<<<<<<<
\makeatletter
\renewcommand{\fnum@algocf}{\AlCapSty{\AlCapFnt\algorithmcfname\nobreakspace\thesection.\thealgocf}}%
\makeatother
%******************************************
\begin{document}
\setcounter{section}{3}% test section numbers
\setcounter{algocf}{5}% test algo numbers
\section{A section}
\begin{algorithm}
\caption{Name of the algorithm}
test1\\
test2
\end{algorithm}
\end{document}
\SetAlgoCaptionSeparator{sep}
可以使用(默认:
)控制标题分隔符
如果要在章节开头重置算法计数器,请添加到序言中
\let\oldsection\section
\renewcommand{\section}{\setcounter{algocf}{0}\oldsection}
选项
这是使用该dcounter
包的另一种选择,使用部分编号并且还将重置算法计数器以开始所需的新部分。
\documentclass[12pt,a4paper]{article}
\usepackage[ruled, vlined, linesnumbered, nofillcomment]{algorithm2e}
\usepackage{algpseudocode}
\SetAlgoCaptionSeparator{} % default :
\usepackage{dcounter} % added <<<<<<<<<<<<<<<<<
\countstyle{section}%
\DeclareDynamicCounter{algocf}% reset the algorithm counter starting a new section
\begin{document}
\setcounter{section}{3}% test section numbers
\section{A section}
\begin{algorithm}
\caption{Name of the algorithm 1}
test1\\
test2
\end{algorithm}
\begin{algorithm}
\caption{Name of the algorithm 2}
test1\\
test2
\end{algorithm}
\section{Another section}
\begin{algorithm}
\caption{Name of the algorithm 3}
test1\\
test2
\end{algorithm}
\end{document}