summaryrefslogtreecommitdiff
path: root/macros/latex209/contrib/misc/draftstamp.sty
blob: 89b90075975ab39f54b85c332f6fd8a369c7706e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
% DRAFTSTAMP.sty
%
%   Put a big DRAFT (or anything) across each page (or only the first page),
% using PostScript.
%
% USAGE
%   Bring it in with 
%     \input draftstamp.sty
% (LaTeX users can instead say \documentstyle[...,draftstamp,...]{...}).  
% The default it to print DRAFT without the user doing anything. 
%
% RESTRICTIONS
%   1) Expects the DVI to PostScript driver to be DVIPS.
%
% REMARKS
%   1) The angle, position, font, and typesize can be changed inside each 
%    document if you comment out the \draftstamp just up from the bottom of
%    this file.  The price is that you have to say \draftstamp yourself,
%    after you (optionally) redefine these values (obviously at the
%    start of the document).  Example: for LaTeX, the line after
%      \documentstyle[..,draftstamp,..]{..}
%    could read 
%      \def\drafttext{INTERNAL ONLY}\def\draftPSscalefont{ 100 }\draftstamp
%    (note the \draftstamp).  See also Installation (3).
%   2) The number before setgray describes lightness or darkness of the text.
%    This is white area/total area, so white=1, black=0.
%   3) Called draftstamp.sty and not draftstamp.tex (i) so LaTeX users can
%    include it in the list of substyles, if desired, and (ii) so a person
%    on the nets can tell from the directory listing alone that it is
%    a drop-in file, and not a document.
%
% INSTALLATION
%   0) Put this where your TeX looks for files.  For emTeX that is probably
%    c:\emtex\texinputs.
%   1) Run as described in Usage and check the darkness of DRAFT.  Tip: check
%    if it reproduces on your favorite copier.  See Remark (2).
%   2) Have the next line be uncommented if you want a warning when the 
%    stamp is on.
\message{   Substyle DRAFTSTAMP <93-Jul-07 jh>.}
%   3)  Some people may want DRAFT only on the first page.  Or they may want
%    some other text. They need to change this file (or, if this file is in 
%    an inaccessable shared area, change a copy of this file in their home 
%    area).
%       Here are their options.
%       (i) Go to the bottom.  
%           Change the commenting so that \draftfirstpageonlytrue is the 
%         default.  Now every document will put DRAFT on only the first page.
%           Or, change \drafttext to \def\drafttext{v. 1.01}.  Now every
%         document will have v. 1.01 on the pages.  Of course, non-English
%         documents will need something like this.
%           Or, change any default in this way.
%       (ii) To decide values on a per-document basis, go to the bottom and 
%          comment out the \draftstamp invocation.  Inside eacy document,
%          any changes made to the defaults must be followed by \draftstamp: 
%          for instance, DRAFT only on the first page with
%             \draftfirstpageonlytrue\draftstamp  
%          (naturally you can, for instance, combine the \input draftstamp.sty 
%          line and the above into a personal macro).
%        (iii) Modify this file to either prompt the user or to look for a 
%          user's (configuration or profile) file to set defaults on a 
%          per-user basis. I (jh) thought these were both big solutions to 
%          a small problem, so I didn't do them.
%
% HISTORY
%   93-Jul-07 jh Lones Smith (lones@lones.mit.edu) suggests an option for 
%     printing only on the first page.  I made some internal changes so 
%     that could be done at document-processing time, instead of set
%     by a system manager.
%   93-Jul-01 jh Added Installation (1) tip.  Posted to SHSU.
%   93-May-18 jh Changed setgray number from .99 to .94 to make DRAFT darker
%     so it will reproduce on my copier.
%   93-Mar-05 jim hefferon (hefferon@smcvax.smcvt.edu)  Typed in from an note
%     given by Vivek Khera (khera@cs.duke.edu) on comp.text.tex, who said it
%     came first from Anita Marie Hoover (anita@brahms.udel.edu).  ?Derives 
%     first from the dvips manual?
%
% macro: \draftstamp  Insert raw PostScript via a dvips \special.
%    The dvips manual under Other Bells and Whistles suggests printing a DRAFT
% across each page with essentially:  
%    \special{! userdict 
%       begin /bop-hook{
%         gsave 200 30 translate
%         65 rotate /Times-Roman findfont 220 scalefont setfont
%         0 0 moveto 0.94 setgray (DRAFT) show grestore
%       }def end}}%
% (`bop-hook' for  `beginning of page'?).  I (jh) turned these numbers
% into variables and buried it inside a \def\draftstamp so the numbers are 
% set when the \draftstamp command is issued, instead of when this file is 
% read.
\newif\ifdraftfirstpageonly
%    Now either \draftfirstpageonlytrue or \draftfirstpageonlyfalse
% puts DRAFT only on the first page, or on every page.  Omitting both
% amounts to `false'.  See the discussion of \newif (p. 211 in TeXbook).
% (I (jh) chose \newif instead of an optional argument so plain TeX works,
% not just LaTeX.) 
\def\draftstamphook{\ifdraftfirstpageonly/start%
                    \else/bop%
                    \fi}
\def\draftstamp{\special{! userdict 
       begin \draftstamphook-hook{
         gsave \draftPStranslate translate
         \draftPSrotate rotate \draftPSfont findfont 
         \draftPSscalefont scalefont setfont
         \draftPSmoveto moveto \draftPSgraylevel setgray 
         (\drafttext) show grestore
       }def end}}%
%
% DEFAULTS
\def\drafttext{DRAFT}
\def\draftPStranslate{ 200 30 }
\def\draftPSscalefont{ 220 }
\def\draftPSgraylevel{ 0.94 } % See Remarks (2) and Installation (1).
\def\draftPSrotate{ 65 }
\def\draftPSmoveto{ 0 0 }
\def\draftPSfont{ /Times-Roman }
%   Comment out whichever of these you don't want to make the default.
\draftfirstpageonlyfalse    % do all pages
%\draftfirstpageonlytrue    % do first page only
%
%   The next command activates \draftstamp. If you want to activate 
% differently for each document (say, by sometimes changing DRAFT to
% SECRET) you  need to comment this line out.  (It 
% is here for compatibility with old versions of this style.)  See also 
% Installation (3).
\draftstamp

\endinput