我有以下问题:我有一个包含 3 个子图的图形(2 个在顶部,1 个在底部居中)。由于图片的背景是白色,并且我想要一个良好的布局,我将底部图形向上移动了\vspace
。但是,它与前两个图形的标题重叠,如以下屏幕截图所示:
(a 和 b 不再可读)。
我怎样才能将最后一张图片移至背景或者标题后面?
谢谢!
代码:
\begin{figure} [H]
\vspace{-5mm}
\subfloat[ ]{\label{STG_3M_2}\includegraphics[width=0.5\textwidth]{figures/CH5/3M/2_3}}
\subfloat[]{\label{STG_3M_7}\includegraphics[width=0.5\textwidth]{figures/CH5/3M/7_3}} \\
\center
\vspace{-10mm}
\subfloat[]{\label{STG_3M_10}\includegraphics[width=0.5\textwidth]{figures/CH5/3M/10_3}}
\caption{Microstrain versus displacement at three specific locations for the 3M Scotch Weld 9323 B/A specimens which failed cohesively.}
\label{STG_3M}
\vspace{-5mm}
\end{figure}
答案1
您可以将图像包含在背景中,将其设置在tikzpicture
不占用垂直空间且我们可以随意移动对象的位置。重要的是在打印任何其他内容之前绘制背景图片。
我假设三幅图像的高度相同。在第三幅图中\subfloat
,我仅放置了几条不可见的规则来设置框尺寸,并使子标题正确对齐。
\documentclass{article}
\usepackage{graphicx}
\usepackage{subfig}
\usepackage{tikz}
\begin{document}
\begin{figure}
\centering
\sbox0{\includegraphics[width=0.5\textwidth]{example-image-a}}
\begin{tikzpicture}[remember picture,overlay]
\node (background) at (0,-2\ht0+2cm) {\includegraphics[width=0.5\textwidth]{example-image-c}};
\end{tikzpicture}
\subfloat[]{\label{STG_3M_2}\includegraphics[width=0.5\textwidth]{example-image-a}}
\subfloat[]{\label{STG_3M_7}\includegraphics[width=0.5\textwidth]{example-image-b}}
\subfloat[]{\label{STG_3M_10}\rule{0pt}{\dimexpr\ht0-1cm\relax}\rule{\wd0}{0pt}}
\caption{Microstrain versus displacement at three specific locations for the
3M Scotch Weld 9323 B/A specimens which failed cohesively.}
\label{STG_3M}
\end{figure}
\end{document}
调整移位量,直到您满意为止。请注意,更改参数需要运行两次 LaTeX 才能生效。