
Estou tentando colocar uma figura com subfiguras, usando a acmsmall
classe. Ao compilar recebo o seguinte erro:
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}}
%
?
Quando eu simplesmente pulo, outro erro aparece.
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}
?
Se eu continuar, fico bem com o número, mas gostaria de saber o que está acontecendo. Nunca tive problemas ao inserir subfiguras com outras classes de documentos (por exemplo, IEEEtran).
Aqui está um 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}
Existe uma maneira preferida de criar subfiguras com acmsmall
?
Responder1
acsmall.cls
e imagens usadas baixadas aqui:http://www.acm.org/publications/latex_style/v2-acmsmall.zip
A acmsmall
classe define um \subcaption
comando, então você pode usar minipage
s em vez de subfigure
s para seu propósito.
MWE:
\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}
Saída:
Responder2
A turma acmsmall
está definindo um comando \subcaption
que resulta nas legendas mostradas na resposta de Karl. Se você não está estritamente vinculado a esse modelo e deseja usar a rotulagem normal a partir do pacote subcaption
, você terá que desdefinir esse mesmo comando. A razão para fazer isso pode ser que você gostaria de fazer referência a algum subfigure
( \ref{fig:a}
) como foi solicitadoaqui.
Isso pode ser parecido com o seguinte:
% 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}
Observe que isso não é ideia do editor que forneceu esse modelo. Antes de fazer ajustes assim, você deve conversar com o mesmo. Talvez as sublegendas numeradas não se ajustem ao design geral. Neste caso, você terá que fazer referência comoas you can see in Figure~\ref{fig:1} (left pic.)
Responder3
Ok, parece que não posso comentar a resposta do LaRiFaRi então escrevo aqui... A resposta do LaRiFaRi não está funcionando como está. Não sei por que, mas só consegui fazer funcionar adicionando o hyperref
pacote. Aqui está o código:
\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}
E a imagem resultante:
Responder4
Acontece que incluir hyperref
tem mais um efeito: posso usar
\begin{minipage}
...
\subcaption{...}
...
\end{minipage}
Sem ter que usar o ambiente de subfigura em qualquer lugar, explicitamente.