为了制作一个完美适合页面的背景图像,我尝试了两种方法。第一种方法是使用一个文档类,其中页面的尺寸可以设置为 A4,结果如下。
\documentclass[a4paper]{article}
\usepackage{graphicx,tikz}
\usepackage[margin=0cm]{geometry}
\begin{document}
\noindent\resizebox{\pdfpagewidth}{\pdfpageheight}{
\begin{tikzpicture}
\draw (0,0) -- (1,0) -- (1,1) -- (0,1) -- cycle;
\end{tikzpicture}
}
\end{document}
另一件事是查找 A4 的尺寸(以点为单位),我找到了答案A4 尺寸错误?(与 21x29.7cm 一致),然后使用以下代码制作具有这些长度的独立产品。
\documentclass{standalone}
\usepackage{graphicx,tikz}
\begin{document}
\noindent\resizebox{595.276pt}{841.89pt}{
\begin{tikzpicture}
\draw (0,0) -- (1,0) -- (1,1) -- (0,1) -- cycle;
\end{tikzpicture}
}
\end{document}
这里我只是画了一个矩形以确保它覆盖了整个页面,但不幸的是它并没有覆盖,如下图所示(将纸张颜色改为灰色以使其可见)。两个 tex 文件都给出了相同的输出,因此只有一个图像。
现在我怀疑是tikz
出现了这个错误,并尝试使用picture
:
\documentclass{standalone}
\usepackage{graphicx,tikz}
\begin{document}
\begin{picture}(595.276,841.89)
\linethickness{10pt}
\multiput(0,0)(595.276,0){2}{\line(0,1){841.89}}
\multiput(0,0)(0,841.89){2}{\line(1,0){595.276}}
\end{picture}
\end{document}
这有效,产生了下一个图像(这次只是为了保持一致性而使用灰色)。
该图像被用作背景
\documentclass[a4paper]{article}
\usepackage{graphicx,lipsum} % lipsum for the filling text
\usepackage{wallpaper}
\begin{document}
\CenterWallPaper{1}{img/bg2}
\lipsum[1-5]
\end{document}
现在我想就一件事提出一个争论的意见,并提出两个问题:
- 制作一个具有 A4 尺寸的独立文件(可能不精确)会更好吗?或者使用已经具有正确尺寸的文档类(例如
[a4paper]{article}
)? - 如何
tikz
填充图像,或将图像缩放至页面的宽度和高度?图片环境对于大多数用途来说还不够。 \setlength\unitlength{1pt}
当在环境上方添加 线条时picture
,线条会发生偏移,并且生成的文档在图像的顶部和底部会出现多余的白色。这是怎么发生的?如何解决?
答案1
如果您想使用wallpaper
并插入背景作为图像,您可以使用以下代码:
\documentclass[a4paper]{article}
\usepackage{graphicx,lipsum} % lipsum for the filling text
\usepackage{wallpaper}
\usepackage{filecontents}
%%------------------- The background---------------
\begin{filecontents*}{bg2.tex}
\documentclass[a4paper]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[remember picture]
\draw[magenta,fill=gray!30, line width = 4pt] (current page.south west) rectangle (current page.north east);
\end{tikzpicture}
\end{document}
\end{filecontents*}
%%-------------------
% compile with bg2.tex pdflatex
\immediate\write18{pdflatex bg2}
\begin{document}
\CenterWallPaper{1}{bg2}
\lipsum[1-5]
\end{document}
您必须使用 来编译它。但是使用 tikz,可以使用和--shell escape
直接完成。remember picture
overlay
\documentclass[a4paper]{article}
\usepackage{tikz}
\usepackage{lipsum} % lipsum for the filling text
\begin{document}
%%------------------- The background---------------
\begin{tikzpicture}[remember picture,overlay]
\draw[magenta,fill=gray!30, line width = 4pt] (current page.south west) rectangle (current page.north east);
\end{tikzpicture}
%%-------------------
\lipsum[1-5]
\end{document}
这两种代码都需要至少两次编译才能稳定下来。
答案2
需要注意的是,我需要答案模式,因为评论不允许多行代码。当应用 Harish 如此迅速想出的这个背景时全部页,background
可以使用该包。不知何故,它就没有必要[overlay, remember picture]
像 Jake 建议的那样使用了。使用完全相同(而且非常漂亮)的粉色样式,多页示例将如下所示。
\documentclass{article}
\usepackage{background,lipsum,tikz}
\begin{document}
\backgroundsetup{angle=0,scale=1,contents=
\tikz{
\draw[magenta,fill=gray!30, line width = 4pt]
(current page.south west) rectangle (current page.north east);
}
}
\lipsum[1-5]
\newpage
\lipsum[6-10]
\end{document}