Нежелательные пустые строки и точки с запятой в algorithm2e

Нежелательные пустые строки и точки с запятой в algorithm2e

У меня есть следующий код:

\documentclass{article}
\usepackage[linesnumbered,ruled,vlined]{algorithm2e}

\begin{document}

\begin{algorithm}[H]
\SetAlgoLined
    x $\longleftarrow$ 0\tcc*[r]{initialize x}
    \uIf(\tcc*[r]{if comment}){condition 1}{
        x $\longleftarrow$ 1\tcc*[r]{set x as 1}
        }
    \uElseIf(\tcc*[r]{else comment}){condition 2}{
        x $\longleftarrow$ 2\;
        }
    \Else{
        x $\longleftarrow$ 3\tcc*[r]{set x as 3}
    }
\caption{First algorithm}
\end{algorithm}

\end{document}

что создает этот PDF-файл: введите описание изображения здесь Где две отмеченные точки с запятой и отмеченные пустые строки нежелательны. Можете ли вы мне помочь, что изменить в коде, пожалуйста?

решение1

Вам необходимо использовать fнеобязательный аргумент \tcc*вместо , rкогда комментарий не завершает строку.

МВЭ:

\documentclass{article}
\usepackage[linesnumbered,ruled,vlined]{algorithm2e}

\begin{document}

\begin{algorithm}[H]
\SetAlgoLined
    x $\longleftarrow$ 0\tcc*[r]{initialize x}
    \uIf(\tcc*[f]{if comment}){condition 1}{
        x $\longleftarrow$ 1\tcc*[r]{set x as 1}
        }
    \uElseIf(\tcc*[f]{else comment}){condition 2}{
        x $\longleftarrow$ 2\;
        }
    \Else{
        x $\longleftarrow$ 3\tcc*[r]{set x as 3}
    }
\caption{First algorithm}
\end{algorithm}

\end{document} 

Выход:

введите описание изображения здесь

Из algorithm2eдокументации:

\tcc*[r]{комментарий, выровненный по правому краю,заканчивает линию(по умолчанию)}: комментарий «la» C

пока

\tcc*[f]{правый выравниваемый комментарий,без конечной линии; полезно, например, с макросами «if-then-else»}: комментарий «la» C

Связанный контент