Я хочу включить картинку, чтобы она покрывала 100% страницы. От края до края, без пробелов, только картинка. Я использую бумагу формата А4 (европейский стиль), и картинка также имеет формат А4, так что это не должно быть проблемой.
Цель, которую я хочу достичь:
- одна страница: полная с изображением
- следующая страница: просто еще одна маленькая картинка
Давайте назовем картинку 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 или используйте хук shipout из LaTeX2e и разместите его с помощью 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}