在 subfig 环境中标记图形的列

在 subfig 环境中标记图形的列

我有以下问题:

使用该subfig包我以 2x2 的布局显示 4 张图像。

\documentclass{article}

\usepackage{subfig,caption}
\usepackage{graphicx}

\begin{document}

\begin{figure}
  \centering
  \subfloat{\includegraphics[width=0.31\textwidth]{img.png}}
  \hspace{1em}
  \subfloat{\includegraphics[width=0.31\textwidth]{img.png}}\\
  \subfloat[Column 1]{\includegraphics[width=0.31\textwidth]{img.png}}
  \hspace{1em}
  \subfloat[Column 2]{\includegraphics[width=0.31\textwidth]{img.png}}
\end{figure}

\end{document}

结果是标签以 (c) 和 (d) 开头,位于第 3 和第 4 张图片下方。我希望标签为 (a) 和 (b)。不知何故,我需要重置 subfloat 标题的计数器。

答案1

这样能达到你想要的效果吗?

\documentclass{article}
\usepackage{subcaption}
\usepackage[draft]{graphicx}

\begin{document}

\begin{figure}
\centering
\begin{subfigure}[t]{0.31\textwidth}
    \includegraphics[height=\textwidth,width=\textwidth]{img.png}
    \includegraphics[height=\textwidth,width=\textwidth]{img.png}
    \caption{Column1}
\end{subfigure}
\hspace{1em}
\begin{subfigure}[t]{0.31\textwidth}
    \includegraphics[height=\textwidth,width=\textwidth]{img.png}
    \includegraphics[height=\textwidth,width=\textwidth]{img.png}
    \caption{Column2}
\end{subfigure}
\end{figure}
\end{document}

(我height=\textwidth仅用它来避免错误消息,因为img.png不存在)

在此处输入图片描述

我从某处读到说 subfig 已被弃用并且不应再使用。

答案2

subfig软件包已弃用,建议您不再使用它,而改用subcaption。这是我的想法:

在此处输入图片描述

\documentclass{article}
\usepackage[demo]{graphicx}
\usepackage{subcaption}

\begin{document}
  \begin{figure}
    \centering
    \begin{subfigure}[b]{0.3\textwidth}
      \centering
      \includegraphics[width=\textwidth]{dummy}
      % \caption*{Column 1a}
      \label{fig:1}
    \end{subfigure}%
    ~
    \begin{subfigure}[b]{0.3\textwidth}
      \centering
      \includegraphics[width=\textwidth]{dummy}
      % \caption*{Column 2a}
      \label{fig:2}
    \end{subfigure}%
    \\ % Change row.
    \begin{subfigure}[b]{0.3\textwidth}
      \centering
      \includegraphics[width=\textwidth]{dummy}
      \caption{Column 1b}
      \label{fig:3}
    \end{subfigure}%
    ~
    \begin{subfigure}[b]{0.3\textwidth}
      \centering
      \includegraphics[width=\textwidth]{dummy}
      \caption{Column 2b}
      \label{fig:4}
    \end{subfigure}%
    \caption{The overall caption.}
    \label{fig:all}
  \end{figure}%
\end{document}

如果您想要标题但不想要第一行的字母,您可以取消注释\caption*

答案3

这基本上就是我想要的:

\documentclass{article}

\usepackage{subfig}

\makeatletter
\newcommand{\clearsubcaptcounter}{\setcounter{sub\@captype}{0}}
\makeatother

\begin{document}

\begin{figure}
  \centering
  \subfloat{\rule{4cm}{4cm}}
  \hspace{1em}
  \subfloat{\rule{4cm}{4cm}}\\
  \clearsubcaptcounter
  \subfloat[Column 1]{\rule{4cm}{4cm}}
  \hspace{1em}
  \subfloat[Column 2]{\rule{4cm}{4cm}}
\end{figure}

\end{document}

但是,我不知道这是否是最干净的解决方案,因为它使用了 \makeatletter...

相关内容