使用 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}