我正在使用算法包和算法环境都有自己的编号。我想用方程式来编号算法。也就是说,如果我写
\begin{equation} 1 = 1 \end{equation}
\begin{algorithm}
\caption{Some Algorithm}
\label{alg}
\end{algorithm}
我希望第一个方程的编号为 1,算法的编号为 2。
文档教了一种在章节、部分等内对算法进行编号的方法。但我没有找到有关此内容的任何信息。
谢谢。
编辑:我的 MWE
\documentclass[11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsmath,amsthm,amsfonts}
\usepackage[noend]{algpseudocode}
\usepackage{algorithm}
\begin{document}
\begin{equation} \label{eq}
1 = 0
\end{equation}
\begin{algorithm}
\caption{My Algorithm}
\label{al}
\begin{algorithmic}
\Function{Alg}{n}
\State \Return $n$
\EndFunction
\end{algorithmic}
\end{algorithm}
\end{document}
答案1
你让algorithm
柜台成为确切地equation
与使用计数器相同
\makeatletter
\let\c@algorithm\c@equation % algorithm counter is exactly the same as equation
\makeatother
但请注意,您尝试等同的文档元素完全不同。一个是就地设置的(当您对其进行编码时),而另一个通常漂浮寻找合适的位置。
以下最小示例按照您的要求进行操作,并且还突出显示了浮点数不同步的枚举algorithm
:
\documentclass{article}
\usepackage{algorithm}
\makeatletter
\let\c@algorithm\c@equation % algorithm counter is exactly the same as equation
\makeatother
\begin{document}
Some text before the equation.
\begin{equation}
f(x) = ax^2 + bx + c
\end{equation}
Some text after the equation.
\begin{algorithm}[t]
\caption{Some Algorithm}
\end{algorithm}
Some text after the \texttt{algorithm} \emph{float}. Another equation
\begin{equation}
g(x) = ax^2 + bx + c
\end{equation}
at the end.
\end{document}