
Estoy intentando colorear el fondo del título en un algoritmo (usando algorithm2e
).
Modifiqué el comando original de la siguiente manera directamente en el archivo .sty.
Sin embargo, como puedes ver en la imagen, el resultado no es el adecuado. Me gustaría que toda la "fila" estuviera en gris (coloqué la fila entre corchetes porque no es una tabla).
\newcommand{\algocf@makecaption@ruled}[2]{%
\global\sbox\algocf@capbox{\hskip\AlCapHSkip![enter image description here][2]
\parbox[t]{\hsize}{\colorbox{gray!50}{\algocf@captiontext{#1}{#2}}}}
}%
El original :
\newcommand{\algocf@makecaption@ruled}[2]{%
\global\sbox\algocf@capbox{\hskip\AlCapHSkip% .5\algomargin%
\parbox[t]{\hsize}{\algocf@captiontext{#1}{#2}}}
}%
El código completo:
\documentclass{article}
\usepackage{etex}
\usepackage{easybmat}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{xcolor}
\usepackage{algorithm2e}
\RestyleAlgo{algoruled}
\begin{document}
\SetKw{KwFrom}{from}
\newenvironment{algo}{
\begin{algorithm}[H]
\DontPrintSemicolon \SetAlgoVlined}
{\end{algorithm}}
\begin{algo}\label{algotrigsup}
\caption{Caption of the algo}
\For{$k$ \KwFrom $n-1$ \KwTo $1$}{
$x_k=b_k$\;
\For{$j$ \KwFrom $k+1$ \KwTo $n$}{
$x_k=x_k -a_{kj} x_j$\;
}
$x_k=\displaystyle \frac{x_k}{a_{kk}}$
}
\end{algo}
\end{document}
Respuesta1
Aquí hay una posibilidad (tiene \parbox
que estar dentro \colorbox
y se requieren algunos ajustes de espaciado vertical y horizontal):
\documentclass{article}
\usepackage[ruled]{algorithm2e}
\usepackage{xcolor}
\colorlet{AlgCaptionColor}{gray!30}
\makeatletter
\renewcommand{\algocf@makecaption@ruled}[2]{%
\global\sbox\algocf@capbox{\colorbox{AlgCaptionColor}{\hskip\AlCapHSkip% .5\algomargin%
\parbox[t]{\hsize}{\algocf@captiontext{\strut#1}{\strut#2\strut}}\hskip.6\algomargin}}% then caption is not centered
}%
\setlength{\interspacetitleruled}{0pt}%
\makeatother
\begin{document}
\begin{algorithm}[H]
\SetAlgoLined
\KwData{this text}
\KwResult{how to write algorithm with \LaTeX2e }
initialization\;
\While{not at end of this document}{
read current\;
\eIf{understand}{
go to next section\;
current section becomes this one\;
}{
go back to the beginning of current section\;
}
}
\caption{How to write algorithms and some additional text just for the exmaple}
\end{algorithm}
\end{document}