我想添加一张图片,以便它覆盖整个页面。从边缘到边缘,没有空白,只有图片。我使用 A4 纸(欧式),图片也是 A4 格式,所以这应该不是问题。
我想要的目标:
- 单页:全图
- 下一页:只是另一张小图片
我们将图片称为 xx(大)和 yy(小)。我只关心 xx
我有这个 MWE
\documentclass[a4paper]{scrreprt}
\usepackage{geometry}
\usepackage{graphicx}
\pagestyle{empty}
\parindent0pt
\begin{document}
\newgeometry{left=0mm, right=0mm, top=0mm, bottom=0mm}
\includegraphics[width=.999\textwidth,height=.999\textheight,keepaspectratio]{xx}
\newgeometry{left=10mm, right=10mm, top=10mm, bottom=10mm}
\includegraphics[width=12cm]{yy}
\newgeometry{left=0mm, right=0mm, top=0mm, bottom=0mm}
\includegraphics[width=1\textwidth,height=1\textheight,keepaspectratio]{xx}
\newgeometry{left=10mm, right=10mm, top=10mm, bottom=10mm}
\includegraphics[width=8cm]{yy}
\end{document}
第一张图片的问题是,在右侧和下边缘有一条小而烦人的白线。第二张大图片的问题是,在实际的图片页面之前生成了一个空白页。但我不知道为什么。我该怎么办?
这是我使用的图片(作为xx),yy图片我真的不在乎,这不是问题。
答案1
可能有点过头了,但如果您使用 TikZ 来定位您的图像,您就不必担心来回更改页面几何形状。
如果您想要精确填充整个页面,我会放弃该keepaspectratio
选项。您的图像可能会略微扭曲,但如果图像的尺寸不完全正确,则不会出现白边。
\documentclass[a4paper]{scrreprt}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[remember picture,overlay,inner sep=0pt,outer sep=0pt]
\node at (current page.center) {\includegraphics[width=\paperwidth,height=\paperheight]{example-image-duck}};
\end{tikzpicture}
\clearpage
next page
\end{document}
答案2
1.0 仅height=\pageheight
当您不想弹出伪页面时才使用。如果您不想出现扭曲的图像,则图像的纵横比必须与页面相同。
2.0 将图像放在 0pt 框中,并使用 Tikz 将其放置在页面的中心,或者使用 LaTeX2e 中的 shipout 钩子并使用 进行定位picture
。
3.0 如果将所有边距的几何形状设置为 0pt,则可以使用:
\newpage
\ExplSyntaxOn
\dim_set:Nn\l_tmpa_dim{\paperwidth/2}
\hspace*{\l_tmpa_dim}\makebox[0pt]{\includegraphics[height=\paperheight]{example-image-duck}}
\ExplSyntaxOff
或者简单地说\hspace*{105mm}
,它是的一半\pagewidth
,这个解决方案不需要 Tikz。
\documentclass[a4paper]{scrreprt}
\usepackage{tikz}
\begin{document}
\null % leave a blank to view double page in pdf viewer
\newpage %
\begin{tikzpicture}[remember picture,overlay,inner sep=0pt,outer sep=0pt]
\node at (current page.center) {\makebox[0pt]{\includegraphics[height=\paperheight]{example-image-duck}}};
\end{tikzpicture}
\newpage
\begin{tikzpicture}[remember picture,overlay,inner sep=0pt,outer sep=0pt]
\node at (current page.center) {\makebox[0pt]{\includegraphics[height=\paperheight]{roots}}};
\end{tikzpicture}
\newpage
\begin{tikzpicture}[remember picture,overlay,inner sep=0pt,outer sep=0pt]
\node at (current page.center) {\makebox[0pt]{\includegraphics[width=\paperheight]{roots}}};
\end{tikzpicture}
\newpage
\begin{tikzpicture}[remember picture,overlay,inner sep=0pt,outer sep=0pt]
\node at (current page.center) {\makebox[0pt]{\includegraphics[width=\paperheight,height=\paperheight]{roots}}};
\end{tikzpicture}
\end{document}