算法2e和顏色

算法2e和顏色

我正在嘗試在演算法中為標題的背景著色(使用algorithm2e)。

我已直接在 .sty 檔案中修改了原始命令。

然而,正如您在圖像上看到的,結果並不方便。我希望整個“行”為灰色(我將行放入括號中,因為它不是表格)。

\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}}}}
}%

原本的 :

\newcommand{\algocf@makecaption@ruled}[2]{%
  \global\sbox\algocf@capbox{\hskip\AlCapHSkip% .5\algomargin%
    \parbox[t]{\hsize}{\algocf@captiontext{#1}{#2}}}
}%

在此輸入影像描述

完整程式碼:

\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}

答案1

這是一種可能性(必須\parbox位於內部,\colorbox並且需要進行一些垂直和水平間距調整):

\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}

在此輸入影像描述

相關內容