我想要一张能填满横向页面的图像。
我努力了:
\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}
当然,我假设图像不会太高,以免标题被推离页面。