两个子图的顶部和底部的标题

两个子图的顶部和底部的标题

使用 subfig 包,是否有可能在顶部显示第一个子图的标题,在底部显示另一个子图的标题。

我正在使用下面的代码来显示这两个子图。

\documentclass{article}

\usepackage[demo]{graphicx}
\usepackage{subfig}
\usepackage{tabularx}

\begin{document}

    \begin{figure}
                \subfloat[Caption 1]{\includegraphics[width=7cm]{1.png}} \\
                \subfloat[Caption 2]{\includegraphics[width=7cm]{2.png}}
        \caption{Figure Description}\label{foo}
    \end{figure}

\end{document}

答案1

top创建两个命令比添加第二个可选参数更容易。如果和的使用bottom对你来说违反直觉,请随意重命名它们。

顺便说一句,所有position=top做的都是反向\abovecaptionskip\belowcaptionskip

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

\newsavebox{\subfloatbox}

\newcommand{\topfloat}[2][\empty]% #1 = caption, #2=image
 {\savebox\subfloatbox{#2}%
  \begin{minipage}[t]{\wd\subfloatbox}
    \usebox\subfloatbox
    \subcaption{#1}
  \end{minipage}}

\newcommand{\bottomfloat}[2][\empty]% #1 = caption, #2=image
 {\savebox\subfloatbox{#2}%
  \begin{minipage}[b]{\wd\subfloatbox}
    \captionsetup{position=top}%
    \subcaption{#1}
    \usebox\subfloatbox
  \end{minipage}}

\begin{document}

    \begin{figure}
                \bottomfloat[Caption 1]{\includegraphics[width=7cm]{1.png}} \\
                \topfloat[Caption 2]{\includegraphics[width=7cm]{2.png}}
        \caption{Figure Description}\label{foo}
    \end{figure}

\end{document}

一个更简单的解决方案。请注意,\subcaption必须在组内,否则会导致永久更改\@captype

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

\begin{document}

    \begin{figure}
        \centering
        {\captionsetup{position=top}
            \subcaption{Caption 2}
            \includegraphics[width=7cm]{1.png}}\\
        {\includegraphics[width=7cm]{2.png}
            \subcaption{Caption 1}}
        \caption{Figure Description}\label{foo}
    \end{figure}

\end{document}

相关内容