使用 algorithm2e 删除右侧的水平间距

使用 algorithm2e 删除右侧的水平间距

有没有办法用 删除算法右侧的空格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}

生成结果:

2e

请注意注释右侧的额外水平空间(与行宽相比)。

答案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}

相关内容