Estou usando algorithm2e
para escrever algoritmos. Estou fazendo as coisas de tal forma que, antes do algoritmo propriamente dito, tenho uma seção para argumentos de entrada e saída e, quando relevante, referências a outros algoritmos e equações que podem estar distantes no documento. Igual a:
Eu introduzi a seção "preâmbulo" de referências com \SetKwInput{KwRef}{Referências}
. Até agora tudo bem.
Mas a maneira como estou fazendo isso não parece ser a mais inteligente. Estou usando \quad
no início de cada item:
\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}
Qual é a maneira inteligente de fazer isso?
Responder1
Em vez disso, você poderia realizar o posicionamento \quad
automaticamente por meio de um tabular
; isso parece se adequar ao seu uso atual:
\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}