有没有办法用 删除算法右侧的空格algorithm2e
?我\algomargin
在文档中找到了,但它没有帮助。示例:
\documentclass[]{article}
\usepackage[ruled,linesnumbered]{algorithm2e}
\begin{document}
\begin{algorithm}[H]
first line \tcp*{comment}
long text line long text line long text line long text line long text line long text line long text line\;
\end{algorithm}
\end{document}
生成结果:
请注意注释右侧的额外水平空间(与行宽相比)。
答案1
如果您想在右侧对算法行进行编号(使用\setRightLinesNumbers
),则右边距会保持打开状态。但是,最常见的设置(或默认设置)是将数字放在左侧(\setLeftLinesNumbers
),而将右侧边距保持打开状态。要消除算法右侧的这个间隙,您需要在启动算法时修补初始设置,所有这些都由处理\algocf@start
:
\usepackage{etoolbox}
\makeatletter
% Remove right hand margin in algorithm
\patchcmd{\@algocf@start}% <cmd>
{-1.5em}% <search>
{0pt}% <replace>
{}{}% <success><failure>
\makeatother
右侧的行号被放置在1.5em
边距内,该边距专门出于此原因从可用的算法空间中移除。上述补丁用 替换了这种减少0pt
。
\documentclass{article}
\usepackage[ruled,linesnumbered]{algorithm2e}
\usepackage{etoolbox}
\makeatletter
% Remove right hand margin in algorithm
\patchcmd{\@algocf@start}% <cmd>
{-1.5em}% <search>
{0pt}% <replace>
{}{}% <success><failure>
\makeatother
\begin{document}
\begin{algorithm}
first line\tcp*{comment}
long text line long text line long text line long text line
long text line long text line long text line\;
\end{algorithm}
\end{document}