我正在尝试创建一个算法列表,使得每个算法编号后面都出现一个冒号。我在下面包含了一个 MWE,它产生以下内容:
我想通过在算法编号后添加冒号来修改它,
Algorithm 1.1: Pseudocode caption . . . . 2
我见过类似的问题被问到(格式化 \listoftables 和 \listofalgorithms),但是这个解决方案对我不起作用。我相信这是因为他们的示例使用algorithm
而我使用的是algorithm2e
。我无法解决这个问题。
“算法列表”标题需要保留,因为它在 MWE 中显示,我不能使用通常出现的默认标题\listofalgorithms
最小工作示例:
\documentclass[10pt]{report}
\usepackage[ruled,vlined,algochapter]{algorithm2e}
\usepackage{tocloft}
\makeatletter
\newcommand*{\loacontents}{\@starttoc{loa}}
\makeatother
\begin{document}
\begingroup
\renewcommand*{\addvspace}[1]{}
\let\oldnumberline\numberline
\renewcommand{\numberline}{Algorithm~\oldnumberline}
\begin{center}
\textbf{LIST OF ALGORITHMS}
\end{center}
~\\ % Empty lines
~\\
\loacontents
\endgroup
\pagebreak
\chapter{Introduction}
\begin{algorithm}
\caption{Pseudocode caption.}
asdf
\end{algorithm}
\end{document}
答案1
对 的重新定义进行了微小调整\numberline
。相反,收集常规参数,并:
在将其传递给 时添加后缀\oldnumberline
:
\documentclass{report}
\usepackage[ruled,vlined,algochapter]{algorithm2e}
\makeatletter
\newcommand*{\loacontents}{\@starttoc{loa}}
\makeatother
\begin{document}
\begingroup
\renewcommand*{\addvspace}[1]{}
\let\oldnumberline\numberline
\renewcommand{\numberline}[1]{Algorithm~\oldnumberline{#1:}}
\begin{center}
\bfseries LIST OF ALGORITHMS
\end{center}
\vspace{2\baselineskip}
\loacontents
\endgroup
\pagebreak
\chapter{Introduction}
\begin{algorithm}
\caption{Pseudocode caption.}
asdf
\end{algorithm}
\end{document}