我想包含一張圖片,使其覆蓋頁面的 100%。從邊緣到邊緣,沒有空白,只有圖片。我用的是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}