% $Id: tpslifonts.sty,v 1.6 2002/11/14 20:45:59 hansfn Exp $ % % TeXPower bundle - dynamic online presentations with LaTeX % Copyright (C) 1999-2003 Stephan Lehmke % % This program is free software; you can redistribute it and/or % modify it under the terms of the GNU General Public License % as published by the Free Software Foundation; either version 2 % of the License, or (at your option) any later version. % % This program is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. % %=============================================================================== % File: tpslifonts.sty % % Presentations to be displayed `online' with a video beamer have special needs % concerning font configuration owing to low `screen' resolution and bad % contrast caused by possibly bad light conditions combined with color % highlighting. % This package tries to cater to these needs by offering a holistic % configuration of all document fonts, including text, typewriter, and math % fonts. Special features are `smooth scaling' of Type1 fonts and careful design % size selection for optimal readability. % The default is to use ``lcmss'', also called ``slifonts'' for text and the % usual cmtt and cmm for typewriter and math. There's a large variety of % options and parameters for choosing different text and math fonts, all from % the large ``cm'' family of fonts, which has the advantage that readability can % be enhanced by scaling small design sizes. % A couple of additional math fonts like ams and doublestroke fonts are % supported. % For some of the options to yield satisfying results, it is neccessary to % install additional (free) Type1 fonts on your system. % There's no intention to support other font families like the typical % ``psnfss'' PostScript fonts, as they usually don't come in different design % sizes, making the effort of tuning them for viewing futile. If you wish to use % such a font, load it with the usual packages. % % This package is part of the TeXPower bundle, to be found at % % http://texpower.sourceforge.net/ % %================================================================================ % Author: Stephan Lehmke % % v0.1 Aug 10, 2001 First version for the pre-alpha release of texpower. % % v0.2 Nov 17, 2001 Added support for stmaryrd fonts. % % v0.3 Oct 18, 2002 Rewritten to go without .fd files. % Euler package dependence changed to eulervm. % Added support for ams, lasy, wasysym, rsfs, dstroke fonts. % % v0.4 Mar 25, 2003 Added support for cmbright math. % % v0.5 Mar 26, 2003 Added support for T1 encoding. % % v0.6 May 29, 2003 Change of attitude: I found out how desolate the situation % of most presentation packages is wrt fonts. Hence, instead % of trying to be as minimally invasive as possible, % tpslifonts will try to hijack every single font which might % possibly be used in a presentation and replace it by % something sensible. % No `private' ``lcmr'' to replace ``cmr'' any more - cmr is % redefined no matter what. % Now configures (almost) all fonts type1cm and type1ec do, % plus concrete, cmbright, and euler fonts. % Added options ``scale5pt'', ``scale6pt'', ``scale7pt'' to % bound the design sizes of fonts used. % Added options ``cmr'', ``cmss'', ``cmbright'' and % ``concrete'' to choose text fonts different from lcmss. % Improved handling of Option incompatibilities. \NeedsTeXFormat{LaTeX2e} \ProvidesPackage% {tpslifonts}% [2003/05/29 v0.6 Configure presentation fonts.] %============================================================================== \RequirePackage{ifthen} %============================================================================== % Options and general setup. %------------------------------------------------------------------------------ % Text fonts. The default is to use ``slifonts'' (lcmss). \newcommand{\TPSFTextfont}{lcmss} % The option cmr sets ``computer modern roman'' text fonts. \DeclareOption{cmr}{\renewcommand{\TPSFTextfont}{cmr}} % The option cmss sets ``computer modern roman sans serif'' text fonts. \DeclareOption{cmss}{\renewcommand{\TPSFTextfont}{cmss}} % The option cmbright sets ``computer modern bright'' text fonts. \DeclareOption{cmbright}{\renewcommand{\TPSFTextfont}{cmbr}} % The option concrete sets ``concrete'' text fonts. \DeclareOption{concrete} {% \renewcommand{\TPSFTextfont}{ccr}% \renewcommand{\TPSFMathfont}{ccm}% \renewcommand{\TPSFOperatorfont}{ccr}% } %------------------------------------------------------------------------------ % Design size selection. Usually design sizes are `bounded' by 8pt, that is, if % an 8pt (or lower) design size of a font exists, it will be scaled to larger % sizes even if larger design sizes exist, to enhance readability at low % resolutions. For sizes below 8pt, smaller design sizes are used if available. \providecommand{\TPSFMaxDesignSize}{8} % The option scale5pt causes scaled 5pt design sizes to be used wherever % possible. \DeclareOption{scale5pt}{\renewcommand{\TPSFMaxDesignSize}{5}} % The option scale6pt causes scaled 6pt design sizes to be used wherever % possible (for font sizes above 6pt). \DeclareOption{scale6pt}{\renewcommand{\TPSFMaxDesignSize}{6}} % The option scale7pt causes scaled 7pt design sizes to be used wherever % possible (for font sizes above 7pt). \DeclareOption{scale7pt}{\renewcommand{\TPSFMaxDesignSize}{7}} %------------------------------------------------------------------------------- % lcmss text fonts have very high `small letters', making normal-size fonts look % small and difficult to read. % The option scaleupmath (scaleuptt) will scale up math (typewriter) fonts % slightly so they harmonize a little more with text fonts. % These options do not make much sense with other text fonts, hence a warning % (but no error message) is generated to remind the user they might have % overlooked something. \newboolean{TPSFscaleup} \DeclareOption{scaleupmath} {% \providecommand\TPSFmathscale{1.15}% \providecommand\TPSFeulerscale{1.1}% \providecommand\TPSFcmbrscale{1.1}% \setboolean{TPSFscaleup}{true}% } \DeclareOption{scaleuptt} {\providecommand\TPSFttscale{1.2}\setboolean{TPSFscaleup}{true}} %------------------------------------------------------------------------------ % Math fonts. % Because the availability of different fonts in different encodings is not % really homogenous, we differentiate between the font used for Operators (plus % upper case greek, digits and some symbols) and the font used for other % symbols. In some cases (math extension font), the choices are quite limited % anyway. % The default is to use cmr for operators and such and the standard cmm and % relatives for symbols. \newcommand{\TPSFMathfont}{cmm} \newcommand{\TPSFOpF@cmm}{cmrm} \newcommand{\TPSFOpF@ccm}{ccr} \newcommand{\TPSFOperatorfont}{cmr} % The option textops makes the operator font follow the text font. \newboolean{TPSFtextops} \DeclareOption{textops}{\setboolean{TPSFtextops}{true}} % The option eulermath sets euler math fonts (slightly adapted from the eulervm % package to match lcmss better). % When using this option, the operator font automatically follows the text % font. \DeclareOption{eulermath} {\renewcommand{\TPSFMathfont}{euler}\setboolean{TPSFtextops}{true}} % The option eulerdigits works only in conjunction with eulermath and sets the % euler-digits option of the eulervm package. \newboolean{TPSFeulerdigits} \DeclareOption{eulerdigits} {% \setboolean{TPSFeulerdigits}{true}% \PassOptionsToPackage{euler-digits}{eulervm}% } % The option cmbrightmath sets cmbright math fonts (slightly adapted from the % cmbright package to match lcmss better). \DeclareOption{cmbrightmath}{\renewcommand{\TPSFMathfont}{cmbrm}} \newcommand{\TPSFOpF@cmbrm}{cmbrmt} %------------------------------------------------------------------------------ % Process options. \ProcessOptions %------------------------------------------------------------------------------ % Option postprocessing. % Parameters \TPSFmathscale and such can be (re)defined from outside the % tpslifonts package to adjust scaling. If any of these scaling parameters is % defined before the tpslifonts package is loaded, there is no need to give the % respective option. % Here, we test whether the parameters have been provided (either by defining % them independently or by giving one of the ``scaleup...'' options), and define % the `real' scaling parameter for font definition accordingly. \@ifundefined{TPSFmathscale} {\let\TPSFmathscale\@undefined\let\mathscale@TPSF\empty} {\def\mathscale@TPSF{[\TPSFmathscale]}} \@ifundefined{TPSFeulerscale} {\let\TPSFeulerscale\@undefined\let\eulerscale@TPSF\empty} {\def\eulerscale@TPSF{[\TPSFeulerscale]}} \@ifundefined{TPSFcmbrscale} {\let\TPSFcmbrscale\@undefined\let\cmbrscale@TPSF\empty} {\def\cmbrscale@TPSF{[\TPSFcmbrscale]}} \@ifundefined{TPSFttscale} {\let\TPSFttscale\@undefined\let\ttscale@TPSF\empty} {\def\ttscale@TPSF{[\TPSFttscale]}} % As mentioned above, the ``scaleup...'' options make sense really only if lcmss % text fonts are used. Otherwise, we give a warning. \ifthenelse{\boolean{TPSFscaleup}\and\not\equal{\TPSFTextfont}{lcmss}} {% \PackageWarning{tpslifonts} {Using the ``scaleup'' Options makes sense only\MessageBreak when lcmss text fonts are used.\MessageBreak Watch closely whether the results of scaling math\MessageBreak and/or typewriter fonts together with ``\TPSFTextfont''\MessageBreak text fonts is what you intended to achieve.% }% } {} % We need to set the math operator font corresponing to the settings of the % TPSFtextops switch, the text and math fonts. \ifthenelse{\boolean{TPSFtextops}} {\let\TPSFOperatorfont\TPSFTextfont} {% \expandafter\let\expandafter\TPSFOperatorfont \csname TPSFOpF@\TPSFMathfont\endcsname } % The cmbright package also sets text fonts, so if cmbright math is requested, % we load the cmbright package first and later overwrite the text font settings % (if no cmbright text fonts were requested). \ifthenelse{\equal{\TPSFMathfont}{cmbrm}} {% \RequirePackage[standard-baselineskips]{cmbright}% } %============================================================================== % Font shape configuration. % We need a couple of macros to help in configuring fonts. % To increase readability in presentations, design size selection is % restricted. Without any options, the largest design size used is 8pt. The % options scale5pt ... scale7pt impose further constraints. % Another restriction is caused by the availability of design sizes. Not all % fonts exist in all design sizes. If no design size exists at all in the % requested range (i.e. the font exists only in size 10), then the smallest % available size has to be chosen no matter what. % \FilterSizes@TPSF{} filters out all sizes (represented as % nonnegative integer numbers) from the comma-separated which are above % the threshold in \TPSFMaxDesignSize and stores the result in the macro % . To avoid inconsistencies if all sizes exceed \TPSFMaxDesignSize, the % first size is always passed. \newcommand{\FilterSizes@TPSF}[2]{\expandafter\@FilterSizes@TPSF#2,\@nil#1} \def\@FilterSizes@TPSF#1,#2\@nil#3% {% \def#3{#1}% \ifx\empty#2\empty\else\@@FilterSizes@TPSF#2\@nil#3\fi } \def\@@FilterSizes@TPSF#1,#2\@nil#3% {% \ifnum#1>\TPSFMaxDesignSize\relax \else \expandafter\def\expandafter#3\expandafter{#3,#1}% \ifx\empty#2\empty\else\@@FilterSizes@TPSF#2\@nil#3\fi \fi } % \DeclareFontShape@TPSF[]{}{}{}{}{}{} % declares a font with presentation-friendly design size selection (which % means all design sizes above \TPSFMaxDesignSize are filtered out. The actually % existing design sizes have to be provided in as a comma-separated list % of numbers. If is one of the sizes, it is expected that the corresponding % font name can be constructed as . % If the optional argument is given, it has to be of the form % [], where specifies the scaling of the font (see the % options ``scaleupmath'' and ``scaleuptt'' above). \newcommand{\DeclareFontShape@TPSF}[7][] {% \FilterSizes@TPSF\sizes@TPSF{#7}% \let\sizedecl@TPSF\empty \def\fontname@TPSF{#6}% \def\scale@TPSF{#1}% \expandafter\parsesizes@TPSF\sizes@TPSF,,\@nil \DeclareFontShape{#2}{#3}{#4}{#5}{\sizedecl@TPSF}{}% } \def\parsesizes@TPSF#1,#2\@nil {% \let\prevsize@TPSF\empty \def\currsize@TPSF{#1}% \@parsesizes@TPSF#2\@nil } \def\@parsesizes@TPSF#1,#2\@nil {% \edef\sizedecl@TPSF{\sizedecl@TPSF\space<\prevsize@TPSF-#1>s*\scale@TPSF \fontname@TPSF\currsize@TPSF}% \def\currsize@TPSF{#1}% \let\prevsize@TPSF\currsize@TPSF \ifx\currsize@TPSF\empty\else\@parsesizes@TPSF#2\@nil\fi } %============================================================================== % Declaration of font shapes. % The following is copied more or less verbatim from type1cm.sty, % type1ec.sty, and other sources of font definitions for e.g. cmbright fonts. % For fonts following the usual naming conventions, we use % \DeclareFontShape@TPSF instead of \DeclareFontShape to implement design size % bounding. % For T1 ec fonts, the same is achieved by appropriate redefinition of % \EC@family. \begingroup \nfss@catcodes %------------------------------------------------------------------------------ % Text fonts for OT1 encoding. % computer modern roman. \DeclareFontFamily{OT1}{cmr}{\hyphenchar\font=45} \DeclareFontShape@TPSF{OT1}{cmr}{m}{n}{cmr}{5,6,7,8,9,10,12,17} \DeclareFontShape@TPSF{OT1}{cmr}{m}{sl}{cmsl}{8,9,10,12} \DeclareFontShape@TPSF{OT1}{cmr}{m}{it}{cmti}{7,8,9,10,12} \DeclareFontShape@TPSF{OT1}{cmr}{m}{sc}{cmcsc}{9,10} \DeclareFontShape@TPSF{OT1}{cmr}{m}{ui}{cmu}{10} \DeclareFontShape@TPSF{OT1}{cmr}{b}{n}{cmb}{10} \DeclareFontShape@TPSF{OT1}{cmr}{bx}{n}{cmbx}{5,6,7,8,9,10,12} \DeclareFontShape@TPSF{OT1}{cmr}{bx}{sl}{cmbxsl}{10} \DeclareFontShape@TPSF{OT1}{cmr}{bx}{it}{cmbxti}{10} \DeclareFontShape{OT1}{cmr}{bx}{ui} {<->ssub * cmr/m/ui}{} \DeclareFontFamily{OT1}{cmfr}{\hyphenchar\font=45} \DeclareFontShape{OT1}{cmfr}{m}{n}{% <-> cmff10 }{} \DeclareFontShape{OT1}{cmfr}{m}{it}{ <-> cmfi10 }{} \DeclareFontFamily{OT1}{cmdh}{\hyphenchar\font=45} \DeclareFontShape{OT1}{cmdh}{m}{n}{ <-> cmdunh10 }{} \DeclareFontFamily{OT1}{cmfib}{\hyphenchar\font=45} \DeclareFontShape{OT1}{cmfib}{m}{n}{ <-> cmfib8 }{} % computer modern sans serif. \DeclareFontFamily{OT1}{cmss}{\hyphenchar\font=45} \DeclareFontShape@TPSF{OT1}{cmss}{m}{n}{cmss}{8,9,10,12,17} \DeclareFontShape{OT1}{cmss}{m}{it} {<->sub*cmss/m/sl}{} \DeclareFontShape@TPSF{OT1}{cmss}{m}{sl}{cmssi}{8,9,10,12,17} \DeclareFontShape{OT1}{cmss}{m}{sc} {<->sub*cmr/m/sc}{} \DeclareFontShape{OT1}{cmss}{m}{ui} {<->sub*cmr/m/ui}{} \DeclareFontShape@TPSF{OT1}{cmss}{sbc}{n}{cmssdc}{10} \DeclareFontShape@TPSF{OT1}{cmss}{bx}{n}{cmssbx}{10} \DeclareFontShape{OT1}{cmss}{bx}{ui} {<->sub*cmr/bx/ui}{} % slide computer modern sans serif. \DeclareFontFamily{OT1}{lcmss}{\hyphenchar\font45 } \DeclareFontShape@TPSF{OT1}{lcmss}{m}{n}{lcmss}{8} \DeclareFontShape@TPSF{OT1}{lcmss}{m}{In}{ilcmss}{8} \DeclareFontShape@TPSF{OT1}{lcmss}{m}{sl}{lcmssi}{8} \DeclareFontShape@TPSF{OT1}{lcmss}{m}{Isl}{ilcmssi}{8} \DeclareFontShape{OT1}{lcmss}{m}{it}{% <->sub*lcmss/m/sl}{} \DeclareFontShape{OT1}{lcmss}{m}{Iit}{% <->sub*lcmss/m/Isl}{} \DeclareFontShape@TPSF{OT1}{lcmss}{b}{n}{lcmssb}{8} \DeclareFontShape@TPSF{OT1}{lcmss}{b}{In}{ilcmssb}{8} \DeclareFontShape{OT1}{lcmss}{bx}{n}{% <->sub*lcmss/b/n}{} \DeclareFontShape{OT1}{lcmss}{bx}{In}{% <->sub*lcmss/b/In}{} \DeclareFontShape{OT1}{lcmss}{m}{ui}{% <->sub*cmr/m/ui}{} \DeclareFontShape{OT1}{lcmss}{bx}{ui}{% <->sub*cmr/m/ui}{} % computer modern bright \DeclareFontFamily{OT1}{cmbr}{\hyphenchar\font45} \DeclareFontShape@TPSF{OT1}{cmbr}{m}{n}{cmbr}{8,9,10,17} \DeclareFontShape@TPSF{OT1}{cmbr}{m}{sl}{cmbrsl}{8,9,10,17} \DeclareFontShape{OT1}{cmbr}{m}{it}{% <->ssub*cmbr/m/sl% }{} \DeclareFontShape{OT1}{cmbr}{b}{n}{% <->ssub*cmbr/bx/n% }{} \DeclareFontShape@TPSF{OT1}{cmbr}{bx}{n}{cmbrbx}{10} % concrete roman \DeclareFontFamily{OT1}{ccr}{\hyphenchar\font45 } \DeclareFontShape@TPSF{OT1}{ccr}{m}{n}{ccr}{5,6,7,8,9,10} \DeclareFontShape@TPSF{OT1}{ccr}{m}{sl}{ccsl}{9,10} \DeclareFontShape@TPSF{OT1}{ccr}{m}{it}{ccti}{10} \DeclareFontShape@TPSF{OT1}{ccr}{m}{sc}{cccsc}{10} \DeclareFontShape{OT1}{ccr}{bx}{n} {<-> ssub * cmss/bx/n}{} \DeclareFontShape{OT1}{ccr}{bx}{sl}{<-> ssub * cmss/bx/sl}{} \DeclareFontShape{OT1}{ccr}{bx}{it}{<-> ssub * cmss/bx/it}{} % \DeclareFontShape{OT1}{ccr}{bx}{n} {<-> ssub * cmr/bx/n}{} % \DeclareFontShape{OT1}{ccr}{bx}{sl}{<-> ssub * cmr/bx/sl}{} % \DeclareFontShape{OT1}{ccr}{bx}{it}{<-> ssub * cmr/bx/it}{} \DeclareFontShape{OT1}{ccr}{sbc}{n} {<-> ssub * cmss/sbc/n}{} \DeclareFontShape{OT1}{ccr}{sbc}{sl}{<-> ssub * cmss/sbc/n}{} \DeclareFontShape{OT1}{ccr}{sbc}{it}{<-> ssub * cmss/sbc/n}{} \DeclareFontShape@TPSF{OT1}{ccr}{c}{sl}{ccslc}{9} %------------------------------------------------------------------------------ % Text fonts for T1 encoding. \let\ecscale@TPSF\empty \ifcase\TPSFMaxDesignSize \or\or\or\or\or \providecommand{\EC@family}[5]{% \DeclareFontShape{#1}{#2}{#3}{#4}{% <->\ecscale@TPSF#50500% }{}} \or \providecommand{\EC@family}[5]{% \DeclareFontShape{#1}{#2}{#3}{#4}{% <-6>\ecscale@TPSF#50500% <6->\ecscale@TPSF#50600% }{}} \or \providecommand{\EC@family}[5]{% \DeclareFontShape{#1}{#2}{#3}{#4}{% <-6>\ecscale@TPSF#50500% <6-7>\ecscale@TPSF#50600% <7->\ecscale@TPSF#50700% }{}} \or \providecommand{\EC@family}[5]{% \DeclareFontShape{#1}{#2}{#3}{#4}{% <-6>\ecscale@TPSF#50500% <6-7>\ecscale@TPSF#50600% <7-8>\ecscale@TPSF#50700% <8->\ecscale@TPSF#50800% }{}} \or \providecommand{\EC@family}[5]{% \DeclareFontShape{#1}{#2}{#3}{#4}{% <-6>\ecscale@TPSF#50500% <6-7>\ecscale@TPSF#50600% <7-8>\ecscale@TPSF#50700% <8-9>\ecscale@TPSF#50800% <9->\ecscale@TPSF#50900% }{}} \or \providecommand{\EC@family}[5]{% \DeclareFontShape{#1}{#2}{#3}{#4}{% <-6>\ecscale@TPSF#50500% <6-7>\ecscale@TPSF#50600% <7-8>\ecscale@TPSF#50700% <8-9>\ecscale@TPSF#50800% <9-10>\ecscale@TPSF#50900% <10->\ecscale@TPSF#51000% }{}} \or \providecommand{\EC@family}[5]{% \DeclareFontShape{#1}{#2}{#3}{#4}{% <-6>\ecscale@TPSF#50500% <6-7>\ecscale@TPSF#50600% <7-8>\ecscale@TPSF#50700% <8-9>\ecscale@TPSF#50800% <9-10>\ecscale@TPSF#50900% <10-10.95>\ecscale@TPSF#51000% <10.95->\ecscale@TPSF#51095% }{}} \or \providecommand{\EC@family}[5]{% \DeclareFontShape{#1}{#2}{#3}{#4}{% <-6>\ecscale@TPSF#50500% <6-7>\ecscale@TPSF#50600% <7-8>\ecscale@TPSF#50700% <8-9>\ecscale@TPSF#50800% <9-10>\ecscale@TPSF#50900% <10-10.95>\ecscale@TPSF#51000% <10.95-12>\ecscale@TPSF#51095% <12->\ecscale@TPSF#51200% }{}} \fi % european computer modern roman. \input{t1cmr.fd} \input{t1cmfr.fd} \input{t1cmdh.fd} \input{t1cmfib.fd} % european computer modern roman sans serif. \input{t1cmss.fd} \DeclareFontShape@TPSF{T1}{cmss}{sbc}{n}{ecssdc}{10} % european slide computer modern sans serif. \DeclareFontFamily{T1}{lcmss}{} \DeclareFontShape@TPSF{T1}{lcmss}{m}{n}{eclq}{8} \DeclareFontShape@TPSF{T1}{lcmss}{m}{In}{ieclq}{8} \DeclareFontShape@TPSF{T1}{lcmss}{m}{sl}{ecli}{8} \DeclareFontShape@TPSF{T1}{lcmss}{m}{Isl}{iecli}{8} \DeclareFontShape{T1}{lcmss}{m}{it}{% <->sub*lcmss/m/sl}{} \DeclareFontShape{T1}{lcmss}{m}{Iit}{% <->sub*lcmss/m/Isl}{} \DeclareFontShape@TPSF{T1}{lcmss}{bx}{n}{eclb}{8} \DeclareFontShape@TPSF{T1}{lcmss}{bx}{In}{ieclb}{8} \DeclareFontShape@TPSF{T1}{lcmss}{bx}{sl}{eclo}{8} \DeclareFontShape@TPSF{T1}{lcmss}{bx}{Isl}{ieclo}{8} \DeclareFontShape{T1}{lcmss}{bx}{it}{% <->sub*lcmss/bx/sl}{} \DeclareFontShape{T1}{lcmss}{bx}{Iit}{% <->sub*lcmss/bx/Isl}{} \DeclareFontShape{T1}{lcmss}{b}{n}{% <->sub*lcmss/bx/n}{} \DeclareFontShape{T1}{lcmss}{m}{ui}{% <->sub*cmr/m/ui}{} \DeclareFontShape{T1}{lcmss}{bx}{ui}{% <->sub*cmr/m/ui}{} % european computer modern bright \DeclareFontFamily{T1}{cmbr}{} \DeclareFontShape@TPSF{T1}{cmbr}{m}{n}{ebmr}{8,9,10,17} \DeclareFontShape@TPSF{T1}{cmbr}{m}{sl}{ebmo}{8,9,10,17} \DeclareFontShape{T1}{cmbr}{m}{it}{% <->ssub*cmbr/m/sl% }{} \DeclareFontShape@TPSF{T1}{cmbr}{sb}{n}{ebsr}{8,9,10,17} \DeclareFontShape@TPSF{T1}{cmbr}{sb}{sl}{ebso}{8,9,10,17} \DeclareFontShape{T1}{cmbr}{sb}{it}{% <->ssub*cmbr/sb/sl% }{} \DeclareFontShape{T1}{cmbr}{b}{n}{% <->ssub*cmbr/bx/n% }{} \DeclareFontShape{T1}{cmbr}{bx}{n}{% <->sub*cmbr/sb/n% }{} % european concrete roman \DeclareFontFamily{T1}{ccr}{} \DeclareFontShape@TPSF{T1}{ccr}{m}{n}{eorm}{5,6,7,8,9,10} \DeclareFontShape@TPSF{T1}{ccr}{m}{sl}{eosl}{5,6,7,8,9,10} \DeclareFontShape@TPSF{T1}{ccr}{m}{it}{eoti}{10} \DeclareFontShape@TPSF{T1}{ccr}{m}{sc}{eocc}{10} \DeclareFontShape{T1}{ccr}{bx}{n}{% <->ssub*cmss/bx/n}{} \DeclareFontShape{T1}{ccr}{bx}{sl}{% <->ssub*cmss/bx/sl}{} \DeclareFontShape{T1}{ccr}{bx}{it}{% <->ssub*cmss/bx/it}{} % \DeclareFontShape{T1}{ccr}{bx}{n}{% % <->ssub*cmr/bx/n}{} % \DeclareFontShape{T1}{ccr}{bx}{sl}{% % <->ssub*cmr/bx/sl}{} % \DeclareFontShape{T1}{ccr}{bx}{it}{% % <->ssub*cmr/bx/it}{} \DeclareFontShape{T1}{ccr}{sbc}{n}{% <->ssubf*ecssdc10}{} %------------------------------------------------------------------------------ % Typewriter fonts for OT1 encoding. % computer modern typewriter. \DeclareFontFamily{OT1}{cmtt}{\hyphenchar\font\m@ne} \DeclareFontShape@TPSF[\ttscale@TPSF]{OT1}{cmtt}{m}{n}{cmtt}{8,9,10,12} \DeclareFontShape@TPSF[\ttscale@TPSF]{OT1}{cmtt}{m}{it}{cmitt}{10} \DeclareFontShape@TPSF[\ttscale@TPSF]{OT1}{cmtt}{m}{sl}{cmsltt}{10} \DeclareFontShape@TPSF[\ttscale@TPSF]{OT1}{cmtt}{m}{sc}{cmtcsc}{10} \DeclareFontShape{OT1}{cmtt}{m}{ui} {<->sub * cmtt/m/it}{} \DeclareFontShape{OT1}{cmtt}{bx}{n} {<->sub * cmtt/m/n}{} \DeclareFontShape{OT1}{cmtt}{bx}{it} {<->sub * cmtt/m/it}{} \DeclareFontShape{OT1}{cmtt}{bx}{ui} {<->sub * cmtt/m/it}{} % `Slides' computer modern typewriter exists only for compatibility with T1 % encoding. \DeclareFontFamily{OT1}{lcmtt}{\hyphenchar\font\m@ne} \DeclareFontShape@TPSF[\ttscale@TPSF]{OT1}{lcmtt}{m}{n}{cmtt}{8,9,10,12} \DeclareFontShape@TPSF[\ttscale@TPSF]{OT1}{lcmtt}{m}{it}{cmitt}{10} \DeclareFontShape@TPSF[\ttscale@TPSF]{OT1}{lcmtt}{m}{sl}{cmsltt}{10} \DeclareFontShape@TPSF[\ttscale@TPSF]{OT1}{lcmtt}{m}{sc}{cmtcsc}{10} \DeclareFontShape{OT1}{lcmtt}{m}{ui} {<->sub * lcmtt/m/it}{} \DeclareFontShape{OT1}{lcmtt}{bx}{n} {<->sub * lcmtt/m/n}{} \DeclareFontShape{OT1}{lcmtt}{bx}{it} {<->sub * lcmtt/m/it}{} \DeclareFontShape{OT1}{lcmtt}{bx}{ui} {<->sub * lcmtt/m/it}{} % computer modern typewriter light. \DeclareFontFamily{OT1}{cmtl}{\hyphenchar\font\m@ne} \DeclareFontShape{OT1}{cmtl}{m}{n}{% <->s*\ttscale@TPSF cmtl10% }{} \DeclareFontShape{OT1}{cmtl}{m}{sl}{% <->s*\ttscale@TPSF cmsltl10% }{} \DeclareFontShape{OT1}{cmtl}{m}{it}{<->ssub*cmtl/m/sl}{} %------------------------------------------------------------------------------ % Typewriter fonts for T1 encoding. \ifcase\TPSFMaxDesignSize \or\or\or\or\or \providecommand{\EC@ttfamily}[5]{% \DeclareFontShape{#1}{#2}{#3}{#4}{% <->s*\ttscale@TPSF#50800% }{}} \or \providecommand{\EC@ttfamily}[5]{% \DeclareFontShape{#1}{#2}{#3}{#4}{% <->s*\ttscale@TPSF#50800% }{}} \or \providecommand{\EC@ttfamily}[5]{% \DeclareFontShape{#1}{#2}{#3}{#4}{% <->s*\ttscale@TPSF#50800% }{}} \or \providecommand{\EC@ttfamily}[5]{% \DeclareFontShape{#1}{#2}{#3}{#4}{% <->s*\ttscale@TPSF#50800% }{}} \or \providecommand{\EC@ttfamily}[5]{% \DeclareFontShape{#1}{#2}{#3}{#4}{% <-9>s*\ttscale@TPSF#50800% <9->s*\ttscale@TPSF#50900% }{}} \or \providecommand{\EC@ttfamily}[5]{% \DeclareFontShape{#1}{#2}{#3}{#4}{% <-9>s*\ttscale@TPSF#50800% <9-10>s*\ttscale@TPSF#50900% <10->s*\ttscale@TPSF#51000% }{}} \or \providecommand{\EC@ttfamily}[5]{% \DeclareFontShape{#1}{#2}{#3}{#4}{% <-9>s*\ttscale@TPSF#50800% <9-10>s*\ttscale@TPSF#50900% <10-10.95>s*\ttscale@TPSF#51000% <10.95->s*\ttscale@TPSF#51095% }{}} \or \providecommand{\EC@ttfamily}[5]{% \DeclareFontShape{#1}{#2}{#3}{#4}{% <-9>s*\ttscale@TPSF#50800% <9-10>s*\ttscale@TPSF#50900% <10-10.95>s*\ttscale@TPSF#51000% <10.95-12>s*\ttscale@TPSF#51095% <12->s*\ttscale@TPSF#51200% }{}} \fi % european computer modern typewriter. \input{t1cmtt.fd} % european `Slides' computer modern typewriter. There exists _one_ dedicated % font ``ecltt8'' for this setup. \DeclareFontFamily{T1}{lcmtt}{\hyphenchar\font\m@ne} \DeclareFontShape{T1}{lcmtt}{m}{n}{% <->s*\ttscale@TPSF ecltt8% }{} \DeclareFontShape{T1}{lcmtt}{m}{In}{% <->s*\ttscale@TPSF iecltt8% }{} \DeclareFontShape{T1}{lcmtt}{m}{it}{% <->s*\ttscale@TPSF ecit0800% }{} \DeclareFontShape{T1}{lcmtt}{m}{sl}{ <->s*\ttscale@TPSF ecst0800 }{} \DeclareFontShape{T1}{lcmtt}{m}{sc}{ <->s*\ttscale@TPSF ectc0800 }{} \DeclareFontShape{T1}{lcmtt}{m}{ui} {<->sub * lcmtt/m/it}{} \DeclareFontShape{T1}{lcmtt}{bx}{n} {<->sub * lcmtt/m/n}{} \DeclareFontShape{T1}{lcmtt}{bx}{it} {<->sub * lcmtt/m/it}{} \DeclareFontShape{T1}{lcmtt}{bx}{ui} {<->sub * lcmtt/m/it}{} % european computer modern typewriter light. \DeclareFontFamily{T1}{cmtl}{\hyphenchar\font\m@ne} \DeclareFontShape{T1}{cmtl}{m}{n}{% <->s*\ttscale@TPSF ebtl10% }{} \DeclareFontShape{T1}{cmtl}{m}{sl}{% <->s*\ttscale@TPSF ebto10% }{} \DeclareFontShape{T1}{cmtl}{m}{it}{<->ssub*cmtl/m/sl}{} %------------------------------------------------------------------------------ % Typewriter fonts for mTT encoding, used by cmtt.sty. \@ifundefined{T@mTT}{} {% \DeclareFontFamily{mTT}{cmtt}{\hyphenchar\font\m@ne} \DeclareFontShape@TPSF[\ttscale@TPSF]{mTT}{cmtt}{m}{n}{cmtt}{8,9,10,12} \DeclareFontShape@TPSF[\ttscale@TPSF]{mTT}{cmtt}{m}{it}{cmitt}{10} \DeclareFontShape@TPSF[\ttscale@TPSF]{mTT}{cmtt}{m}{sl}{cmsltt}{10} \DeclareFontShape@TPSF[\ttscale@TPSF]{mTT}{cmtt}{m}{sc}{cmtcsc}{10} \DeclareFontShape{mTT}{cmtt}{m}{ui} {<->sub * cmtt/m/it}{} \DeclareFontShape{mTT}{cmtt}{bx}{n} {<->sub * cmtt/m/n}{} \DeclareFontShape{mTT}{cmtt}{bx}{it} {<->sub * cmtt/m/it}{} \DeclareFontShape{mTT}{cmtt}{bx}{ui} {<->sub * cmtt/m/it}{} \DeclareFontFamily{mTT}{lcmtt}{\hyphenchar\font\m@ne} \DeclareFontShape@TPSF[\ttscale@TPSF]{mTT}{lcmtt}{m}{n}{cmtt}{8,9,10,12} \DeclareFontShape@TPSF[\ttscale@TPSF]{mTT}{lcmtt}{m}{it}{cmitt}{10} \DeclareFontShape@TPSF[\ttscale@TPSF]{mTT}{lcmtt}{m}{sl}{cmsltt}{10} \DeclareFontShape@TPSF[\ttscale@TPSF]{mTT}{lcmtt}{m}{sc}{cmtcsc}{10} \DeclareFontShape{mTT}{lcmtt}{m}{ui} {<->sub * lcmtt/m/it}{} \DeclareFontShape{mTT}{lcmtt}{bx}{n} {<->sub * lcmtt/m/n}{} \DeclareFontShape{mTT}{lcmtt}{bx}{it} {<->sub * lcmtt/m/it}{} \DeclareFontShape{mTT}{lcmtt}{bx}{ui} {<->sub * lcmtt/m/it}{} \DeclareFontFamily{mTT}{cmtl}{\hyphenchar\font\m@ne} \DeclareFontShape{mTT}{cmtl}{m}{n}{% <->s*\ttscale@TPSF cmtl10% }{} \DeclareFontShape{mTT}{cmtl}{m}{sl}{% <->s*\ttscale@TPSF cmsltl10% }{} \DeclareFontShape{mTT}{cmtl}{m}{it}{<->ssub*cmtl/m/sl}{} } %------------------------------------------------------------------------------ % Math fonts. % computer modern math italic. \DeclareFontFamily{OML}{cmm}{\skewchar\font127} \DeclareFontShape@TPSF[\mathscale@TPSF]{OML}{cmm}{m}{it}{cmmi}{5,6,7,8,9,10,12} \DeclareFontShape@TPSF[\mathscale@TPSF]{OML}{cmm}{m}{Iit}{icmmi}{8} \DeclareFontShape@TPSF[\mathscale@TPSF]{OML}{cmm}{b}{it}{cmmib}{5,7,10} \DeclareFontShape{OML}{cmm}{bx}{it}% {<->ssub*cmm/b/it}{} \DeclareFontFamily{OML}{cmr}{\skewchar\font127 } \DeclareFontShape{OML}{cmr}{m}{n} {<-> ssub * cmm/m/it}{} \DeclareFontShape{OML}{cmr}{m}{it} {<-> ssub * cmm/m/it}{} \DeclareFontShape{OML}{cmr}{m}{sl} {<-> ssub * cmm/m/it}{} \DeclareFontShape{OML}{cmr}{m}{sc} {<-> ssub * cmm/m/it}{} \DeclareFontShape{OML}{cmr}{bx}{n} {<-> ssub * cmm/b/it}{} \DeclareFontShape{OML}{cmr}{bx}{it} {<-> ssub * cmm/b/it}{} \DeclareFontShape{OML}{cmr}{bx}{sl} {<-> ssub * cmm/b/it}{} \DeclareFontShape{OML}{cmr}{bx}{sc} {<-> ssub * cmm/b/it}{} \DeclareFontFamily{OT1}{cmrm}{\hyphenchar\font=45} \DeclareFontShape@TPSF[\mathscale@TPSF]{OT1}{cmrm}{m}{n}{cmr}{5,6,7,8,9,10,12,17} \DeclareFontShape@TPSF[\mathscale@TPSF]{OT1}{cmrm}{m}{it}{cmti}{7,8,9,10,12} \DeclareFontShape@TPSF[\mathscale@TPSF]{OT1}{cmrm}{bx}{n}{cmbx}{5,6,7,8,9,10,12} \DeclareFontShape@TPSF[\mathscale@TPSF]{OT1}{cmrm}{bx}{it}{cmbxti}{10} {% \let\ecscale@TPSF\mathscale@TPSF \DeclareFontFamily{T1}{cmrm}{} \EC@family{T1}{cmrm}{m}{n}{ecrm} \EC@family{T1}{cmrm}{m}{it}{ecti} \EC@family{T1}{cmrm}{bx}{n}{ecbx} \EC@family{T1}{cmrm}{bx}{it}{ecbi} } \DeclareFontFamily{OMS}{cmsy}{\skewchar\font48} \DeclareFontShape@TPSF[\mathscale@TPSF]{OMS}{cmsy}{m}{n}{cmsy}{5,6,7,8,9,10} \DeclareFontShape@TPSF[\mathscale@TPSF]{OMS}{cmsy}{b}{n}{cmbsy}{5,7,10} \DeclareFontShape@TPSF[\mathscale@TPSF]{OMS}{cmsy}{m}{In}{icmsy}{8} \DeclareFontFamily{OMS}{cmr}{\skewchar\font48 } \DeclareFontShape{OMS}{cmr}{m}{n} {<-> ssub * cmsy/m/n}{} \DeclareFontShape{OMS}{cmr}{m}{it} {<-> ssub * cmsy/m/n}{} \DeclareFontShape{OMS}{cmr}{m}{sl} {<-> ssub * cmsy/m/n}{} \DeclareFontShape{OMS}{cmr}{m}{sc} {<-> ssub * cmsy/m/n}{} \DeclareFontShape{OMS}{cmr}{bx}{n} {<-> ssub * cmsy/b/n}{} \DeclareFontShape{OMS}{cmr}{bx}{it} {<-> ssub * cmsy/b/n}{} \DeclareFontShape{OMS}{cmr}{bx}{sl} {<-> ssub * cmsy/b/n}{} \DeclareFontShape{OMS}{cmr}{bx}{sc} {<-> ssub * cmsy/b/n}{} \DeclareFontFamily{OMX}{cmex}{} \DeclareFontShape{OMX}{cmex}{m}{n}{% <->\mathscale@TPSF cmex10% }{} % Euler fonts (eulervm style). \DeclareFontFamily{U}{zeur}{\skewchar \font =127} \DeclareFontShape@TPSF[\eulerscale@TPSF]{U}{zeur}{m}{n}{zeurm}{5,7,10} \DeclareFontShape@TPSF[\eulerscale@TPSF]{U}{zeur}{b}{n}{zeurb}{5,7,10} \DeclareFontShape{U}{zeur}{bx}{n}{<->ssub * zeur/b/n}{} \DeclareFontFamily{U}{zeus}{\skewchar \font =176} \DeclareFontShape@TPSF[\eulerscale@TPSF]{U}{zeus}{m}{n}{zeusm}{5,7,10} \DeclareFontShape@TPSF[\eulerscale@TPSF]{U}{zeus}{b}{n}{zeusb}{5,7,10} \DeclareFontShape{U}{zeus}{bx}{n}{<->ssub * zeus/b/n}{} \DeclareFontFamily{U}{zeuex}{} \DeclareFontShape{U}{zeuex}{m}{n}{ <-> \eulerscale@TPSF zeuex10 }{} % computer modern bright math slanted. \DeclareFontFamily{OML}{cmbrm}{\skewchar\font 127} \DeclareFontShape@TPSF[\cmbrscale@TPSF]{OML}{cmbrm}{m}{it}{cmbrmi}{8,9,10} \DeclareFontShape@TPSF[\cmbrscale@TPSF]{OML}{cmbrm}{b}{it}{cmbrmb}{10} \DeclareFontFamily{OML}{cmbr}{\skewchar\font 127} \DeclareFontShape{OML}{cmbr}{m}{it}{<->ssub*cmbrm/m/it}{} \DeclareFontShape{OML}{cmbr}{sb}{it}{<->ssub*cmbrm/b/it}{} \DeclareFontShape{OML}{cmbr}{bx}{it}{<->ssub*cmbrm/b/it}{} \DeclareFontFamily{OT1}{cmbrmt}{\hyphenchar\font45} \DeclareFontShape@TPSF[\cmbrscale@TPSF]{OT1}{cmbrmt}{m}{n}{cmbr}{8,9,10,17} \DeclareFontShape@TPSF[\cmbrscale@TPSF]{OT1}{cmbrmt}{m}{sl}{cmbrsl}{8,9,10,17} \DeclareFontShape{OT1}{cmbrmt}{m}{it}{% <->ssub*cmbrmt/m/sl% }{} \DeclareFontShape@TPSF[\cmbrscale@TPSF]{OT1}{cmbrmt}{bx}{n}{cmbrbx}{10} \DeclareFontFamily{T1}{cmbrmt}{} \DeclareFontShape@TPSF[\cmbrscale@TPSF]{T1}{cmbrmt}{m}{n}{ebmr}{8,9,10,17} \DeclareFontShape@TPSF[\cmbrscale@TPSF]{T1}{cmbrmt}{m}{sl}{ebmo}{8,9,10,17} \DeclareFontShape{T1}{cmbrmt}{m}{it}{% <->ssub*cmbrmt/m/sl% }{} \DeclareFontShape@TPSF[\cmbrscale@TPSF]{T1}{cmbrmt}{sb}{n}{ebsr}{8,9,10,17} \DeclareFontShape@TPSF[\cmbrscale@TPSF]{T1}{cmbrmt}{sb}{sl}{ebso}{8,9,10,17} \DeclareFontShape{T1}{cmbrmt}{sb}{it}{% <->ssub*cmbrmt/sb/sl% }{} \DeclareFontShape{T1}{cmbrmt}{bx}{n}{% <->sub*cmbrmt/sb/n% }{} \DeclareFontShape{T1}{cmbrmt}{bx}{it}{% <->sub*cmbrmt/sb/it% }{} \DeclareFontFamily{OMS}{cmbrs}{\skewchar\font 48} \DeclareFontShape@TPSF[\cmbrscale@TPSF]{OMS}{cmbrs}{m}{n}{cmbrsy}{8,9,10} \DeclareFontShape{OMS}{cmbrs}{m}{b}{<->ssub*cmbrs/m/n}{} \DeclareFontFamily{OMS}{cmbr}{\skewchar\font 48} \DeclareFontShape{OMS}{cmbr}{m}{n}{<->ssub*cmbrs/m/n}{} \DeclareFontShape{OMS}{cmbr}{m}{b}{<->ssub*cmbrs/m/n}{} % Concrete Math Italic \DeclareFontFamily{OML}{ccm}{\skewchar\font127 } \DeclareFontShape@TPSF[\mathscale@TPSF]{OML}{ccm}{m}{it}{xccmi}{5,6,7,8,9,10} \DeclareFontShape{OML}{ccm}{b}{it}{<-> ssub * cmm/b/it}{} \DeclareFontShape{OML}{ccm}{c}{it}{<9>\mathscale@TPSF ccmic9}{} \DeclareFontFamily{OML}{ccr}{\skewchar\font127 } \DeclareFontShape{OML}{ccr}{m}{it} {<->ssub * ccm/m/it}{} \DeclareFontShape{OML}{ccr}{bx}{it} {<->ssub * ccm/b/it}{} \DeclareFontShape{OML}{ccr}{sbc}{it}{<->ssub * ccm/m/it}{} \DeclareFontFamily{OMS}{ccsy}{\skewchar\font48 } \DeclareFontShape@TPSF[\mathscale@TPSF]{OMS}{ccsy}{m}{n}{xccsy}{5,6,7,8,9,10} \DeclareFontShape{OMS}{ccsy}{b}{n}{<-> ssub * cmsy/b/n}{} \DeclareFontFamily{OMS}{ccr}{\skewchar\font48 } \DeclareFontShape{OMS}{ccr}{m}{n} {<->ssub * ccsy/m/n}{} \DeclareFontShape{OMS}{ccr}{bx}{n} {<->ssub * ccsy/b/n}{} \DeclareFontShape{OMS}{ccr}{sbc}{n}{<->ssub * ccsy/m/n}{} \DeclareFontFamily{OMX}{ccex}{} \DeclareFontShape{OMX}{ccex}{m}{n}{<->\mathscale@TPSF xccex10}{} % LaTeX symbols \DeclareFontFamily{U}{lasy}{} \DeclareFontShape@TPSF[\mathscale@TPSF]{U}{lasy}{m}{n}{lasy}{5,6,7,8,9,10} \DeclareFontShape{U}{lasy}{b}{n}{ <-> \mathscale@TPSF lasyb10 }{} % AMS fonts \DeclareFontFamily{U}{msa}{} \DeclareFontFamily{U}{msb}{} \ifthenelse{\equal{\TPSFMathfont}{cmbrm}} {% \AtBeginDocument {% \DeclareFontShape@TPSF[\cmbrscale@TPSF]{U}{msa}{m}{n}{cmbras}{8,9,10}% \DeclareFontShape@TPSF[\cmbrscale@TPSF]{U}{msb}{m}{n}{cmbrbs}{8,9,10}% }% } {% \DeclareFontShape@TPSF[\mathscale@TPSF]{U}{msa}{m}{n}{msam}{5,7,10} \DeclareFontShape@TPSF[\mathscale@TPSF]{U}{msb}{m}{n}{msbm}{5,7,10} } \DeclareFontFamily{U}{euex}{} \DeclareFontShape{U}{euex}{m}{n}{ <-> \eulerscale@TPSF euex10 }{} \DeclareFontFamily{U}{euf}{} \DeclareFontShape@TPSF[\eulerscale@TPSF]{U}{euf}{m}{n}{eufm}{5,7,10} \DeclareFontShape@TPSF[\eulerscale@TPSF]{U}{euf}{b}{n}{eufb}{5,7,10} \DeclareFontFamily{U}{eur}{\skewchar\font'177} \DeclareFontShape@TPSF[\eulerscale@TPSF]{U}{eur}{m}{n}{eurm}{5,7,10} \DeclareFontShape@TPSF[\eulerscale@TPSF]{U}{eur}{b}{n}{eurb}{5,7,10} \DeclareFontFamily{U}{eus}{\skewchar\font'60} \DeclareFontShape@TPSF[\eulerscale@TPSF]{U}{eus}{m}{n}{eusm}{5,7,10} \DeclareFontShape@TPSF[\eulerscale@TPSF]{U}{eus}{b}{n}{eusb}{5,7,10} % St Mary's Road symbol font. \DeclareFontFamily{U}{stmry}{} \DeclareFontShape@TPSF[\mathscale@TPSF]{U}{stmry}{m}{n}{stmary}{5,6,7,8,9,10} % Wasy symbol font. \DeclareFontFamily{U}{wasy}{} \DeclareFontShape@TPSF[\mathscale@TPSF]{U}{wasy}{m}{n}{wasy}{5,6,7,8,9,10} \DeclareFontShape{U}{wasy}{b}{n} { <->\mathscale@TPSF wasyb10 }{} % formal script math symbols \DeclareFontFamily{U}{rsfs}{\skewchar\font127 } \DeclareFontShape@TPSF[\mathscale@TPSF]{U}{rsfs}{m}{n}{rsfs}{5,7,10} % double stroke computer modern \DeclareFontFamily{U}{dsrom}{} \DeclareFontShape@TPSF[\mathscale@TPSF]{U}{dsrom}{m}{n}{dsrom}{8,10,12} \DeclareFontFamily{U}{dsss}{} \DeclareFontShape@TPSF[\mathscale@TPSF]{U}{dsss}{m}{n}{dsss}{8,10,12} \endgroup % Just to make sure in case these have been defined before... \expandafter\let\csname OT1/cmr/m/n/10\endcsname\relax \expandafter\let\csname OT1/cmr/m/n/10.95\endcsname\relax \expandafter\let\csname OT1/cmr/m/n/12\endcsname\relax \expandafter\let\csname T1/cmr/m/n/10\endcsname\relax \expandafter\let\csname T1/cmr/m/n/10.95\endcsname\relax \expandafter\let\csname T1/cmr/m/n/12\endcsname\relax %============================================================================== % Font shape selection. %------------------------------------------------------------------------------ % Set text fonts. \newcommand{\setlcmssTextFonts@TPSF} {% \renewcommand{\familydefault}{\sfdefault}% Main text font is sans serif. \renewcommand{\sfdefault}{lcmss}% Choose lcmss as sans serif font. \renewcommand{\ttdefault}{lcmtt}% Typewriter font lcmtt. } \newcommand{\setcmrTextFonts@TPSF} {% \renewcommand{\familydefault}{\rmdefault}% Main text font is roman. \renewcommand{\rmdefault}{cmr}% Choose cmr as roman font. \renewcommand{\ttdefault}{cmtt}% Typewriter font. } \newcommand{\setcmssTextFonts@TPSF} {% \renewcommand{\familydefault}{\sfdefault}% Main text font is sans serif. \renewcommand{\sfdefault}{cmss}% Choose cmss as sans serif font. \renewcommand{\ttdefault}{cmtt}% Typewriter font. } \newcommand{\setcmbrTextFonts@TPSF} {% \renewcommand{\familydefault}{\sfdefault}% Main text font is sans serif. \renewcommand{\sfdefault}{cmbr}% Choose cmss as sans serif font. \renewcommand{\ttdefault}{cmtl}% Light Typewriter font. } \newcommand{\setccrTextFonts@TPSF} {% \renewcommand{\familydefault}{\rmdefault}% Main text font is roman. \renewcommand{\rmdefault}{ccr}% Choose ccr as roman font. \renewcommand{\ttdefault}{cmtt}% Typewriter font. } \csname set\TPSFTextfont TextFonts@TPSF\endcsname %------------------------------------------------------------------------------ % Configure Math fonts. \newcommand{\setcmmMathFonts@TPSF} {% \SetSymbolFont{letters} {normal}{OML}{cmm} {m}{it} \SetSymbolFont{symbols} {normal}{OMS}{cmsy}{m}{n} \SetSymbolFont{largesymbols}{normal}{OMX}{cmex}{m}{n} \SetSymbolFont{letters} {bold} {OML}{cmm} {b}{it} \SetSymbolFont{symbols} {bold} {OMS}{cmsy}{b}{n} } \newcommand{\setccmMathFonts@TPSF} {% \SetSymbolFont{letters} {normal}{OML}{ccm} {m}{it} \SetSymbolFont{symbols} {normal}{OMS}{ccsy}{m}{n} \SetSymbolFont{largesymbols}{normal}{OMX}{ccex}{m}{n} \SetSymbolFont{letters} {bold} {OML}{ccm} {b}{it} \SetSymbolFont{symbols} {bold} {OMS}{ccsy}{b}{n} } \newcommand{\seteulerMathFonts@TPSF} {% \RequirePackage{eulervm} \def\tpc@ncel##1##2{\m@th\ooalign{$\hfil##1/\hfil$\crcr$##1##2$}} \def\neq{\mathrel{\m@th\mathpalette\tpc@ncel=}} \DeclareSymbolFont{auxletters}{OML}{cmm}{m}{it} \SetSymbolFont{auxletters}{bold}{OML}{cmm}{b}{it} \DeclareMathSymbol{<}{\mathrel}{auxletters}{"3C} \DeclareMathSymbol{>}{\mathrel}{auxletters}{"3E} } \newcommand{\setcmbrmMathFonts@TPSF} {% \SetSymbolFont{letters} {normal}{OML}{cmbrm} {m}{it} \SetSymbolFont{symbols} {normal}{OMS}{cmbrs}{m}{n} \SetSymbolFont{largesymbols}{normal}{OMX}{cmex}{m}{n} \SetSymbolFont{letters} {bold} {OML}{cmbrm} {b}{it} \SetSymbolFont{symbols} {bold}{OMS}{cmbrs}{b}{n} } \csname set\TPSFMathfont MathFonts@TPSF\endcsname %------------------------------------------------------------------------------ % Configure Operator fonts. \ifthenelse{\equal{\TPSFMathfont}{euler}} {% \SetSymbolFont{operators}{normal}{\encodingdefault}{\TPSFOperatorfont}{m}{n}% \SetSymbolFont{operators}{bold}{\encodingdefault}{\TPSFOperatorfont}{bx}{n}% } {% \SetSymbolFont{operators}{normal}{OT1}{\TPSFOperatorfont}{m}{n}% \SetSymbolFont{operators}{bold}{OT1}{\TPSFOperatorfont}{bx}{n}% } %------------------------------------------------------------------------------ % Alphabets for ``text inside math''. \DeclareMathAlphabet {\mathbf}{\encodingdefault}{\TPSFOperatorfont}{bx}{n} \DeclareMathAlphabet {\mathsf}{\encodingdefault}{\sfdefault}{m}{n} \DeclareMathAlphabet {\mathit}{\encodingdefault}{\TPSFOperatorfont}{m}{it} \DeclareMathAlphabet {\mathtt}{\encodingdefault}{\ttdefault}{m}{n} \SetMathAlphabet\mathsf{bold}{\encodingdefault}{\sfdefault}{bx}{n} \SetMathAlphabet\mathit{bold}{\encodingdefault}{\TPSFOperatorfont}{bx}{it} \SetMathAlphabet{\mathtt}{bold}{\encodingdefault}{\ttdefault}{bx}{n} %------------------------------------------------------------------------------ % \oldstylenums follow in style the math font setting. \def\oldstylenums#1{% \begingroup \spaceskip\fontdimen\tw@\font \usefont{OML}{\TPSFMathfont}{\f@series}{it}% \mathgroup\symletters #1% \endgroup } %------------------------------------------------------------------------------ % Configure doublestroke fonts \@ifpackageloaded{dsfont} {% \ifthenelse{\equal{\TPSFOperatorfont}{cmr}} {% \DeclareMathAlphabet{\mathds}{U}{dsrom}{m}{n} } {% \DeclareMathAlphabet{\mathds}{U}{dsss}{m}{n} } }{}% % Local Variables: % fill-column: 80 % TeX-master: "dummy" % End: %% %% End of file `tpslifonts.sty'.