如何创建新的子浮点数?

如何创建新的子浮点数?

使用\newfloat,可以创建新的浮动环境,如下例所示帖子中,我创建了一个名为 的新浮点数suppfig,但我想在其中添加子图。当我简单地在其中添加子图时,我收到以下消息:

未定义计数器subsuppfig

当我添加一个名为 subsuppfig 的计数器时\newcounter{subsuppfig},我得到

非法计量单位(插入 pt)。

如何定义新的子浮动环境?


代码:

\documentclass{article}
\usepackage{float,subcaption,graphicx}

\begin{document}

\newfloat{suppfig}{tbh}{supp}
\floatname{suppfig}{Supplementary Figure}
\begin{suppfig}[H]
  \centering
  \begin{subfigure}{\textwidth}
    \centering
    \caption{ }
    \includegraphics[width=\textwidth]{example-image-a}
  \end{subfigure}

  \begin{subfigure}{\textwidth}
    \centering
    \caption{ }
    \includegraphics[width=\textwidth]{example-image-b}
  \end{subfigure}
  \caption{...figurecaptions...}
\end{suppfig}
\end{document}

答案1

使用包,这是一个专为与和朋友newfloat协同工作而设计的包。caption

\documentclass{article}
\usepackage{newfloat}
\usepackage{subcaption}
\DeclareFloatingEnvironment[name={Supplementary Figure}]{suppfigure}
\begin{document}
\begin{suppfigure}
    \begin{subsuppfigure}{.45\textwidth}
        \centering\rule{.9\linewidth}{2cm}
    \caption{a small supplementary figure}
\end{subsuppfigure}\hfill%
    \begin{subsuppfigure}{.45\textwidth}
        \centering\rule{.9\linewidth}{2cm}
    \caption{another small supplementary figure}
\end{subsuppfigure}
\caption{And a captin for all of them}
\end{suppfigure}
\end{document}

答案2

subcaption使用时效果很好(以自动化方式)newfloat用于创建浮点数。但是,如果你使用float或者floatrow,你必须自己做这些准备工作。

以下内容摘自subcaption文档(部分5\DeclareCaptionSubType命令):

要使用该包的子标题功能,caption必须准备一些命令和计数器。这是通过

\DeclareCaptionSubType[<numbering scheme>]{<type>}
\DeclareCaptionSubType*[<numbering scheme>]{<type>}

对于环境figure&table以及所有由包\DeclareFloatingEnvironment提供的环境newfloat,这将自动完成,但对于其他环境(例如,由包\newfloat提供的环境float\DeclareNewFloatType由包提供的环境floatrow),这必须手动完成。

在此处输入图片描述

\documentclass{article}
\usepackage{float,graphicx,subcaption}


\newfloat{suppfig}{tbh}{supp}
\floatname{suppfig}{Supplementary Figure}
\DeclareCaptionSubType{suppfig}
\renewcommand{\thesubsuppfig}{\Alph{subsuppfig}}

\begin{document}

\begin{suppfig}[H]
  \centering
  \begin{subfigure}{\textwidth}
    \centering
    \caption{First subcaption}
    \includegraphics[width=.6\linewidth]{example-image-a}
  \end{subfigure}

  \begin{subfigure}{\textwidth}
    \centering
    \caption{Second subcaption}
    \includegraphics[width=.6\linewidth]{example-image-b}
  \end{subfigure}
  \caption{Figure caption}
\end{suppfig}

\end{document}

相关内容