%% %% This is file `pfontdef.tex' %% %% From original copyright (C) 1989,1990 by Frank Mittelbach, Rainer Schoepf. %% changed March 17th 1990 by Sebastian Rahtz %% checked December 1991 %% All rights reserved. %% %% Error Reports in case of UNCHANGED versions to %% %%Sebastian Rahtz %%5 Granary Court %%St Andrewgate %%York Y01 2JR %% %%spqr@uk.ac.soton.ecs %% %% \def\fileversion{v2.1} \def\filedate{91/12/10} %% \CharacterTable %% {Upper-case \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 %% Lower-case \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 %% Digits \0\1\2\3\4\5\6\7\8\9 %% Exclamation \! Double quote \" Hash (number) # %% Dollar \$ Percent \% Ampersand \& %% Acute accent \' Left paren \( Right paren \) %% Asterisk \* Plus \+ Comma \, %% Minus \- Point \. Solidus \/ %% Colon \: Semicolon \; Less than \< %% Equals \= Greater than \> Question mark \? %% Commercial at \@ Left bracket \[ Backslash \\ %% Right bracket \] Circumflex \^ Underscore \_ %% Grave accent \` Left brace \{ Vertical bar \| %% Right brace \} Tilde \~} %% %% This file contains the external font information needed to load most of %% the computer modern family designed by Donald E. Knuth (optionally %% in correct design sizes (no magnification if possible) by specifying %% a different set of definitions) and a wide range of PostScript fonts %% %% For other collections of fonts see the file `fontdef.ori' or `fontdef.max' %% %% The format of a font/shape definition is described fully in %% eg fontdef.max in the NFSS distribution. \immediate\write\sixt@@n{File: `pfontdef.tex' \fileversion\space <\filedate> (SPQR)} \immediate\write\sixt@@n {********************************************************************} \immediate\write\sixt@@n {*by Sebastian Rahtz from M & S original, to support PostScript fonts *} \immediate\write\sixt@@n {********************************************************************} %% %% Please don't change the next lines unless you know exactly what you %% are doing. %% \def\default@shape{n} \def\default@series{m} \def\default@family{cmr} \def\default@errfont{cmsy10} %% %% \fontfamily\default@family \fontseries\default@series \fontshape\default@shape %% %% load in one of the existing fontdef.* files which set up %% Computer Modern Roman. I use a slightly amended version of %% fontdef.ori %% \input fontdef.mag %---------------------------------------------------------------------------- % left to itself, the NFSS restricts a number of commands % to the preamble only. I want to be able to load fonts anywhere % in the document, so I take a copy now before the NFSS disables them! % \let\late@extra@def=\extra@def \let\late@subst@fontshape=\subst@fontshape \let\late@new@fontshape=\new@fontshape %% Generalized scheme for PostScript fonts, assuming they %% all have the same basic structure. %%----------------------------------------------------------- %% Some of these macros adapted from npsfonts.sty by Timothy van Zand %%----------------------------------------------------------- %% %% An optional first argument to %% \declare@font scales the font %parameters % 1 - scaling factor % 2 - name of font family % 3 - series % 4 - style % 5 - fontname \def\declare@font{% \@ifnextchar [{\declare@@font}{\declare@@font[1]}} % \def\declare@@font[#1]#2#3#4#5% {\scale@stdsizes{#1}% \late@new@fontshape{#2}{#3}{#4}{\scaled@sizes{#5}}{}} % \def\font@scale#1#2#3{\dimen@=#2\dimen@=#3\dimen@ \edef\scaled@sizes##1{\scaled@sizes{##1}<#1>##1 at\number\dimen@ sp}} % \def\scale@stdsizes#1{% \edef\scaled@sizes##1{}% \font@scale{5}{5pt}{#1}% \font@scale{6}{6pt}{#1}% \font@scale{7}{7pt}{#1}% \font@scale{8}{8pt}{#1}% \font@scale{9}{9pt}{#1}% \font@scale{10}{10pt}{#1}% \font@scale{11}{10.95pt}{#1}% \font@scale{12}{12pt}{#1}% \font@scale{14}{14.4pt}{#1}% \font@scale{17}{17.28pt}{#1}% \font@scale{20}{20.74pt}{#1}% \font@scale{25}{24.88pt}{#1}} %% %% An optional first argument to %% \postscript@font scales the font \def\postscript@fontdef{% \@ifnextchar [{\postscript@font}{\postscript@font[1]}} %% \def\postscript@font[#1]#2#3#4#5#6#7#8#9{ \expandafter\ifx\csname l@d#3\endcsname\relax % 2 : full name for family % 3 : short name for family % 4 : tfm name for normal font % 5 : tfm name for italic font % 6 : tfm name for boldfont % 7 : tfm name for bolditalic font % 8 : tfm name for smallcaps font % 9 : tfm name for slanted font \immediate\write\sixt@@n {********************************************************************} \immediate\write\sixt@@n {Defining fonts for PostScript #2 family at scale #1} %\immediate\write\sixt@@n % {#3 as shortname} %\immediate\write\sixt@@n % {#4 as TFM name for normal font} %\immediate\write\sixt@@n % {#5 as TFM name for italic font} %\immediate\write\sixt@@n % {#6 as TFM name for bold font} %\immediate\write\sixt@@n % {#7 as TFM name for bolditalic font} %\immediate\write\sixt@@n % {#8 as TFM name for smallcaps font} %\immediate\write\sixt@@n % {#9 as TFM name for slanted font} \immediate\write\sixt@@n {********************************************************************} \declare@font[#1]{#3}{m}{n}{#4} \declare@font[#1]{#3}{m}{it}{#5} \declare@font[#1]{#3}{bx}{n}{#6} \declare@font[#1]{#3}{bx}{it}{#7} \declare@font[#1]{#3}{m}{sc}{#8} \declare@font[#1]{#3}{m}{sl}{#9} \late@extra@def{#3}{}{} % bold and bold-extended regarded as the same % slanted and smallcaps only in normal font \late@subst@fontshape{#3}{b}{sc}{#3}{m}{sc} \late@subst@fontshape{#3}{b}{sl}{#3}{m}{sl} \late@subst@fontshape{#3}{bx}{sc}{#3}{m}{sc} \late@subst@fontshape{#3}{bx}{sl}{#3}{m}{sl} \late@subst@fontshape{#3}{b}{n}{#3}{bx}{n} \late@subst@fontshape{#3}{b}{it}{#3}{bx}{it} % % there are a number of changes to make, % and additions, to get the best use out of the PS fonts % \expandafter\def\csname l@d#3\endcsname{} \chardef\pounds='243 \def\.##1{{\accent'307 ##1}} \def\H##1{{\accent'315 ##1}} \def\AA{\char'215} \def\aa{\char'260} \chardef\cent="A2 \chardef\yen="A5 \chardef\currency="A8 \chardef\quotesingle="A9 \chardef\guillemotleft="AB \chardef\guilsinglleft="AC \chardef\guilsinglright="AD \chardef\quotesinglbase="B8 \chardef\quotedblbase="B9 \chardef\guillemotright="BB \else \immediate\write\sixt@@n {Family #3 already set up} \fi } %% %%% now the user interface %% the user types something like \romanfont{times} %% -- if the command sequence \load@times is defined, it is executed %------------------------------------------------------------- \def\romanfont#1{% \expandafter\ifx\csname load@#1\endcsname\relax \typeout{**** ERROR!!! font family #1 UNKNOWN ****} \else \csname load@#1\endcsname \renewcommand{\rmdefault}{#1}\rm \fi} \def\sansfont#1{% \expandafter\ifx\csname load@#1\endcsname\relax \typeout{**** ERROR!!! font family #1 UNKNOWN ****} \else \csname load@#1\endcsname \renewcommand{\sfdefault}{#1}\rm \fi} \def\typewriterfont#1{% \expandafter\ifx\csname load@#1\endcsname\relax \typeout{**** ERROR!!! font family #1 UNKNOWN ****} \else \csname load@#1\endcsname \renewcommand{\ttdefault}{#1}\rm \fi} %------------------------------------------------------------- %%% %%% some dummies for CMR \def\load@cmr{} \def\load@cmss{} \def\load@cmtt{} %%% see times.sty, palatino.sty etc for example definitions of loading %%% Times, Palatino, Avantgarde, Bookman, NCS, Courier and Helvetica %%% etc, using the Karl Berry names for Adobe fonts, %%% USING VIRTUAL FONTS TO MIMIC CMR LAYOUT! (Not DC). %%% An example is: %----------------------------------------- %% \def\load@courier{% %% \postscript@fontdef{Courier}{courier}% %% {pcrr}{pcrro}{pcrb}{pcrbo}{pcrr}{pcrr} %% } %% \def\load@helvetica{% %% \postscript@fontdef{Helvetica}{helvetica}% %% {phvr}{phvro}{phvb}{phvbo}{phvrc}{phvro} %% } %% \def\load@times{% %% \postscript@fontdef{Times}{times}% %% {ptmr}{ptmri}{ptmb}{ptmbi}{ptmrc}{ptmro} %% } %% % %% \romanfont{times} %% \sansfont{helvetica} %% \typewriterfont{courier} %% %----------------------------------------- %% beyond here are some bought fonts which I haven't put in style files %% \def\load@glypha{% \postscript@fontdef{Glypha}{glypha}% {pgpb}{pgpbo}{pgpro}{pgpr}{pgpr}{pgpr} } \def\load@souvenir{% \postscript@fontdef{Souvenir}{souvenir}% {psvl}{psvli}{psvd}{psvdi}{psvl}{psvli}% } \def\load@gill{% \postscript@fontdef{GillSans}{gill}% {pgsr}{pgsri}{pgsb}{pgsbi}{pgsro}{pgsrc} } %-------------------------------------------------------- % Zapf dingbats go in special family called `dingbat'; % See `dingbat.sty' for examples of macros which use % them % \def\load@dingbat{% \declare@font{dingbat}{m}{n}{pzdr} \late@extra@def{dingbat}{}{} \late@subst@fontshape{dingbat}{m}{sc}{dingbat}{m}{n} \late@subst@fontshape{dingbat}{bx}{sc}{dingbat}{m}{n} \late@subst@fontshape{dingbat}{m}{u}{dingbat}{m}{n} \late@subst@fontshape{dingbat}{m}{sl}{dingbat}{m}{n} \late@subst@fontshape{dingbat}{b}{m}{dingbat}{m}{n} \late@subst@fontshape{dingbat}{b}{it}{dingbat}{m}{n} \late@subst@fontshape{dingbat}{bx}{m}{dingbat}{m}{n} \late@subst@fontshape{dingbat}{bx}{it}{dingbat}{m}{n} } %------------------------------------------ % % also load Zapf Chancery, in case its needed by anyone % \def\load@zapf{\declare@font{zapf}{m}{n}{pzcmi} \late@extra@def{zapf}{}{} \late@subst@fontshape{zapf}{m}{sc}{zapf}{m}{n} \late@subst@fontshape{zapf}{bx}{sc}{zapf}{m}{n} \late@subst@fontshape{zapf}{m}{u}{zapf}{m}{n} \late@subst@fontshape{zapf}{m}{sl}{zapf}{m}{n} \late@subst@fontshape{zapf}{b}{m}{zapf}{m}{n} \late@subst@fontshape{zapf}{b}{it}{zapf}{m}{n} \late@subst@fontshape{zapf}{bx}{m}{zapf}{m}{n} \late@subst@fontshape{zapf}{bx}{it}{zapf}{m}{n} }% % compatibility with an older system \newcount\driver@setup \driver@setup=3 % a little something for LaTeX to make color.sty work \def\visible{} \newif\if@visible\@visibletrue % % a tool from Van Zandt for showing x-height of a font % \def\showxheight#1{% \font\@tempfont=#1 at 10pt% \typeout{^^J x-height of #1 at 10pt is \the\fontdimen5\@tempfont}} % \endinput