Seite 1 von 1

algorithm2e: Kommentare bündig ausrichten

Verfasst: Fr 20. Okt 2017, 11:39
von an.schall
Hallo zusammen. Wie schaffe ich es, dass Kommentare in der algorithm2e-Umgebung, rechtsbündig ausgerichtet werden? Ich habe es mit
\tcp*[f]
und
\tcp*[h]
probiert. Mit
\tcp*[l]
entstehen unschöne vertikale Zwischenräume (siehe unten).

Der Code:
\documentclass{article}

\usepackage{listings}
\usepackage[]{algorithm2e}
\usepackage{colortbl}

\begin{document}

\RestyleAlgo{boxruled}
%\IncMargin{2em}
\DontPrintSemicolon
\begin{algorithm}[H]
    \lstset{language=C}
        \color{red}{\nl}\color{black} foo    \tcp*[l]{hash = 0}\;
        \color{red}{\nl}\color{black} foo bar foo bar  r2, 0x26c  \tcp*[l]
        {foo comment}\;
        \color{red}{\nl}\color{black} bar  \tcp*[l]{bar}\;
        \color{red}{\nl}\color{black} loop:\;
        \color{red}{\nl}\color{black} foo bar foo bar foo bar       \tcp*[l]
        {foo bar foo bar comment}\;
        \caption{foo bar.}
\end{algorithm}


\end{document}
[/code]

Verfasst: So 22. Okt 2017, 12:50
von Johannes_B
Crosspost bei mrunix

Ich kannn nur vermuten, dass du sowas willst?
\documentclass{article}

\usepackage{listings}
\usepackage[linesnumbered]{algorithm2e}
\usepackage{colortbl}

\begin{document}

\makeatletter
\renewcommand{\theAlgoLine}{\textcolor{red}{\arabic{AlgoLine}}}
\makeatother
\RestyleAlgo{boxruled}
%\IncMargin{2em}
\DontPrintSemicolon
\begin{algorithm}[H]
\lstset{language=C}
 foo    \tcp*{hash = 0}
 foo bar foo bar  r2, 0x26c  \tcp*{foo comment}
 bar  \tcp*{bar}
 loop:\;
 foo bar foo bar foo bar       \tcp*{foo bar foo bar comment}
\caption{foo bar.}
\end{algorithm}


\end{document}

Verfasst: So 22. Okt 2017, 18:11
von Bartman
Noch ein Crosspost.

Die Nummerierung lässt sich auch noch anders beeinflussen:
\documentclass{article}

\usepackage[linesnumbered]{algorithm2e}
\usepackage[table]{xcolor}

\SetNlSty{bfseries}{\color{red}}{}

\begin{document}
\RestyleAlgo{boxruled}
\DontPrintSemicolon
\begin{algorithm}[H]
foo\tcp*{hash = 0}
foo bar foo bar  r2, 0x26c\tcp*{foo comment}
bar\tcp*{bar}
loop:\;
foo bar foo bar foo bar\tcp*{foo bar foo bar comment}
\caption{foo bar.}
\end{algorithm}
\end{document}