我使用 algorithm2e 来放入algorithms
我的文档,并且我\listofalgorithms
在目录中列出了我的算法,但我注意到它们的标题大小有点不同:“算法列表”有点小。有办法解决这个问题吗?
我的第二个问题是,labelformat
我使用 with 在varioref
我引用的算法编号前面插入 alg.(使用vref
命令)。它适用于方程、图形、表格、部分...环境,但不适用于算法环境。我不明白为什么。
这是我的代码:
\documentclass[onecolumn,twoside,openright,a4paper,11pt]{report}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{hyperref} %
\usepackage[lined,dotocloa,algochapter]{algorithm2e} %
\usepackage{varioref}
\makeatletter %
\labelformat{algorithm}{\textit{alg.}\,(#1)}
\makeatother
\begin{document}
\tableofcontents %
\thispagestyle{empty}
\listofalgorithms %
\thispagestyle{empty}
\chapter{section1}
\IncMargin{1em}
\begin{algorithm}
\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*[r]{\This linked to \Up}\label{lelse}
}
}
\lForEach{element $e$ of the line $i$}{\FindCompress{p}}
}
\caption{disjoint decomposition}\label{algo_disjdecomp}
\end{algorithm}\DecMargin{1em}.
\vref{algo_disjdecomp}
\end{document}
有人能帮助我吗?
答案1
我没有看到算法列表的大小和内容的大小有什么区别——它们都被设置为\chapter*
,因此应该看起来相同。
就标签引用而言,您正在\labelformat
为不存在的计数器设置。事实上,algorithm2e
使用计数器algocf
而不是algorithm
。
\documentclass{report}
\usepackage{varioref}
\usepackage{hyperref}
\usepackage[lined,dotocloa,algochapter]{algorithm2e}
\SetKwData{Left}{left}\SetKwData{This}{this}\SetKwData{Up}{up}
\SetKwFunction{Union}{Union}\SetKwFunction{FindCompress}{FindCompress}
\SetKwInOut{Input}{input}\SetKwInOut{Output}{output}
\labelformat{algocf}{\textit{alg.}\,(#1)}
\begin{document}
\tableofcontents
\listofalgorithms
\chapter{First chapter}
\begin{algorithm}
\Input{A bitmap $I$ 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{$I[i,j-1]$}$\;
$\Up \leftarrow \FindCompress{$I[i-1,]$}$\;
$\This \leftarrow \FindCompress{$I[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*[r]{\This{} linked to \Up}\label{lelse}
}
}
\lForEach{element $e$ of the line $i$}{\FindCompress{p}}
}
\caption{disjoint decomposition}\label{algo_disjdecomp}
\end{algorithm}
\vref{algo_disjdecomp}
\end{document}