DataMuseum.dk

Presents historical artifacts from the history of:

DKUUG/EUUG Conference tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about DKUUG/EUUG Conference tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download
Index: T g

⟦3637162c5⟧ TextFile

    Length: 3799 (0xed7)
    Types: TextFile
    Names: »getafm.ps«

Derivation

└─⟦52210d11f⟧ Bits:30007239 EUUGD2: TeX 3 1992-12
    └─⟦c319c2751⟧ »unix3.0/TeX3.0.tar.Z« 
        └─⟦036c765ac⟧ 
            └─⟦this⟧ »TeX3.0/MFcontrib/adobefonts/getafm.ps« 
└─⟦060c9c824⟧ Bits:30007080 DKUUG TeX 2/12/89
    └─⟦this⟧ »./tex82/MFcontrib/adobefonts/getafm.ps« 
└─⟦52210d11f⟧ Bits:30007239 EUUGD2: TeX 3 1992-12
    └─⟦63303ae94⟧ »unix3.14/TeX3.14.tar.Z« 
        └─⟦c58930e5c⟧ 
            └─⟦this⟧ »TeX3.14/MFcontrib/adobefonts/getafm.ps« 

TextFile

%!
% Get standard Adobe AFM file from PostScript device
% The format is based only on looking at other AFM files, and not from any
% definition of an AFM file, so could be wrong.  It suits the needs of aftopl,
% however, once the CR's are trimmed out of the CR-LF pairs that the printer
% outputs for end-of-line.

% Uncomment all lines beginning %-% if you want the results printed, instead
% of being transmitted back to the host

% The following is set to the size that everything should be calculated at.

/FontSize 1000 def

/nstr 8 string def
/wstr 16 string def
/char 1 string def
/tempstr 256 string def

/bdef { bind def } def

%-%/TFont /Times-Roman findfont 10 scalefont def
%-%/prdict 5 dict def
%-%prdict begin
%-%    /lmargin 36 def
%-%    /top 11 72 mul def
%-%    /bottom 48 def
%-%    /line top def
%-%    /vs 12 def
%-%end
%-%/print { TFont setfont show } bdef
%-%/= {
%-%    prdict begin
%-%        tempstr cvs print
%-%        line vs sub
%-%          dup bottom le
%-%            { pop showpage top }
%-%          if
%-%          /line exch def
%-%        lmargin line moveto
%-%    end
%-%} bdef

/np { newpath 0 0 moveto } bdef
/getbbox {
  gsave
    np
    XFont setfont
    false charpath flattenpath pathbbox
  grestore
} def

/prany {
    dup currentdict exch known {
        dup (isFixedPitch) eq {
            (IsFixedPitch) print
        }
        {
            dup (version) eq {
                (Version) print
            }
            {
                dup print
            } ifelse
        } ifelse
        ( ) print
        cvn load =
    }
    { pop } ifelse
} def

/pri {
    dup print ( ) print
    cvn load round cvi wstr cvs =
} def

/prarr {
    dup print ( ) print
    cvn load {
        tempstr cvs print ( ) print
    } forall
    () =
} def

/prtwidth {
    char 0 3 -1 roll put
    XFont setfont
    char stringwidth
    pop round cvi wstr cvs
} bdef

/prtkern {
    [ exch getbbox ] {
        round cvi wstr cvs print ( ) print
    } forall
} bdef

/PrintDitEntry {
    (C ) print charnum nstr cvs print
    ( ; WX ) print charnum prtwidth print
    ( ; N ) print charname tempstr cvs print
    ( ; B ) print char prtkern
    charname /f eq {
        XFont /CharStrings get
        dup /fi known {
            (; L i fi ) print
        } if
        /fl known {
            (; L l fl ) print
        } if
    } if
    (;) =
} bdef

/PrintCharMetrics {
    /charnum exch def
     /charname XFont /Encoding get charnum get def

    % look up ditroff name using PostScript name
    charname /.notdef ne { PrintDitEntry } if
} bdef

/getafm {
    /name exch def
    /XFont name findfont FontSize scalefont def
    /XFontInfo XFont /FontInfo get def

    % print font width table header
%-%    prdict begin
%-%      /line top def
%-%      lmargin top moveto
%-%    end
    (StartFontMetrics 1.0) =
    (Comment Produced by getafm.ps) =
    XFont begin (FontName) prany end
    XFontInfo begin
      (FullName) prany
      (FamilyName) prany
      (Weight) prany
      (ItalicAngle) prany
      (isFixedPitch) prany
      (UnderlinePosition) prany
      (UnderlineThickness) prany
      (version) prany
      (Notice) prany
    end
    XFont begin (FontBBox) prarr end
    (T) getbbox /CapHeight exch def pop pop pop
    (CapHeight) pri
    (x) getbbox /XHeight exch def pop pop pop
    (XHeight) pri
    (p) getbbox pop pop /Descender exch def pop
    (Descender) pri
    (d) getbbox /Ascender exch def pop pop pop
    (Ascender) pri
    (StartCharMetrics) =

    0 1 255 {
        PrintCharMetrics flush
    } for

    (EndCharMetrics) =
    (EndFontMetrics) =
%-%     showpage
} bdef

% Sample uses of getafm:
%    /Times-Roman getafm
%    /Palatino-Roman getafm
%    /NewCenturySchlbk-Roman getafm
%    /AvantGarde-Book getafm
%    /Bookman-Demi getafm