经典论文中自定义浮点数的格式化列表

经典论文中自定义浮点数的格式化列表

我正在使用包编写文档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}我得到的是“图形”名称而不是“算法”,而如果它被注释掉,我得到的是格式错误的列表。

从我在网上找到的内容来看,scrreprtfloat包似乎不兼容,因此需要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 指出包的正确加载顺序。

相关内容