![如何使用 algoritm2e 减少右边距?](https://linux22.com/image/411771/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20algoritm2e%20%E5%87%8F%E5%B0%91%E5%8F%B3%E8%BE%B9%E8%B7%9D%EF%BC%9F.png)
我正在使用 algorithm2e,但我的行断得太早了。我想减小右侧边距的大小,而不影响左侧边距。我对此很感兴趣,因为现在标题中的边距是不对称的,这对我来说看起来不太好。
我尝试使用,\DecMargin
但这会影响两侧的边距。对我来说,最重要的是减小标题中的边距大小,如果这样更简单的话。也可以接受可以使标题具有相等(小)边距的解决方案。
这是 MWE
\documentclass{article}
\usepackage[ruled]{algorithm2e}
\begin{document}
\begin{algorithm}
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore
et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut
aliquip ex ea commodo consequat.
\caption{Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut
labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut
aliquip ex ea commodo consequat.}
\end{algorithm}
\end{document}
交互式MWE:
答案1
您的问题有些不清楚,因为其中有看似相反的陈述:
我想减小右侧边距的大小,而不影响左侧边距。
和
因为现在标题的边距不对称,这对我来说看起来不太好。
因此,我认为最重要的部分是获得对称(可控)的字幕边距。我制作了一个补丁来解析 的定义\algocf@makecaption@ruled
。实际问题似乎源于各种\hsize
操作,尽管我无法将问题追溯到其根源。因此,我决定hsize
完全放弃该调用,并从其基值 开始\linewidth
。
请参阅下面修改后的代码。
\documentclass{article}
\usepackage[ruled]{algorithm2e}
% Patch caption box width to have left and right margins as \AlCapHSkip
% Based on definition of \algocf@makecaption@ruled at line 2319 of algorithm2e.sty
\makeatletter
\setlength{\algocf@lcaptionbox}{\linewidth} % reset the caption bow width to be as large as the rules
\renewcommand{\algocf@makecaption@ruled}[2]{%
\global\sbox\algocf@capbox{\hskip\AlCapHSkip % left indent of the box
\addtolength{\algocf@lcaptionbox}{-2\AlCapHSkip}% reduce box width to account for symmetric margins
\parbox[t]{\algocf@lcaptionbox}{\algocf@captiontext{#1}{#2}}}% print the caption
}%
\makeatother
% Note that with these modifications, the \AlCapHskip is now independent of \algomargin
%\setlength{\algomargin}{1cm}
%\SetAlCapHSkip{2cm}
\begin{document}
\begin{algorithm}
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
\caption{Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.}
\end{algorithm}
\end{document}