/etc/elvis/elvis.ps is in elvis 2.2.0-11.1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 | % lib/elvis.ps
%
% This file is inserted into any PostScript generated by elvis. It defines
% the following symbols:
% ElvisN push a 12-point normal font
% ElvisB push a 12-point bold font
% ElvisI push a 12-point italic font
% ElvisPage translate & scale a page to fit the paper
% ElvisLeftPage translate, rotate & scale to fit left half of paper
% ElvisRightPage translate, rotate & scale to fit right half of paper
% ElvisLeftEdge CONSTANT offset to left edge of printable area
% ElvisTopEdge CONSTANT offset to right edge of printable area
% ElvisWidth CONSTANT width of printable area
% ElvisHeight CONSTANT height of printable area
%
% In addition, elvis itself inserts some header information before this file,
% in each PostScript output. This includes the standard comments at the top
% of the job, and also defines the following from elvis' options...
% ElvisPaper CONSTANT name of the page size, such as (letter) or (a4)
% ElvisLines CONSTANT lines per logical page
% ElvisColumns CONSTANT columns per logical line
% ElvisBar CONSTANT BOOL bar separating pages in two-up format
% ElvisFrame CONSTANT BOOL frame around each page in two-up format
% ElvisPunch CONSTANT BOOL increase left margin to leave room for a 3-hole punch
% ElvisClip CONSTANT BOOL increase top margin for use with a clipboard
% Define the printing offsets. These indicate where the *PRINTABLE* portion
% of each page starts. This is likely to vary from one printer to another.
% The unit of measurement is a Point, approximately 1/72 of an inch.
/ElvisLeftEdge 12 def
/ElvisTopEdge 36 def
% Define the width and height of the printable area. This will vary with
% the type of paper. The unit of measurement is a Point, ~ 1/72 of an inch.
(letter) ElvisPaper eq {
/ElvisWidth 576 def
/ElvisHeight 720 def } if
(legal) ElvisPaper eq {
/ElvisWidth 576 def
/ElvisHeight 936 def } if
(executive) ElvisPaper eq {
/ElvisWidth 486 def
/ElvisHeight 634 def } if
(a4) ElvisPaper eq {
/ElvisWidth 558 def
/ElvisHeight 770 def } if
(a3) ElvisPaper eq {
/ElvisWidth 770 def
/ElvisHeight 1116 def } if
% Get the size of the print area, and its edge offsets
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%% %%%%%%%%%%%%
%%%%%%%%%% You probably won't need to modify anything after this %%%%%%%%%%%%
%%%%%%%%%% %%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% If ElvisWidth/ElvisHeight undefined, use default values
true userdict { pop /ElvisWidth eq { pop false } if } forall {
/ElvisHSlop 24 def
/ElvisWSlop 9 def
clippath pathbbox 4 2 roll
/ElvisTopEdge exch ElvisHSlop add def
/ElvisLeftEdge exch ElvisWSlop add def
/ElvisHeight exch ElvisTopEdge sub ElvisHSlop 2 mul sub def
/ElvisWidth exch ElvisLeftEdge sub ElvisWSlop 2 mul sub def
newpath
} if
% Adjust for punch
ElvisPunch ElvisLeftEdge 60 le and {
userdict /ElvisWidth ElvisWidth ElvisLeftEdge add 60 sub put
userdict /ElvisLeftEdge 60 put
} if
%Adjust for clipboard
ElvisClip ElvisTopEdge 72 le and {
userdict /ElvisHeight ElvisHeight ElvisTopEdge add 72 sub put
userdict /ElvisTopEdge 72 put
} if
% The virtual width/height varies with the number of rows/columns. For
% 80 columns by 60 rows, it is always 576 by 720 regardless of the paper size.
/ElvisVWidth ElvisColumns 80 div 576 mul def
/ElvisVHeight ElvisLines 60 div 720 mul def
% Compute the desired width of a string, instead of its actual width
/ElvisStringWidth
{
length ElvisColumns div ElvisVWidth mul
} def
% Draw a string with the width that it would have if it was fixed-pitch.
/ElvisShow
{
% {string}
% Push two copies of the string.
dup dup
% {string string string}
% Compute the scaling factors -- x=desired/normal, y=1.
ElvisStringWidth exch stringwidth pop div 1
% {string xscale yscale}
% Change scaling factor, but only temporarily. {string}
gsave scale
% {string}
% Draw the text {}
show
% Restore the scaling factor, leaving the currentpoint after text. {}
currentpoint grestore moveto
} def
% This array lists the shapes of every Latin-1 character.
/Latin1
[/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus /comma /minus /period /slash
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon /less /equal /greater /question
/at /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 /bracketleft /backslash /bracketright /asciicircum /underscore
/quoteleft /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 /braceleft /bar /braceright /asciitilde /space
/space /space /space /space /space /space /space /space
/space /space /space /space /space /space /space /space
/space /space /space /space /space /space /space /space
/space /space /space /space /space /space /space /space
/space /exclamdown /cent /sterling /currency /yen /brokenbar /section
/dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron
/degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /periodcentered
/cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown
/Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis
/Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply
/Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls
/agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla
/egrave /eacute /ecircumflex /edieresis /igrave /iacute /icurcumflex /idieresis
/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide
/oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] def
% This procedure is passed two names - The name of a new font to create, and
% the name of an existing font to create it from. Upon completion, the
% args have been removed from the stack and the new font is defined. The
% only difference between the two is that the new font uses the Latin-1
% encoding.
/DoTheLatinShuffle
{
findfont
dup maxlength dict /Temp exch def
{ exch dup dup /FID ne exch /UniqueID ne and
{ exch Temp 3 1 roll put }
{ pop pop }
ifelse
} forall
Temp dup /Encoding Latin1 put
definefont pop
} def
% Derive 3 Latin-1 fonts from the existing fonts
/Elvis-Normal /Courier DoTheLatinShuffle
/Elvis-Bold /Courier-Bold DoTheLatinShuffle
/Elvis-Italic /Courier-Oblique DoTheLatinShuffle
/Elvis-Proportional-Normal /Times-Roman DoTheLatinShuffle
/Elvis-Proportional-Bold /Times-Bold DoTheLatinShuffle
/Elvis-Proportional-Italic /Times-Italic DoTheLatinShuffle
% Define symbolic names for the 12-point versions of those fonts
/ElvisN /Elvis-Normal findfont 12 scalefont def
/ElvisB /Elvis-Bold findfont 12 scalefont def
/ElvisI /Elvis-Italic findfont 12 scalefont def
/ElvisPN /Elvis-Proportional-Normal findfont 12 scalefont def
/ElvisPB /Elvis-Proportional-Bold findfont 12 scalefont def
/ElvisPI /Elvis-Proportional-Italic findfont 12 scalefont def
% Define the page-scaling functions
/ElvisPage
{
ElvisLeftEdge ElvisTopEdge translate
ElvisWidth ElvisVWidth div ElvisHeight ElvisVHeight div scale
} def
/ElvisLeftPage
{
ElvisLeftEdge ElvisWidth add ElvisTopEdge translate
90 rotate
ElvisHeight ElvisVWidth 2 mul div ElvisWidth ElvisVHeight div scale
ElvisWidth 0.02 mul ElvisHeight 0.02 mul translate 0.94 0.96 scale
0 setlinewidth
% Draw a frame around page
ElvisFrame {
-5 -5 moveto
ElvisVWidth 10 add 0 rlineto
0 ElvisVHeight 10 add rlineto
ElvisVWidth 10 add neg 0 rlineto
closepath stroke
} if
} def
/ElvisRightPage
{
% Draw a line between left & right pages
ElvisBar {
newpath
ElvisLeftEdge ElvisTopEdge ElvisHeight 2 div add moveto
ElvisWidth 0 rlineto
stroke
} if
ElvisLeftEdge ElvisWidth add ElvisTopEdge ElvisHeight 2 div add translate
90 rotate
ElvisHeight ElvisVWidth 2 mul div ElvisWidth ElvisVHeight div scale
ElvisWidth 0.04 mul ElvisHeight 0.02 mul translate 0.94 0.96 scale
0 setlinewidth
% Draw a frame around page
ElvisFrame {
-5 -5 moveto
ElvisVWidth 10 add 0 rlineto
0 ElvisVHeight 10 add rlineto
ElvisVWidth 10 add neg 0 rlineto
closepath stroke
} if
} def
|