tufte-book 中的算法列表

tufte-book 中的算法列表

以下 MWE 产生“算法列表”标题,但其下方没有列表。

\documentclass[a4paper,twoside,justified,marginals=raggedright,nofonts,nobib,]{tufte-book}

\RequirePackage[noend]{algpseudocode}
\RequirePackage[]{algorithm}

\begin{document}
\listofalgorithms

\chapter{Introduction}
\label{chap:intro}

\begin{algorithm}
    \caption[Short caption]{A long caption}
    \begin{algorithmic}[1]
        \Require 
        Some constants
    \end{algorithmic}
\end{algorithm}
\end{document}

有没有办法修复它(使得算法列表看起来像图形列表)?

答案1

显然\l@algorithm迷失了方向,没有定义。稍微重新定义一下就可以\listofalgorithms解决这个问题。

\documentclass[a4paper,twoside,justified,marginals=raggedright,nofonts,nobib]{tufte-book}

\usepackage[noend]{algpseudocode}
\usepackage[]{algorithm}

\makeatletter
\renewcommand{\listofalgorithms}{%
  \let\l@algorithm\l@figure
  \chapter*{\listalgorithmname}%
  \@starttoc{loa}%
}
\makeatother

\begin{document}
\listofalgorithms
\listoffigures

\chapter{Introduction}

\begin{figure}
\caption{figure}
\end{figure}
\label{chap:intro}

\begin{algorithm}
    \caption[Short caption]{A long caption}
    \begin{algorithmic}[1]
        \Require 
        Some constants
    \end{algorithmic}
\end{algorithm}
\end{document}

答案2

我从 tufte-common.def 复制了这部分内容,似乎有效

\makeatletter
\renewcommand\listofalgorithms{%
    \ifthenelse{\equal{\@tufte@class}{book}}%
    {\chapter*{\listalgorithmname}}%
    {\section*{\listalgorithmname}}%
    %  \begin{fullwidth}%
    \@starttoc{loa}%
    %  \end{fullwidth}%
}
\let\l@algorithm\l@figure
\makeatother

相关内容