搜索这个论坛,有很多类似的问题,但我没有找到任何解决我特定问题的方法。有没有一种优雅的方法可以将两个水平对齐的浮点数(图形)居中不同宽度,这样文档和图片的边框之间的距离就相同了?在下面的图片中,我用“x”、“y”和“z”标记了三个距离。对此,两个可接受的解决方案是:
- x = y = z,
- x = z 且 y 是任意定义的(例如
\quad
)。
上图是使用以下代码生成的:
\usepackage[inner=25mm,
outer=25mm,
top=30mm,
bottom=25mm]{geometry}
\usepackage{caption}
\usepackage{subcaption}
----------------------------------------------------------
\begin{figure}[H]
\label{fig:two_figs}
\begin{subfigure}[b]{0.5\linewidth}
\centering
\includegraphics[width=4cm]{example-image-a}
\caption{}
\label{subfig:image_a}
\end{subfigure}%
\begin{subfigure}[b]{0.5\linewidth}
\centering
\includegraphics[width=8cm]{example-image-b}
\caption{}
\label{subfig:image_b}
\end{subfigure}%
\caption{Complete caption}
\end{figure}
当然,这可以大致居中,例如,通过将第一个子图宽度更改为 ,0.41\linewidth
将第二个子图宽度更改为0.3\linewidth
。但是,这似乎不太精确,如果文档中有许多这样的“双图”,则可能会很繁琐。
另外请记住,\includegraphics
宽度不应以任何方式改变,因为我总是导入我的图形以scale=1
确保图形文本大小与文档的大小一致。在上面的例子中,我使用了任意宽度来表达我的观点。
答案1
以下是您对间距的两个要求:
\documentclass{article}
\usepackage[margin=1in,showframe]{geometry}
\usepackage{subcaption,graphicx}
\begin{document}
\begin{figure}
% Equal distribution of space between two subfigures (x = y = z)
\hfill
\subcaptionbox{\label{subfig:image_a}}{%
\includegraphics[width=4cm]{example-image-a}%
}\hfill
\subcaptionbox{\label{subfig:image_b}}{%
\includegraphics[width=8cm]{example-image-b}%
}%
\hfill\mbox{}%
\caption{Complete caption}
\end{figure}
\begin{figure}
% Equal distribution of space outside of subfigures with fixed inner separation (x = y)
\hfill
\subcaptionbox{\label{subfig:image_a}}{%
\includegraphics[width=4cm]{example-image-a}%
}\qquad%
\subcaptionbox{\label{subfig:image_b}}{%
\includegraphics[width=8cm]{example-image-b}%
}%
\hfill\mbox{}%
\caption{Complete caption}
\end{figure}
\end{document}
主要方法是使用\subcaptionbox
不带(可选)宽度参数的 ,并使用\hfill
s 来展开内容。行尾确保有一个锚点可以展开。如果标题需要更多的水平空间,您可以在 周围\mbox{}
添加等量的,或指定固定宽度。\hspace
\includegraphics
答案2
\hfill
这是一个在环境的所有侧面和之间放置指令的解决方案subfigure
。它还直接设置 s 的所需(相对)宽度subfigure
,同时通过 指定图形的(相对)宽度width=1\linedwidth
。
以下屏幕截图中的框架表示文本块的左边缘和右边缘。
\documentclass{article}
\usepackage[inner=25mm, outer=25mm,top=30mm, bottom=25mm]{geometry}
\usepackage{subcaption,graphicx,showframe}
\begin{document}
\begin{figure}
\hfill
\begin{subfigure}[b]{0.3\linewidth}
\includegraphics[width=\linewidth]{example-image-a}
\caption{}
\label{subfig:image_a}
\end{subfigure}%
\hfill
\begin{subfigure}[b]{0.5\linewidth}
\includegraphics[width=\linewidth]{example-image-b}
\caption{}
\label{subfig:image_b}
\end{subfigure}%
\hfill\null
\caption{Complete caption} \label{fig:two_figs}
\end{figure}
\end {document}