如何删除“算法#”标题前缀但保留算法列表?

如何删除“算法#”标题前缀但保留算法列表?

我正在使用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}

相关内容