如何获得一个算法的相同编号以供参考?

如何获得一个算法的相同编号以供参考?

我不明白为什么 PDF 中的参考编号是错误的。

\documentclass[12pt,addpoints]{exam}
\usepackage[section]{algorithm}
\usepackage{algorithmicx}

\usepackage{algpseudocode}

\begin{document}
\section{title}
Some text before the algortihm.
\begin{algorithm}   
    \caption {An algorithm.}
    \begin{algorithmic}[H]
        \Function{theAlgorithm}{} : 
        \State test
        \EndFunction\\
        \label{alg:Algo}
    \end{algorithmic}
\end{algorithm}
Some more text after the algorithm  \ref{alg:Algo}.
\end{document}

PDF:

pdf 生成

我不知道为什么我得到的参考编号是错误的。我怎样才能获得与算法标题中显示的相同的编号?

答案1

错误来自您编写标签的位置。您已将其放在环境内algorithmic,因此它引用该环境内的行。如果您希望引用算法本身,请将其放在\label后面\caption(而不是里面algorithmic)。

在此处输入图片描述

\documentclass{article}
\usepackage[section]{algorithm}

\usepackage{algpseudocode}

\begin{document}
\section{title}
Some text before the algortihm.
\begin{algorithm}   
  \caption{An algorithm.}
  \label{alg:Algo}
  \begin{algorithmic}
    \Function{theAlgorithm}{} : 
    \State test
    \EndFunction\\
  \end{algorithmic}
\end{algorithm}
Some more text after the algorithm  \ref{alg:Algo}.
\end{document}

相关内容