我正在使用algorithm
-package,并且希望在不生成任何前缀的情况下命名我的算法。因此,我想从标题中删除“算法 #”作为前缀,但仍保留列出标题的算法列表。
我有两个最小的工作示例,每个示例仅完成所需工作的一部分。
\documentclass[11pt]{article}
\usepackage{caption}
\usepackage{algorithm}
\begin{document}
\begin{algorithm}
\caption*{My Algorithm}
\end{algorithm}
\listofalgorithms
\end{document}
这会删除标题前缀,但算法不包含在列表中。
\documentclass[11pt]{article}
\usepackage{caption}
\usepackage{algorithm}
\begin{document}
\begin{algorithm}
\floatname{algorithm}{}
\caption{My Algorithm}
\end{algorithm}
\listofalgorithms
\end{document}
这会部分删除标题前缀(数字“1”仍然保留),但算法包含在列表中。
答案1
这是一种可能性,在包的帮助下定义一种格式caption
:
\documentclass[11pt]{article}
\usepackage{caption}
\usepackage{algorithm}
\DeclareCaptionFormat{myformat}{#3}
\captionsetup[algorithm]{format=myformat}
\begin{document}
\begin{algorithm}
\caption{My Algorithm}
\end{algorithm}
\listofalgorithms
\end{document}
作为埃格尔指出,该caption
包已经提供了empty
格式,因此无需定义新的格式:
\documentclass[11pt]{article}
\usepackage{caption}
\usepackage{algorithm}
\captionsetup[algorithm]{labelformat=empty}
\begin{document}
\begin{algorithm}
\caption{My Algorithm}
\end{algorithm}
\listofalgorithms
\end{document}
答案2
在第二个 MWE 中,使用 明确将算法添加到列表中\addcontentsline
。
\documentclass[11pt]{article}
\usepackage{caption}
\usepackage{algorithm}
\begin{document}
\begin{algorithm}
\caption*{My Algorithm}
\addcontentsline{loa}{algorithm}{My Algorithm}
\end{algorithm}
\listofalgorithms
\end{document}