¿Cómo crear nuevos subflotadores?

¿Cómo crear nuevos subflotadores?

Usando \newfloat, se pueden crear nuevos entornos flotantes y, como se ejemplifica enestepublicación, creé un nuevo flotador llamado suppfigpero quiero agregarle subfiguras. Cuando simplemente agrego subfiguras dentro, aparece el mensaje:

No hay contador subsuppfigdefinido.

Cuando agrego un contador llamado subsuppfig, \newcounter{subsuppfig}obtengo

Unidad de medida ilegal (pt insertado).

¿Cómo defino un nuevo entorno de subflotación?


Código:

\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}

Respuesta1

Utilice el paquete newfloat, un paquete diseñado para funcionar bien con captiony amigos.

\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}

Respuesta2

subcaptionfunciona bien (de forma automatizada) cuando se utilizanewfloatpara la creación de flotadores. Sin embargo, si estás usandofloatofloatrow, tendrás que hacer el trabajo tú mismo.

Lo siguiente está tomado delsubcaptiondocumentación(sección5 El \DeclareCaptionSubTypecomando):

Para utilizar la función de subtítulos del captionpaquete, se deben preparar algunos comandos y contadores. Esto se hace con

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

Para los entornos figure& tabley todos los definidos con \DeclareFloatingEnvironmentofrecido por el newfloatpaquete, esto se hará automáticamente, pero para otros entornos (por ejemplo, los definidos con \newfloatofrecido por el floatpaquete o \DeclareNewFloatTypeofrecido por el floatrowpaquete) esto debe hacerse manualmente.

ingrese la descripción de la imagen aquí

\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}

información relacionada