使用algorithm2e包编辑算法
yooopan opened this issue · 2 comments
yooopan commented
检查 / Check
- 已阅读 提问流程
- 确认问题为关于 ucasthesis 编译和设计的问题,而非 LaTeX 的一般知识性问题
- 已仔细阅读 LaTeX 知识小站
- 已查阅搜索 issues 的 已关闭问题
closed issues
编译环境 / 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}
问题截图 / Screenshots
尝试在ucasthesis模板中使用:
请教如何正确使用algorithm2e包
sikouhjw commented
你所谓的区别在于:
- 行距较大
\emph
变下划线
解决方案:
- 在算法环境内修改
ucasthesis/Style/ucasthesis.cls
Lines 130 to 133 in aec46ba
或者谷歌一下 - 谷歌
mohuangrui commented
可对如下行进行替换修改:
Line 613 in aec46ba