アルゴリズムの「前文」セクションを作成してインデントするにはどうすればよいですか?

アルゴリズムの「前文」セクションを作成してインデントするにはどうすればよいですか?

私はalgorithm2eアルゴリズムを書くのに を使用しています。実際のアルゴリズムの前に、入力引数と出力引数のセクションを設け、必要に応じて、ドキュメント内の離れた場所にある他のアルゴリズムや方程式への参照を記述するようにしています。次のようになります。

これは正しくレンダリングされています

参考文献の「前文」セクションを で紹介しました\SetKwInput{KwRef}{Referências}。ここまでは順調です。

しかし、私がやっている方法は、あまり賢い方法ではないようです。私は\quadすべての項目の先頭で以下を使用しています:

\begin{algorithm}
        \caption{My example}
        \KwIn{\\
            \quad$X$: something\\
            \quad$Y$: something else
        }
        \KwOut{\\
            \quad$R$: the result
        }
        \KwRef{\\
            \quad$f(\cdot)$ is the function introduced in Equation~\ref{eq:znorm}
        }
        $R \leftarrow X + Y$\;
    \end{algorithm}

それを賢く行う方法は何でしょうか?

答え1

\quad代わりに、 を介しての配置を自動的に実行することもできますtabular。これは、現在の使用法に適合しているようです。

ここに画像の説明を入力してください

\documentclass{article}

\usepackage[utf8]{inputenc}
\usepackage{algorithm2e}

\renewcommand{\KwIn}[1]{%
  \KwIna{\strut\\ \quad\begin{tabular}{@{} l @{}} #1 \end{tabular}}}
\renewcommand{\KwOut}[1]{%
  \KwOuta{\strut\\ \quad\begin{tabular}{@{} l @{}} #1 \end{tabular}}}
\newcommand{\KwRef}[1]{%
  \KwRefa{\strut\\ \quad\begin{tabular}{@{} l @{}} #1 \end{tabular}}}
\SetKwInput{KwIna}{Parâmetros de Entrada}
\SetKwInput{KwOuta}{Parâmetros de Saída}
\SetKwInput{KwRefa}{Referências}

\begin{document}

\begin{algorithm}
  \caption{My example}
  \KwIn{%
    $X$: something \\
    $Y$: something else
  }
  \KwOut{%
    $R$: the result
  }
  \KwRef{%
    $f(\cdot)$ is the function introduced in Equation~\ref{eq:znorm}
  }
  $R \leftarrow X + Y$\;
\end{algorithm}

\renewcommand{\theequation}{2.3}% Just for this example
\begin{equation}
  f(x) = ax^2 + bx + c \label{eq:znorm}
\end{equation}

\end{document}

関連情報