% \iffalse meta-comment % % File: pagecolor.dtx % Version: 2017/05/29 v1.0i % % Copyright (C) 2011 - 2017 by % H.-Martin M"unch % % This work may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either % version 1.3c of this license or (at your option) any later % version. This version of this license is in % http://www.latex-project.org/lppl/lppl-1-3c.txt % and the latest version of this license is in % http://www.latex-project.org/lppl.txt % and version 1.3c or later is part of all distributions of % LaTeX version 2005/12/01 or later. % % This work has the LPPL maintenance status "maintained". % % The Current Maintainer of this work is H.-Martin Muench. % % This work consists of the main source file pagecolor.dtx, % the README, and the derived files % pagecolor.sty, pagecolor.pdf, % pagecolor.ins, pagecolor.drv, % pagecolor-example.tex, pagecolor-example.pdf. % % 'pagecolor' is available on CTAN: % https://www.ctan.org/pkg/pagecolor % % Also a TDS.ZIP file is provided that contains all the files % already sorted in a TDS tree: % http://mirror.ctan.org/install/macros/latex/contrib/pagecolor.tds.zip % %<*ignore> \begingroup \catcode123=1 % \catcode125=2 % \def\x{LaTeX2e}% \expandafter\endgroup \ifcase 0\ifx\install y1\fi\expandafter \ifx\csname processbatchFile\endcsname\relax\else1\fi \ifx\fmtname\x\else 1\fi\relax \else\csname fi\endcsname % %<*install> \input docstrip.tex \Msg{******************************************************************} \Msg{* Installation *} \Msg{* Package: pagecolor 2017/05/29 v1.0i Provides thepagecolor (HMM)*} \Msg{******************************************************************} \keepsilent \askforoverwritefalse \let\MetaPrefix\relax \preamble This is a generated file. Project: pagecolor Version: 2017/05/29 v1.0i Copyright (C) 2011 - 2017 by H.-Martin M"unch The usual disclaimer applies: If it doesn't work right that's your problem. (Nevertheless, send an e-mail to the maintainer when you find an error in this package.) This work may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.3c of this license or (at your option) any later version. This version of this license is in http://www.latex-project.org/lppl/lppl-1-3c.txt and the latest version of this license is in http://www.latex-project.org/lppl.txt and version 1.3c or later is part of all distributions of LaTeX version 2005/12/01 or later. This work has the LPPL maintenance status "maintained". The Current Maintainer of this work is H.-Martin Muench. This work consists of the main source file pagecolor.dtx, the README, and the derived files pagecolor.sty, pagecolor.pdf, pagecolor.ins, pagecolor.drv, pagecolor-example.tex, pagecolor-example.pdf. In memoriam Claudia Simone Barth + 1996/01/30 Tommy Muench + 2014/01/02 Hans-Klaus Muench + 2014/08/24 \endpreamble \let\MetaPrefix\DoubleperCent \generate{% \file{pagecolor.ins}{\from{pagecolor.dtx}{install}}% \file{pagecolor.drv}{\from{pagecolor.dtx}{driver}}% \usedir{tex/latex/pagecolor}% \file{pagecolor.sty}{\from{pagecolor.dtx}{package}}% \usedir{doc/latex/pagecolor}% \file{pagecolor-example.tex}{\from{pagecolor.dtx}{example}}% } \catcode32=13\relax% active space \let =\space% \Msg{************************************************************************} \Msg{*} \Msg{* To finish the installation you have to move the following} \Msg{* file into a directory searched by TeX:} \Msg{*} \Msg{* pagecolor.sty} \Msg{*} \Msg{* To produce the documentation run the file `pagecolor.drv'} \Msg{* through (pdf)LaTeX, e.g.} \Msg{* pdflatex pagecolor.drv} \Msg{* makeindex -s gind.ist pagecolor.idx} \Msg{* pdflatex pagecolor.drv} \Msg{* makeindex -s gind.ist pagecolor.idx} \Msg{* pdflatex pagecolor.drv} \Msg{*} \Msg{* At least three runs are necessary e.g. to get the} \Msg{* references right!} \Msg{*} \Msg{* Happy TeXing!} \Msg{*} \Msg{************************************************************************} \endbatchfile % %<*ignore> \fi % % % \section{The documentation driver file} % % The next bit of code contains the documentation driver file for % \TeX , i.\,e., the file that will produce the documentation you % are currently reading. It will be extracted from this file by the % \texttt{docstrip} programme. That is, run \LaTeX{} on \texttt{docstrip} % and specify the \texttt{driver} option when \texttt{docstrip} % asks for options. % % \begin{macrocode} %<*driver> \NeedsTeXFormat{LaTeX2e}[2014/05/01] \ProvidesFile{pagecolor.drv}% [2017/05/29 v1.0i Provides thepagecolor (HMM)] \documentclass{ltxdoc}[2014/09/29]% v2.0u \usepackage{xcolor}[2007/01/21]% v2.11 \definecolor{darkgreen}{rgb}{0.0, 0.3, 0.0}% \usepackage{holtxdoc}[2012/03/21]% v0.24 %% pagecolor may work with earlier versions of LaTeX2e and those %% class and package, but this was not tested. %% Please consider updating your LaTeX, class, and package %% to the most recent version (if they are not already the most %% recent version). \hypersetup{% pdfsubject={Providing the thepagecolor command (HMM)},% pdfkeywords={LaTeX, pagecolor, thepagecolor, H.-Martin Muench},% pdfencoding=auto,% pdflang={en},% breaklinks=true,% linktoc=all,% pdfstartview=FitH,% pdfpagelayout=OneColumn,% bookmarksnumbered=true,% bookmarksopen=true,% bookmarksopenlevel=3,% pdfmenubar=true,% pdftoolbar=true,% pdfwindowui=true,% pdfnewwindow=true% } \CodelineIndex \hyphenation{printing docu-ment} \gdef\unit#1{\mathord{\thinspace\mathrm{#1}}}% \begin{document} \DocInput{pagecolor.dtx}% \end{document} % % \end{macrocode} % % \fi % % \CheckSum{335} % % \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 \~} % % \GetFileInfo{pagecolor.drv} % % \begingroup % \def\x{\#,\$,\^,\_,\~,\ ,\&,\{,\},\%}% % \makeatletter % \@onelevel@sanitize\x % \expandafter\endgroup % \expandafter\DoNotIndex\expandafter{\x} % \expandafter\DoNotIndex\expandafter{\string\ } % \begingroup % \makeatletter % \lccode`9=32\relax % \lowercase{%^^A % \edef\x{\noexpand\DoNotIndex{\@backslashchar9}}%^^A % }%^^A % \expandafter\endgroup\x % % \DoNotIndex{\",\-,\,,\\,\noindent} % \DoNotIndex{\documentclass,\usepackage,\ProvidesPackage,\begin,\end} % \DoNotIndex{\MessageBreak} % \DoNotIndex{\NeedsTeXFormat,\DoNotIndex,\verb} % \DoNotIndex{\def,\edef,\gdef,\xdef,\global} % \DoNotIndex{\ifx,\listfiles,\mathord,\mathrm} % \DoNotIndex{\kvoptions,\SetupKeyvalOptions,\ProcessKeyvalOptions} % \DoNotIndex{\smallskip,\bigskip,\space,\thinspace,\ldots} % \DoNotIndex{\indent,\noindent,\newline,\linebreak,\pagebreak,\newpage} % \DoNotIndex{\textbf,\textit,\textsf,\texttt,\textsc} % \DoNotIndex{\textquotedblleft,\textquotedblright} % \DoNotIndex{\plainTeX,\TeX,\LaTeX,\pdfLaTeX} % \DoNotIndex{\section,\color,\pagenumbering} % \DoNotIndex{\pagecolourtmpa,\pagecolourtmpb,\pagecolourtmpc} % % \title{The \xpackage{pagecolor} package} % \date{2017/05/29 v1.0i} % \author{H.-Martin M\"{u}nch\\\xemail{Martin.Muench at Uni-Bonn.de}} % % \maketitle % % \begin{abstract} % This \LaTeX{} package provides the command |\thepagecolor|, % which gives the current page (background) colour, % \hbox{i.\,e. the} argument used with the most recent call of |\pagecolor{...}|. % The command |\thepagecolornone| gives the same colour as |\thepagecolor|, % except when the page background colour is % \textquotedblleft|none|\textquotedblright. In that case |\thepagecolor| is % |white| and |\thepagecolornone| is |none|.\\ % When |\nopagecolor| is unknown (e.\,g. \XeLaTeX ) or broken % (\xpackage{crop} package) this package provides a replacement. % Similar to |\newgeometry| and |\restoregeometry| of the \xpackage{geometry} % package\\ % |\newpagecolor{<|\textit{some colour} |>}| and |\restorepagecolor| % are provided. % \end{abstract} % % \bigskip % % \noindent Disclaimer for web links: The author is not responsible for any contents % referred to in this work unless he has full knowledge of illegal contents. % If any damage occurs by the use of information presented there, only the % author of the respective pages might be liable, not the one who has referred % to these pages. % % \bigskip % % \noindent {\color{darkgreen} Save per page about $200\unit{ml}$ water, % $2\unit{g}$ CO$_{2}$ and $2\unit{g}$ wood:\\ % Therefore please print only if this is really necessary.} % % \newpage % % \tableofcontents % % \bigskip % % \section{Introduction\label{s:Introduction}} % \indent This \LaTeX{} package provides the command |\thepagecolor|, % which gives the current page (background) colour, % \hbox{i.\,e. the} argument used with the most recent call of |\pagecolor{...}|. % The package should be loaded before any package sets a page (background) % colour, but after \xpackage{xcolor} or \xpackage{color} package. % Its option |pagecolor={...}| is used to set the initial |\pagecolor{...}|.\\ % The command |\thepagecolornone| gives the same colour as |\thepagecolor|, % except when the page background colour is % \textquotedblleft|none|\textquotedblright (e.\,g. result of using the % |\nopagecolor| command). In that case |\thepagecolor| is |white| and\linebreak % |\thepagecolornone| is |none|. % When |\nopagecolor| is unknown (e.g. \XeLaTeX ) or broken % (\xpackage{crop} package) this package provides a replacement % depending on option |nopagecolor|. % Similar to |\newgeometry| and |\restoregeometry| of the \xpackage{geometry} % package % |\newpagecolor{<|\textit{some colour}|>}| and |\restorepagecolor| % are provided. % % \newpage % % \section{Usage} % % \indent Just load the package placing % \begin{quote} % |\usepackage[<|\textit{options}|>]{pagecolor}| % \end{quote} % \noindent in the preamble of your \LaTeXe{} source file. % This should be done before another package uses |\pagecolor|. % Afterwards |\pagecolor{...}| can be used to change the page (background) % colour as usual. Then |\thepagecolor| gives the current page (background) % colour (in the same format as given with |\pagecolor{...}|).\\ % Similar to |\newgeometry| and |\restoregeometry| of the \xpackage{geometry} % package\\ % |\newpagecolor{<|\textit{some colour} |>}| and |\restorepagecolor| % are provided:\\ % |\newpagecolor{<|\textit{some colour} |>}| will execute % |\pagecolor{<|\textit{some colour} |>}| and remember the page colour used before. % |\restorecolor| (without argument) restores the page colour to the one used before % use of the |\newpagecolor{...}| command. When you want to change the colour for % just one page and do not want to (or cannot) manually determine where the page ends,\\ % |\newpagecolor{<|\textit{some colour}|>}\afterpage{\restorepagecolor}|\\ % does the trick (and requires a |\usepackage{afterpage}| in the document's % preamble), or for short\\ % |\newcommand{\onepagecolor}[1]{%|\\ % | \newpagecolor{#1}\afterpage{\restorepagecolor}}|\\ % in the preamble and\\ % |\onepagecolor{<|\textit{some colour}|>}| in the document. % % \subsection{Options} % \DescribeMacro{options} % \indent The \xpackage{pagecolor} package takes the following options: % % \subsubsection{pagecolor\label{sss:pagecolor}} % \DescribeMacro{pagecolor} % \indent The option |pagecolor={...}| takes as value a colour. This % could be as simple as |black| or |white|, but when \hbox{e.\,g. the} % \xpackage{xcolor} package is used (loaded before \xpackage{pagecolor}!), % also colours like |red!50!green!20!blue| are possible. % The default is |pagecolor={none}|. A |\pagecolor{...}| command with % the given colour is used to initialise the pagecolour. % % % \subsubsection{nopagecolor\label{sss:nopagecolor}} % \DescribeMacro{nopagecolor} % \indent The option |nopagecolor={...}| takes as value a colour. This % could be as simple as |white| or |black|, but when \hbox{e.\,g. the} % \xpackage{xcolor} package is used (loaded before \xpackage{pagecolor}!), % also colours like |red!50!green!20!blue| are possible. % The default is |nopagecolor={none}|. When |\nopagecolor| is unknown % (e.\,g. \XeLaTeX ) or broken (\xpackage{crop} package) |\nopagecolor| % is replaced by a |\pagecolor| command using the colour defined with the % |nopagecolor| option. If |\nopagecolor| is not available and % |nopagecolor| is |none|, it is used |white| instead of |none|. % % \newpage % % \section{Alternatives\label{s:Alternatives}} % % As I neither know what exactly you want to accomplish % when using this package (e.\,g.~hiding text), nor what resources you have % (e.\,g.~\pdfTeX{} version), here is a list of possible alternatives:\\ % % \begin{description} % \item[-] \xpackage{transparent} package: With it some object can be made % (fully or partially) transparent, % \url{https://www.ctan.org/pkg/transparent}. % % \item[-] \xpackage{hrefhide} package: It allows to % \textquotedblleft hide\textquotedblright{} some (hyperlinked) text when % printing the document while keeping the layout, % \url{https://www.ctan.org/pkg/hrefhide}. % \end{description} % % \bigskip % % \noindent You programmed or found another alternative, % which is available at \url{https://www.CTAN.org/}? % OK, send an e-mail to me with the name, location at CTAN, % and a short notice, and I will probably include it in the list above. % % \newpage % % \section{Example} % % \begin{macrocode} %<*example> \documentclass[british]{article}[2014/09/29]% v1.4h %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \usepackage[% extension=pdf,% plainpages=false,% pdfpagelabels=true,% hyperindex=false,% pdflang={en},% pdftitle={pagecolor package example},% pdfauthor={H.-Martin Muench},% pdfsubject={Example for the pagecolor package},% pdfkeywords={LaTeX, pagecolor, thepagecolor, page colour,% H.-Martin Muench},% pdfview=Fit,pdfstartview=Fit,% pdfpagelayout=SinglePage% ]{hyperref}[2012/11/06]% v6.83m \usepackage[x11names]{xcolor}[2007/01/21]% v2.11 % The xcolor package would not be needed for just using % the base colours. The color package would be sufficient for that. \definecolor{darkgreen}{rgb}{0.0, 0.3, 0.0}% \usepackage[pagecolor={LightGoldenrod1},% nopagecolor={none}]{pagecolor}[2017/05/29]% v1.0i \usepackage{afterpage}[2014/10/28]% v1.08 % The afterpage package is generally not needed, % but the |\newpagecolor{somecolour}\afterpage{\restorepagecolor}| % construct shall be demonstrated. \usepackage{lipsum}[2014/07/27]% v1.3 % The lipsum package is generally not needed, % but some blind text is needed for the example. \usepackage{hologo}[2012/04/26]% v1.10 % The hologo package is only needed to write % \hologo{pdfTeX}, \hologo{LuaTeX}, and \hologo{XeTeX}. \gdef\unit#1{\mathord{\thinspace\mathrm{#1}}}% \listfiles% \begin{document} \pagenumbering{arabic} \section*{Example for pagecolor} This example demonstrates the use of package\newline \textsf{pagecolor}, v1.0i as of 2017/05/29 (HMM).\newline The used options were\newline \verb|pagecolor={LightGoldenrod1}| (\verb|pagecolor={none}| would be the default), and \verb|pagecolor={none}| (which is the default).\newline \noindent For more details please see the documentation!\newline \noindent {\color{darkgreen} Save per page about $200\unit{ml}$ water, $2\unit{g}$ CO$_{2}$ and $2\unit{g}$ wood:\newline Therefore please print only if this is really necessary.}\newline % \end{macrocode} % \pagebreak % \begin{macrocode} \noindent The current page (background) colour is\newline \verb|\thepagecolor|\ =\ \thepagecolor \newline (and \verb|\thepagecolornone|\ =\ \thepagecolornone , which would only be different from \verb|\thepagecolor|, when the page colour would be \verb|none|). \pagebreak \pagecolor{rgb:-green!40!yellow,3;green!40!yellow,2;red,1} {\color{white} The current page (background) colour is\newline \verb|\thepagecolor|\ =\ \thepagecolor . \newline} {\color{\thepagecolor} And that makes this text practically invisible. \newline} {\color{white} Which made the preceding line of text practically invisible.} \pagebreak \newpagecolor{red} This page uses \verb|\newpagecolor{red}|. \pagebreak \restorepagecolor {\color{white}And this page uses \verb|\restorepagecolor| to restore the page colour to the value it had before the red page.} \pagebreak \pagecolor{none} This page uses \verb|\pagecolor{none}|. If the \verb|\nopagecolor| command is known (\hologo{pdfTeX} and \hologo{LuaTeX}; not yet for dvips, dvipdfm(x) or \hologo{XeTeX}), the page colour is now \verb|none| (because option \verb|nopagecolor={none}|), otherwise \verb|white| (or the colour given with option \verb|nopagecolor={...}|): \verb|\thepagecolor|\ =\ \thepagecolor\ and \verb|\thepagecolornone|\ =\ \thepagecolornone . \pagebreak \restorepagecolor {\color{white}\verb|\restorepagecolor| restored the page colour again.} \pagebreak \pagecolor{green} This page is green due to \verb|\pagecolor{green}|. \pagebreak \newpagecolor{blue}\afterpage{\restorepagecolor} {\color{white}\verb|\newpagecolor{blue}\afterpage{\restorepagecolor}|% \newline was used here, i.\,e.~this page is blue, and the next one will automatically have the same page colour before it was changed to blue here (i.\,e. green).} \smallskip {\color{red}\textbf{\lipsum[1-11]}} \bigskip The page colour was changed back at the end of the page - in mid-sentence! \end{document} % % \end{macrocode} % % \StopEventually{} % % \newpage % % \section{The implementation} % % We start off by checking that we are loading into \LaTeXe{} and % announcing the name and version of this package. % % \begin{macrocode} %<*package> % \end{macrocode} % % \begin{macrocode} \NeedsTeXFormat{LaTeX2e}[2014/05/01] \ProvidesPackage{pagecolor}[2017/05/29 v1.0i Provides thepagecolor (HMM)] % \end{macrocode} % % A short description of the \xpackage{pagecolor} package: % % \begin{macrocode} %% Provides the \thepagecolor, \thepagecolornone, \newpagecolor{...}, %% and \restorepagecolor commands and the a replacement for the %% \nopagecolor command, if it is not available. % \end{macrocode} % % We need the \xpackage{kvoptions} package by \textsc{Heiko Oberdiek}: % % \begin{macrocode} \RequirePackage{kvoptions}[2011/06/30]% v3.11 % \end{macrocode} % % and either the \xpackage{color} or the \xpackage{xcolor} package: % % \begin{macrocode} %% \RequirePackage{ either color or xcolor }: \@ifpackageloaded{xcolor}{% xcolor loaded \@ifpackagelater{xcolor}{2007/01/21}{% % 2007/01/21, v2.11, or even more recent: OK }{% else: older package version \PackageWarning{pagecolor}{% It is requested version `2007/01/21' of package\MessageBreak% xcolor, but only an older version is available\MessageBreak% }% }% }{% xcolor not loaded \@ifpackageloaded{color}{% \RequirePackage{color}[2014/10/28]% v1.1a }{% \else \PackageWarning{pagecolor}{% The pagecolor package must be loaded after either\MessageBreak% package color or after package xcolor (at your\MessageBreak% option). Neither package was loaded before package\MessageBreak% pagecolor. Loading of package xcolor will now be\MessageBreak% tried automatically.\MessageBreak% When the pagecolor package is used with option\MessageBreak% pagecolor using a colour requiring e. g. x11names\MessageBreak% option for xcolor package, this will not work!\MessageBreak% } }% \fi \RequirePackage{xcolor}[2007/01/21]% v2.11 }% \fi % \end{macrocode} % % as well as the \xpackage{ifpdf} and the \xpackage{ifluatex} package, % because only \pdfTeX{} and \LuaTeX{} provide the |\nopagecolor| command: % % \begin{macrocode} \RequirePackage{ifpdf}[2011/01/30]% v2.3 \RequirePackage{ifluatex}[2010/03/01]% v1.3 % \end{macrocode} % % A last information for the user: % % \begin{macrocode} %% pagecolor may work with earlier versions of LaTeX and the %% packages, but this was not tested. Please consider updating %% your LaTeX and packages to the most recent version %% (if they are not already the most recent version). % \end{macrocode} % % \indent See subsection~\ref{ss:Downloads} about how to get them.\\ % % We process the options: % % \begin{macrocode} \SetupKeyvalOptions{family=pagecolor,prefix=pagecolor@} \DeclareStringOption[none]{pagecolor}% \pagecolor@pagecolor \DeclareStringOption[none]{nopagecolor}% \pagecolor@nopagecolor \ProcessKeyvalOptions* % \end{macrocode} % \begin{macro}{\nopagecolor}\label{nopagecolor} % \begin{macrocode} %% \nopagecolor is only available for pdf(La)TeX and Lua(La)TeX %% but not for dvips, dvipdfm(x), Xe(La)TeX,... % \end{macrocode} % % therefore |pagecolor| and/or |nopagecolor| can only be |none|, % if either \pdfTeX{} or \LuaTeX{} is used; otherwise |white| is fine % or another colour (other colours) requested by the user with the two options. % % \begin{macrocode} \def\pagecolourtmpa{0} \ifluatex\def\pagecolourtmpa{1}\fi \ifpdf\def\pagecolourtmpa{1}\fi \def\pagecolourtmpb{1} \ifx\pagecolourtmpa\pagecolourtmpb\relax% \else% \PackageInfo{pagecolor}{\string\nopagecolor\space is undefined}% \def\pagecolourtmpb{none}% \edef\pagecolourtmpa{\pagecolor@nopagecolor}% \ifx\pagecolourtmpa\pagecolourtmpb% \PackageWarning{pagecolor}{% Option nopagecolor=none requested but \string\nopagecolor\space% unknown:\MessageBreak% By option nopagecolor the "colour" to be used with% \string\nopagecolor\MessageBreak% is set. The current value is "none" (maybe by default),% \MessageBreak% but command \string\nopagecolor\space is undefined.\MessageBreak% Therefore the colour cannot be "none".\MessageBreak% Please change the option accordingly!\MessageBreak% As first aid nopagecolor is now set to white\MessageBreak% }% \setkeys{pagecolor}{nopagecolor=white}% \fi% \edef\pagecolourtmpa{\pagecolor@pagecolor}% \ifx\pagecolourtmpa\pagecolourtmpb% \PackageWarning{pagecolor}{% Option pagecolor=none (maybe by default) used,\MessageBreak% but \string\nopagecolor\space is unknown.\MessageBreak% Please use anotheroption value;\MessageBreak% \pagecolor@nopagecolor\space\MessageBreak% will be used now\MessageBreak% }% \setkeys{pagecolor}{pagecolor={\pagecolor@nopagecolor}}% \fi% \@ifundefined{nopagecolor}{% \newcommand{\nopagecolor}{\pagecolor{\pagecolor@nopagecolor}}% }{\renewcommand{\nopagecolor}{\pagecolor{\pagecolor@nopagecolor}}% }% \fi% % \end{macrocode} % \end{macro} % % \begin{macro}{\pagecolor} % % \pagebreak % We save the original |\pagecolor| command, % % \begin{macrocode} \let\origpagecolour\pagecolor % \end{macrocode} % % before we redefine it to include a definition of |\thepagecolor| % and \linebreak % |\thepagecolornone|: % % \begin{macrocode} \renewcommand{\pagecolor}[1]{\@bsphack% \edef\pagecolourtmpa{#1}% \def\pagecolourtmpb{none}% \ifx\pagecolourtmpa\pagecolourtmpb\relax% \@ifundefined{nopagecolor}{% \PackageWarning{pagecolor}{% pagecolor=none requested but \string\nopagecolor\space% unknown:\MessageBreak% \string\pagecolor{none} was used, but the command\MessageBreak% \string\nopagecolor\space is undefined.\MessageBreak% Please use another colour.\MessageBreak% pagecolor=\pagecolor@nopagecolor \MessageBreak% will be used now\MessageBreak% }% \xdef\thepagecolor{\pagecolor@nopagecolor}% \xdef\thepagecolornone{\pagecolor@nopagecolor}% % although it should be "none" \origpagecolour{\pagecolor@nopagecolor}% }{\nopagecolor% }% \else% \xdef\thepagecolor{#1}% \xdef\thepagecolornone{#1}% \origpagecolour{\thepagecolornone}% \fi% \@esphack% } % \end{macrocode} % \end{macro} % % |\nopagecolor| is only defined for \pdfTeX{} and \LuaTeX , but not for dvips, % dvipdfm(x) or \XeTeX . (We defined a replacement, see page~\pageref{nopagecolor}.) % But additionally |\nopagecolor| does not work if the \xpackage{crop} package is used. % A workaround needs to be defined: % % \begin{macrocode} \let\orignopagecolour\nopagecolor\relax% \gdef\pagecolor@cl{0}% \@ifpackageloaded{crop}{% crop loaded \gdef\pagecolor@cl{1}% \@ifpackagelater{crop}{2003/05/21}{% % later than 2003/05/20 v1.9 might be OK \PackageWarning{pagecolor}{% \string\nopagecolor\space did not work with package% \MessageBreak% crop 2003/05/20 v1.9. A newer version is used, \MessageBreak% which the pagecolor package does not know how to handle.% \MessageBreak% Please contact the maintainer of the pagecolor package!% \MessageBreak% }% % \end{macrocode} % \pagebreak % \begin{macrocode} % Let us just hope everything got fixed: \renewcommand{\nopagecolor}{% \xdef\thepagecolor{white}% \xdef\thepagecolornone{none}% \orignopagecolour% % That will not have any effect except when things got fixed! }% }{% else: older package version \PackageWarning{pagecolor}{% \string\nopagecolor\space does not work with\MessageBreak% the used crop package. Using\MessageBreak% \pagecolor@nopagecolor\MessageBreak% as nopagecolor now\MessageBreak% }% \def\pagecolourtmpb{none}% \edef\pagecolourtmpa{\pagecolor@nopagecolor}% \ifx\pagecolourtmpa\pagecolourtmpb% \PackageWarning{pagecolor}{% Option nopagecolor=none requested \MessageBreak% but this does not work with the crop package.\MessageBreak% By option nopagecolor the "colour" to be used with % \string\nopagecolor\MessageBreak% is set. The current value is "none" (maybe by default),% \MessageBreak% but the crop package broke \string\nopagecolor .% \MessageBreak% Therefore the colour cannot be "none".\MessageBreak% Please change the option accordingly!\MessageBreak% As first aid nopagecolor is now set to white\MessageBreak% }% \setkeys{pagecolor}{nopagecolor=white}% \fi% \renewcommand{\nopagecolor}{\pagecolor{\pagecolor@nopagecolor}}% }% }{% crop not loaded \def\pagecolourtmpa{0}% \ifluatex\def\pagecolourtmpa{1}\fi% \ifpdf\def\pagecolourtmpa{1}\fi% \def\pagecolourtmpb{1}% \ifx\pagecolourtmpa\pagecolourtmpb\relax% \gdef\pagecolourtmpa{none}% \else% \gdef\pagecolourtmpa{\pagecolor@nopagecolor}% \fi% \renewcommand{\nopagecolor}{% \xdef\thepagecolor{white}% \xdef\thepagecolornone{\pagecolourtmpa}% \orignopagecolour% }% } % \end{macrocode} % % The (new) |\pagecolor| is now just carried out. % % \begin{macrocode} \pagecolor{\pagecolor@pagecolor} % \end{macrocode} % % \pagebreak % Now the page (background) colour as well as |\thepagecolor| are\\ % |\pagecolor@pagecolor|. |\thepagecolornone| is |none|, if that colour is known, % otherwise it is |\pagecolor@nopagecolor|, and if that was |none| (but that unknown), % it is |white|. If |\pagecolor@pagecolor| was |none|, % the page (background) colour is |none|, when known, otherwise % |\pagecolor@nopagecolor|, and if that was |none| (but that unknown), % it is |white|, and |\thepagecolor| is |\pagecolor@nopagecolor|, % and if that was also |none| but |none| unknown, then it is |white|. % When the page (background) colour is changed, |\thepagecolor| and % |\thepagecolornone| are changed accordingly. % % \begin{macro}{\newpagecolor} % There have been requests (via e-mail and at \\ % \url{https://tex.stackexchange.com/q/25137/6865}) to change the colour of just one % (or two) page(s) only, similar to |\newgeometry| and |\restoregeometry| of the % \xpackage{geometry} package (\url{https://www.ctan.org/pkg/geometry}).\\ % Therefore |\newpagecolor| and |\restorepagecolor| are introduced (as suggested by % \textsc{haoyun\_tex}): % % \begin{macrocode} \newcommand{\newpagecolor}[1]{% \xdef\pagecolourtmpc{\thepagecolornone}% \pagecolor{#1}% } % \end{macrocode} % \end{macro} % % |\newpagecolor{<|\textit{some colour}|>}| will execute |\pagecolor{somecolour}| % and remember the page colour used before. % % \begin{macro}{\restorepagecolor} % \begin{macrocode} \newcommand{\restorepagecolor}{\pagecolor{\pagecolourtmpc}} % \end{macrocode} % \end{macro} % % |\restorecolor| (without argument) restores the page colour to the one used before % use of the |\newpagecolor{...}| command. % % \begin{macrocode} \gdef\pagecolourtmpc{\thepagecolor} % \end{macrocode} % is just a precaution for |\restorecolor| being used when no |\newpagecolor{...}| % was used before it.\\ % % When you want to change the colour for just one page and do not want to % (or cannot) manually determine where the page ends,\\ % |\newpagecolor{<|\textit{some colour}|>}\afterpage{\restorepagecolor}|\\ % does the trick (and requires an additional |\usepackage{afterpage}| in the % document's preamble).\\ % % We checked whether the \xpackage{crop} package had been loaded before % the \xpackage{pagecolor} package, but maybe it has been loaded afterwards. % This is checked |\AtBeginDocument|: % % \begin{macrocode} \AtBeginDocument{% \def\pagecolourtmpb{0}% \ifx\pagecolor@cl\pagecolourtmpb\relax% % crop not loaded before pagecolor, but maybe afterwards: \@ifpackageloaded{crop}{% crop indeed loaded afterwards. \gdef\pagecolor@cl{1}% \@ifpackagelater{crop}{2003/05/21}{% % later than 2003/05/20 v1.9 might be OK \PackageWarning{pagecolor}{% \string\nopagecolor\space did not work with package\MessageBreak% crop 2003/05/20 v1.9. A newer version is used, \MessageBreak% which the pagecolor package does not know how to handle.% \MessageBreak% Please contact the maintainer of the pagecolor package!% \MessageBreak% }% % Let us just hope everything got fixed: \renewcommand{\nopagecolor}{% \xdef\thepagecolor{white}% \xdef\thepagecolornone{none}% \orignopagecolour% % That will not have any effect except when things got fixed! }% }{% else: older package version \PackageWarning{pagecolor}{% \string\nopagecolor\space does not work with\MessageBreak% the used crop package. Using\MessageBreak% \pagecolor@nopagecolor\MessageBreak% as nopagecolor now\MessageBreak% }% \def\pagecolourtmpb{none}% \edef\pagecolourtmpa{\pagecolor@nopagecolor}% \ifx\pagecolourtmpa\pagecolourtmpb% \PackageWarning{pagecolor}{% Option nopagecolor=none requested \MessageBreak% but this does not work with the crop package.\MessageBreak% By option nopagecolor the "colour" to be used with % \string\nopagecolor\MessageBreak% is set. The current value is "none" (maybe by default),% \MessageBreak% but the crop package broke \string\nopagecolor .\MessageBreak% Therefore the colour cannot be "none".\MessageBreak% Please change the option accordingly!\MessageBreak% As first aid nopagecolor is now set to white\MessageBreak% }% \setkeys{pagecolor}{nopagecolor=white}% \fi% \renewcommand{\nopagecolor}{\pagecolor{\pagecolor@nopagecolor}}% }% }{% crop neither loaded afterwards. }% \fi% } % \begin{macrocode} % % \end{macrocode} % % \newpage % % \section{Installation} % % \subsection{Downloads\label{ss:Downloads}} % % Everything is available at \url{https://www.ctan.org}, % but may need additional packages themselves.\\ % % \DescribeMacro{pagecolor.dtx} % For unpacking the |pagecolor.dtx| file and constructing the documentation % it is required: % \begin{description} % \item[-] \TeX Format \LaTeXe{}: \url{https://www.CTAN.org} % % \item[-] document class \xclass{ltxdoc}, 2015/03/26, v2.0w, % \url{https://www.ctan.org/pkg/ltxdoc} % % \item[-] package \xpackage{holtxdoc}, 2012/03/21, v0.24, % \url{https://www.ctan.org/pkg/holtxdoc} % \end{description} % % \DescribeMacro{pagecolor.sty} % The |pagecolor.sty| for \LaTeXe{} (i.\,e. each document using % the \xpackage{pagecolor} package) requires: % \begin{description} % \item[-] \TeX{} Format \LaTeXe{}, \url{https://www.CTAN.org} % % \item[-] package \xpackage{kvoptions}, 2011/06/30, v3.11, % \url{https://www.ctan.org/pkg/kvoptions} % % \item[-] package \xpackage{ifpdf}, 2011/01/30, v2.3, % \url{https://www.ctan.org/pkg/ifpdf} % % \item[-] package \xpackage{ifluatex}, 2010/03/01, v1.3, % \url{https://www.ctan.org/pkg/ifluatex} % \end{description} % and either % \begin{description} % \item[-] package \xpackage{xcolor}, 2007/01/21, v2.11, % \url{https://www.ctan.org/pkg/xcolor} % \end{description} % or % \begin{description} % \item[-] package \xpackage{color}, 2014/10/28, v1.1a, % \url{https://www.ctan.org/pkg/color} (from the\\ % \xpackage{graphics} package bundle). % \end{description} % % \DescribeMacro{pagecolor-example.tex} % The |pagecolor-example.tex| requires the same file as all % documents using the \xpackage{pagecolor} package, i.\,e. % \begin{description} % \item[-] package \xpackage{pagecolor}, 2017/05/29, v1.0i, % \url{https://www.ctan.org/pkg/pagecolor}\\ % (Well, it is the example file for this package, and because you are reading the % documentation for the \xpackage{pagecolor} package, it~can be assumed that you already % have some version of it -- is it the current one?) % \end{description} % and additionally: % \begin{description} % \item[-] class \xpackage{article}, 2014/09/29, v1.4h, from \xpackage{classes}:\\ % \url{https://www.ctan.org/pkg/classes} % % \item[-] package \xpackage{xcolor}, 2007/01/21, v2.11, % \url{https://www.ctan.org/pkg/xcolor}\\ % This package would not be needed for the use of just base colours only, % the \xpackage{color} package would be sufficient for that. % % \item[-] package \xpackage{afterpage}, 2014/10/28, v1.08, % \url{https://www.ctan.org/pkg/afterpage}\\ % This package is only needed for demonstrating the\\ % |\newpagecolor{somecolour}\afterpage{\restorepagecolor}| construct. % % \item[-] package \xpackage{lipsum}, 2014/07/27, v1.3, % \url{https://www.ctan.org/pkg/lipsum}\\ % This package is only needed for some blind text. % % \item[-] package \xpackage{hologo}, 2012/04/26, v1.10, % \url{https://www.ctan.org/pkg/hologo}\\ % This package is only needed to write \hologo{pdfTeX}, \hologo{LuaTeX}, % and \hologo{XeTeX}. % \end{description} % % \DescribeMacro{Alternatives} % \DescribeMacro{transparent} % \DescribeMacro{hrefhide} % As possible alternatives in section~\ref{s:Alternatives}, Alternatives, % there are listed (newer versions might be available): % \begin{description} % \item[-] package \xpackage{transparent}, 2007/01/08, v1.0, \\ % \url{https://www.ctan.org/pkg/transparent} % % \item[-] package \xpackage{hrefhide}, 2011/04/29, v1.0h, \\ % \url{https://www.ctan.org/pkg/hrefhide} % \end{description} % % \DescribeMacro{Oberdiek} % \DescribeMacro{hologo} % \DescribeMacro{holtxdoc} % \DescribeMacro{kvoptions} % All packages of \textsc{Heiko Oberdiek's} bundle `oberdiek' % (especially \xpackage{hologo}, \xpackage{holtxdoc}, and \xpackage{kvoptions}) % are also available in a TDS compliant ZIP archive:\\ % \url{http://mirror.ctan.org/install/macros/latex/contrib/oberdiek.tds.zip}.\\ % It is probably best to download and use this, because the packages in there % are quite probably both recent and compatible among themselves.\\ % % \DescribeMacro{hyperref} % \noindent \xpackage{hyperref} is not included in that bundle and needs to be % downloaded separately,\\ % \url{http://mirror.ctan.org/install/macros/latex/contrib/hyperref.tds.zip}.\\ % % \DescribeMacro{M\"{u}nch} % A hyperlinked list of my (other) packages can be found at % \url{https://www.ctan.org/author/muench-hm}.\\ % % \subsection{Package, unpacking TDS} % \paragraph{Package.} This package is available on \url{https://www.CTAN.org}. % \begin{description} % \item[\url{http://mirror.ctan.org/macros/latex/contrib/pagecolor/pagecolor.dtx}]\hspace*{0.1cm} % The source file. % \item[\url{http://mirror.ctan.org/macros/latex/contrib/pagecolor/pagecolor.pdf}]\hspace*{0.1cm} % The documentation. % \item[\url{http://mirror.ctan.org/macros/latex/contrib/pagecolor/pagecolor-example.pdf}]\hspace*{0.1cm} % The compiled example file, as it should look like. % \item[\url{http://mirror.ctan.org/macros/latex/contrib/pagecolor/README}]\hspace*{0.1cm}\\ % \hspace*{1em}The README file. % \end{description} % % There is also a |pagecolor.tds.zip| available: % \begin{description} % \item[\url{http://mirror.ctan.org/install/macros/latex/contrib/pagecolor.tds.zip}]\hspace*{0.1cm} % Everything in TDS compliant, compiled format. % \end{description} % which additionally contains\\ % \begin{tabular}{ll} % pagecolor.ins & The installation file.\\ % pagecolor.drv & The driver to generate the documentation.\\ % pagecolor.sty & The \xext{sty}le file.\\ % pagecolor-example.tex & The example file. % \end{tabular} % % \bigskip % % \noindent For required other packages, please see the preceding subsection. % % \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting % \docstrip{} archive. The files are extracted by running the % \xext{.dtx} through \plainTeX{}: % \begin{quote} % \verb|tex pagecolor.dtx| % \end{quote} % % About generating the documentation see paragraph~\ref{GenDoc} below.\\ % % \paragraph{TDS.} Now the different files must be moved into % the different directories in your installation TDS tree % (also known as \xfile{texmf} tree): % \begin{quote} % \def\t{^^A % \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}} % pagecolor.sty & tex/latex/pagecolor/pagecolor.sty\\ % pagecolor.pdf & doc/latex/pagecolor/pagecolor.pdf\\ % pagecolor-example.tex & doc/latex/pagecolor/pagecolor-example.tex\\ % pagecolor-example.pdf & doc/latex/pagecolor/pagecolor-example.pdf\\ % pagecolor.dtx & source/latex/pagecolor/pagecolor.dtx\\ % \end{tabular}^^A % }^^A % \sbox0{\t}^^A % \ifdim\wd0>\linewidth % \begingroup % \advance\linewidth by\leftmargin % \advance\linewidth by\rightmargin % \edef\x{\endgroup % \def\noexpand\lw{\the\linewidth}^^A % }\x % \def\lwbox{^^A % \leavevmode % \hbox to \linewidth{^^A % \kern-\leftmargin\relax % \hss % \usebox0 % \hss % \kern-\rightmargin\relax % }^^A % }^^A % \ifdim\wd0>\lw % \sbox0{\small\t}^^A % \ifdim\wd0>\linewidth % \ifdim\wd0>\lw % \sbox0{\footnotesize\t}^^A % \ifdim\wd0>\linewidth % \ifdim\wd0>\lw % \sbox0{\scriptsize\t}^^A % \ifdim\wd0>\linewidth % \ifdim\wd0>\lw % \sbox0{\tiny\t}^^A % \ifdim\wd0>\linewidth % \lwbox % \else % \usebox0 % \fi % \else % \lwbox % \fi % \else % \usebox0 % \fi % \else % \lwbox % \fi % \else % \usebox0 % \fi % \else % \lwbox % \fi % \else % \usebox0 % \fi % \else % \lwbox % \fi % \else % \usebox0 % \fi % \end{quote} % If you have a \xfile{docstrip.cfg} that configures and enables \docstrip's % TDS installing feature, then some files can already be in the right % place, see the documentation of \docstrip{}. % % \subsection{Refresh file name databases} % % If your \TeX~distribution (\TeX{} Live, \mikTeX, \teTeX, \dots) relies on % file name databases, you must refresh these. For example, \teTeX{} users run % \verb|texhash| or \verb|mktexlsr|. % % \subsection{Some details for the interested} % % \paragraph{Unpacking with \LaTeX{}.} % The \xfile{.dtx} chooses its action depending on the format: % \begin{description} % \item[\plainTeX:] Run \docstrip{} and extract the files. % \item[\LaTeX:] Generate the documentation. % \end{description} % If you insist on using \LaTeX{} for \docstrip{} (really, % \docstrip{} does not need \LaTeX ), then inform the autodetect routine % about your intention: % \begin{quote} % \verb|latex \let\install=y\input{pagecolor.dtx}| % \end{quote} % Do not forget to quote the argument according to the demands % of your shell. % % \paragraph{Generating the documentation.\label{GenDoc}} % You can use both the \xfile{.dtx} or the \xfile{.drv} to generate % the documentation. The process can be configured by a % configuration file \xfile{ltxdoc.cfg}. For instance, put the following % line into this file, if you want to have A4 as paper format: % \begin{quote} % \verb|\PassOptionsToClass{a4paper}{article}| % \end{quote} % % \noindent An example follows how to generate the % documentation with \pdfLaTeX : % % \begin{quote} %\begin{verbatim} %pdflatex pagecolor.dtx %makeindex -s gind.ist pagecolor.idx %pdflatex pagecolor.dtx %makeindex -s gind.ist pagecolor.idx %pdflatex pagecolor.dtx %\end{verbatim} % \end{quote} % % \subsection{Compiling the example} % % The example file, \textsf{pagecolor-example.tex}, can be compiled via\\ % |(pdf)latex pagecolor-example.tex|. % % \section{Acknowledgements} % % I would like to thank \textsc{Heiko Oberdiek} for providing a~lot~(!) of % useful packages (from which I also got everything I know about creating % a file in \xext{dtx} format, ok, say it: copying), and the % \Newsgroup{comp.text.tex} and \Newsgroup{de.comp.text.tex} newsgroups % for their help in all things \TeX{}, especially all contributors to the % discussion at % \url{https://groups.google.com/forum/#!topic/comp.text.tex/UzV26-RNYPY}% % \ (\textsc{H.~Oberdiek} \& \textsc{Gouailles}).\\ % I thank \textsc{haoyun\_tex} for suggesting the |\newpagecolor|/|\restorepagecolor| % pair of commands and everyone at \url{https://tex.stackexchange.com/q/25137/6865} % for their contributions there. Thanks go to \textsc{Heiner Richter} % for finding a bug, to \textsc{Johannes B\"{o}ttcher} for reporting it, % and to \textsc{Reuben Thomas} for suggestions for improvements % of this documentation. % % \bigskip % % \phantomsection % \begin{History}\label{History} % \begin{Version}{2011/07/16 v1.0a} % \item First version discussed at \Newsgroup{comp.text.tex}. % \end{Version} % \begin{Version}{2011/08/06 v1.0b} % \item Changed version uploaded to the CTAN. % \end{Version} % \begin{Version}{2011/08/08 v1.0c} % \item Fixed a |\setkeys|. % \end{Version} % \begin{Version}{2012/02/01 v1.0d} % \item Bugfix: Obsolete installation path given in the documentation, updated. % \item New commands: |\newpagecolor{...}|, |\restorepagecolor|. % \item Update of documentation, README, and \xfile{dtx} internals. % \end{Version} % \begin{Version}{2012/02/23 v1.0e} % \item Fixed an error in the documentation. % \item Check for loading of \xpackage{color} or \xpackage{xcolor} package % and their versions has been changed, because \xpackage{xcolor} sets\\ % |\@namedef{ver@color.sty}{1999/02/16}|\\ % which gave a warning about old \xpackage{color} package even if a new % version was used. % \end{Version} % \begin{Version}{2015/06/21 v1.0f} % \item Fixed the urls in the documentation. % \item Handle |\nopagecolor| when it is not defined or broken by \xpackage{crop}, % new option |nopagecolor| introduced. % \item Update of documentation, README, and \xfile{dtx} internals. % \end{Version} % \begin{Version}{2015/06/22 v1.0g} % \item Replaced all error messages by warnings. % \end{Version} % \begin{Version}{2015/08/30 v1.0h} % \item Bugfix: Checking for \xpackage{crop} package done |\AtBeginDocument|, % but some of the related code must already be performed earlier. % Bug found by \textsc{Heiner Richter} and reported by % \textsc{Johannes B\"{o}ttcher}, thanks! % \end{Version} % \begin{Version}{2017/05/29 v1.0i} % \item Documentation update following suggestions for improvements by % \textsc{Reuben Thomas}, thanks! % \end{Version} % \end{History} % % \bigskip % % When you find a mistake or have a suggestion for an improvement of this package, % please send an e-mail to the maintainer, thanks! (Please see BUG REPORTS in the README.) % % \newpage % % \PrintIndex % % \Finale \endinput