梅威瑟:
\documentclass{scrbook}
\usepackage[showframe]{geometry}
\usepackage[draft]{graphicx}
\usepackage{blindtext}
\usepackage{subcaption}
\begin{document}
\begin{figure}
\begin{subfigure}{.5\textwidth}
\centering
\includegraphics[height=175px, width=200px]{dummy.png}
\caption{left}
\end{subfigure}%
\begin{subfigure}{.5\textwidth}
\centering
\includegraphics[height=175px, width=150px]{dummy.png}
\caption{right}
\end{subfigure}
\caption{\blindtext}
\end{figure}
\end{document}
和一张图片:
我该如何排列子图,以便右图与右边框之间的空间等于左图与左边框之间的空间?我用红线标记了空间。
任何帮助都将受到赞赏。
答案1
使用\subcaptionbox
,这样您就不必猜测。
在示例中,我添加了宽度,但您的代码可能只会设置高度。不要使用px
单位,因为 1px 的大小不是预先确定的。
您可以在\hfil
图像之间使用它(如果它位于一行的最后,\hspace{<length>}
请不要忘记)。%
\documentclass{scrbook}
\usepackage[showframe]{geometry}
\usepackage{graphicx}
\usepackage{blindtext}
\usepackage{subcaption}
\begin{document}
\begin{figure}
\centering
\subcaptionbox{left\label{sub-left}}{%
\includegraphics[height=175bp,width=.6\textwidth]{example-image}%
}\hfil
\subcaptionbox{right\label{sub-right}}{%
\includegraphics[height=175bp,width=.2\textwidth]{example-image}%
}
\caption{\blindtext}
\end{figure}
\end{document}
答案2
您可以直接将两个subfigure
环境的宽度分别设置为200px
和150px
。接下来,将两个图的宽度设置为\linewidth
。最后,插入\hspace*{\fill}
到左侧子图的左侧、子图之间以及右侧子图的右侧。
如果你想要固定值子图之间的空间,比如说,1厘米而不是\fill
,只需将中间的\hspace*{\fill}
指令替换为\hspace{1cm}
。
\documentclass{scrbook}
\usepackage[showframe]{geometry}
\usepackage[draft]{graphicx}
\usepackage{subcaption}
\begin{document}
\begin{figure}
\hspace*{\fill}
\begin{subfigure}{200bp}
\includegraphics[height=175bp, width=\linewidth]{dummy.png}
\caption{left}
\end{subfigure}%
\hspace*{\fill}
\begin{subfigure}{150bp}
\includegraphics[height=175bp, width=\linewidth]{dummy.png}
\caption{right}
\end{subfigure}
\hspace*{\fill}
\caption{Two subfigures placed side by side}
\end{figure}
\end{document}