Я хотел бы написать об анализе алгоритма. В зависимости от некоторых условий возникает несколько случаев. Я хотел бы сослаться на случаи, нонетисключительно на основена линии номера. По сути, мне нужны пользовательские метки, которые работают с hyperref.
\documentclass{article}
\usepackage{algorithm2e}
\begin{document}
\vspace{2em}
\begin{algorithm}[H]
\KwData{this text}
\KwResult{how to write algorithm with \LaTeX2e }
initialization\;
\While{not at end of this document}{
read current\;
\eIf{understand}{
go to next section \tcp*[f]{Case (1)} \;
current section becomes this one\;
}{
go back to the beginning of current section\;
}
}
\end{algorithm}
Analyis: Consider Case (1).
\end{document}
решение1
algorithm2e
предоставляет средства для установки пользовательских номеров строкиссылайтесь на них \nlset
вместе с обычным \label
:
\documentclass{article}
\usepackage{algorithm2e}
\newcommand{\algcaseref}{Case~\ref}
\begin{document}
\begin{algorithm}[H]
\KwData{this text}
\KwResult{how to write algorithm with \LaTeX2e }
initialization\;
\While{not at end of this document}{
read current\;
\eIf{understand}{
\nlset{(1)}\label{case:1}go to next section\;
current section becomes this one\;
}{
\nlset{(B)}\label{case:2}go back to the beginning of current section\;
}
}
\end{algorithm}
Analysis: Consider \algcaseref{case:1}. Also consider \algcaseref{case:2}.
\end{document}
решение2
Это можно сделать, создав собственный счетчик:
\documentclass{article}
\usepackage{algorithm2e}
\usepackage{hyperref}
\newcounter{cases}
\newcommand{\case}[1]{\refstepcounter{cases}\label{#1}}
\begin{document}
\vspace{2em}
\begin{algorithm}[H]
\KwData{this text}
\KwResult{how to write algorithm with \LaTeX2e }
initialization\;
\While{not at end of this document}{
read current\;
\eIf{understand}{
go to next section \tcp*[f]{Case (1)} \case{mycase} \;
current section becomes this one\;
}{
go back to the beginning of current section\;
}
}
\end{algorithm}
Analyis: Consider Case (\ref{mycase}).
\end{document}
В этом MWE \case{}
команда не только увеличивает cases
счетчик, но и маркирует случай в соответствии с этим счетчиком.