后台包命令 \backgroundsetup 在环境中不起作用

后台包命令 \backgroundsetup 在环境中不起作用

我目前正在为自己和一些同事设计一个应用程序模板,我对 \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 包提供。

相关内容