mohuangrui/ucasthesis

使用algorithm2e包编辑算法

yooopan opened this issue · 2 comments

检查 / Check

编译环境 / Compilation Environment

  • 操作系统 / Operating System

    • Windows 7/8/10
    • macOS
    • Linux
  • TeX 发行版 / Tex Distribution

    • TeX Live 2023
    • MiKTeX
    • CTeX

描述问题 / Problem Description

问题描述: 如何在模板中使用algorithm2e
algorithm2e包支持代码竖线对齐功能,但是和模板自带的algorithm包不兼容。

理想格式:

\documentclass{article}
\usepackage{graphicx} % Required for inserting images

\usepackage[ruled,vlined]{algorithm2e} %带竖线和折线

\title{algo_vlined}
\author{yaopan }
\date{July 2023}

\begin{document}

\maketitle

\section{Introduction}


\begin{algorithm}
%\SetAlgoLined
%\SetAlgoNoLine %去掉竖线
\SetKwData{Left}{left}\SetKwData{This}{this}\SetKwData{Up}{up} \SetKwFunction{Union}{Union}\SetKwFunction{FindCompress}{FindCompress} \SetKwInOut{Input}{input}\SetKwInOut{Output}{output}
	
	\Input{A bitmap $Im$ of size $w\times l$}
	\Output{A partition of the bitmap}
	 \BlankLine
	
	 \emph{special treatment of the first line}\;
	 \For{$i\leftarrow 2$ \KwTo $l$}{
	 	\emph{special treatment of the first element of line $i$}\;
	 	\For{$j\leftarrow 2$ \KwTo $w$}{\label{forins} \Left$\leftarrow$\FindCompress{$Im[i,j-1]$}\;
	 	\Up$\leftarrow$ \FindCompress{$Im[i-1,]$}\;
	 	\This$\leftarrow$ \FindCompress{$Im[i,j]$}\;
	 	\If(\tcp*[h]{O(\Left,\This)==1})
	 		{\Left compatible with \This}{\label{lt}
	 			\lIf{\Left $<$ \This}{\Union{\Left,\This}}
	 			 \lElse{\Union{\This,\Left}} }
 	    \If(\tcp*[f]{O(\Up,\This)==1}){\Up compatible with
 			 	 \This}{\label{ut}
 			 	 \lIf{\Up $<$ \This}{\Union{\Up,\This}}
 			 	 \tcp{\This is put under \Up to keep tree as flat as possible}\label{cmt} \lElse{\Union{\This,\Up}}\tcp*[h]{\This linked to \Up}\label{lelse}
 		 	  }
 	 	   }
 		 \lForEach{element $e$ of the line $i$}{\FindCompress{p}}
 	 }
 	 	  \caption{disjoint decomposition}
 	 	  \label{algo_disjdecomp}
\end{algorithm}


\end{document}

效果预览:
image

问题截图 / Screenshots

尝试在ucasthesis模板中使用:

  1. 注释掉了algorithm.sty中的所有内容
  2. 导包后用上面相同的代码进行测试,编译通过,但是格式还有一定的问题:
    image

请教如何正确使用algorithm2e包

你所谓的区别在于:

  1. 行距较大
  2. \emph 变下划线

解决方案:

  1. 在算法环境内修改
    %- specifies the amount of space between paragraphs.
    \setlength{\parskip}{0.5ex plus 0.25ex minus 0.25ex}
    %- line spacing
    \linespread{1.6}% line space setting

    或者谷歌一下
  2. 谷歌

可对如下行进行替换修改:

\RequirePackage{algpseudocode,algorithm,algorithmicx}% algorithm