横向环境中图形的垂直居中

横向环境中图形的垂直居中

我正在使用 pdflscape 包在我的文档中插入横向页面。在其中一个页面上,我希望有一个图形垂直位于页面中央,但我找不到如何操作。

梅威瑟:

\documentclass{article}

\usepackage{graphicx}
\usepackage{pdflscape}

\begin{document}
A portrait mode page...

\begin{landscape}
\begin{figure}[!h]
\centering
\fbox{\includegraphics[width=\linewidth]{VUB_logo.pdf}}
\caption{Some caption}
\end{figure}
\end{landscape}

Another portrait mode page...
\end{document}

结果如下(仅显示横向页面): 横向页面图片未垂直居中

而我想要的是这个:( 横向页面,图片垂直居中 注意垂直居中)

答案1

\parbox我会使用具有最大高度(即\textwidth由于旋转)并\vfill在内容前后包含一些宏以将其推到中间的 来实现。请注意,在这种情况下,您不应使用浮动环境,而应使用(或包)figure添加标题。浮动只会在这里干扰。因为内容已经有最大宽度,所以您不需要将其水平居中。但是,可以使用 选项来完成此操作。\captionof{figure}capt-ofcaption[c]\parbox

\documentclass{article}

\usepackage{graphicx}
\usepackage{pdflscape}
\usepackage{capt-of}

\begin{document}
A portrait mode page...

\begin{landscape}
\parbox[c][\textwidth][s]{\linewidth}{%
\vfill
\fbox{\includegraphics[width=\dimexpr\linewidth-2\fboxsep-2\fboxrule\relax]{VUB_logo.pdf}}
\captionof{figure}{Some caption}
\vfill
}
\end{landscape}

Another portrait mode page...
\end{document}

我还对\fbox尺寸进行了补偿,以免产生过满的盒子。

答案2

您是否尝试过将长度参数\@fptop和重置\@fpbot为其默认值0pt plus 1fil?这些参数控制浮动页面上浮动元素上方和下方的“fil”数量。您使用的某个软件包可能已将参数重置@fptop为类似 的值0pt。:-( 您可以在文档的序言中输入以下命令:

\makeatletter
\setlength{\@fptop}{0pt plus 1fil}
\setlength{\@fpbot}{0pt plus 1fil}
\makeatother

顺便说一句,您可能还想了解一下如何使用该rotating包及其命令\begin{sidewaysfigure}...。\end{sidewaysfigure}每次您需要创建横向浮动时,您不仅可以少输入几个命令 :-),还可以从该rotating包将浮动内容垂直居中的习惯中受益。以下 MWE 演示了它的用法。祝您 TeXing 愉快!

\documentclass{article}
\usepackage{rotating}
\begin{document}
\begin{sidewaysfigure}
\centering
\includegraphics[width=\linewidth]{VUB_logo.pdf}
\caption{A sideways figure}
\end{sidewaysfigure}
\end{document}

相关内容