
Ich versuche, mithilfe der acmsmall
Klasse eine Figur mit Unterfiguren zu erstellen. Beim Kompilieren erhalte ich den folgenden Fehler:
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}}
%
?
Wenn ich es einfach überspringe, erscheint ein anderer Fehler.
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}
?
Wenn ich fortfahre, erhalte ich die Abbildung einwandfrei, aber ich möchte wissen, was passiert. Ich hatte nie Probleme beim Einfügen von Unterabbildungen mit anderen Dokumentklassen (z. B. IEEEtran).
Hier ist ein 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}
Gibt es eine bevorzugte Möglichkeit zum Erstellen von Unterfiguren mit acmsmall
?
Antwort1
acsmall.cls
und verwendete Bilder hier heruntergeladen:http://www.acm.org/publications/latex_style/v2-acmsmall.zip
Die acmsmall
Klasse definiert einen \subcaption
Befehl, sodass Sie für Ihren Zweck minipage
s statt s verwenden können.subfigure
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}
Ausgabe:
Antwort2
Die Klasse acmsmall
definiert einen Befehl \subcaption
, der zu den in Karls Antwort gezeigten Beschriftungen führt. Wenn Sie nicht streng an diese Vorlage gebunden sind und die normale Beschriftung wie aus dem Paket verwenden möchten , müssen Sie genau diesen Befehl aufheben. Der Grund dafür könnte sein, dass Sie wie gefragt auf einige ( ) subcaption
verweisen möchten.subfigure
\ref{fig:a}
Hier.
Das könnte wie folgt aussehen:
% 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}
Bitte beachten Sie, dass dies nicht der Idee des Herausgebers entspricht, der diese Vorlage erstellt hat. Bevor Sie solche Änderungen vornehmen, sollten Sie mit ihm sprechen. Möglicherweise passen nummerierte Untertitel nicht zum Gesamtdesign. In diesem Fall müssen Sie verweisen wieas you can see in Figure~\ref{fig:1} (left pic.)
Antwort3
Ok, anscheinend kann ich die Antwort von LaRiFaRi nicht kommentieren, also schreibe ich hier ... Die Antwort von LaRiFaRi funktioniert so nicht. Ich weiß nicht, warum, aber ich habe es nur geschafft, sie zum Laufen zu bringen, indem ich das hyperref
Paket hinzugefügt habe. Hier ist der Code:
\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}
Und das resultierende Bild:
Antwort4
Es stellt sich also heraus, dass das Einschließen hyperref
noch einen weiteren Effekt hat: Ich kann verwenden
\begin{minipage}
...
\subcaption{...}
...
\end{minipage}
Ohne die Subfigure-Umgebung irgendwo explizit verwenden zu müssen.