diff options
author | Karl Berry <karl@freefriends.org> | 2009-11-16 19:54:47 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2009-11-16 19:54:47 +0000 |
commit | e8c2ee1869c4f626395c3c2c85e2a2e48e403712 (patch) | |
tree | 818f69a72f5c84a60748d756aee24888fc278795 /Master/texmf-dist | |
parent | a4d8f696b0807d001fa89b52b59552a669709a69 (diff) |
new latex package background (8nov09)
git-svn-id: svn://tug.org/texlive/trunk@16034 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist')
-rw-r--r-- | Master/texmf-dist/doc/latex/background/README | 15 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/background/background.pdf | bin | 0 -> 124214 bytes | |||
-rw-r--r-- | Master/texmf-dist/source/latex/background/background.dtx | 554 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/background/background.ins | 38 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/background/background.sty | 107 |
5 files changed, 714 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/background/README b/Master/texmf-dist/doc/latex/background/README new file mode 100644 index 00000000000..957e28e6a44 --- /dev/null +++ b/Master/texmf-dist/doc/latex/background/README @@ -0,0 +1,15 @@ +========================================================================== + +The `background' package +Copyright (C) 2009 Gonzalo Medina (gmedinaar@unal.edu.co) + +License: LPPL = LaTeX Project Public Licence +Maintenance Status: maintained (by Gonzalo Medina) + +--------------------------------------------------------------------------------------------------------------------------------------------------- + +The `background' package v1.0 offers the placement of background material +on the pages of a document. The user can control many aspects (i.e., contents, +position, color, opacity) of the background material that will be displayed. + +========================================================================== diff --git a/Master/texmf-dist/doc/latex/background/background.pdf b/Master/texmf-dist/doc/latex/background/background.pdf Binary files differnew file mode 100644 index 00000000000..d94e5340d2a --- /dev/null +++ b/Master/texmf-dist/doc/latex/background/background.pdf diff --git a/Master/texmf-dist/source/latex/background/background.dtx b/Master/texmf-dist/source/latex/background/background.dtx new file mode 100644 index 00000000000..4ad12d77780 --- /dev/null +++ b/Master/texmf-dist/source/latex/background/background.dtx @@ -0,0 +1,554 @@ +% \iffalse meta-comment +% +% Copyright (C) 2009 by Gonzalo Medina +% +% -------------------------------------------------------------------------- +% +% This file may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3 +% of this license or (at your option) any later version. +% The latest version of this license is in: +% +% http://www.latex-project.org/lppl.txt +% +% and version 1.3 or later is part of all distributions of LaTeX +% version 2003/12/01 or later. +% +% This work has the LPPL maintenance status `maintained'. +% +% The Current Maintainer of this work is Gonzalo Medina. +% +% This work consists of the files background.dtx and background.ins, +% and the derived files background.sty and background.pdf. +% +% \fi +% +% \iffalse +% +%<*driver> +\documentclass{ltxdoc} +\usepackage{booktabs} +\usepackage{xcolor} +\usepackage{ragged2e} +\usepackage{amsthm} +\usepackage{ifpdf} +\ifpdf + \usepackage[top]{background} + \SetBgContents{-\thepage-} + \SetBgAngle{0} + \SetBgColor{black!40} + \SetBgScale{4} + \SetBgHshift{60} + \SetBgVshift{-5} + \usepackage{mathptmx,courier} + \usepackage[scaled=.9]{helvet} +\fi +\usepackage{hypdoc} +\ifpdf + \usepackage{hypdestopt} +\fi +\hypersetup{pdfkeywords={LaTeX, package, background},% + pdfstartpage={},pdfstartview={},breaklinks=true,% + linktocpage} + +\newcommand\MarNote[1]{\marginpar{\RaggedLeft\textcolor{blue}{#1}}} +\newcommand*\package[1]{{\upshape\mdseries\sffamily #1}} + +\theoremstyle{remark} +\newtheorem{exam}{Example} + +\setlength\parindent{0pt} + +\pagestyle{empty} +\makeatletter + \let\ps@titlepage\ps@empty +\makeatother + +\usepackage{titletoc} +\titlecontents*{section}[0pt] + {\itshape}{}{} + {, \thecontentspage}[\ --\ ][.] +\titlecontents*{subsection}[0pt] + {\upshape\small}{}{} + {, \thecontentspage}[ (][. ][)] +\setcounter{tocdepth}{2} +\EnableCrossrefs +\CodelineIndex +\RecordChanges + +\begin{document} +\DocInput{background.dtx} +\end{document} +%</driver> +% \fi +% +% \CharacterTable +% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +% Digits \0\1\2\3\4\5\6\7\8\9 +% Exclamation \! Double quote \" Hash (number) \# +% Dollar \$ Percent \% Ampersand \& +% Acute accent \' Left paren \( Right paren \) +% Asterisk \* Plus \+ Comma \, +% Minus \- Point \. Solidus \/ +% Colon \: Semicolon \; Less than \< +% Equals \= Greater than \> Question mark \? +% Commercial at \@ Left bracket \[ Backslash \\ +% Right bracket \] Circumflex \^ Underscore \_ +% Grave accent \` Left brace \{ Vertical bar \| +% Right brace \} Tilde \~} +% +% \CheckSum{127} +% +% \changes{v 1.0}{2009/11/07}{First version} +% +% \GetFileInfo{background.sty} +% +% \title{The \package{background} package\\ +% {\footnotesize\fileversion , dated \filedate.}} +% \author{Gonzalo Medina\\% +% Universidad Nacional de Colombia -- Sede Manizales\\% +% Departamento de Matem\'aticas y Estad\'istica\\ +% \texttt{gmedinaar@unal.edu.co}} +% +% \maketitle +% +% \begin{abstract} +% \noindent This package allows the placement of background material on the pages of a +% document. The user can control many aspects (i.e., contents, position, color, opacity) of the +% background material that will be displayed. +% \end{abstract} +% \tableofcontents +% \section{Introduction} +% The \package{background} package relies on the \package{TikZ} and \package{everypar} +% packages to provide a simple and flexible mechanism to include background material on all +% (or on some of) the pages of a \LaTeX2e document. +% \par\medskip +% The implementation is quite simple and parallels the one of the \package{draftwatermark} +% package by Sergio Callegari, but adds greater control over the background material attributes. +% \par\medskip +% The author will gladly receive suggestions, comments and bug reports. +% +% \section{User Interface} +% +% Loading this package (without any package options) in the preamble of a document in the +% standard way: +% \begin{center} +% |\usepackage{background}| +% \end{center} +% activates a set of predefined options that will typeset the word "Draft" across every page of +% your document (from the lower left corner to the upper right corner), using +% \textcolor{red!45}{this color} and a huge font size. +% \par\medskip +% Of course, the package can be loaded using some of the options described in the next section; +% for example: +% \begin{center} +% |\usepackage[some,bottom]{background}| +% \end{center} +% +% \subsection{Package Options} +% Table~\ref{tab:options} shows the available package options\MarNote{By +% default, the package loads the options |all| and |center|.} and their meaning. Obviously, the +% options |all| and |some| are mutually exclusive; the same remark applies to the group of options +% |center|, |bottom|, and |top|. +% \par\medskip +% Take into account that using the |some| option will cause no background material to be displayed +% at all and the user will have to issue the command |\BgThispage| for each page +% in which he/she desires the background material to appear (see example \ref{exa:bgthispage}). +% +% \begin{table}[!ht] +% \centering +% \begin{tabular}{rp{6cm}}\toprule +% Option & Meaning\\\toprule +% |all| & The background material will be displayed in all the pages.\\ +% |some| & The background material will be displayed only in the pages for which the +% |\BgThispage| command was used.\\ +% |center| & The background material will be displayed diagonally.\\ +% |bottom| & The background material will be displayed horizontally at the bottom of the page.\\ +% |top| & The background material will be displayed horizontally at the top of the page. +% \\\bottomrule +% \end{tabular} +% \caption{The package options.} +% \label{tab:options} +% \end{table} +% +% \subsection{User Commands} +% Since the commands used to modify attributes of the background material depend on the +% |\node| construct offered by the \package{TikZ} package, we strongly encourage the reading +% of Till Tantau's +% \href{http://mirror.ctan.org/graphics/pgf/base/doc/generic/pgf/pgfmanual.pdf}% +% {\emph{PGF/TikZ package manual}}. +% \par\medskip +% \DescribeMacro{\SetBgContents} +% This command allows the user to change the material that will be used as background. The usage +% is +% \begin{center} +% |\SetBgContents{|\meta{material}|}| + % \end{center} +% where \meta{material} can be any text or an image (via the |\includegraphics| command +% from the \package{graphicx} package) or even a graphic created, for example, with the +% \package{TikZ} package. +% \par\medskip +% \DescribeMacro{\SetBgColor} +% This command allows the user to change the color that will be used for the background material if % such material is text. The usage is +% \begin{center} +% |\SetBgContents{|\meta{color}|}| +% \end{center} +% where \meta{color} can be any color set by the \package{xcolor} package. +% \par\medskip +% \DescribeMacro{\SetBgAngle} +% This command allows the user to change the angle that will be used for displaying the background % material. The usage is +% \begin{center} +% |\SetBgContents{|\meta{degrees}|}| +% \end{center} +% where \meta{degrees} can be any value between $-360$ and $360$. +% \par\medskip +% \DescribeMacro{\SetBgOpacity} +% This command allows the user to change the transparency level for the background material. The % usage is +% \begin{center} +% |\SetBgOpacity{|\meta{value}|}| +% \end{center} +% where \meta{value} can be any number between $0$ (full transparency) and $1$ (no +% transparency at all). +% \par\medskip +% \DescribeMacro{\SetBgScale} +% This command allows the user to change the scaling factor that will be applied to the background +% material. The usage is +% \begin{center} +% |\SetBgScale{|\meta{factor}|}| +% \end{center} +% where \meta{factor} can be any positive value. +% \par\medskip +% \par\medskip +% \DescribeMacro{\SetBgPosition} +% This command allows the user to define the position of the background +% material. The usage is +% \begin{center} +% |\SetBgPosition{|\meta{position}|}| +% \end{center} +% where \meta{position} can be any valid\MarNote{Do not enclose \meta{position} inside +% parentheses} position accepted by the |at| syntax for nodes placement (see the TikZ +% manual). Some examples of valid positions are +% \begin{center} +% |\SetBgPosition{0,0}|\\ +% |\SetBgPosition{current page.north}|\\ +% |\SetBgPosition{5cm,7cm}| +% \end{center} +% \par\medskip +% \DescribeMacro{\SetBgAnchor} +% This command allows the user to set the anchor for the node placement. The usage is +% \begin{center} +% |\SetBgAnchor{|\meta{anchor name}|}| +% \end{center} +% Typical examples are: +% \begin{center} +% |\SetBgAnchor{north east}|\\ +% |\SetBgAnchor{west}|\\ +% \end{center} +% \par\medskip +% \DescribeMacro{\SetBgHshift} +% \DescribeMacro{\SetBgVshift} +% These two commands control the horizontal and vertical shifting of the node position. +% \begin{center} +% |\SetBgHshift{|\meta{value}|}|\\ +% |\SetBgVshift{|\meta{value}|}| +% \end{center} +% \par\medskip +% The following two commands are designed to give the user control on whether the background +% material should or should not appear on specific pages of the document. +% \par\medskip +% \DescribeMacro{\BgThispage} +% This command permits to select particular pages in which the background material will +% be displayed (see example \ref{exa:bgthispage}). +% +% \subsubsection{Experimental} +% \DescribeMacro{\NoBgThispage} +% This command will prevent the background material to be displayed in the page where it +% \MarNote{Do not use this command in two column mode.} +% was issued. Its implementation depends on the \package{afterpage} package, +% so the corresponding precautions must be taken into account (see example +% \ref{exa:nobgthispage}) . +% +% \section{Examples} +% In the following examples, the \package{lipsum} package was used only to automatically +% generate text. +% \begin{exam} +% This example shows how to display the background material only on the first two pages of +% the document: +% \end{exam} +% |\documentclass{article}|\\ +% |\usepackage{background}|\\ +% |\usepackage{lipsum}|\\ +% +% |\begin{document}|\\ +% |\lipsum[1-10]|\\ +% |\newpage\SetBgContents{}|\\ +% |\lipsum[1-30]|\\ +% |\end{document}| +% \begin{exam} +% This example imitates the page numbering format used in this document: +% \end{exam} +% |\documentclass{article}|\\ +% |\usepackage[top]{background}|\\ +% |\usepackage{lipsum}|\\ +% +% |\SetBgContents{-\thepage-}|\\ +% |\SetBgAngle{0}|\\ +% |\SetBgColor{black!40}|\\ +% |\SetBgScale{4}|\\ +% |\SetBgHshift{60}|\\ +% |\SetBgVshift{-5}|\\ +% +% |\pagestyle{empty}|\\ +% +% |\begin{document}|\\ +% |\lipsum[1-30]|\\ +% |\end{document}| +% +% \begin{exam}\label{exa:bgthispage} +% This example illustrates how to use of the |\BgThispage| command to add background material +% on selected pages. +% \end{exam} +% |\documentclass{article}|\\ +% |\usepackage[some,top]{background}|\\ +% |\usepackage{lipsum}|\\ +% +% |\begin{document}|\\ +% |\lipsum[1-5]|\\ +% |\newpage|\\ +% |\SetBgContents{A}\SetBgColor{yellow}|\\ +% |\BgThispage|\\ +% |\lipsum[1-5]|\\ +% |\newpage|\\ +% |\SetBgContents{B}\SetBgColor{blue}|\\ +% |\BgThispage|\\ +% |\lipsum[1-5]|\\ +% |\end{document}| +% +% \begin{exam} +% This example shows how to proceed in order to obtain different background material for the +% odd and even pages of a document. +% \end{exam} +% |\documentclass{article}|\\ +% |\usepackage{background}|\\ +% |\usepackage{lipsum}|\\ +% |\usepackage{ifthen}|\\ +% +% |\SetBgContents{}|\\ +% |\SetBgOpacity{1}|\\ +% |\SetBgScale{1.5}|\\ +% |\makeatletter|\\ +% |\AddEverypageHook{%|\\ +% | \ifthenelse{\isodd{\thepage}}%|\\ +% | {\SetBgAngle{90}%|\\ +% | \SetBgPosition{0,-.7\textheight}%|\\ +% | \SetBgColor{blue!90}%|\\ +% | \SetBgContents{The background package}}%|\\ +% | {\SetBgAngle{270}%|\\ +% | \SetBgPosition{1.35\textwidth,-.7\textheight}%|\\ +% | \SetBgContents{First version}}%|\\ +% | \bg@material}|\\ +% |\makeatother|\\ +% +% |\begin{document}|\\ +% |\lipsum[1-30]|\\ +% |\end{document}| +% +% \begin{exam}\label{exa:nobgthispage} +% This example\MarNote{Adding the |twocolumn| class option will produce compilation errors} +% illustrates the use of the |\NoBgThispage| command, to +% suppress the background material on selected pages (page 2, in this case). +% \end{exam} +% |\documentclass{article}|\\ +% |\usepackage{background}|\\ +% |\usepackage{lipsum}|\\ +% +% |\begin{document}|\\ +% |\lipsum[1-5]|\\ +% |\newpage\NoBgThispage|\\ +% |\lipsum[1-5]|\\ +% |\newpage|\\ +% |\lipsum[1-20]|\\ +% |\end{document}| +% +% \DoNotIndex{\#,\$,\%,\&,\@,\\,\{,\},\^,\_,\~,\ } +% \DoNotIndex{\advance,\begingroup,\begin,\catcode,\closein} +% \DoNotIndex{\closeout,\day,\def,\edef,\else,\end,\empty,\endgroup,\fi} +% \DoNotIndex{\let,\newcommand,\renewcommand} +% +% \StopEventually{\PrintIndex} +% +% \section{Implementation} +% +% Standard identification: +% \begin{macrocode} +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{background}[2009/11/07 v1.0 bg material] +% \end{macrocode} +% +% Now we load the packages that will be used: +% +% \begin{macrocode} + +\RequirePackage{everypage} +\RequirePackage{tikz} +\RequirePackage{afterpage} +% \end{macrocode} +% +% \begin{macro}{\bg@some} +% A boolean (initially set to |false|) to control whether the background material will be displayed in +% every page or not. +% \begin{macrocode} + +\newif\ifbg@some + \bg@somefalse +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\bg@contents} +% \begin{macro}{\bg@color} +% \begin{macro}{\bg@angle} +% \begin{macro}{\bg@opacity} +% \begin{macro}{\bg@scale} +% \begin{macro}{\bg@position} +% \begin{macro}{\bg@anchor} +% \begin{macro}{\bg@hshift} +% \begin{macro}{\bg@vshift} +% We define the internal control commands and set their default value: +% \begin{macrocode} + +\def\bg@contents{Draft} +\def\bg@color{red!45} +\def\bg@angle{60} +\def\bg@opacity{.5} +\def\bg@scale{15} +\def\bg@position{current page.center} +\def\bg@anchor{} +\def\bg@hshift{0} +\def\bg@vshift{0} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% Now we declare the package options: +% \begin{macrocode} + +\DeclareOption{all}{\bg@somefalse} +\DeclareOption{some}{\bg@sometrue} +\DeclareOption{center}{% + \def\bg@position{current page.center}% + \def\bg@anchor{}% + \def\bg@angle{60}} +\DeclareOption{bottom}{% + \def\bg@position{current page.south}% + \def\bg@anchor{above}% + \def\bg@angle{0}% + \def\bg@scale{8}} +\DeclareOption{top}{% + \def\bg@position{current page.north}% + \def\bg@anchor{below}% + \def\bg@angle{0}% + \def\bg@scale{8}} +% \end{macrocode} +% +% We next execute and process options in the standard \LaTeX2e way: +% \begin{macrocode} + +\ExecuteOptions{all,center} +\ProcessOptions +% \end{macrocode} +% +% \begin{macro}{\SetBgContents} +% \begin{macro}{\SetBgColor} +% \begin{macro}{\SetBgAngle} +% \begin{macro}{\SetBgOpacity} +% \begin{macro}{\SetBgScale} +% \begin{macro}{\SetBgPosition} +% \begin{macro}{\SetBgAnchor} +% \begin{macro}{\SetBgHshift} +% \begin{macro}{\SetBgVshift} +% Now comes the definition of the user commands: +% \begin{macrocode} + +\newcommand*\SetBgContents[1]{% + \def\bg@contents{#1}} +\newcommand*\SetBgColor[1]{% + \def\bg@color{#1}} +\newcommand*\SetBgAngle[1]{% + \def\bg@angle{#1}} +\newcommand*\SetBgOpacity[1]{% + \def\bg@opacity{#1}} +\newcommand*\SetBgScale[1]{% + \def\bg@scale{#1}} +\newcommand*\SetBgPosition[1]{% + \def\bg@position{#1}} +\newcommand*\SetBgAnchor[1]{% + \def\bg@anchor{#1}} +\newcommand*\SetBgHshift[1]{% + \def\bg@hshift{#1}} +\newcommand*\SetBgVshift[1]{% + \def\bg@vshift{#1}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\bg@material} +% Our main command uses a simple |\node| construct to build the background material. +% \begin{macrocode} + +\newcommand\bg@material{% + \begin{tikzpicture}[remember picture,overlay] + \node [rotate=\bg@angle,scale=\bg@scale,opacity=\bg@opacity,% + xshift=\bg@hshift,yshift=\bg@vshift,color=\bg@color] + at (\bg@position) [\bg@anchor] {\bg@contents}; + \end{tikzpicture}}% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\BgThispage} +% A simple application of the |AddThispageHook| command provided by the \package{everypage} +% package. +% \begin{macrocode} +\newcommand\BgThispage{\AddThispageHook{\bg@material}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\NoBgThispage} +% A hack that perhaps admits improvements. We make a copy of |\bg@material|, and redefine +% it to be empty on the current page. Then we use the |afterpage| command to restore the +% original background material. +% \begin{macrocode} + +\newcommand\NoBgThispage{% + \let\oldbg@material\bg@material\renewcommand\bg@material{}% + \afterpage{\AddEverypageHook{\oldbg@material}}} +% \end{macrocode} +% \end{macro} +% +% Finally, we check for the boolean |bg@some|; if it is |true|, then no background material is +% added; otherwise, the material will be added using the |AddEverypageHook| command. +% \begin{macrocode} + +\ifbg@some + \AddThispageHook{} +\else + \AddEverypageHook{\bg@material} +\fi +% \end{macrocode} +% +% \Finale +\endinput diff --git a/Master/texmf-dist/source/latex/background/background.ins b/Master/texmf-dist/source/latex/background/background.ins new file mode 100644 index 00000000000..9cb1e43e269 --- /dev/null +++ b/Master/texmf-dist/source/latex/background/background.ins @@ -0,0 +1,38 @@ +\input docstrip.tex
+\keepsilent
+\preamble
+
+Copyright (C) 2009 Gonzalo Medina (gmedinaar@unal.edu.co)
+
+--------------------------------------------------------------------------
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either version 1.3
+of this license or (at your option) any later version.
+The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of LaTeX
+version 2003/12/01 or later.
+
+This work has the LPPL maintenance status "maintained".
+
+The Current Maintainer of this work is Gonzalo Medina.
+
+This work consists of the files background.ins, background.dtx,
+and the derived files background.sty and background.pdf.
+
+\endpreamble
+\generate{\file{background.sty}{\from{background.dtx}{package}}}
+\Msg{*********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the}
+\Msg{* following file into a directory searched by TeX:}
+\Msg{* }
+\Msg{* \space\space background.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the file background.dtx}
+\Msg{* through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing!}
+\Msg{*********************************************************}
+\endbatchfile
\ No newline at end of file diff --git a/Master/texmf-dist/tex/latex/background/background.sty b/Master/texmf-dist/tex/latex/background/background.sty new file mode 100644 index 00000000000..314c090a90a --- /dev/null +++ b/Master/texmf-dist/tex/latex/background/background.sty @@ -0,0 +1,107 @@ +%% +%% This is file `background.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% background.dtx (with options: `package') +%% +%% Copyright (C) 2009 Gonzalo Medina (gmedinaar@unal.edu.co) +%% +%% -------------------------------------------------------------------------- +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2003/12/01 or later. +%% +%% This work has the LPPL maintenance status "maintained". +%% +%% The Current Maintainer of this work is Gonzalo Medina. +%% +%% This work consists of the files background.ins, background.dtx, +%% and the derived files background.sty and background.pdf. +%% + % \end{center} +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{background}[2009/11/07 v1.0 bg material] + +\RequirePackage{everypage} +\RequirePackage{tikz} +\RequirePackage{afterpage} + +\newif\ifbg@some + \bg@somefalse + +\def\bg@contents{Draft} +\def\bg@color{red!45} +\def\bg@angle{60} +\def\bg@opacity{.5} +\def\bg@scale{15} +\def\bg@position{current page.center} +\def\bg@anchor{} +\def\bg@hshift{0} +\def\bg@vshift{0} + +\DeclareOption{all}{\bg@somefalse} +\DeclareOption{some}{\bg@sometrue} +\DeclareOption{center}{% + \def\bg@position{current page.center}% + \def\bg@anchor{}% + \def\bg@angle{60}} +\DeclareOption{bottom}{% + \def\bg@position{current page.south}% + \def\bg@anchor{above}% + \def\bg@angle{0}% + \def\bg@scale{8}} +\DeclareOption{top}{% + \def\bg@position{current page.north}% + \def\bg@anchor{below}% + \def\bg@angle{0}% + \def\bg@scale{8}} + +\ExecuteOptions{all,center} +\ProcessOptions + +\newcommand*\SetBgContents[1]{% + \def\bg@contents{#1}} +\newcommand*\SetBgColor[1]{% + \def\bg@color{#1}} +\newcommand*\SetBgAngle[1]{% + \def\bg@angle{#1}} +\newcommand*\SetBgOpacity[1]{% + \def\bg@opacity{#1}} +\newcommand*\SetBgScale[1]{% + \def\bg@scale{#1}} +\newcommand*\SetBgPosition[1]{% + \def\bg@position{#1}} +\newcommand*\SetBgAnchor[1]{% + \def\bg@anchor{#1}} +\newcommand*\SetBgHshift[1]{% + \def\bg@hshift{#1}} +\newcommand*\SetBgVshift[1]{% + \def\bg@vshift{#1}} + +\newcommand\bg@material{% + \begin{tikzpicture}[remember picture,overlay] + \node [rotate=\bg@angle,scale=\bg@scale,opacity=\bg@opacity,% + xshift=\bg@hshift,yshift=\bg@vshift,color=\bg@color] + at (\bg@position) [\bg@anchor] {\bg@contents}; + \end{tikzpicture}}% +\newcommand\BgThispage{\AddThispageHook{\bg@material}} + +\newcommand\NoBgThispage{% + \let\oldbg@material\bg@material\renewcommand\bg@material{}% + \afterpage{\AddEverypageHook{\oldbg@material}}} + +\ifbg@some + \AddThispageHook{} +\else + \AddEverypageHook{\bg@material} +\fi +\endinput +%% +%% End of file `background.sty'. |