
Estoy intentando poner una figura con subfiguras, usando la acmsmall
clase. Al compilar me sale el siguiente error:
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}}
%
?
Cuando lo salto, aparece otro error.
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}
?
Si sigo me sale bien la cifra, pero me gustaría saber que pasa. Nunca tuve problemas para insertar subfiguras con otras clases de documentos (por ejemplo, IEEEtran).
Aquí hay un 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 una forma preferida de crear subfiguras con acmsmall
?
Respuesta1
acsmall.cls
e imágenes usadas descargadas aquí:http://www.acm.org/publications/latex_style/v2-acmsmall.zip
La acmsmall
clase define un \subcaption
comando, por lo que puedes usar minipage
s en lugar de subfigure
s para tu 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}
Producción:
Respuesta2
La clase acmsmall
está definiendo un comando \subcaption
que da como resultado los subtítulos que se muestran en la respuesta de Karl. Si no está estrictamente vinculado a esa plantilla y desea utilizar el etiquetado normal a partir del paquete subcaption
, tendrá que anular la definición de ese mismo comando. El motivo para hacerlo podría ser que desea hacer referencia a algún subfigure
( \ref{fig:a}
) como se le ha solicitado.aquí.
Esto podría parecerse a lo siguiente:
% 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}
Tenga en cuenta que esto no está en la idea del editor que proporcionó esa plantilla. Antes de modificar algo así, deberías hablar con el mismo. Quizás los subtítulos numerados no se ajusten al diseño general. En este caso, tendrás que hacer referencia comoas you can see in Figure~\ref{fig:1} (left pic.)
Respuesta3
Ok, parece que no puedo comentar la respuesta de LaRiFaRi así que aquí escribo... La respuesta de LaRiFaRi no funciona tal como está. No sé por qué pero solo logré hacerlo funcionar agregando el hyperref
paquete. Aquí está el 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}
Y la imagen resultante:
Respuesta4
Resulta que incluir hyperref
tiene un efecto más: puedo usar
\begin{minipage}
...
\subcaption{...}
...
\end{minipage}
Sin tener que utilizar el entorno de subfigura en ningún lugar, de forma explícita.