水平和垂直居中一个图形并缩放以在横向方向上填充整个页面

水平和垂直居中一个图形并缩放以在横向方向上填充整个页面

我想要一张能填满横向页面的图像。

我努力了:

\documentclass[a4paper]{report}

\usepackage[utf8]{inputenc}
\usepackage{pdflscape} %Gives us landscape pages with begin{landscape}. Use this for pages with very large diagrams.
\usepackage{geometry} %change margin on individual page \newgeometry{} and \restoreometry
\usepackage{graphicx}
\usepackage{caption} %nicer captions
\usepackage{float}%exact placement of floats (things inside a begin{})

\usepackage{todonotes}  %For the minium working example

\begin{document}

\listoffigures

\begin{landscape}

  \newgeometry{left=1cm,right=1cm,top=1cm,bottom=1cm}
  \thispagestyle{empty} %disable page numbering for this page

    \vfill
      \begin{center}
        \begin{figure}
          \missingfigure[figwidth = \paperwidth]{picture}
          \label{label32}
          \caption{a big image}
        \end{figure}
      \end{center}
    \vfill

  \restoregeometry
\end{landscape}

\end{document}

但是这会将图像放置在横向页面的右上角,而且图像的缩放比例甚至没有那么大。如果我\centering在图形环境中使用而不是创建中心环境,则图形将放置在下角。

我该如何放置它,使其水平和垂直居中,并填满页面,留出大约 1 或 2 厘米的边距?

如果您有更好的建议,这些要求都可以灵活处理。我的主要目标是显示具有大量精细细节的图像,只有当其放大到略小于 A4 尺寸时才可见。

我正在使用 pdflatex 编译器,因此我正在使用该pdflscape包。我的文档类型是报告,无法更改。

预览:

在此处输入图片描述

答案1

基于 Gustavo Mezzetti 的回答,可以将图像放置在图形环境中,以便可以为其添加标题并在 中列出\listoffigures。还需要进行一些其他修改,如下所示。

调整\paperheight( -6cm) 需要根据图像的长宽比手动调整。无论如何,最好用眼睛来做,因为自动过程不知道什么看起来最好。

\documentclass[a4paper]{report}

\usepackage[utf8]{inputenc}
\usepackage{pdflscape} %Gives us landscape pages with begin{landscape}. Use this for pages with very large diagrams.
\usepackage{geometry} %change margin on individual page \newgeometry{} and \restoreometry
\usepackage{graphicx}
\usepackage{caption} %nicer captions
\usepackage{float}%exact placement of floats (things inside a begin{})
\usepackage{mwe}


\begin{document}

\listoffigures

\newgeometry{left=1cm,right=1cm,top=1cm,bottom=1cm}

\begin{landscape}
  \thispagestyle{empty} %disable page numbering for this page
        \begin{figure}
           \centering
           \includegraphics [width=\dimexpr\paperheight-6cm\relax]{image}
          \label{label32}
          \caption{a big image}
        \end{figure}
\end{landscape}

\restoregeometry

\end{document}

预览:

在此处输入图片描述

添加:

这是命令。将其放入文档序言中:

%Command to insert a landscape page filled with a centred figure.
%The arguments are: {marginsize}{tunable parameter to adjust for aspect ratio}{caption}{imagepath}
%Example usage: \hFigure{1cm}{2cm}{This is a big image}{pics/myImage.png}
\newcommand{\hFigure}[4]{
\newgeometry{left=#1,right=#1,top=#1,bottom=#1}
\begin{landscape}
  \thispagestyle{empty} %disable page numbering for this page
\vfill
        \begin{figure}
           \centering
           \includegraphics [width=\dimexpr\paperheight-#2\relax]{#4}
          \label{label32}
          \caption{#3}
        \end{figure}
\vfill
\end{landscape}
\restoregeometry
}

答案2

我不完全确定您想要实现什么以及您遇到了什么限制,但首先,您可能需要看看以下代码:

\documentclass[a4paper]{report}
\usepackage[T1]{fontenc}
\usepackage{geometry}
\usepackage{pdflscape}
\usepackage{mwe} % for sample figures -- automatically loads graphicx

\begin{document}

Preceding stuff.

\newgeometry{left=1cm,right=1cm,top=1cm,bottom=1cm}
\thispagestyle{empty}
\begin{landscape}
    \vspace*{\fill}
    \noindent\begin{minipage}[c][0pt][c]{\columnwidth}
        \centerline{%
            \includegraphics
                [width=\dimexpr\paperheight-2cm\relax]
                {image}%
        }
    \end{minipage}
    \vspace*{\fill}
\end{landscape}
\restoregeometry

Subsequent stuff.

\end{document}

请注意,即使在横向模式下也是\paperheight如此\paperheight。如果这不是您想要的,我(或其他人,因为我现在必须断开连接)将进行进一步调整。

添加

原来,原作者想要给这个图形加上标题:这可以在minipage环境本身中通过\captionof命令来完成标题包。figure我认为最好避免使用浮动环境,因为几何形状和页面样式设置不太可靠(如果其他先前的浮动元素正在等待被放置在页面上怎么办?)。

以下是更新后的代码:

\documentclass[a4paper]{report}
\usepackage[T1]{fontenc}
\usepackage{geometry}
\usepackage{caption}
\usepackage{pdflscape}
\usepackage{mwe}

\begin{document}

\listoffigures
\bigbreak

Preceding stuff.

\newgeometry{left=1cm,right=1cm,top=1cm,bottom=1cm}
\thispagestyle{empty}
\begin{landscape}
    \vspace*{\fill}
    \noindent\begin{minipage}[c][0pt][c]{\columnwidth}
        \centerline{%
            \includegraphics[
                        width=\dimexpr\paperheight-2cm\relax,
                        height=10cm % assuming your image is short enough that 
                                    % it does not overprint the caption
                    ]{image}%
        }
        \centering
        \captionof{figure}{A nice figure}
        \label{fig:label}
    \end{minipage}
    \vspace*{\fill}
\end{landscape}
\restoregeometry

Subsequent stuff, with a reference to figure~\ref{fig:label}.

\end{document}

当然,我假设图像不会太高,以免标题被推离页面。

相关内容