
У меня есть следующий код:
\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