我在 algorithm2e 的官方文档中读到,它\SetAlgoLined
用于在begin
和end
标记之间绘制垂直线。
但是如果没有它,虽然没有begin
和end
标记,但是也会画出垂直线。
那么,到底有什么用途\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}
或者转到不同的包,例如组合algorithm
和algpseudocode
。