对于海报,我希望有一张图片填满整个页面。这张图片应该像我的其他内容一样在 tikz 环境中绘制。但是,当图像纵横比与纸张纵横比相差很大时,graphicx 似乎无法重新缩放。我的代码如下:
\documentclass[]{extarticle}
\usepackage[a0paper,margin=0cm]{geometry}
\usepackage{tikz}
\pagestyle{empty}
\setlength{\parindent}{0pt}
\begin{document}
\begin{tikzpicture}
% draw generic background
\draw[white,line width=0pt] (-.5\textwidth, -.5\textheight) rectangle (.5\textwidth, .5\textheight);
% draw image
\pgftext[center,at={\pgfpoint{0}{0}}]{\includegraphics[width=\textwidth,height=\textheight]{test.jpg}}
\end{tikzpicture}
\end{document}
我使用背景用 tikz 环境填充整个页面,这样 (0,0) 位于页面的中心,我可以根据需要定位其他 tikz 对象。只要我使用与页面紧密贴合的图像,或者如果我使用命令includegraphics[width=\textwidth,height=\textheight,keepaspectratio]
,图像就会正确缩放。否则,我会得到空白的第一页,而我的内容在第二页。换句话说,图像不适合页面大小,它太大了!我该如何防止发生此错误?或者有没有更好的方法在 tikz 环境中绘制图像?
答案1
这是一个简单的解决方案,没有\pgftext
(不要混合 pgf 和 TikZ)和margin=0cm
,并使用remember picture
andoverlay
选项,特殊current page
节点和\paperwidth
x \paperheight
:
\documentclass[]{extarticle}
\usepackage[a0paper]{geometry}
\usepackage{tikz}
\pagestyle{empty}
\begin{document}
\begin{tikzpicture}[remember picture,overlay]
% draw image
\node[inner sep=0] at (current page.center)
{\includegraphics[width=\paperwidth,height=\paperheight]{example-image}};
\end{tikzpicture}
\end{document}