以下 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