
Пытаюсь поместить фигуру с подфигурами, используя acmsmall
класс. При компиляции получаю следующую ошибку:
Package caption Warning: Unsupported document class (or package) detected, (caption)
usage of the caption package is not recommended. See the caption package documentation for explanation.
) (/usr/local/texlive/2012/texmf-dist/tex/latex/caption/subcaption.sty
! LaTeX Error: Command \subcaption already defined.
Or name \end... illegal, see p.192 of the manual.
See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help. ...
l.57 \caption@gobble}}
%
?
Когда я просто пропускаю его, появляется другая ошибка.
Package caption Warning: \caption will not be redefined since it's already
(caption) redefined by a document class or package which is
(caption) unknown to the caption package.
See the caption package documentation for explanation.
! Package caption Error: The `subcaption' package does not work correctly
(caption) in compatibility mode.
See the caption package documentation for explanation.
Type H <return> for immediate help.
...
l.7 \begin{document}
?
Если я продолжу, я получу рисунок, но я хотел бы знать, что происходит. У меня никогда не было проблем со вставкой подрисунков с другими классами документов (например, IEEEtran).
Вот MWE:
\documentclass[prodmode,acmtecs]{acmsmall}
\usepackage{graphicx}
\usepackage{caption}
\usepackage{subcaption}
\begin{document}
\begin{figure}
\begin{subfigure}[b]{0.5\textwidth}
\includegraphics{acmsmall-mouse.pdf}
\caption{A subfigure}
\end{subfigure}%
\begin{subfigure}[b]{0.5\textwidth}
\includegraphics{acmsmall-mouse.pdf}
\caption{Another subfigure}
\end{subfigure}%
\caption{Several figures}
\end{figure}
\end{document}
Есть ли предпочтительный способ создания подрисунков acmsmall
?
решение1
acsmall.cls
и использованы изображения, скачанные здесь:http://www.acm.org/publications/latex_style/v2-acmsmall.zip
Класс acmsmall
определяет \subcaption
команду, поэтому вы можете использовать minipage
s вместо subfigure
s для своих целей.
МВЭ:
\documentclass[prodmode,acmtecs]{acmsmall}
\usepackage{graphicx}
\begin{document}
\begin{figure}
\begin{minipage}[b]{0.5\textwidth}
\includegraphics{acmsmall-mouse.pdf}\\
\subcaption{A subfigure}
\end{minipage}%
\begin{minipage}[b]{0.5\textwidth}
\includegraphics{acmsmall-mouse.pdf}\\
\subcaption{Another subfigure}
\end{minipage}%
\caption{Several figures}
\end{figure}
\end{document}
Выход:
решение2
Класс acmsmall
определяет команду \subcaption
, которая приводит к подписям, показанным в ответе Карла. Если вы не привязаны строго к этому шаблону и хотите использовать обычную маркировку, как из пакета subcaption
, вам придется отменить определение этой самой команды. Причиной этого может быть то, что вы хотели бы сослаться на некоторые subfigure
(\ref{fig:a}
), как было предложеноздесь.
Это может выглядеть следующим образом:
% arara: pdflatex
\documentclass[prodmode,acmtecs]{acmsmall}
\let\subcaption\relax
\usepackage{graphicx}
\usepackage{caption}
\usepackage{subcaption}
\usepackage{hyperref}
\begin{document}
\begin{figure}
\begin{subfigure}[b]{0.49\textwidth}
\includegraphics{acmsmall-mouse.pdf}
\subcaption{A subfigure}\label{fig:a}
\end{subfigure}
\begin{subfigure}[b]{0.49\textwidth}
\includegraphics{acmsmall-mouse.pdf}
\subcaption{Another subfigure}\label{fig:b}
\end{subfigure}
\caption{Several figures}\label{fig:1}
\end{figure}
\end{document}
Обратите внимание, что это не входит в идею редактора, который предоставил этот шаблон. Прежде чем что-то менять, вам следует поговорить с ним. Возможно, пронумерованные субтитры не соответствуют общему дизайну. В этом случае вам придется ссылаться наas you can see in Figure~\ref{fig:1} (left pic.)
решение3
Хорошо, похоже, я не могу прокомментировать ответ от LaRiFaRi, поэтому пишу здесь... Ответ от LaRiFaRi не работает как есть. Я не знаю почему, но мне удалось заставить его работать только добавив пакет hyperref
. Вот код:
\documentclass[prodmode,acmtecs]{acmsmall}
\let\subcaption\relax
\usepackage{caption}
\usepackage{subcaption}
\usepackage{graphicx}
\usepackage{hyperref} %WHY is that ?
\begin{document}
\begin{figure}
\begin{subfigure}[b]{0.49\textwidth}
\includegraphics{acmsmall-mouse.pdf}
\subcaption{A subfigure}\label{fig:a}
\end{subfigure}
\begin{subfigure}[b]{0.49\textwidth}
\includegraphics{acmsmall-mouse.pdf}
\subcaption{Another subfigure}\label{fig:b}
\end{subfigure}
\caption{Several figures}\label{fig:1}
\end{figure}
\end{document}
И получившееся изображение:
решение4
Оказывается, включение hyperref
имеет еще один эффект: я могу использовать
\begin{minipage}
...
\subcaption{...}
...
\end{minipage}
Без необходимости использовать среду подфигур где-либо явно.