垂直图像对齐

垂直图像对齐

我有几个页面包含两张图片。我希望这些图片在页面上居中。我尝试过这个

\newpage \vspace*{\fill} 
\begin{figure}[H] \centering
    \subfloat[Text]
    {\includegraphics[height=18cm, width=0.8\textwidth, keepaspectratio]{figure/...}}
    \hspace{2mm}
    \subfloat[Text]
    {\includegraphics[height=18cm, width=0.8\textwidth, keepaspectratio]{figure/...}}
    \caption[Short-Text]{Long-Text}
\end{figure}
\vspace*{\fill} \newpage

但我不喜欢这个结果。图像上方和下方的空间不一样。我使用的文档类是book

答案1

这是一个最小的例子,它将您的方法(垂直填充,在我看来是可以的)与我在评论中提出的方法(将其全部放在在页面绝对中心绘制的 tikz 节点内)进行比较。

\documentclass{article}
%\usepackage[showframe]{geometry} % uncomment to see the margins
\usepackage{mwe}
\usepackage{float}
\usepackage{subfig}
\usepackage{tikz}

\begin{document}

% Your approach (enclose in vertical fills)
\newpage \vspace*{\fill} 
\begin{figure}[H] \centering
    \subfloat[Text]
    {\includegraphics[height=18cm, width=0.7\textwidth, keepaspectratio]{example-image-a}}
    \hspace{2mm}
    \subfloat[Text]
    {\includegraphics[height=18cm, width=0.7\textwidth, keepaspectratio]{example-image-b}}
    \caption[Short-Text]{Long-text}
\end{figure}
\vspace*{\fill} \newpage

% My proposed approach (use a tikz node to put it in the absolute center of the page)
\begin{tikzpicture}[remember picture, overlay]
\node[anchor=center, text width=\textwidth, align=justify] at (current page.center) {
\begin{figure}[H]\centering
    \subfloat[Text]
    {\includegraphics[height=18cm, width=0.7\textwidth, keepaspectratio]{example-image-a}}
    \hspace{2mm}
    \subfloat[Text]
    {\includegraphics[height=18cm, width=0.7\textwidth, keepaspectratio]{example-image-b}}
    \caption[Short-Text]{Long-text}
\end{figure}
};
\end{tikzpicture}
\newpage
\end{document}

输出的差异很小。您必须编译两次才能让 TikZ 正确放置覆盖节点:

结果

右边的那个(使用 TikZ)看起来有点凸起,但正如所说,差别很小。也许在你的实际使用案例中它更明显。

相关内容