我正在使用.sty
我大学的文件准备我的论文。在这个文件中,有一个“算法”浮点数,我用它来定义
算法 1,算法 2,...
我的问题是,无论附录部分中的算法标签是什么,当我调用它们时,它们的参考编号都会链接到主体中的算法,而不是它们所属的算法。
经过一番研究,我意识到文件中有部分内容.sty
控制着“算法列表”的组织方式。此文件创建一个扩展名的文件.lom
,该文件保存了有关算法列表的所有信息。在此文件中,附录算法的标签链接到正文中的算法!请参阅以下文件中.sty
讨论“算法列表”规则的部分。我想知道是否有人可以帮助我调试这些行。
\def\listofalgorithms{%
\newpage
\addcontentsline{toc}{chapter}{LIST OF ALGORITHMS}
\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn\fi
\hbox{ }
\twoinmar
\centerline{\large\bf LIST OF ALGORITHMS}
\vspace{0.7in}
\begin{doublespace}
\@starttoc{lom}\if@restonecol\twocolumn\fi
\addtocontents{lom}{\noindent\underline{\bf Algorithm}\hfill\rm\protect\newline}
\end{doublespace}
\pagestyle {empty}
}
\newcounter{algorithm}[chapter]
\def\thealgorithm{\@arabic\c@chapter.\@arabic\c@algorithm}
\def\fps@algorithm{tbp}
\def\ftype@algorithm{1}
\def\ext@algorithm{lom}
\def\fnum@algorithm{Algorithm\thealgorithm}
\def\algorithm{\@float{algorithm}}
\let\endalgorithm\end@float
\@namedef{algorithm*}{\@dblfloat{algorithm}}
\@namedef{endalgorithm*}{\end@dblfloat}
答案1
我创建了部分 MWE,但由于无法访问大学.sty
文件,我\listofalgorithms
什么也做不了。使用\label
和\ref
工作正常。写入lom
文件的唯一内容是标题行。您应该搜索涉及\@writefile{lom}
或至少的任何内容\@writefile
。
\documentclass{book}
\usepackage{lipsum}
\let\twoinmar=\relax
\makeatletter
\def\listofalgorithms{%
\newpage
\addcontentsline{toc}{chapter}{LIST OF ALGORITHMS}
\@restonecolfalse\if@twocolumn\@restonecoltrue\onecolumn\fi
\hbox{ }
\twoinmar
\centerline{\large\bf LIST OF ALGORITHMS}
\vspace{0.7in}
%\begin{doublespace}% also undefined
\@starttoc{lom}\if@restonecol\twocolumn\fi
\addtocontents{lom}{\noindent\underline{\bf Algorithm}\hfill\rm\protect\newline}
%\end{doublespace}
\pagestyle {empty}
}
\newcounter{algorithm}[chapter]
\def\thealgorithm{\@arabic\c@chapter.\@arabic\c@algorithm}
\def\fps@algorithm{tbp}
\def\ftype@algorithm{1}
\def\ext@algorithm{lom}
\def\fnum@algorithm{Algorithm\thealgorithm}
\def\algorithm{\@float{algorithm}}
\let\endalgorithm\end@float
\@namedef{algorithm*}{\@dblfloat{algorithm}}
\@namedef{endalgorithm*}{\end@dblfloat}
\makeatother
\usepackage{hyperref}
\renewcommand{\thealgorithm}{\thechapter.\arabic{algorithm}}
\begin{document}
\listofalgorithms
\chapter{dummy}
\ref{first}
\ref{second}
\begin{algorithm}
\label{first}
first algorithm
\end{algorithm}
\lipsum[1-4]
\appendix
\chapter{this space intentionally left blank}
\begin{algorithm}
\label{second}
second algorithm
\end{algorithm}
\lipsum[5-8]
\end{document}