diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/draftcopy |
Initial commit
Diffstat (limited to 'macros/latex/contrib/draftcopy')
-rw-r--r-- | macros/latex/contrib/draftcopy/Makefile | 144 | ||||
-rw-r--r-- | macros/latex/contrib/draftcopy/README | 31 | ||||
-rw-r--r-- | macros/latex/contrib/draftcopy/THIS-IS-VERSION-2.16 | 1 | ||||
-rw-r--r-- | macros/latex/contrib/draftcopy/draftcopy.doc | 1318 | ||||
-rw-r--r-- | macros/latex/contrib/draftcopy/draftcopy.ins | 75 | ||||
-rw-r--r-- | macros/latex/contrib/draftcopy/draftcopy.pdf | bin | 0 -> 139318 bytes |
6 files changed, 1569 insertions, 0 deletions
diff --git a/macros/latex/contrib/draftcopy/Makefile b/macros/latex/contrib/draftcopy/Makefile new file mode 100644 index 0000000000..a6564c9c0b --- /dev/null +++ b/macros/latex/contrib/draftcopy/Makefile @@ -0,0 +1,144 @@ +# Makefile for the LaTeX2e package `draftcopy' +# Copyright (C)1995 Dr. Juergen Vollmer, all rights reserved. +# Dr. Juergen Vollmer, Viktoriastrasse 15, D-76133 Karlsruhe, Germany +# Juergen.Vollmer@acm.org +# $Id: Makefile,v 2.60 2002/02/25 09:13:32 vollmer Exp $ + +BASE = draftcopy +VERSION = 2.16 +V_DATE = February 25, 2002 +VV_DATE = 2002/02/25 + +DVIPS = dvips +GZIP = gzip +LATEX = latex +MAKEINDEX = makeindex +PDFLATEX = pdflatex + +# a postscript viewer: +GV = ghostscript +GV = gv + +#-------- user configuration section +TEX_DIR = /usr/lib/teTeX/texmf +STY_DIR = $(TEX_DIR)/tex/latex/misc +CFG_DIR = $(TEX_DIR)/tex/latex/config +DOC_DIR = $(TEX_DIR)/doc/latex/draftcopy +SRC_DIR = $(TEX_DIR)/source/latex/draftcopy +#-------- end of user configuration section + +DATE = `date +%Y-%m-%d` +DATE2 = `date +%Y/%m/%d` +TAR_BAK = $(BASE)-$(DATE)-backup.tar.gz +TAR_SRC = $(BASE)-$(DATE)-source.tar.gz +TAR_DIST = $(BASE)-$(VERSION).tar.gz +EX = --exclude "*.o" --exclude core --exclude "*.tar.gz" --exclude "*~" \ + --exclude "*.a" +EXrcs = $(EX) --exclude "*/RCS/*" --exclude "*/RCS" + +.PHONY: all clean realclean diff backup src-tar + +all: draftcopy.dtx $(BASE).ps $(BASE).pdf test clean + +draftcopy.dtx: draftcopy.doc draftcopy.ins + $(LATEX) draftcopy.ins + +%.dvi: %.dtx + $(LATEX) $*.dtx + makeindex -s gind.ist -o $*.ind $*.idx + makeindex -s gglo.ist -o $*.gls $*.glo + rm -f rcsinfo.ins rcsinfo.perl + $(LATEX) $*.dtx + +%.dvi: %.tex + rm -f *.toc *.aux + $(LATEX) $*.tex + $(LATEX) $*.tex + +%.ps: %.dvi + $(DVIPS) -o $*.ps $*.dvi + +%.pdf: %.dtx + rm -f *.toc *.aux + $(PDFLATEX) $*.dtx + $(PDFLATEX) $*.dtx + +test: test-portrait test-landscape + +test-portrait: + for i in 1 2 3 4 5 6 7 8 9 10 13 14 15 16; do \ + f=$(BASE)-test-$$i; \ + echo file: $$f; \ + $(LATEX) $$f ; \ + $(DVIPS) -o $$f.ps $$f.dvi; \ + $(GV) $$f.ps ; \ + done + +test-landscape: + for i in 11 12; do \ + f=$(BASE)-test-$$i; \ + echo file: $$f; \ + $(LATEX) $$f ; \ + $(DVIPS) -t landscape -o $$f.ps $$f.dvi; \ + $(GV) -seascape $$f.ps ; \ + done + +install: draftcopy.dtx draftcopy.dvi draftcopy.ps + [ -d $(TEX_DIR) ] || mkdir $(TEX_DIR) + [ -d $(DOC_DIR) ] || mkdir $(DOC_DIR) + [ -d $(SRC_DIR) ] || mkdir $(SRC_DIR) + [ -d $(CFG_DIR) ] || mkdir $(CFG_DIR) + [ -d $(STY_DIR) ] || mkdir $(STY_DIR) + cp draftcopy.sty $(STY_DIR) + cp draftcopy.cfg $(CFG_DIR) + cp draftcopy.dtx $(DOC_DIR) + cp draftcopy.dvi $(DOC_DIR) + cp draftcopy.ps $(DOC_DIR) + cp draftcopy-test-*.tex $(DOC_DIR) + cp draftcopy.doc $(SRC_DIR) + cp draftcopy.ins $(SRC_DIR) + cp README $(SRC_DIR) + cp THIS-IS-VERSION-$(VERSION) $(SRC_DIR) + +uninstall: + rm -f $(STY_DIR)/draftcopy.sty + rm -f $(CFG_DIR)/draftcopy.cfg + rm -fr $(DOC_DIR) + rm -fr $(SRC_DIR) + +clean: + -rm -f *.dtx *.log *.aux *.lof *.lot *.toc + -rm -f *.idx *.ind *.glo *.gls *~ *.ilg *.out + +realclean: clean + -rm -f *.sty *.cls *.ps *.dvi *.cfg *.pdf + -rm -f *test* + +src-tar: + $(MAKE) realclean + @cd ..; tar $(EXrcs) -czvf $(BASE)/$(TAR_SRC) $(BASE) + +dist: + rm -f THIS-IS-VERSION-* + co -l draftcopy.doc draftcopy.ins README Makefile + @rm -f .xxx; cp draftcopy.doc .xxx + @sed < .xxx -e 's/\(^% \\date{\).*}/\1$(V_DATE); Version $(VERSION)}/' \ + -e 's|\(^ *\\ProvidesPackage{draftcopy}\)\[.*\]|\1[$(VV_DATE) v$(VERSION)]|' \ + > draftcopy.doc + @rm -f .xxx; cp draftcopy.ins .xxx + @sed < .xxx -e 's/\(Version:\) *[0-9]*\.[0-9]*.*}/\1 $(VERSION); $(V_DATE)}/' \ + > draftcopy.ins + @rm -f .xxx; cp README .xxx + @sed < .xxx -e 's/\(Version:\) *[0-9]*\.[0-9]*.*$$/\1 $(VERSION); $(V_DATE)/' \ + > README + V=`echo $(VERSION)-$(VV_DATE) | sed -e 's|\.|-|g' -e's|/|-|g'`; \ + ci -u -N"VERSION-$$V" -m"Distribution" \ + draftcopy.ins draftcopy.doc Makefile README + - $(MAKE) realclean all + @echo "VERSION $(VERSION) DATE=$(V_DATE)" > THIS-IS-VERSION-$(VERSION) + @cd ..; tar $(EXrcs) -czvf $(BASE)/$(TAR_DIST) \ + $(BASE)/draftcopy.ins \ + $(BASE)/draftcopy.doc \ + $(BASE)/Makefile \ + $(BASE)/README \ + $(BASE)/THIS-IS-VERSION-$(VERSION) diff --git a/macros/latex/contrib/draftcopy/README b/macros/latex/contrib/draftcopy/README new file mode 100644 index 0000000000..0f5b182c1b --- /dev/null +++ b/macros/latex/contrib/draftcopy/README @@ -0,0 +1,31 @@ + + This directory contains the LaTeX2e package `draftcopy'. + Version: 2.16; February 25, 2002 + +This package is used to print on some pages the word `DRAFT' +(or the language dependend analogon) ``behind'' the intended stuff. + +Copyright (C) 1995 Dr. Juergen Vollmer, Karlsruhe, + Viktoriastrasse 15, + D-76133 Karlsruhe, Germany + Juergen.Vollmer@acm.org + +This program can be redistributed and/or modified under the terms +of the LaTeX Project Public License Distributed from CTAN +archives in directory macros/latex/base/lppl.txt; either +version 1 of the License, or any later version. + +If you find this software useful, please send me a postcard. + +To install: + unpack and + `make' + +or: + latex draftcopy.ins + latex draftcopy.dtx + latex draftcopy-test-1 + ... + latex draftcopy-test-16 + +$Id: README,v 1.28 2002/02/25 09:14:35 vollmer Exp $ diff --git a/macros/latex/contrib/draftcopy/THIS-IS-VERSION-2.16 b/macros/latex/contrib/draftcopy/THIS-IS-VERSION-2.16 new file mode 100644 index 0000000000..007585b178 --- /dev/null +++ b/macros/latex/contrib/draftcopy/THIS-IS-VERSION-2.16 @@ -0,0 +1 @@ +VERSION 2.16 DATE=February 25, 2002 diff --git a/macros/latex/contrib/draftcopy/draftcopy.doc b/macros/latex/contrib/draftcopy/draftcopy.doc new file mode 100644 index 0000000000..3da283d5f2 --- /dev/null +++ b/macros/latex/contrib/draftcopy/draftcopy.doc @@ -0,0 +1,1318 @@ +\iffalse +%<*package> +%% Package draftcopy to use with LaTeX2e +%% This package is used to print on some pages the word `DRAFT' +%% (or the language dependend analogon) ``behind'' the intended stuff. +%% +%% Copyright (C) 1995 Dr. Juergen Vollmer +%% Viktoriastrasse 15, D-76133 Karlsruhe, Germany +%% Juergen.Vollmer@acm.org +%% +%% This program can be redistributed and/or modified under the terms +%% of the LaTeX Project Public License Distributed from CTAN +%% archives in directory macros/latex/base/lppl.txt; either +%% version 1 of the License, or any later version. +%% +%% If you find this software useful, please send me a postcard: +%</package> +\fi +% +% \DoNotIndex{\begin,\CodelineIndex,\CodelineNumbered,\def,\DisableCrossrefs} +% \DoNotIndex{\DocInput,\documentclass,\EnableCrossrefs,\end,\GetFileInfo} +% \DoNotIndex{\NeedsTeXFormat,\OnlyDescription,\RecordChanges,\usepackage} +% \DoNotIndex{\ProvidesClass,\ProvidesPackage,\ProvidesFile,\RequirePackage} +% \DoNotIndex{\LoadClass,\PassOptionsToClass,\PassOptionsToPackage} +% \DoNotIndex{\DeclareOption,\CurrentOption,\ProcessOptions,\ExecuteOptions} +% \DoNotIndex{\AtEndOfClass,\AtEndOfPackage,\AtBeginDocument,\AtEndDocument} +% \DoNotIndex{\InputIfFileExists,\IfFileExists,\ClassError,\PackageError} +% \DoNotIndex{\if,\else,\fi,\emph,\footnotesize,\footrulewidth,\let} +% \DoNotIndex{\newcount,\newif,\number,\or,\parindent,\plainfootrulewidth} +% \DoNotIndex{\PrintChanges,\PrintIndex,\relax,\setlength,\space} +% \DoNotIndex{\the,\textwidth,\thepage,\newcommand,\texttt,\verb,\vfill} +% \DoNotIndex{\input,\newpage,\setcounter,\newcounter,\\,\ ,\typeout,\today} +% +% \changes{v1.00}{}{The initial sty was written by somebody.} +% \changes{v2.00}{1995/08/10}{Upgrade to LaTeX2e added all the new +% functionality.} +% \changes{v2.01}{1995/08/15}{Changed translation position, lower left corner.} +% \changes{v2.02}{1995/08/30}{Added README and Makefile.} +% \changes{v2.03}{1995/10/16}{Use all BABEL languages, and use DRAFT for them.} +% \changes{v2.04}{1996/02/24}{More translations of the word DRAFT.} +% \changes{v2.05}{1996/02/28}{Added \emph{dvips} and \emph{dvipsone} options.} +% \changes{v2.06}{1996/03/01}{Added fix for old dvips.} +% \changes{v2.07}{1996/03/12}{Support for the \emph{textures} graphics +% driver,\\ +% use \emph{gracpics.cfg} configuration file.} +% \changes{v2.08}{1996/05/20}{Added \emph{none}, \emph{bottom} and +% \emph{bottomafter} options.} +% \changes{v2.09}{1996/05/22}{Added \emph{outline} option.} +% \changes{v2.10}{1996/10/04}{New address.} +% \changes{v2.11}{1998/06/05}{Added the file \emph{draftcopy.cfg}, save +% and execute previous defined bop-hook.} +% \changes{v2.12}{1999/03/02}{Added macros:\\ +% \texttt{draftcopySetScale} and\\ +% \texttt{draftcopyFirstPage}.\\ +% Put \texttt{draftcopy} under the same +% license as \LaTeX.} +% \changes{v2.12.4}{1999/04/26}{Corrected typoo in catalan translation of +% draft\\ +% added -- between bottom DRAFT words\\ +% Corrected typoo Makefile\\ +% Corrected Y\&Y stuff, thanks to the Help Line +% of Y\&Y} +% \changes{v2.12.5}{1999/04/30}{Now \texttt{today} can be used as draftcopy +% name, even for languages like german.} +% \changes{v2.12.6}{1999/04/30}{Use \texttt{space} instead of +% \texttt{@draftcopySpace}} +% \changes{v2.13}{2000/04/16}{New options portrait and landscape, thanks to +% Ross Moore \texttt{ross@ics.mq.edu.au} +% providing the Postscript code for them.} +% \changes{v2.14}{2001/08/24}{Added \texttt{conditional}, \texttt{final} and +% \texttt{draft} options.\\ +% Added \texttt{draftcopyPageX}, etc.\ and +% \texttt{draftcopySetScaleFactor} macros.\\ +% Added the \texttt{timestamp} option and +% \texttt{draftcopyVersion} macro.\\ +% Added the \texttt{greek} language option. +% } +% \changes{v2.15}{2001/09/07}{Added support for the vtex DVI graphics driver. +% The generated |draftcopy.cfg| will set the vtex +% dvips driver automatically.\\ +% Fix for MikTeX / YAP: the DVI didn't show up +% propperly.} +% \changes{v2.16}{2002/02/25}{Replace count99 by count@} + +% \title{The \texttt{draftcopy} package\thanks{This not a DRAFT +% version of this document. +% Its simply documentation and demonstration of the package in +% one document.}} +% \author{Dr.~J{\"u}rgen Vollmer\\Viktoriastra{\ss}e 15\\ +% D-76133 Karlsruhe, Germany\\ +% {\footnotesize Juergen.Vollmer@acm.org}} +% \date{February 25, 2002; Version 2.16} +% +% \maketitle +% +% \begin{abstract} +% This package is used to print on some pages the word \emph{DRAFT} +% (or the language dependend analogon) ``behind'' the intended stuff. +% \end{abstract} +% +% \section{Introduction} +% %%%%%%%%%%%%%%%%%%%%%%% + +% Before releasing a document you may wish to give it to others to proof read +% it. But it should be clear to the reader that it is still a draft version +% of that document. To mark this, so it could not be overseen, you can print +% the word \emph{DRAFT} with big and light grey letters onto some pages. +% This can be done with this package. + +% You can specify the intensity of the gray, the range of pages onto which +% the word \emph{DRAFT} is printed and where it is printed (across the page +% or at the bottom). The word \emph{DRAFT} is replaced according to the +% language you are using, e.g.\ in german you get \emph{ENTWURF}. You may +% also specify any word to be used instead of \emph{DRAFT}. From now on in +% this document \emph{DRAFT} stands for that word. + +% Credits go the the Unkown, who started this as a \LaTeX\ style file +% containing only the central \texttt{special} Postscript command printing +% english word \emph{DRAFT} on each page of the document. Credits also to +% those, who send me translations of the word \emph{DRAFT} and bug-reports +% and bug-fixes as well ideas for more functionality (see in the sources). + +% For \emph{italian}, \emph{dutch}, \emph{finnish} and \emph{french} two +% proposals exists. Have a look and change it (in the file +% \texttt{draftcopy.sty}, or by using \verb+\draftcopyName+) according to +% your mind. + +% +% \section{User Interface} +% %%%%%%%%%%%%%%%%%%%%%%%% + +%\subsection{Options} +% +% Options for this package are: +% +%\begin{center} +%\begin{tabular}{|l|p{0.75\textwidth}|}\hline\MakeShortVerb{\|} +% english, & \\ +% german, $\dots$ +% & This package accepts the language options of the +% |babel| package\footnotemark. The |babel| package is not +% loaded by |draftcopy|. \\\hline +% none & Don't print \emph{DRAFT} across of any page. \\ +% first & Prints \emph{DRAFT} across only on the first page. \\ +% firsttwo & Prints \emph{DRAFT} across only on the first two pages. \\ +% all & Prints \emph{DRAFT} across on all pages of the document. \\ +% bottom & Prints \emph{DRAFT} on all pages at the bottom of the page. \\ +% bottomafter & Prints \emph{DRAFT} at the bottom of the pages following the +% pages which have \emph{DRAFT} across them. \\ +% outline & The word \emph{DRAFT} is printed with outlined letters. \\ +% light & The word \emph{DRAFT} is printed with a light grey. \\ +% dark & The word \emph{DRAFT} is printed with a dark grey. \\\hline +% dvips, vtex, & \\ +% textures, $\dots$ +% & This package accepts the options of the |graphics| +% package\footnotemark. The |graphics| package is not loaded +% by |draftcopy|. \\\hline +% portrait & Page is in portrait shape.\\ +% landscape & Page is in landscape shape.\\\hline +% conditional & Obey the (global) |draft| and |final| options. +% If |conditional| and |draft| are given, then the +% \emph{DRAFT} text is printed. If |conditional| and |final| +% are given, \emph{DRAFT} is not printed. Only |conditional| +% is given, \emph{DRAFT} is not printed. +% If |conditional| is not given then |draft| and |final| are +% ignored, and the \emph{DRAFT} text is printed always.\\ +% draft & Print the \emph{DRAFT} text.\\ +% final & Don't print any \emph{DRAFT} text.\\\hline +% timestamp & Print together with the word \emph{DRAFT} a timestamp and the +% text given by the |draftcopyVersion| macro.\\\hline +%\end{tabular} +%\end{center} +% \addtocounter{footnote}{-1} +% \footnotetext{Currently +% not all languages are supported, I still need volunteers to send me +% translation +% of the word \emph{DRAFT} into the other languages \LaTeX2e with its +% babel package supports.} +% \addtocounter{footnote}{+1} +% \footnotetext{Currently only |dvips|, |dvipsone|, |dvipswindo|, and +% |textures| are +% supported. All others are mapped to |dvips|. If you are using another driver, +% let me know what to.} +% The default options are: \emph{dvips,english,all,dark,portrait}, which +% corresponds to the +% behaviour of the old implementation of this package. +% The file |draftcopy.cfg| specifies the default Postscript driver. +% This specification is overruled, if the driver option is given explicitly. +% +% \subsection{Commands} +% +% Additionally to the options, each feature may be set by commands, which +% must be placed in the preamble of the document. +% +% \begin{itemize} +% \item \DescribeMacro{\draftcopySetGrey} +% Set the intensity of the gray. The argument value range from $0.0$ +% to $1.0$, where the smaller values darker. +% \item \DescribeMacro{\draftcopyFirstPage} +% The argument specifies the first page onto which +% \emph{DRAFT} will be printed. This is the physical page number. +% \item \DescribeMacro{\draftcopyLastPage} +% The argument specifies the last page onto which +% \emph{DRAFT} will be printed. This is the physical page number. +% \item \DescribeMacro{\draftcopyName} +% The first argument specifies the word to be printed instead +% of \emph{DRAFT}, the second, gives the scale factor for the font +% to be used. +% E.g.\ the english word \emph{DRAFT} needs 215, the german +% \emph{ENTWURF} needs 155. +% To add spaces in the word use the |\space| macro. +% \item \DescribeMacro{\draftcopySetScale} +% Change the default size of the word \emph{DRAFT}. +% \item \DescribeMacro{\draftcopySetScaleFactor} +% Change the multipiler of the scale. +% \item \DescribeMacro{\draftcopyPageTransform} and +% \item \DescribeMacro{\draftcopyBottomTransform} take raw PostScript +% to set the LL-corner of the \emph{DRAFT} string +% Use them \emph{before} the |\begin{document}|. +% For code examples: Have a look to the definition of the |portrait| and +% |landscape| options. +% \item \DescribeMacro{\draftcopyPageX} and +% \item \DescribeMacro{\draftcopyPageY} are integer values specifying the +% coorinates starting the \emph{DRAFT} string on the page (default 0). +% \item \DescribeMacro{\draftcopyBottomX} and +% \item \DescribeMacro{\draftcopyBottomY} are integer values specifying +% the coorinates starting the \emph{DRAFT} string on the bootom line +% (default 0). +% \item \DescribeMacro{\draftcopyVersion} The argument is printed together +% with the timestamp. +% \end{itemize} +% +% \section{A Few Warnings} +% %%%%%%%%%%%%%%%%%%%%%%%% +% +% The result of printing \emph{DRAFT} onto the page will be visible only in +% the Postscript output, not in the DVI output. The other text will be +% visible always. Sometimes +% \emph{ghostview} has problems in presenting the correct result, use +% \emph{ghostscript (gs)} instead. The printed result should always meet +% your intension. +% +% Currently this package works only for Postscript and not for PDF, sorry. +% +% \section{Copyright} +% %%%%%%%%%%%%%%%%%%% +% +% Copyright (C) 1995 Dr.\ Juergen Vollmer, Karlsruhe, +% Germany\\ +% \texttt{Juergen.Vollmer@acm.org} +% +% This program can be redistributed and/or modified under the terms +% of the LaTeX Project Public License Distributed from CTAN +% archives in directory macros/latex/base/lppl.txt; either +% version 1 of the License, or any later version. +% +% If you find this software useful, please send me a postcard. +% +% \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} program. +% \begin{macrocode} +%<*driver> +\documentclass[english,a4paper]{article} +\usepackage{doc} +\usepackage[latin1]{inputenc} +\usepackage{babel} +\usepackage[light,first,bottomafter]{draftcopy} +\RecordChanges +\EnableCrossrefs +\CodelineIndex +\begin{document} +\DocInput{draftcopy.doc} +\PrintChanges +\setcounter{IndexColumns}{2} +\PrintIndex +\end{document} +%</driver> +% \end{macrocode} +% +% +% \section{Configuration} +% %%%%%%%%%%%%%%%%%%%%%%% +% +% You should set up the default Postscript driver in the file |draftcopy.cfg|. +% For a reasonable value have a look to the file |graphics.cfg| from the +% |graphics| +% package. The distributed default is |dvips|. +% \begin{macrocode} +%<*config> +\ifx\OpMode\undefined +\ExecuteOptions{dvips} +\else +\ExecuteOptions{vtex} +\fi +%</config> +% \end{macrocode} +% +% \section{The Implementation} +% %%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% The implementation is based on manipulating the Postscript output, +% using the \texttt{special} command. +% +% What do we need, and who we are: +% \begin{macrocode} +%<*package> +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{draftcopy}[2002/02/25 v2.16] +% \end{macrocode} + +% Declaration of the conditional handling options (based on an idea of +% Warren Smith \texttt{<wds@research.nj.nec.com>}). +% \begin{macrocode} +\newif\ifdraftcopy@conditional +\newif\ifdraftcopy@draft +\newif\ifdraftcopy@final +\DeclareOption{conditional}{ + \draftcopy@conditionaltrue +} +\DeclareOption{draft}{ + \draftcopy@drafttrue +} +\DeclareOption{final}{ + \draftcopy@finaltrue +} +% \end{macrocode} + +% Declaration of the the timestamp option. +% \begin{macrocode*} +% Compute the timestamp based on an idea of +% Tim Piessens \texttt{<Tim.Piessens@esat.kuleuven.ac.be>}. +% \begin{macrocode*} +\def\draftcopy@Timestamp{} +\def\draftcopy@version{} +\newcount\draftcopy@hour \newcount\draftcopy@minute +\draftcopy@hour=\time +\divide \draftcopy@hour by 60 +\draftcopy@minute=\time +\count@=\draftcopy@hour +\multiply \count@ by -60 +\advance \draftcopy@minute by \count@ +\newcommand{\draftcopy@daytime}{% + \ifnum\draftcopy@hour=0 00\else\ifnum\draftcopy@hour<10 0\fi% + \number\draftcopy@hour\fi:% + \ifnum\draftcopy@minute<10 0\fi\number\draftcopy@minute% +} + +\DeclareOption{timestamp}{ + \def\draftcopy@Timestamp{% + \draftcopy@Show + \draftcopy@PageX \draftcopy@PageY -40 add moveto + /Times-Roman findfont 50 \draftcopy@ScaleFactor mul scalefont setfont + (\draftcopy@version \today -- \draftcopy@daytime) + } +} +% \end{macrocode*} + +% Declaration of various graphic driver options. +% Different DVI driver use different names \verb+:-(+ +% \begin{macrocode} + % VTEX-support: Thanks to "MicroPress Inc." <support@micropress-inc.com> +\let\immediate@special=\special +\DeclareOption{vtex}{ + \def\immediate@special{\immediate\special} + \immediate@special{!bophook bop-hook} + \def\draftcopy@BOPhook{/bop-hook} + \def\draftcopy@UserDictCmd{pS: userdict } + % MV & AK <mv@micropress-inc.com> +} +\DeclareOption{dvips}{ + \def\draftcopy@BOPhook{/bop-hook} + \def\draftcopy@UserDictCmd{! userdict } +} +\DeclareOption{dvipsone}{ + % thanks to V. P. Stokes <virgil.stokes@neuro.ki.se> + % thanks to Y&Y Help Line <support@YandY.com> + % thanks to "H. Salehfar" <hsalehfa@sage.und.nodak.edu> + \def\draftcopy@BOPhook{/bphook} + \def\draftcopy@UserDictCmd{! dvidict} +} +\DeclareOption{textures}{ + % thanks to Jerome LAURENS \texttt{laurens@u-bourgogne.fr> + \def\draftcopy@BOPhook{/bop-hook} + \def\draftcopy@UserDictCmd{prepostscript userdict} +} + +\DeclareOption{dviwindo}{\ExecuteOptions{dvipsone}} + +% For the following |dvips| will be used. I don't know it better. +\DeclareOption{xdvi}{\ExecuteOptions{dvips}} +\DeclareOption{dvi2ps}{\ExecuteOptions{dvips}} +\DeclareOption{dvialw}{\ExecuteOptions{dvips}} +\DeclareOption{dvilaser}{\ExecuteOptions{dvips}} +\DeclareOption{dvitops}{\ExecuteOptions{dvips}} +\DeclareOption{emtex}{\ExecuteOptions{dvips}} +\DeclareOption{dviwin}{\ExecuteOptions{dvips}} +\DeclareOption{oztex}{\ExecuteOptions{dvips}} +\DeclareOption{psprint}{\ExecuteOptions{dvips}} +\DeclareOption{pubps}{\ExecuteOptions{dvips}} +\DeclareOption{pctexps}{\ExecuteOptions{dvips}} +\DeclareOption{pctexwin}{\ExecuteOptions{dvips}} +\DeclareOption{pctexhp}{\ExecuteOptions{dvips}} +\DeclareOption{ln}{\ExecuteOptions{dvips}} +% \end{macrocode} + +% To printed the word \emph{DRAFT} in outlined letter or normal letters +% we use different methods of showing text: +% Normal letters are printed using the PostScript \texttt{show} command. +% Outlined letters are printed using \texttt{charpath} and \texttt{stroke} +% (See the example in the \emph{red} PostScipt book). +% The idea for this option is from Harriet B.\ Borton +% \texttt{<bortonh@rpi.edu>} + +% \begin{macrocode*} +\def\draftcopy@Show{show } +\DeclareOption{outline}{ + \def\draftcopy@Show{false charpath 2 setlinewidth stroke } +} +% \end{macrocode*} + +% Here we define the options for setting the intensity of the gray. +% Smaller values mean darker. + +% \begin{macrocode} +\DeclareOption{light}{ + \def\draftcopy@GrayValue{0.90} +} + +\DeclareOption{dark}{ + \def\draftcopy@GrayValue{0.85} +} +% \end{macrocode} + +% Here we define the options, which specify the range of pages where +% \emph{DRAFT} will be printed across pages. We use the Postcript variable +% \texttt{draftcopy-LastPage} to store the number. +% \begin{macrocode} +\DeclareOption{none}{ + \def\draftcopy@LastPage{0} +} +\DeclareOption{first}{ + \def\draftcopy@LastPage{1} +} +\DeclareOption{firsttwo}{ + \def\draftcopy@LastPage{2} +} +\DeclareOption{all}{ + \def\draftcopy@LastPage{99999} +} +% \end{macrocode} + +% The option to print \emph{DRAFT} at the bottom of all pages. The idea for the +% \texttt{bottom} options and the corresponding PostScript code is from +% Paolo Ienne \texttt{<Paolo.Ienne@di.epfl.ch>}. +% \begin{macrocode} +\newif\ifdraftcopy@bottom +\DeclareOption{bottom}{ + \draftcopy@bottomtrue +} +% \end{macrocode} + +% The option to print \emph{DRAFT} at the bottom of the page, after the +% initial pages containing \emph{DRAFT} printed across of a page. +% \begin{macrocode} +\newif\ifdraftcopy@bottomAfter +\DeclareOption{bottomafter}{ + \draftcopy@bottomAftertrue +} +% \end{macrocode} + +% Define the word \emph{DRAFT} and its scaling, in case no language option +% is given. +% The Postscript variable \texttt{draftcopy@Name} holds the word for +% \emph{DRAFT} of that language and \texttt{draftcopy@Scale} is a font +% scale factor, it must be determined +% empirically. +% \begin{macrocode} +\def\draftcopy@Name{DRAFT}\def\draftcopy@Scale{215} +% \end{macrocode} +% +% The babel language options are honored, even currently not all of them have a +% translation for the word \emph{DRAFT}. +% Most of them use latin characters, hence we use |Times-Roman|. The macro +% |draftcopy@Font| holds the font name. +% \begin{macrocode*} +\def\draftcopy@Font{/Times-Roman} +\DeclareOption{american}{ + \def\draftcopy@Name{DRAFT}\def\draftcopy@Scale{215} +} +\DeclareOption{austrian}{ + \def\draftcopy@Name{ENTWURF}\def\draftcopy@Scale{155} +} +\DeclareOption{bahasa}{ + % thanks to Glenn G. Chappell <gchappell@semovm.semo.edu> + \def\draftcopy@Name{DRAF}\def\draftcopy@Scale{217} +} +\DeclareOption{brazil}{ + \def\draftcopy@Name{DRAFT}\def\draftcopy@Scale{215} +} +\DeclareOption{brazilian}{ + \def\draftcopy@Name{DRAFT}\def\draftcopy@Scale{215} +} +\DeclareOption{breton}{ + \def\draftcopy@Name{DRAFT}\def\draftcopy@Scale{215} +} +\DeclareOption{british}{ + \def\draftcopy@Name{DRAFT}\def\draftcopy@Scale{215} +} +\DeclareOption{catalan}{ + % thanks to Dav <davpuig@mx3.redestb.es> + % thanks to Xavier <xml@mat.upc.es> + \def\draftcopy@Name{ESBORRANY}\def\draftcopy@Scale{110} +} +\DeclareOption{croatian}{ + \def\draftcopy@Name{DRAFT}\def\draftcopy@Scale{215} +} +\DeclareOption{czech}{ + \def\draftcopy@Name{DRAFT}\def\draftcopy@Scale{215} +} +\DeclareOption{danish}{ + % thanks to Ejnar Zacho Rath <ezr@md-oss.dk>, + % thanks to Bjarne Vestergaard <bvbruder@dfi.aau.dk> + % thanks to Joergen Larsen <JL@mmf.ruc.dk> + \def\draftcopy@Name{UDKAST}\def\draftcopy@Scale{175} +} +\DeclareOption{dutch}{ + % thanks to Kees Leune <C.J.Leune@kub.nl> + % \def\draftcopy@Name{CONCEPT}\def\draftcopy@Scale{150} + % thanks to Anton Stoorvogel <wscoas@as.win.tue.nl> porposed + \def\draftcopy@Name{ONTWERP}\def\draftcopy@Scale{150} +} +\DeclareOption{english}{ + \def\draftcopy@Name{DRAFT}\def\draftcopy@Scale{215} +} +\DeclareOption{esperanto}{ + % thanks to Stephan B. Webanck <webanck@mpiz-koeln.mpg.de> + \def\draftcopy@Name{MALNETO}\def\draftcopy@Scale{160} +} +\DeclareOption{estonian}{ + % thanks to DAVID FEEST <mirka!mausgoe.central.de! + % gOe.maus.de!David_Feest@uranus.central.de> + \def\draftcopy@Name{VISAND}\def\draftcopy@Scale{215} +} +\DeclareOption{finnish}{ + % thanks to Jaakko Ruohio <jjruohio@boojum.hut.fi> + \def\draftcopy@Name{LUONNOS}\def\draftcopy@Scale{200} + % thanks to Mika Grundstroem <mikagr@spittari.cs.tut.fi> + \def\draftcopy@Name{VEDOS}\def\draftcopy@Scale{220} +} +\DeclareOption{francais}{ + % thanks to Christophe Couvreur <couvreur@Thor.fpms.ac.be> + \def\draftcopy@Name{BROUILLON}\def\draftcopy@Scale{120} +} +\DeclareOption{french}{ + % thanks to Christophe Couvreur <couvreur@Thor.fpms.ac.be> + \def\draftcopy@Name{BROUILLON}\def\draftcopy@Scale{120} + % thanks to Marc Torzynski <marc@snoopy.u-strasbg.fr> + %\def\draftcopy@Name{EPREUVE}\def\draftcopy@Scale{120} +} +\DeclareOption{galician}{ + \def\draftcopy@Name{DRAFT}\def\draftcopy@Scale{215} +} +\DeclareOption{german}{ + \def\draftcopy@Name{ENTWURF}\def\draftcopy@Scale{155} +} +\DeclareOption{germanb}{ + \def\draftcopy@Name{ENTWURF}\def\draftcopy@Scale{155} +} +\DeclareOption{greek}{ + % thanks to Apostolos Syropoulos <apostolo@ocean1.ee.duth.gr> + \def\draftcopy@Name{PROSCEDIO}\def\draftcopy@Scale{85} + \def\draftcopy@Font{/Symbol} +} +\DeclareOption{hungarian}{ + \def\draftcopy@Name{DRAFT}\def\draftcopy@Scale{215} +} +\DeclareOption{icelandic}{ + \def\draftcopy@Name{DRAFT}\def\draftcopy@Scale{215} + % DRÖG + % Erlendur S Thorsteinsson <esth@cmu.edu> + % does anybody knows how to create PostScript for that letter Ö? +} +\DeclareOption{irish}{ + \def\draftcopy@Name{DRAFT}\def\draftcopy@Scale{215} + % DRÉACHT + % Breanndán Ó Nualláin <bon@kotona.demon.nl> + % does anybody knows how to create PostScript for that letter É? +} +\DeclareOption{italian}{ + % thanks to Fabio Massacci <Fabio.Massacci@cl.cam.ac.uk> + % thanks to Paolo Dell'Aquila <dlle07k1@mo.nettuno.it> + \def\draftcopy@Name{BOZZA}\def\draftcopy@Scale{215} + % thanks to Giuseppe De Arcangelis <gdearc@serifos.caspur.it> + % \def\draftcopy@Name{brutta copia}\def\draftcopy@Scale{80} +} +\DeclareOption{lowersorbian}{ + \def\draftcopy@Name{DRAFT}\def\draftcopy@Scale{215} +} +\DeclareOption{magyar}{ + \def\draftcopy@Name{DRAFT}\def\draftcopy@Scale{215} +} +\DeclareOption{norsk}{ + % thanks to: Dag Langmyhr <dag@ifi.uio.no> + \def\draftcopy@Name{UTKAST}\def\draftcopy@Scale{178} +} +\DeclareOption{nynorsk}{ + % thanks to: Dag Langmyhr <dag@ifi.uio.no> + \def\draftcopy@Name{FRAMLEGG}\def\draftcopy@Scale{129} +} +\DeclareOption{polish}{ + % thanks to Piotr Chrusciel <piotr@gargan.math.univ-tours.fr> + \def\draftcopy@Name{BRUDNOPIS}\def\draftcopy@Scale{120} +} +\DeclareOption{portuges}{ + \def\draftcopy@Name{DRAFT}\def\draftcopy@Scale{215} +} +\DeclareOption{portuguese}{ + \def\draftcopy@Name{DRAFT}\def\draftcopy@Scale{215} +} +\DeclareOption{romanian}{ + \def\draftcopy@Name{DRAFT}\def\draftcopy@Scale{215} +} +\DeclareOption{scottish}{ + \def\draftcopy@Name{DRAFT}\def\draftcopy@Scale{215} +} +\DeclareOption{spanish}{ + % thanks to: Tomas Bautista <bautista@cma.ulpgc.es> + \def\draftcopy@Name{BORRADOR}\def\draftcopy@Scale{120} +} +\DeclareOption{slovak}{ + \def\draftcopy@Name{DRAFT}\def\draftcopy@Scale{215} +} +\DeclareOption{slovene}{ + % thanks to brodnik@pegam.mat.uni-lj.si <Andrej Brodnik> + \def\draftcopy@Name{OSNUTEK}\def\draftcopy@Scale{120} +} +\DeclareOption{swedish}{ + % thanks to <matsd@physchem.kth.se> + \def\draftcopy@Name{UTKAST}\def\draftcopy@Scale{185} +} +\DeclareOption{turkish}{ + \def\draftcopy@Name{DRAFT}\def\draftcopy@Scale{215} +} +\DeclareOption{uppersorbian}{ + \def\draftcopy@Name{DRAFT}\def\draftcopy@Scale{215} +} +% \end{macrocode*} + +% Declare the page orientation options. +% \begin{macrocode} +\DeclareOption{portrait}{ + % thanks to Ross MOORE \texttt{ross@maths.mq.edu.au>} + \def\draftcopy@PageTranslate{200 70 translate 65 rotate} + \def\draftcopy@BottomTranslate{0 25 translate} + \def\draftcopy@ScaleFactor{1 } +} +\DeclareOption{landscape}{ + % thanks to Ross MOORE \texttt{ross@maths.mq.edu.au>} + \def\draftcopy@PageTranslate{70 450 translate 25 neg rotate} + \def\draftcopy@BottomTranslate{25 650 translate 90 neg rotate} + \def\draftcopy@ScaleFactor{0.6 } +} +% \end{macrocode} + +% Use these default options, +% \begin{macrocode} +\ExecuteOptions{dark,all,english,portrait} +% \end{macrocode} +% +% instead of |dvips| use the graphics driver specified in the configuration file, +% \begin{macrocode} +\input{draftcopy.cfg} +% \end{macrocode} +% +% and the process the user options. +% \begin{macrocode} +\ProcessOptions +% \end{macrocode} +% +% Tell the user what's ongoing. +% \begin{macrocode} +\typeout{Prints \draftcopy@Name\space on pages; +does not show in your DVI viewer} +% \end{macrocode} +% + +%\begin{macro}{\draftcopyVersion} +% Set the Version text to be printed together with a timestamp +% \begin{macrocode} +\newcommand{\draftcopyVersion}[1]{ + \def\draftcopy@version{#1} +} +% \end{macrocode} +%\end{macro} + +%\begin{macro}{\draftcopySetGrey} +% Set the intensity of the gray, values range from $0.0$ +% to $1.0$, where the smaller values darker. +% If used, it must be conatined in the preamble of the document. +% \begin{macrocode} +\newcommand{\draftcopySetGrey}[1]{ + \def\draftcopy@GrayValue{#1} +} +% \end{macrocode} +%\end{macro} + +%\begin{macro}{\draftcopySetScale} +% Set the size (scale) of the word \emph{DRAFT}. +% You may need this, if you use another paper format. +% The default scales are for A4 paper. +% If used, it must be conatined in the preamble of the document. +% \begin{macrocode} +\newcommand{\draftcopySetScale}[1]{ + \def\draftcopy@Scale{#1} +} +% \end{macrocode} +%\end{macro} + +%\begin{macro}{\draftcopySetScaleFactor} +% Set the scale muliplier of the scale. +% \begin{macrocode*} +\newcommand{\draftcopySetScaleFactor}[1]{ + \def\draftcopy@ScaleFactor{#1 } +} +% \end{macrocode*} +%\end{macro} + +%\begin{macro}{\draftcopyFirstPage} +% The argument specifies the first page onto which +% \emph{DRAFT} will be printed. This is the physical page number. +% If used, it must be conatined in the preamble of the document. +% \begin{macrocode} +\def\draftcopy@FirstPage{0} +\newcommand{\draftcopyFirstPage}[1]{ + \def\draftcopy@FirstPage{#1} +} +% \end{macrocode} +%\end{macro} + +%\begin{macro}{\draftcopyLastPage} +% The argument specifies the last page onto which +% \emph{DRAFT} will be printed. This is the physical page number. +% If used, it must be conatined in the preamble of the document. +% \begin{macrocode} +\newcommand{\draftcopyLastPage}[1]{ + \def\draftcopy@LastPage{#1} +} +% \end{macrocode} +%\end{macro} + +%\begin{macro}{\draftcopyName} +% The first argument specifies the word to be printed instead +% of \emph{DRAFT}, the second, gives the scale factor for the font to +% be used. E.g. the english word \emph{DRAFT} needs 215, the german +% \emph{ENTWURF} needs 155. +% Note we need the blank after the \#2. +% If used, it must be conatined in the preamble of the document. +% \begin{macrocode*} +\newcommand{\draftcopyName}[2]{ + \def\draftcopy@Name{#1} + \def\draftcopy@Scale{#2} +} +% \end{macrocode*} +%\end{macro} + +%\begin{macro}{\@draftcopyTilde} +% If a \~ is used as argument of |\draftcopyName|, we have to supress +% expansion of it. We replace it by a simple space. +% Here we store the original meaning of \~, so that it can be restored +% after setting up the Postscript code. +% \begin{macrocode*} +\let\@draftcopyTilde~ +% \end{macrocode*} +%\end{macro} + + +%\begin{macro}{\draftcopyPageTransform} +% These next 2 commands take raw PostScript +% to set the LL-corner of the \emph{DRAFT} string +% \begin{macrocode*} +\newcommand{\draftcopyPageTransform}[1]{% + \def\draftcopy@PageTranslate{#1}% +} +% \end{macrocode*} +%\end{macro} + +%\begin{macro}{\draftcopyBottomTransform} +% \begin{macrocode*} +\newcommand{\draftcopyBottomTransform}[1]{% + \def\draftcopy@BottomTranslate{#1}% +} +% \end{macrocode*} +%\end{macro} + +% Based on an idea or Sergio Polini \texttt{<s.polini@mclink.it>}: +%\begin{macro}{\draftcopyPageX} +% \begin{macrocode*} +\def\draftcopy@PageX{0 } +\newcommand{\draftcopyPageX}[1]{% + \def\draftcopy@PageX{#1 }% +} +% \end{macrocode*} +%\end{macro} + +%\begin{macro}{\draftcopyPageY} +% \begin{macrocode*} +\def\draftcopy@PageY{0 } +\newcommand{\draftcopyPageY}[1]{% + \def\draftcopy@PageY{#1 }% +} +% \end{macrocode*} +%\end{macro} + +%\begin{macro}{\draftcopyBottomX} +% \begin{macrocode*} +\def\draftcopy@BottomX{0 } +\newcommand{\draftcopyBottomX}[1]{% + \def\draftcopy@BottomX{#1 }% +} +% \end{macrocode*} +%\end{macro} + +%\begin{macro}{\draftcopyBottomY} +% \begin{macrocode*} +\def\draftcopy@BottomY{0 } +\newcommand{\draftcopyBottomY}[1]{% + \def\draftcopy@BottomY{#1 }% +} +% \end{macrocode*} +%\end{macro} + +% Compute, wether we should show the \texttt{DRAFT} text: +% \begin{macrocode*} +\newif\ifdraftcopy@showit +\ifdraftcopy@conditional + \ifdraftcopy@draft + \draftcopy@showittrue + \else + \draftcopy@showitfalse + \fi + \ifdraftcopy@final + \draftcopy@showitfalse + \fi +\else + \draftcopy@showittrue +\fi +% \end{macrocode*} + +% Here we introduce some Postscript code. +% The dictionary \emph{userdict} is extended with the page counter +% \texttt{draftcopy-CurrentPage}. Printing of \emph{DRAFT} +% starts after page |\draftcopy@FirstPage|. +% Each time a new page starts |\draftcopy@BOPhook| is called +% (if it's defined). Hence we define it. First we increment the current +% page counter. +% If then the current page counter is smaller than the +% last page counter |\draftcopy@LastPage| we print the word +% contained in the \LaTeX macro \texttt{draftcopy@Name} +% with the font scaled with \LaTeX macro \texttt{draftcopy@Scale}. +% +% This must be done at the beginning of the document |\AtBeginDocument|, +% so that the preamble commands take effect. +% +% We redfefine and restore the meaning of \~, which may be used in the +% |\draftcopy@Name|, using |\let|. This allows to use |\today| as +% |\draftcopy@Name| for languages like e.g.~ german, which separates the +% day and the month by \~. +% +% The size of the word \emph{DRAFT} is given by |\draftcopy@Scale| and +% multiplied by |\draftcopy@ScaleFactor|, which is needed to different +% page hights of cover landscape and portrait orientation. +% +% Thanks to Glenn G. Chappell \texttt{gchappell@semovm.semo.edu} for +% providing the +% |/draftcopy-old-BOPhook| suggestion, which saves a previous definition of +% |\draftcopy@BOPhook| and executes it too. +% +% \begin{macrocode} +% Thanks to Ross Moore \texttt{ross@ics.mq.edu.au} for adding the code to +% preserve kine-end in the PostScript file. +% \begin{macrocode} +\ifdraftcopy@showit +{\obeyspaces +\ifdraftcopy@bottomAfter + \AtBeginDocument{ + \let~\space + \immediate@special{\draftcopy@UserDictCmd + begin + /draftcopy-CurrentPage 0 def + /draftcopy-old-BOPhook { } def + currentdict \draftcopy@BOPhook\space known{ + /draftcopy-old-BOPhook \draftcopy@BOPhook\space load def + } if + \draftcopy@BOPhook{ + draftcopy-old-BOPhook + /draftcopy-CurrentPage draftcopy-CurrentPage 1 add def + draftcopy-CurrentPage \draftcopy@FirstPage ge + draftcopy-CurrentPage \draftcopy@LastPage le + and + { gsave \draftcopy@PageTranslate + \draftcopy@Font findfont + \draftcopy@Scale \draftcopy@ScaleFactor mul scalefont setfont + \draftcopy@PageX \draftcopy@PageY moveto + \draftcopy@GrayValue setgray + (\draftcopy@Name) \draftcopy@Timestamp \draftcopy@Show + grestore + } if + draftcopy-CurrentPage \draftcopy@LastPage gt + { gsave \draftcopy@BottomTranslate + \draftcopy@Font findfont + 25 scalefont setfont + \draftcopy@BottomX \draftcopy@BottomY moveto + \draftcopy@GrayValue setgray + (\draftcopy@Name\space\space--\space\space) + 0 1 15 { pop dup show } for + grestore + } if + } def + end + } + \let~\@draftcopyTilde + } +\else\ifdraftcopy@bottom + \AtBeginDocument{ + \let~\space + \immediate@special{\draftcopy@UserDictCmd + begin + /draftcopy-CurrentPage 0 def + /draftcopy-old-BOPhook { } def + currentdict \draftcopy@BOPhook\space known{ + /draftcopy-old-BOPhook \draftcopy@BOPhook\space load def + } if + \draftcopy@BOPhook{ + draftcopy-old-BOPhook + /draftcopy-CurrentPage draftcopy-CurrentPage 1 add def + draftcopy-CurrentPage \draftcopy@FirstPage ge + draftcopy-CurrentPage \draftcopy@LastPage le + and + { gsave \draftcopy@PageTranslate + \draftcopy@Font findfont + \draftcopy@Scale \draftcopy@ScaleFactor mul scalefont setfont + \draftcopy@PageX \draftcopy@PageY moveto + \draftcopy@GrayValue setgray + (\draftcopy@Name) \draftcopy@Timestamp \draftcopy@Show + grestore + }if + gsave \draftcopy@BottomTranslate + \draftcopy@Font findfont + 25 scalefont setfont + \draftcopy@BottomX \draftcopy@BottomY moveto + \draftcopy@GrayValue setgray + (\draftcopy@Name\space\space--\space\space) + 0 1 15 { pop dup show } for + grestore + } def + end + } + \let~\@draftcopyTilde + } +\else + \AtBeginDocument{ + \let~\space + \immediate@special{\draftcopy@UserDictCmd + begin + /draftcopy-CurrentPage 0 def + /draftcopy-old-BOPhook { } def + currentdict \draftcopy@BOPhook\space known{ + /draftcopy-old-BOPhook \draftcopy@BOPhook\space load def + } if + \draftcopy@BOPhook{ + draftcopy-old-BOPhook + /draftcopy-CurrentPage draftcopy-CurrentPage 1 add def + draftcopy-CurrentPage \draftcopy@FirstPage ge + draftcopy-CurrentPage \draftcopy@LastPage le + and + { gsave \draftcopy@PageTranslate + \draftcopy@Font findfont + \draftcopy@Scale \draftcopy@ScaleFactor mul scalefont setfont + \draftcopy@PageX \draftcopy@PageY moveto + \draftcopy@GrayValue setgray + (\draftcopy@Name) \draftcopy@Timestamp \draftcopy@Show + grestore + } if + } def + end + } + \let~\@draftcopyTilde + } +\fi\fi +} +\fi +%</package> +% \end{macrocode} +% +% \section{Some Test Input Files} +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% The next bit of code contains the some \LaTeX\ input files with various options set. +% They will be extracted from this file by the \texttt{docstrip} program, using +% the \texttt{test1, ... test12} option. +% \begin{macrocode} +%<*test1> +\documentclass[a4paper]{article} +\usepackage{draftcopy} +\newcommand{\xx}{ +Test 1\\This is a test page \thepage \vfill +This is a testpage \thepage \newpage +} +\begin{document} +Should print DRAFT over all pages, quite dark.\\ +\verb|\usepackage{draftcopy}|\\ +\xx\xx\xx\xx +\end{document} +%</test1> +% \end{macrocode} + +% \begin{macrocode} +%<*test2> +\documentclass[a4paper,german]{article} +\usepackage[light,first]{draftcopy} +\newcommand{\xx}{ +Test2: Should print ENTWURF on the first page, light.\\ +This is a test page \thepage \vfill +This is a testpage \thepage \newpage +} +\begin{document} +\verb|\usepackage[light,first]{draftcopy}|\\ +\xx\xx\xx\xx +\end{document} +%</test2> +% \end{macrocode} +% +% \begin{macrocode} +%<*test3> +\documentclass[a4paper,french]{article} +\usepackage[light,firsttwo]{draftcopy} +\newcommand{\xx}{ +Test3: This is a test page \thepage \vfill +This is a testpage \thepage \newpage +} +\begin{document} +Should print BROUILLON on the first two pages, light.\\ +\verb|\usepackage[light,firsttwo]{draftcopy}|\\ +\xx\xx\xx\xx +\end{document} +%</test3> +% \end{macrocode} +% +% \begin{macrocode} +%<*test4> +\documentclass[a4paper,danish]{article} +\usepackage[light,firsttwo]{draftcopy} +\newcommand{\xx}{ +Test4: This is a test page \thepage \vfill +This is a testpage \thepage \newpage +} +\draftcopyFirstPage{2} +\draftcopyLastPage{3} +\begin{document} +Should print UDKAST on the second and third pages, light.\\ +\verb|\usepackage[light,firsttwo]{draftcopy}|\\ +\verb|\draftcopyFirstPage{2}|\\ +\verb|\draftcopyLastPage{3}|\\ +\xx\xx\xx\xx +\end{document} +%</test4> +% \end{macrocode} +% +% \begin{macrocode} +%<*test5> +\documentclass[a4paper,dutch]{article} +\usepackage[none,bottom]{draftcopy} +\newcommand{\xx}{ +Test5: This is a test page \thepage \vfill +This is a testpage \thepage \newpage +} +\begin{document} +Should print ONTWERP only at the bottom each page.\\ +\verb|\usepackage[none,bottom]{draftcopy}|\\ +\xx\xx\xx\xx +\end{document} +%</test5> +% \end{macrocode} +% +% \begin{macrocode} +%<*test6> +\documentclass[a4paper,finnish]{article} +\usepackage[firsttwo,light,bottom]{draftcopy} +\newcommand{\xx}{ +test6: This is a test page \thepage \vfill +This is a testpage \thepage \newpage +} +\begin{document} +Should print VEDOS on the first two pages, light.\\ +Should print VEDOS at the bottom each page.\\ +\verb|\usepackage[firsttwo,light,bottom]{draftcopy}|\\ +\xx\xx\xx\xx +\end{document} +%</test6> +% \end{macrocode} +% +% \begin{macrocode} +%<*test7> +\documentclass[a4paper,norsk]{article} +\usepackage[light,bottomafter]{draftcopy} +\newcommand{\xx}{ +Test7: This is a test page \thepage \vfill +This is a testpage \thepage \newpage +} +\draftcopyFirstPage{2} +\draftcopyLastPage{3} +\begin{document} +Should print UTKAST on the on the pages 2 and 3, light.\\ +Should print UTKAST on bottom of the page after the third page.\\ +\verb|\usepackage[light,bottomafter]{draftcopy}|\\ +\verb|\draftcopyFirstPage{2}|\\ +\verb|\draftcopyLastPage{3}|\\ +\xx\xx\xx\xx +\end{document} +%</test7> +% \end{macrocode} +% +% +% \begin{macrocode} +%<*test8> +\documentclass[a4paper,nynorsk]{article} +\usepackage[light,firsttwo,outline,bottomafter]{draftcopy} +\newcommand{\xx}{ +Test8: This is a test page \thepage \vfill +This is a testpage \thepage \newpage +} +\begin{document} +Should print FRAMLEGG on the first two pages, light, outlined.\\ +Should print FRAMLEGG on bottom of the page after the second page.\\ +\verb|\usepackage[light,firsttwo,outline,bottomafter]{draftcopy}|\\ +\xx\xx\xx\xx +\end{document} +%</test8> +% \end{macrocode} +% +% +% \begin{macrocode} +%<*test9> +\documentclass{article} +\usepackage[light,firsttwo,outline,bottomafter]{draftcopy} +\newcommand{\xx}{ +Test9: This is a test page \thepage\\ +test~the~tilde~tilde~tilde (1 fixed space (\~{}) between the words)\\ +test~~the~~tilde~~tilde~~tilde (2 fixed spaces (\~{}) between the words)\\ +test~~~the~~~tilde~~~tilde~~~tilde (3 fixed spaces (\~{}) between the words) +\vfill +This is a testpage \thepage \newpage +} +\draftcopyName{Release\space\space\space\today}{130} +\draftcopySetScale{80} +\begin{document} +Should print the word \verb+Release+ and the current date \verb|\today| +(in english) on the first two pages, light, outlined.\\ +Should print the word \verb+Release+ and current date \verb|\today| +(in english) on bottom of the page after the second page.\\ +Check that the lines with \~{} have correct spacing.\\ +\verb|\usepackage[light,firsttwo,outline,bottomafter]{draftcopy}|\\ +and \\ +\verb|\draftcopyName{Release\space\space\space\today}{130}|\\ +\verb|\draftcopySetScale{80}|\\ +in the preamble +\xx\xx\xx\xx +\end{document} +%</test9> +% \end{macrocode} +% +% \begin{macrocode} +%<*test10> +\documentclass[german]{article} +\usepackage{babel} +\usepackage[light,firsttwo,outline,bottomafter]{draftcopy} +\newcommand{\xx}{ +Test10: This is a test page \thepage \\ +test~the~tilde~tilde~tilde (1 fixed space (\~{}) between the words)\\ +test~~the~~tilde~~tilde~~tilde (2 fixed spaces (\~{}) between the words)\\ +test~~~the~~~tilde~~~tilde~~~tilde (3 fixed spaces (\~{}) between the words) +\vfill +This is a testpage \thepage \newpage +} +\draftcopyName{\today}{130} +\draftcopySetScale{80} +\begin{document} +Should print the current date \verb|\today| (in german) on the first two pages, +light, outlined.\\ +Should print the current date \verb|\today| (in german) on bottom of the page +after the second page.\\ +Check that the lines with \~{}) have correct spacing.\\ +\verb|\usepackage[light,firsttwo,outline,bottomafter]{draftcopy}|\\ +and \\ +\verb|\draftcopyName{\today}{130}|\\ +\verb|\draftcopySetScale{80}|\\ +in the preamble +\xx\xx\xx\xx +\end{document} +%</test10> +% \end{macrocode} +% +% \begin{macrocode} +%<*test11> +\documentclass[landscape,a4paper]{article} +\usepackage[landscape]{draftcopy} +\newcommand{\xx}{ +Test 11\\This is a test page with landscape option \thepage \vfill +This is a testpage \thepage \newpage +} +\begin{document} +Should print DRAFT over all pages, quite dark.\\ +\verb|\usepackage[landscape]{draftcopy}|\\ +\xx\xx\xx\xx +\end{document} +%</test11> +% \end{macrocode} +% +% \begin{macrocode} +%<*test12> +\documentclass[landscape,german,a4paper]{article} +\usepackage[landscape,bottom]{draftcopy} +\newcommand{\xx}{ +Test 12\\This is a test page \thepage \vfill +This is a testpage \thepage \newpage +} +\begin{document} +Should print ENTWURF over all pages, quite dark and on the bottom and with +landscape orientation.\\ +\verb|\usepackage[landscape,bottom]{draftcopy}|\\ +\xx\xx\xx\xx +\end{document} +%</test12> +% \end{macrocode} +% +% +% \begin{macrocode} +%<*test13> +\documentclass[a4paper]{article} +\usepackage[conditional]{draftcopy} +\newcommand{\xx}{ +Test 13\\This is a test page \thepage \vfill +This is a testpage \thepage \newpage +} +\begin{document} +Should \emph{NOT} print DRAFT since, conditional is used.\\ +\verb|\usepackage[conditional]{draftcopy}|\\ +\xx\xx\xx\xx +\end{document} +%</test13> +% \end{macrocode} +% +% +% \begin{macrocode} +%<*test14> +\documentclass[draft,a4paper]{article} +\usepackage[conditional]{draftcopy} +\newcommand{\xx}{ +Test 14\\This is a test page \thepage \vfill +This is a testpage \thepage \newpage +} +\begin{document} +Should print DRAFT since, conditional and draft are used.\\ +\verb|\usepackage[conditional]{draftcopy}|\\ +\xx\xx\xx\xx +\end{document} +%</test14> +% \end{macrocode} +% +% +% \begin{macrocode} +%<*test15> +\documentclass[final,a4paper]{article} +\usepackage[conditional]{draftcopy} +\newcommand{\xx}{ +Test 15\\This is a test page \thepage \vfill +This is a testpage \thepage \newpage +} +\begin{document} +Should \emph{NOT} print DRAFT since, final is used (as global option).\\ +\verb|\usepackage{draftcopy}|\\ +\xx\xx\xx\xx +\end{document} +%</test15> +% \end{macrocode} +% +% +% \begin{macrocode} +%<*test16> +\documentclass[a4paper,greek]{article} +\usepackage[timestamp,bottom]{draftcopy} +\newcommand{\xx}{ +Test 16\\This is a test page \thepage \vfill +This is a testpage \thepage \newpage +} +\draftcopyPageX{300} +\draftcopyPageY{100} +\draftcopyBottomX{300} +\draftcopyBottomY{100} +\draftcopySetScaleFactor{0.5} +\draftcopyVersion{Version 2.14: } +\begin{document} +Should print DRAFT (in greek translation and greek letters) +on a moved position.\\ +\verb|\usepackage[timestamp,bottom,greek]{draftcopy}|\\ +\xx\xx\xx\xx +\end{document} +%</test16> +% \end{macrocode} +% +% \Finale +\endinput +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/macros/latex/contrib/draftcopy/draftcopy.ins b/macros/latex/contrib/draftcopy/draftcopy.ins new file mode 100644 index 0000000000..0c2fa24691 --- /dev/null +++ b/macros/latex/contrib/draftcopy/draftcopy.ins @@ -0,0 +1,75 @@ +%% Installation batch file for the package draftcopy to use with LaTeX2e +%% This package is used to print on some pages the word `DRAFT' +%% (or the language dependend analogon) ``behind'' the intended stuff. +%% +%% Copyright (C) 1995 Dr. Juergen Vollmer, Karlsruhe, +%% Viktoriastrasse 15, D-76133 Karlsruhe, Germany +%% Juergen.Vollmer@acm.org +%% +%% This program can be redistributed and/or modified under the terms +%% of the LaTeX Project Public License Distributed from CTAN +%% archives in directory macros/latex/base/lppl.txt; either +%% version 1 of the License, or any later version. +%% +%% If you find this software useful, please send me a postcard. +%% +%% To install: +%% call "latex draftcopy.ins" +%% or under UNIX systems +%% call "make" +%% +%% This will produce three files: +%% draftcopy.dtx +%% draftcopy.sty +%% draftcopy.cfg this should be configured to your needs +%% and files containg some tests: +%% draftcopy-test1.tex ... draftcopy-test12.tex +%% +%% To get the documentation: "latex draftcopy.dtx" +%% +%% --------------- start of docstrip commands ------------------ +%% +\def\batchfile{draftcopy.ins} +\input docstrip.tex + +\Msg{} +\Msg{***********************************************************} +\Msg{** Hello to the installation of the `draftcopy' package.} +\Msg{** Version: 2.16; February 25, 2002} +\Msg{***********************************************************} +\Msg{} + +\generateFile{draftcopy.dtx}{f}{\from{draftcopy.doc}{driver}} +\generateFile{draftcopy.sty}{f}{\from{draftcopy.doc}{package}} +\generateFile{draftcopy.cfg}{f}{\from{draftcopy.doc}{config}} +\generateFile{draftcopy-test-1.tex}{f}{\from{draftcopy.doc}{test1}} +\generateFile{draftcopy-test-2.tex}{f}{\from{draftcopy.doc}{test2}} +\generateFile{draftcopy-test-3.tex}{f}{\from{draftcopy.doc}{test3}} +\generateFile{draftcopy-test-4.tex}{f}{\from{draftcopy.doc}{test4}} +\generateFile{draftcopy-test-5.tex}{f}{\from{draftcopy.doc}{test5}} +\generateFile{draftcopy-test-6.tex}{f}{\from{draftcopy.doc}{test6}} +\generateFile{draftcopy-test-7.tex}{f}{\from{draftcopy.doc}{test7}} +\generateFile{draftcopy-test-8.tex}{f}{\from{draftcopy.doc}{test8}} +\generateFile{draftcopy-test-9.tex}{f}{\from{draftcopy.doc}{test9}} +\generateFile{draftcopy-test-10.tex}{f}{\from{draftcopy.doc}{test10}} +\generateFile{draftcopy-test-11.tex}{f}{\from{draftcopy.doc}{test11}} +\generateFile{draftcopy-test-12.tex}{f}{\from{draftcopy.doc}{test12}} +\generateFile{draftcopy-test-13.tex}{f}{\from{draftcopy.doc}{test13}} +\generateFile{draftcopy-test-14.tex}{f}{\from{draftcopy.doc}{test14}} +\generateFile{draftcopy-test-15.tex}{f}{\from{draftcopy.doc}{test15}} +\generateFile{draftcopy-test-16.tex}{f}{\from{draftcopy.doc}{test16}} + +\Msg{} +\Msg{***********************************************************} +\Msg{** Edit the file draftcopy.cfg and set the default Postscript driver} +\Msg{** c.f. the file graphics.cfg.} +\Msg{** To finish the installation move the file `draftcopy.sty' and} +\Msg{** draftcopy.cfg to a place where LaTeX will find it.} +\Msg{** To get the documentation: `latex draftcopy.dtx'} +\Msg{** To get some test files: `latex draftcopy-test-1.tex'} +\Msg{** ... `latex draftcopy-test-12.tex'} +\Msg{** Happy TeXing} +\Msg{***********************************************************} +\Msg{} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ No newline at end of file diff --git a/macros/latex/contrib/draftcopy/draftcopy.pdf b/macros/latex/contrib/draftcopy/draftcopy.pdf Binary files differnew file mode 100644 index 0000000000..d30ba62e35 --- /dev/null +++ b/macros/latex/contrib/draftcopy/draftcopy.pdf |