algorithm2e 标签格式和算法列表的大小

algorithm2e 标签格式和算法列表的大小

我使用 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}

由于您正在使用hyperref加载它 varioref

相关内容