summaryrefslogtreecommitdiff
path: root/Build/source/texk/dvipsk/texps.lpro
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/texk/dvipsk/texps.lpro')
-rw-r--r--Build/source/texk/dvipsk/texps.lpro129
1 files changed, 0 insertions, 129 deletions
diff --git a/Build/source/texk/dvipsk/texps.lpro b/Build/source/texk/dvipsk/texps.lpro
deleted file mode 100644
index a70671c750c..00000000000
--- a/Build/source/texk/dvipsk/texps.lpro
+++ /dev/null
@@ -1,129 +0,0 @@
-% Thanks for some changes to:
-%+ This is TEXPS.LPRO as modified by Rob Hutchings 1992Apr02. Public domain.
-%+ My comments are marked as %+
-% PostScript prolog for using resident fonts.
-%+ Provision is made to change the encoding scheme in special instructions.
-%+ This is the only way to access the 20 characters which are present in
-%+ a standard PostScript font, but not included in the standard encoding.
-% All we do is change the widths so that PostScript positioning
-% matches the assumptions of dvips.
-
-% The calling sequence defining font foo to be resident font Bar is
-%+ /foo wd(n-1) ... wd1 wd0 {specials} n atsize /Bar rf
-% where each character width wdi is in pixels,
-%+ and atsize is the desired font size, after magnification, in pixels.
-% The locations of unused characters are specified by codes of the form
-% `m [', denoted m consecutive unused characters, interspersed among the
-% widths of the n characters that are actually used.
-% The total n + (sum of m's) must equal 256.
-
-%
-TeXDict begin
-%
-/rf
-% We copy everything but the FID entry of the resident font
-% (just as in section 5.6 of the Red Book second edition).
-% We also don't copy UniqueID, even though we want to, because
-% this messes up systems that cache the fonts, for some
-% PostScript fonts.
-{ findfont dup length 1 add dict begin
- { 1 index /FID ne 2 index /UniqueID ne and
- {def} {pop pop} ifelse } forall
-% Now the top entry on the stack is the desired size, which
-% we use to construct the matrix to transform the font.
-% The way we do this is constrained by our desire to leave
-% a hook for extending and/or slanting; the hook also allows
-% the font to be reencoded extremely cheaply.
-% Extend and slant are coded in positions 0 and 2 of the matrix,
-% whose default values are atsize and 0
- [ 1 index 0
-% at this point we pick up and obey the special instructions
- 6 -1 roll exec
-% which changes `{s} n at [ at 0' to `n at [ AT S' (see SlantFont below)
-% and then we will insert the rest of the matrix. It is imperative that
-% VResolution Resolution div mul
-% be used instead of
-% VResolution mul Resolution div
-% because the latter gives us floating point roundoff error that
-% causes the interpreter to think the font isn't square, and this
-% leads to substantially deteriorated character glyphs.
- 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0 ]
-% The top of stack is now `n [ AT 0 S at*aspect 0 0]';
-% we use this matrix to scale the font later. We store it in Metrics,
-% which we'll give a different definition to anyway later.
- FontType 0 ne {
- /Metrics exch def
-% Now we start the dictionary of length n that will eventually be Metrics:
- dict begin
-% When the font is used the width in the Metrics dictionary will be
-% multiplied by FontMatrix[0] to give the actual character width.
-% We therefore divide each width by FontMatrix[0] before storing.
-% (We assume that FontMatrix has the form [ x 0 0 x 0 0 ].)
-% Note that using FontMatrix[0] is safer than assuming milli-em units,
-% and that loading the widths on to the stack rather than using an array
-% allows the following simple coding.
-% We also allow marks on the stack ([) to mean that we don't use
-% that character and thus don't need any Metrics entry for it.
-% This saves lots of VM.
-% A sequence of m marks is represented by `m ['.
- Encoding { exch dup type /integertype ne
- {pop pop 1 sub dup 0 le {pop} {[} ifelse}
- {FontMatrix 0 get div Metrics 0 get div def} ifelse } forall
-% Now we put the widths dictionary into the font, after grabbing
-% the current definition of Metrics back.
- Metrics /Metrics currentdict end def
- } {
- { 1 index type /nametype eq {exit } if exch pop } loop
- } ifelse
-% and duplicate /foo so that it can be used both in definefont
-% and as the name of the macro, which is created first as a
-% non-executable array so that we can put the new font dictionary
-% itself inside the macro;
- [ 2 index currentdict end definefont 3 -1 roll makefont
-% this involves a circumlocution to insert the setfont command.
- /setfont cvx ]
-% Finally the macro is made executable and given the name /foo.
- cvx def } def
-%
-% Now here's some oblique hackery... an example of making
-% variants of a resident font look like it is resident.
-%+ Since dvips has to repeat the special instructions for each
-%+ incarnation of such a hacked font, there appears to be little virtue in
-%+ the halfway-house of naming the hacked font. I have therefore omitted
-%+ the PostScript names of the modified fonts;
-%+ the defining lines in psfonts could be
-%+ rptmro Times-Roman ".167 SlantFont"
-%+ My versions of SlantFont and ExtendFont are obeyed in the core of the
-%+ main macro, at a point where the stack contains
-%+ atsize [ x y
-%+ where x and y will become entries 0 and 2 of the transformation matrix.
-% Optionally replace the `slant' by `angle ObliqueSlant';
-% note that the ObliqueSlant of Times-Italic is -15.5 (negative).
-%
-/ObliqueSlant { % angle ObliqueSlant slant
- dup sin S cos div neg
- } B
-
-% A slant is multiplied by atsize and added to entry 2 (initially 0)
-/SlantFont {4 index mul add} def
-
-% An extend is simply a multiplier for entry 0 (initially atsize)
-/ExtendFont {3 -1 roll mul exch} def
-
-% Since at the point at which the hook is obeyed, the current dictionary
-% is that of the new font and writeable, it is trivial to include the
-% option of reencoding the font.
-/ReEncodeFont {
- CharStrings rcheck {
- /Encoding false def dup
- [ exch {
- dup CharStrings exch known not {
- pop /.notdef
- /Encoding true def
- } if
- } forall
- Encoding {] exch pop} {cleartomark} ifelse
- } if
- /Encoding exch def
-} def
-end