我正在使用包编写文档classicthesis
,其中有一些使用该包编写的算法clrscode
。我使用包float
创建了一个名为“算法”的新浮点数。但是,当我使用打印算法列表时,\listof{algorithm}{List of algorithms}
我要么得到格式错误的列表(即带有一长串点............,这与中的其他列表不同classicthesis
),要么得到格式正确的列表,但其中算法被称为“图”。
我精简了文档,以便得到这个最小的工作示例:
\documentclass[english]{scrreprt}
\usepackage{scrhack}
\usepackage{float}
\floatstyle{ruled}
\newfloat{algorithm}{thp}{loa}[chapter]
\floatname{algorithm}{Algorithm}
\usepackage[pdfspacing,floatperchapter]{classicthesis}
\begin{document}
\begingroup
\let\clearpage\relax
\let\cleardoublepage\relax
\tableofcontents
\listoffigures
\listoftables
\listof{algorithm}{List of algorithms}
\endgroup
\chapter{Test chapter}\label{ch:algotest}
\section{Some tests}
Algorithm \ref{alg:first} shows a plain algorithm. Figures \ref{fig:first} and \ref{fig:second} show a couple figures, and a table is shown in table \ref{tab:first}.
\begin{algorithm}
\caption{A plain algorithm\label{alg:first}}
\begin{verbatim}
while not finished:
do stuff
\end{verbatim}
\end{algorithm}
\begin{figure}
\caption{First figure\label{fig:first}}
This one is a figure.
\end{figure}
\begin{figure}
\caption{Second figure\label{fig:second}}
This one is a figure too.
\end{figure}
\begin{table}
\caption{Table figure\label{tab:first}}
This one is a table.
\end{table}
\end{document}
如果使用该行,\usepackage{scrhack}
我得到的是“图形”名称而不是“算法”,而如果它被注释掉,我得到的是格式错误的列表。
从我在网上找到的内容来看,scrreprt
和float
包似乎不兼容,因此需要scrhack
包,但我找不到任何与相关的东西classicthesis
。
有没有办法正确格式化自定义浮点数列表?
答案1
这是一个 hack:
\documentclass[english]{scrreprt}
\usepackage{float}
\floatstyle{ruled}
\newfloat{algorithm}{thp}{loa}[chapter]
\floatname{algorithm}{Algorithm}
\usepackage{scrhack} % load after "float"
\usepackage[pdfspacing,floatperchapter]{classicthesis}
\begin{document}
\begingroup
\let\clearpage\relax
\let\cleardoublepage\relax
\tableofcontents
\listoffigures
\listoftables
\renewcommand{\figurename}{Algorithm}
\listof{algorithm}{List of algorithms}
\endgroup
\chapter{Test chapter}\label{ch:algotest}
\section{Some tests}
Algorithm \ref{alg:first} shows a plain algorithm. Figures \ref{fig:first} and \ref{fig:second} show a couple figures, and a table is shown in table \ref{tab:first}.
\begin{algorithm}
\caption{A plain algorithm\label{alg:first}}
\begin{verbatim}
while not finished:
do stuff
\end{verbatim}
\end{algorithm}
\begin{figure}
\caption{First figure\label{fig:first}}
This one is a figure.
\end{figure}
\begin{figure}
\caption{Second figure\label{fig:second}}
This one is a figure too.
\end{figure}
\begin{table}
\caption{Table figure\label{tab:first}}
This one is a table.
\end{table}
\end{document}
感谢@lockstep 指出包的正确加载顺序。