2017년 acmart 수업에서 캡션이 있는 하위 그림과 표에 대한 관용적인 접근 방식을 원하십니까?

2017년 acmart 수업에서 캡션이 있는 하위 그림과 표에 대한 관용적인 접근 방식을 원하십니까?

2016년 말 ACM은 다음과 같은 내용을 발표했습니다.2017 ACM 마스터 기사 템플릿. 이 문서 클래스는 이전 ACM 문서 클래스, 특히 클래스를 사용하여 작성했을 수 있는 많은 LaTeX 코드를 손상시킵니다 sig-alternate.

특히 새 클래스에서 표에 캡션을 추가하고 하위 그림(캡션 또는 기타)을 사용하는 데 문제가 있었습니다. 그만큼사용자 가이드특히 그림과 표를 다루는 섹션 2.5에서는 이에 대해 아무 말도 하지 않습니다.

나에게 도움이 되지 않았던 특정한 것에 대해 묻는 대신, 내가 알고 싶은 것은 이 문제에 대한 일반적이고 관용적인 접근 방식입니다.

  • 클래스( , , 등)와 함께 사용할 패키지 조합 subfiguresubcaption무엇 subfig입니까 floatrow?
  • \patchcmd서문에 포함해야 할 특별한 초기화, ing 또는 기타 부두 주문이 있습니까 ?
  • 피하거나 주의해야 하는 특정 그림/하위 그림 레이아웃이 있습니까? 캡션도 마찬가지입니다.

답변1

Boris의 답변을 확장하기 위해 subcaption. 대신 from 을 \autoref사용하는 것이 더 낫다고 믿습니다 .\cref\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}

여기에 이미지 설명을 입력하세요

답변2

사용자 가이드의 섹션 2.12에서는 subcaption"별도의 하위 캡션이 필요한 여러 하위 그림 또는 하위 그림이 있는 복잡한 그림용" 패키지를 권장합니다.

답변3

좋아, 다음은 작동합니다. 패키지 선택이나 기타 사항에 대한 의견을 보내주시면 감사하겠습니다.

\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}

그리고 이것을 TeXLive 2015.20160320-1(Linux Mint 18.1의 배포판 제공 버전)로 컴파일하면 두 페이지가 나타납니다.

출력의 1/2페이지 출력의 2/2페이지

노트:

  • 내가 사용하지 않는 이유 subcaption는 이것이 이전 ACM 클래스에서 사용했던 것과 유사하며 작업이 작동하도록 최소한의 변경을 선택했기 때문입니다(그러나 자유롭게 비판할 수 있음).
  • "ACM 참조 형식"으로 시작하는 블록을 얻는 이유를 모르겠습니다. 그 사람들이 일부러 그러는 걸까요? 정말 눈이 아프고 짜증납니다.
  • 지금은 열 균형을 어떻게 맞추는지 잘 모르겠습니다(그러나 이 예는 열 균형에 관한 것이 아닙니다).
  • 페이지 번호가 없습니다. 아마도 이러한 내용이 많은 기사에 걸쳐 실행되는 번호가 있는 PDF 절차 내부에 들어가기 때문일 것입니다.
  • figure*환경이 왜 페이지를 지우는지 잘 모르겠습니다 . 텍스트가 그 앞의 두 열을 채우고 그 뒤에 그림이 나타나야 하지 않나요? 흠.

관련 정보