algorithm2e 中的 \SetAlgoLined 有什么用

algorithm2e 中的 \SetAlgoLined 有什么用

我在 algorithm2e 的官方文档中读到,它\SetAlgoLined用于在beginend标记之间绘制垂直线。

但是如果没有它,虽然没有beginend标记,但是也会画出垂直线。

那么,到底有什么用途\SetAlgoLined

以下是示例代码:

\documentclass{article}
\usepackage[utf8]{inputenc}

\title{algo_issue}
\date{July 2022}

\usepackage{subcaption} %a
\usepackage[ruled,vlined,linesnumbered]{algorithm2e}  %a
\usepackage{amsmath} % a
\usepackage{amsfonts} % a
\usepackage{amssymb} % a
\usepackage{amsthm} % a 2
\usepackage{multicol} % a
\usepackage{multirow} % a


% \SetKwInput{KwGlobal}{Global}              % Set the Global variables
\SetKwProg{myproc}{procedure}{}{end}  

\begin{document}

% \maketitle

\section{Introduction}
this is sample

\begin{algorithm*}[!htb]  % replaced [t] temporarliy [!htb]
    \DontPrintSemicolon
    \caption{ this is my caption }
    \label{algo:algo1}
    \begin{multicols}{2}
    % \fontsize{8pt}{6pt}\selectfont
    \footnotesize
    %\small
    \SetAlgoLined
    

\myproc{$\mathtt{p1}${ ($a$, $b$, $c$)}} 
{
    hello
    hello 2
}

\end{multicols}
\end{algorithm*}
\end{document}

谢谢。

答案1

的文档algorithm2e不是最新的。按照作者的意图,默认选项应该是noline,但显然不是。

明确使用它。当然你vlined也应该删除它。然后你可以在需要规则的环境\SetAlgoLined主体中使用。algorithm

\documentclass{article}

\usepackage[noline,ruled,linesnumbered]{algorithm2e}


\SetKwProg{myproc}{procedure}{}{end}  

\begin{document}

\begin{algorithm*}[!htbp]
  \DontPrintSemicolon
  \caption{this is my caption}
  \label{algo:algo1}
  \myproc{$\mathtt{p1}(a,b,c)$}
   {
    hello
    hello 2
   }
\end{algorithm*}

\begin{algorithm*}[!htbp]
  \DontPrintSemicolon
  \SetAlgoLined
  \caption{this is my caption}
  \label{algo:algo2}
  \myproc{$\mathtt{p1}(a,b,c)$}
   {
    hello
    hello 2
   }
\end{algorithm*}

\end{document}

在此处输入图片描述

或者转到不同的包,例如组合algorithmalgpseudocode

相关内容