我想引用 for/while 循环开始的行。但是,使用常规\label
命令我无法在相应行中设置标签。我还能如何引用 while 循环的开头?特别是对于下面的示例,我如何为第 2-6 行创建引用?
\usepackage[linesnumbered]{algorithm2e}
\begin{document}
Reference to Lines \ref{alg:taskA}-\ref{alg:taskC}. How do I achieve a reference to lines 2-6?
\vspace{2em}
\begin{algorithm}[H]
\KwData{some data}
\KwResult{some result}
initialization\;
\While{termination condition not satisfied}{
Do task A\label{alg:taskA}\\
Do task B\label{alg:taskB}\\
Do task C\label{alg:taskC}\\
}
\end{algorithm}
\end{document}
答案1
}
好吧,只需在while 循环结束后添加一个新标签:并在 while 循环的开始处\label{alg:endWhile}
添加一个标签...\label{alg:startWhile}
因此,有了以下 mwe
\documentclass{article}
\usepackage[linesnumbered]{algorithm2e}
\begin{document}
Reference to Lines~\ref{alg:taskA}--\ref{alg:taskC}. How do I achieve a reference to lines 2-6?
Like~\ref{alg:startWhile}--\ref{alg:endWhile}? % <===========================
\vspace{2em}
\begin{algorithm}[H]
\KwData{some data}
\KwResult{some result}
initialization\;
\While{termination condition not satisfied}{\label{alg:startWhile} % <===========================
Do task A\label{alg:taskA}\\
Do task B\label{alg:taskB}\\
Do task C\label{alg:taskC}\\
}\label{alg:endWhile} % <===============================================
\end{algorithm}
\end{document}
你得到了想要的结果: