Verweis auf einen Teil eines Algorithmus

Verweis auf einen Teil eines Algorithmus

Ich möchte über die Analyse eines Algorithmus schreiben. Abhängig von bestimmten Bedingungen ergeben sich mehrere Fälle. Ich möchte auf die Fälle verweisen, abernichtausschließlich basierendauf den Zeilennummern. Im Wesentlichen möchte ich benutzerdefinierte Beschriftungen, die mit Hyperref funktionieren.

\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}

Antwort1

algorithm2ebietet die Möglichkeit, benutzerdefinierte Zeilennummern festzulegenUndreferenzieren Sie sie über \nlsetzusammen mit einem regulären \label:

Bildbeschreibung hier eingeben

\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}

Antwort2

Sie können dies tun, indem Sie einen benutzerdefinierten Zähler erstellen:

\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}

In diesem MWE \case{}erhöht der Befehl den casesZähler und beschriftet den Fall entsprechend diesem Zähler.

verwandte Informationen