Как создать новые подпоплавки?

Как создать новые подпоплавки?

Используя \newfloat, можно создавать новые среды плавания, как показано на примереэтотпост, я создал новый float с именем, suppfigно я хочу добавить в него подфигуры. Когда я просто добавляю подфигуры внутри него, я получаю сообщение:

Счетчик не subsuppfigопределен.

Когда я добавляю счетчик с именем subsuppfig, \newcounter{subsuppfig}то получаю

Недопустимая единица измерения (вставлена ​​точка).

Как определить новую среду subfloat?


Код:

\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. Однако, если вы используетеfloatилиfloatrow, вам придется проделать всю работу самостоятельно.

Следующее взято изsubcaptionдокументация(раздел5 \DeclareCaptionSubTypeКоманда):

Для использования функции sub-caption пакета 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}

Связанный контент