\def\filedate{18.8.92}% \def\filename{psnfss.sup}% \def\fileversion{PSNFSS 2.2.5}% % Sebastian Rahtz, % 12 Cygnet Street % York Y02 1AG % spqr@minster.york.ac.uk \newif\if@loud@psnfss \@loud@psnfssfalse % make true to get loading messages \immediate\write\sixt@@n{\filename, \fileversion <\filedate> (SPQR)}% \immediate\write\sixt@@n{PostScript additions to NFSS}% % This is the main addition to the NFSS commands, which is normally % loaded into a format, but can also be included by style files for other % formats. It defines some commands needed to load PostScript fonts % % 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. What method of scaling is used %% is determined by \scaling@type (see below) %%----------------------------------------------------------- %% Some of these macros adapted from npsfonts.sty by Timothy van Zandt %%----------------------------------------------------------- %% %% 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% {\scaling@type{#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\the\dimen@ }}% % % recommended by Y&Y for their Lucida Bright distribution % \def\scale@lucidasizes#1{% \edef\scaled@sizes##1{}% \font@scale{5}{5.2pt}{#1}% \font@scale{6}{6.1pt}{#1}% \font@scale{7}{6.9pt}{#1}% \font@scale{8}{7.8pt}{#1}% \font@scale{9}{8.6pt}{#1}% \font@scale{10}{9.5pt}{#1}% \font@scale{11}{10.4pt}{#1}% \font@scale{12}{11.2pt}{#1}% \font@scale{14}{12.9pt}{#1}% \font@scale{17}{15.5pt}{#1}% \font@scale{20}{18.1pt}{#1}% \font@scale{25}{22.4pt}{#1}% \font@scale{29}{29.86pt}{#1}% \font@scale{34}{35.83pt}{#1}% \font@scale{41}{41.28pt}{#1}}% % % normal PS fonts. open to discussion \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}% \font@scale{29}{29.86pt}{#1}% \font@scale{34}{35.83pt}{#1}% \font@scale{41}{41.28pt}{#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 \if@loud@psnfss \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}% % \fi \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\let\csname l@d#3\endcsname\@empty \chardef\pounds='243 \def\H##1{{\accent"CD ##1}} \def\.##1{{\accent"C7 ##1}} % borrowd this from Tom Rokicki \newdimen\aadimen \def\AA{\leavevmode\setbox0\hbox{h}\aadimen\ht0 \advance\aadimen-1ex\setbox0\hbox{A}\rlap{\raise.67\aadimen \hbox to \wd0{\hss\char'27\hss}}A} \def\aa{\char'227}% \chardef\cent="0A2 \chardef\yen="0A5 \chardef\currency="0A8 \chardef\quotesingle="0A9 \chardef\guillemotleft="0AB \chardef\guilsinglleft="0AC \chardef\guilsinglright="0AD \chardef\quotesinglbase="0B8 \chardef\quotedblbase="0B9 \chardef\guillemotright="0BB \else \if@loud@psnfss \immediate\write\sixt@@n {Family #3 already set up}% \fi \fi }% \let\scaling@type\scale@stdsizes %% %%% 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 \if@loud@psnfss \typeout{Default roman typeface now #1}% \fi \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 \if@loud@psnfss \typeout{Default sans-serif typeface now #1}% \fi \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 \if@loud@psnfss \typeout{Default typewriter typeface now #1}% \fi \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}% %% %% some useful hacks.... %% \newcount\driver@setup \driver@setup=3 % a little something for LaTeX to make colour.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