我目前正在为自己和一些同事设计一个应用程序模板,我对 \backgroundsetup 遇到了一些小麻烦。
我所期望的文档结构应如下
\begin{document}
\begin{coverletter}
some text
\end{coverletter}
\begin{application}
some text
\end{application}
and so on
\end{document}
在每个环境中,我都想根据 pdf 文件设置背景。但是,如果我在 \newenvironment 或 \NewEnviron 中调用 \backgroundsetup,它不起作用。
有人能帮我解决这个问题吗?
这是一个最小的例子
\documentclass{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{environ}
\usepackage[pages=all]{background}
\backgroundsetup{
scale=1,
opacity=1,
angle=0
}
\newcommand*{\setbackground}[1]{\backgroundsetup{contents={\includegraphics[height=303mm, width=216mm]{#1}}}}
\NewEnviron{coverletter}{\setbackground{bg}\BODY}
%\setbackground{bg}
\begin{document}
\begin{coverletter}
This is a test
\end{coverletter}
\end{document}
bg 是背景图像,可以与任何 DinA4 pdf 文档一起使用。
提前谢谢了!
答案1
经过一番修改,我最终得到了以下代码。以防将来有人想做类似的事情。
\newcommand{\topbar}{\draw[fill=dark, draw=none] (0,0) rectangle (216mm,-83mm);}
\newcommand{\narrowtopbar}{\draw[fill=dark, draw=none] (0,0) rectangle (216mm,-23mm);}
\newcommand{\sidepanel}{\draw[fill=light, draw=none] (13mm,-23mm) rectangle (83mm,-280mm);}
\newcommand{\footer}{\draw[fill=light, draw=none] (0mm,-303mm) rectangle (216mm,-290mm);%
\filldraw [fill=dark, draw=none] (184mm,-292.5mm) coordinate (GeneralStart) -- ++(0,0) -- ++(+3.2,0) -- ++(0,-1.05) -- ++(-4.0,0) -- cycle;}
\newcommand{\setbg}[1]{%
\AtBeginPage{%
\begin{tikzpicture}[remember picture,overlay]
\node[xshift=-108mm, yshift=151.5mm] at (current page.center)
{%
\begin{tikzpicture}[remember picture, overlay]%
#1
\end{tikzpicture}
};
\end{tikzpicture}
}}
然后我可以调用\setbg{\topbar\sidepanel\footer}\clearpage
来设置我的页面背景。请注意,\AtBeginPage
命令由 bophook 包提供。