
알고리즘을 사용하여 캡션의 배경색을 지정하려고 합니다 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}