包float无包caption

包float无包caption

因此,我想使用 float 包(例如)创建一个新的浮点环境,但不使用计数器:

\documentclass{article}
\usepackage{float}
\floatstyle{ruled}
\newfloat{afloat}{t!}{log}
\floatname{afloat}{Algorithm}
\usepackage{algorithm}
\usepackage{algpseudocode}

\begin{document}

\begin{afloat}
\caption{getRandomNumber()}
\begin{algorithmic}
\State\Return 7 \Comment{Chosen by fair dice roll. Guaranteed to be random.}
\end{algorithmic}
\end{afloat}

\end{document}

得到:

现在使用\caption*{}删除整个标题(可以在每个环境中替换但这似乎很不方便)。

因此理想的解决方案应该像上面那样,但没有“1”:

算法获取随机数()"。

答案1

您可以使用caption包定义无编号标签格式:

\documentclass{article}
\usepackage{caption}
\usepackage{float}
\floatstyle{ruled}
\newfloat{afloat}{t!}{log}

\newcommand\afloatname{Algorithm}
\floatname{afloat}{\afloatname}
\usepackage{algorithm}
\usepackage{algpseudocode}

\DeclareCaptionLabelFormat{unnumbered}{#1}
\captionsetup[afloat]{labelformat=unnumbered}

\begin{document}

\begin{afloat}
\caption{getRandomNumber()}
\begin{algorithmic}
\State\Return 7 \Comment{Chosen by fair dice roll. Guaranteed to be random.}
\end{algorithmic}
\end{afloat}

\end{document}

结果:

在此处输入图片描述

答案2

float无包caption

包中定义了宏\fnum@<float>,用于设置浮点数的名称及其编号。可以重新定义为仅包含名称。

可以通过暂时禁用来删除算法列表中的数字\numberline

\documentclass{article}
\usepackage{float}
\floatstyle{ruled}
\newfloat{afloat}{t!}{loa}% The extension `.log` is already used by TeX!
\floatname{afloat}{Algorithm}
\usepackage{algorithm}
\usepackage{algpseudocode}

\makeatletter
\renewcommand*{\fnum@afloat}{\fname@afloat}
\makeatother

\begin{document}

\begingroup
  \renewcommand*{\numberline}[1]{}
  \listof{afloat}{List of Algorithms}
\endgroup

\begin{afloat}
\caption{GetRandomNumber()}
\begin{algorithmic}
\State\Return 7 \Comment{Chosen by fair dice roll. Guaranteed to be random.}
\end{algorithmic}
\end{afloat}

\end{document}

结果

相关内容