A finales de 2016, la ACM publicó suPlantilla de artículo maestro de ACM 2017. Esta clase de documento rompe una gran cantidad de código LaTeX que uno podría haber escrito usando clases de documentos ACM anteriores, específicamente la sig-alternate
clase.
Específicamente, he tenido problemas para subtitular tablas y usar subfiguras (con subtítulos o no) con la nueva clase. Elguía de usuariono dice nada sobre esto, específicamente no en la Sección 2.5, que trata de figuras y tablas.
En lugar de preguntar sobre algo específico que no funcionó para mí, lo que me gustaría saber es el enfoque común, idiomático por así decirlo, de este problema:
- ¿ Qué combinación(es) de paquetes usar con la clase (
subfigure
,subcaption
, etc.)?subfig
floatrow
- ¿Hay alguna inicialización especial,
\patchcmd
ing u otro encantamiento vudú que debería incluir en mi preámbulo? - ¿Hay diseños de figuras/subfiguras específicos que debo evitar o con los que debo tener cuidado? Lo mismo ocurre con los subtítulos.
Respuesta1
Solo para ampliar la respuesta de Boris, así es como puedes (y debes) hacerlo subcaption
. En lugar de \autoref
creo que es mejor usar \cref
from \cleveref
.
\documentclass[sigconf]{acmart}
%---------------------------------------------------------------
% You don't need this block of lines in your article - I do
% need, them since I use placeholders instead of actual graphics
\usepackage{tcolorbox} % for graphics placeholders
\newcommand{\graphicsplaceholder}[2]{%
\begin{tcolorbox}[valign=center,width=#1,height=#2,arc=0.5mm,auto outer arc]%
\centering \sf missing graphic%
\end{tcolorbox}%
}
%---------------------------------------------------------------
\usepackage{subcaption}
\usepackage{cleveref}
\crefname{figure}{Figure}{Figures}
\begin{document}
\title{Tables, figures and subfigures \texorpdfstring{\\}{}
with the new ACM 2017 article template}
\author{Nobody in particular}
\affiliation{\institution{University of Life}}
\email{[email protected]}
\maketitle
\begin{abstract}
The quick brown fox jumps over the lazy dog.
\end{abstract}
\section{Figures}
Let's start with a simple figure, single-column, no subfigures --- using a
\texttt{figure} environment. That will be \cref{figure-with-no-subfigs}.
\begin{figure}[htpb]
\centering
% What you would typically have here is something like:
% \includegraphics[width=\columnwidth]{some-file.pdf}
% but for this example, let's go with a placeholder instead:
\graphicsplaceholder{8cm}{1cm}
\caption{This is a figure with no subfigures}
\label{figure-with-no-subfigs}
\end{figure}
\subsection{Figures with subfigures}
Let's add a figure with two subfigures; the subfigures will be added with
\verb|\subcaptionbox{caption goes here}|, so they should also be captioned.
That will be \cref{first-figure-with-subfigures}.
\begin{figure}[htpb]
\centering
\subcaptionbox{Some subfigure\label{first-subfig}}{%
% What you would typically have here is something like:
% \includegraphics[width=0.2\textwidth]{some-file.pdf}
% but for this example, let's go with a placeholder instead:
\graphicsplaceholder{4cm}{1cm}%
}
\subcaptionbox{Another subfigure\label{second-subfig}}{%
\graphicsplaceholder{4cm}{1cm}%
}
\caption{A caption for the single-column figure with two subfigures}
\label{first-figure-with-subfigures}
\end{figure}
Let's conclude this section by repeating the same figure, but now as a
two-column figure, i.e. using the \verb|{figure*}| environment. That will
be \cref{a-two-column-figure}, with \cref{first-subfig} and \cref{second-subfig}.
\begin{figure*}[htpb]
\centering
\subcaptionbox{Yet another caption\label{third-subfig}}{%
\graphicsplaceholder{8cm}{1cm}%
}
\subcaptionbox{This is getting old\label{fourth-subfig}}{%
\graphicsplaceholder{8cm}{1cm}%
}
\caption{A caption for the two-column figure (also with two subfigures)}
\label{a-two-column-figure}
\end{figure*}
\section{Tables}
Let's add a \texttt{table} environment, with a caption near the end of it
(after the \texttt{tabular} environment). That will be \cref{first-table}.
\begin{table}[thpb]
\begin{tabular}{ c c c }
1 & 2 & 3 \\
4 & 5 & 6 \\
7 & 8 & 9 \\
\end{tabular}
\caption{This is a caption for a \texttt{table} float, with a
\texttt{tabular} environment inside it}
\label{first-table}
\end{table}
And we're all done, except for one last thing...:
\paragraph{Warning} Don't ever define a \verb|\tblname| command. This was
possible with older ACM document class (e.g. \texttt{sig-alternate} v2.8),
but now it will trigger errors when you try to caption your floats.
\end{document}
Respuesta2
La sección 2.12 de la guía del usuario recomienda subcaption
el paquete "para figuras complejas con varias subtramas o subfiguras que requieren subtítulos separados".
Respuesta3
Ok, lo siguiente funciona. Se agradecen los comentarios en los comentarios sobre la elección de paquetes o cualquier otra cosa.
\documentclass[sigconf]{acmart}
%---------------------------------------------------------------
% You don't need this block of lines in your article - I do
% need them, since I use placeholders instead of actual graphics
\usepackage{tcolorbox} % for graphics placeholders
\newcommand{\graphicsplaceholder}[2]{%
\begin{tcolorbox}[valign=center,width=#1,height=#2,arc=0.5mm,auto outer arc]%
\centering%
\sf missing graphic%
\end{tcolorbox}%
}
%---------------------------------------------------------------
\usepackage{float}
\usepackage{subfig}
\begin{document}
\title{Tables, figures and subfigures \\ with the new ACM 2017 article template}
\author{Nobody in particular}
\affiliation{ \institution{University of Life} }
\email{[email protected]}
\maketitle
\begin{abstract}
The quick brown fox jumps over the lazy dog.
\end{abstract}
\section{Figures}
Let's start with a simple figure, single-column, no subfigures --- using a
\texttt{figure} environment. That will be \autoref{figure-with-no-subfigs}.
\begin{figure}[htpb]
\centering
% What you would typically have here is something like:
% \includegraphics[width=\columnwidth]{some-file.pdf}
% but for this example, let's go with a placeholder instead:
\graphicsplaceholder{8cm}{1cm}
\caption{This is a figure with no subfigures}
\label{figure-with-no-subfigs}
\end{figure}
\subsection{Figures with subfigures}
Le'ts add a figure with two subfigures; the subfigures will be added using
\verb|\subfloat[caption goes here]|, so they should also be captioned.
That will be \autoref{first-figure-with-subfigures}.
\begin{figure}[htpb]
\centering
\subfloat[Some subfigure]{
\graphicsplaceholder{4cm}{1cm}
\label{first-subfig}
}
\subfloat[Another subfigure]{
\graphicsplaceholder{4cm}{1cm}
\label{second-subfig}
}
\caption{A caption for the single-column figure with two subfigures}
\label{first-figure-with-subfigures}
\end{figure}
Let's conclude this section by repeating the same figure, but now as a two-column
figure, i.e. using the \verb|{figure*}| environment. That will be
\autoref{a-two-column-figure}.
\begin{figure*}[htpb]
\centering
\subfloat[Yet another caption]{
\graphicsplaceholder{8cm}{1cm}
\label{third-subfig}
}
\subfloat[This is getting old]{
\graphicsplaceholder{8cm}{1cm}
\label{fourth-subfig}
}
\caption{A caption for the two-column figure (also with two subfigures)}
\label{a-two-column-figure}
\end{figure*}
\section{Tables}
Let's add a \texttt{table} environment, with a caption near the end of it (after
the \texttt{tabular} environment). That will be \autoref{first-table}.
\begin{table}[thpb]
\begin{tabular}{ c c c }
1 & 2 & 3 \\
4 & 5 & 6 \\
7 & 8 & 9 \\
\end{tabular}
\caption{This is a caption for a \texttt{table} float, with a \texttt{tabular}
environment inside it}
\label{first-table}
\end{table}
And we're all done, except for one last thing...:
\paragraph{Warning} Don't ever define a \verb|\tblname| command. This was
possible with older ACM document class (e.g. \texttt{sig-alternate} v2.8),
but now it will trigger errors when you try to caption your floats.
\end{document}
Y cuando compilo esto con TeXLive 2015.20160320-1 (la versión proporcionada por la distribución en Linux Mint 18.1), obtengo dos páginas:
Notas:
- La razón por la que no lo uso
subcaption
es que, bueno, esto se acerca a lo que estaba usando con clases ACM más antiguas, y he optado por cambios mínimos para que todo funcione (pero siéntete libre de criticar). - No sé por qué el bloque comienza con "Formato de referencia ACM". ¿Lo hacen a propósito? Es muy duro para la vista y molesto.
- No estoy seguro de cómo equilibrar las columnas ahora (pero este ejemplo no trata sobre el equilibrio de columnas).
- No hay numeración de páginas, probablemente porque estas cosas van dentro de los PDF de actas que tienen números consecutivos en muchos artículos.
- No estoy muy seguro de por qué el
figure*
entorno borra la página. ¿No debería el texto simplemente llenar las dos columnas anteriores, con la figura a continuación? Mmm.