![如何删除algorithm2e中的多余空白行](https://linux22.com/image/275685/%E5%A6%82%E4%BD%95%E5%88%A0%E9%99%A4algorithm2e%E4%B8%AD%E7%9A%84%E5%A4%9A%E4%BD%99%E7%A9%BA%E7%99%BD%E8%A1%8C.png)
我想在 LaTeX 中\For
命令后添加右对齐注释,但它添加了一个不需要的空行。请帮帮我。
代码:
\For(\tcp*[r]{Incremental calculation of edges}){$i \gets 1$ \textbf{\upshape{to}} $n$}{
\If {$i=1$}
{
$currentCenter \gets MEAN(x_{R'[2]},\ldots,x_{R'[k_{min}+1]})$\;
$currentSSE \gets SSE(x_{R'[2]},\ldots,x_{R'[k_{min}+1]})$\;
}}
快照:
答案1
使用\tcp*[f]
而不是\tcp*[r]
。根据algorithm2e
文档(部分10.3 评论,第 31 页):
\tcp*[r]
右对齐注释,结束行(默认)
\tcp*[f]
右对齐注释,没有结束行;例如,与“if-then-else”宏一起使用
\documentclass{article}
\usepackage{algorithm2e}% http://ctan.org/pkg/algorithm2e
\newcommand{\variable}{\textup}
\newcommand{\func}{\textsf}
\begin{document}
\begin{algorithm}
\For(\tcp*[r]{Incremental calculation of edges}){$i \gets 1$ \textbf{\upshape{to}} $n$}{
\If {$i=1$}
{
$currentCenter \gets MEAN(x_{R'[2]},\ldots,x_{R'[k_{min}+1]})$\;
$currentSSE \gets SSE(x_{R'[2]},\ldots,x_{R'[k_{min}+1]})$\;
}}
\For(\tcp*[f]{Incremental calculation of edges}){$i \gets 1$ \textbf{\upshape{to}} $n$}{
\If {$i=1$}
{
$\variable{currentCenter} \gets \func{MEAN}(x_{R'[2]},\ldots,x_{R'[k_{\min}+1]})$\;
$\variable{currentSSE} \gets \func{SSE}(x_{R'[2]},\ldots,x_{R'[k_{\min}+1]})$\;
}}
\end{algorithm}
\end{document}
我还添加了一些其他格式,因为它似乎是有必要的。