
Используя \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}