diff options
Diffstat (limited to 'Master/texmf-dist/source/latex/tpslifonts/tpslifonts.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/tpslifonts/tpslifonts.dtx | 1621 |
1 files changed, 1621 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/tpslifonts/tpslifonts.dtx b/Master/texmf-dist/source/latex/tpslifonts/tpslifonts.dtx new file mode 100644 index 00000000000..a549c2dcc40 --- /dev/null +++ b/Master/texmf-dist/source/latex/tpslifonts/tpslifonts.dtx @@ -0,0 +1,1621 @@ +% \iffalse meta-comment +% +% -------------------------------------------------------------- +% Package tpslifonts - part of TeXPower bundle - configure +% presentation fonts. Copyright (C) 1999-2004 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. +% -------------------------------------------------------------- +% +% tpslifonts.dtx,v 1.2 2004/07/27 11:30:39 hansfn Exp +% +% \fi +% +% \iffalse +% +%<*driver> +\ProvidesFile{tpslifonts.dtx} +%</driver> +%<tpslifonts>\NeedsTeXFormat{LaTeX2e} +%<tpslifonts>\ProvidesPackage{tpslifonts} +%<*tpslifonts> + [2004/07/27 v0.6d Configure presentation fonts.] +%</tpslifonts> +% +%<*driver> +\documentclass{ltxdoc} +\EnableCrossrefs +\CodelineIndex +\RecordChanges +\begin{document} + \DocInput{tpslifonts.dtx} +\end{document} +%</driver> +% +% \fi +% +% \CheckSum{1030} +% +% \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 \~} +% +% +% \GetFileInfo{tpslifonts.dtx} +% +% \DoNotIndex{\newcommand,\newenvironment} +% +% \title{The \textsf{tpslifonts} package\thanks{This document +% corresponds to \textsf{tpslifonts}~\fileversion, dated \filedate.}} +% \author{ Stephan Lehmke \\ \texttt{Stephan.Lehmke@cs.uni-dortmund.de}} +% +% \maketitle +% +% \tableofcontents +% +% \section{Introduction} +% +% 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/| +% +% \section{User interface} +% +% The package doesn't define any user-level commands; the font +% configuration is done entirely by package options. +% +% Furthermore, the accompanying example document slifontsexample gives a +% lot of information about the fonts configured and some examples of +% math typesetting. Please read the comments in slifontsexample.tex +% carefully and try out some of the configuration variants described +% therein. +% +% \section{Description of package options} +% +% \subsection{Text font options} +% +% The default is to use \SliTeX\ computer modern sans serif, an eminently +% readable font and my personal favourite.\\ +% +% \begin{tabular}{@{}l@{\hspace{1cm}}l} +% Option & Meaning\\ \hline +% cmr & Set computer modern roman text fonts.\\ +% cmfib & Set computer modern roman Fibonacci text fonts.\\ +% cmss & Set computer modern sans serif text fonts.\\ +% cmbright & Set computer modern bright text fonts.\\ +% concrete & Set concrete text fonts. +% \end{tabular} +% +% \subsection{Design size bounding} +% +% 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, because large design sizes tend to +% be less readable at low resolutions. For sizes below 8pt, smaller +% design sizes are used if available. +% +% The limit of 8pt is adjustable (downwards) by options. \\ +% +% \begin{tabular}{@{}l@{\hspace{1cm}}l} +% Option & Meaning\\ \hline +% scale7pt & Use 7pt as a bound.\\ +% scale6pt & Use 6pt as a bound.\\ +% scale5pt & Use 5pt as a bound. +% \end{tabular} +% +% \subsection{Font scaling} +% +% The default lcmss text fonts have very high `small letters', making +% normal-size fonts look small and difficult to read. There are options +% for scaling up math and typewriter fonts slightly so they harmonize a +% little more with text fonts.\\ +% +% \begin{tabular}{@{}l@{\hspace{1cm}}l} +% Option & Meaning\\ \hline +% scaleupmath & scale up math fonts\\ +% scaleuptt & scale up typewriter fonts +% \end{tabular} +% +% \subsection{Math fonts} +% +% Because the availability of different fonts in different encodings is +% not really homogenous, we differentiate between the font used for +% operator names (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. The concrete option for concrete text fonts +% selects concrete math fonts by default, but as these don't seem to +% exist in Type1 format currently, it's recommended to combine concrete +% text with Euler math.\\ +% +% \begin{tabular}{@{}l@{\hspace{1cm}}p{0.6\textwidth}} +% Option & Meaning \\ \hline +% eulermath & Use Euler math fonts. This implies the option textops +% (see below). \\ +% eulerdigits & Take digits also from the Euler fonts (default: the +% text font used). Can be used only in conjunction with +% the eulermath option. \\ +% cmbrightmath & Use cmbright math fonts. \\ +% textops & Take operator names, upper case greek, digits and some +% symbols from the text font rather than from some font +% matching the math font (default for Euler math). +% \end{tabular} +% +% \StopEventually{\PrintChanges\PrintIndex} +% +% \section{Implementation} +% +% \changes{v0.1}{2001/08/10}{First version for the pre-alpha release of +% texpower.} +% +% \changes{v0.2}{2001/11/17}{Added support for stmaryrd fonts.} +% +% \changes{v0.3}{2002/10/18}{Rewritten to go without .fd files. Euler package +% dependence changed to eulervm. Added support for ams, lasy, wasysym, rsfs, +% dstroke fonts.} +% +% \changes{v0.4}{2003/03/25}{Added support for cmbright math.} +% +% \changes{v0.5}{2003/03/26}{Added support for T1 encoding.} +% +% \changes{v0.6}{2003/05/29}{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.} +% +% \changes{v0.6a}{2003/06/02}{Removed some font warnings by selecting `silent' +% forms of declaration. } +% +% \changes{v0.6b}{2003/07/19}{A small change making `cmbright' AMS fonts +% useable before \cs{begin\{document\}}. } +% +% \changes{v0.6c}{2003/09/23}{Added the option ``cmfib''.} +% +% \changes{v0.6d}{2004/07/27}{Moved to dtx format. No other code changes.} +% +% \begin{macrocode} +\RequirePackage{ifthen} +% \end{macrocode} +% +% \subsection{Options and general setup} +% +% Text fonts. The default is to use ``slifonts'' (lcmss). +% \begin{macrocode} +\newcommand{\TPSFTextfont}{lcmss} +% \end{macrocode} +% The option cmr sets ``computer modern roman'' text fonts. +% \begin{macrocode} +\DeclareOption{cmr}{\renewcommand{\TPSFTextfont}{cmr}} +% \end{macrocode} +% The option cmfib sets ``computer modern roman Fibonacci'' text fonts. +% \begin{macrocode} +\DeclareOption{cmfib}{\renewcommand{\TPSFTextfont}{cmfib}} +% \end{macrocode} +% The option cmss sets ``computer modern roman sans serif'' text fonts. +% \begin{macrocode} +\DeclareOption{cmss}{\renewcommand{\TPSFTextfont}{cmss}} +% \end{macrocode} +% The option cmbright sets ``computer modern bright'' text fonts. +% \begin{macrocode} +\DeclareOption{cmbright}{\renewcommand{\TPSFTextfont}{cmbr}} +% \end{macrocode} +% The option concrete sets ``concrete'' text fonts. +% \begin{macrocode} +\DeclareOption{concrete} +{% + \renewcommand{\TPSFTextfont}{ccr}% + \renewcommand{\TPSFMathfont}{ccm}% + \renewcommand{\TPSFOperatorfont}{ccr}% +} +% \end{macrocode} +% +% \subsubsection{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. +% \begin{macrocode} +\providecommand{\TPSFMaxDesignSize}{8} +% \end{macrocode} +% The option scale5pt causes scaled 5pt design sizes to be used wherever +% possible. +% \begin{macrocode} +\DeclareOption{scale5pt}{\renewcommand{\TPSFMaxDesignSize}{5}} +% \end{macrocode} +% The option scale6pt causes scaled 6pt design sizes to be used wherever +% possible (for font sizes above 6pt). +% \begin{macrocode} +\DeclareOption{scale6pt}{\renewcommand{\TPSFMaxDesignSize}{6}} +% \end{macrocode} +% The option scale7pt causes scaled 7pt design sizes to be used wherever +% possible (for font sizes above 7pt). +% \begin{macrocode} +\DeclareOption{scale7pt}{\renewcommand{\TPSFMaxDesignSize}{7}} +% \end{macrocode} +% +% 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. +% \begin{macrocode} +\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}} +% \end{macrocode} +% +% \subsubsection{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. +% \begin{macrocode} +\newcommand{\TPSFMathfont}{cmm} + +\newcommand{\TPSFOpF@cmm}{cmrm} + +\newcommand{\TPSFOpF@ccm}{ccr} + +\newcommand{\TPSFOperatorfont}{cmr} +% \end{macrocode} +% The option textops makes the operator font follow the text font. +% \begin{macrocode} +\newboolean{TPSFtextops} +\DeclareOption{textops}{\setboolean{TPSFtextops}{true}} +% \end{macrocode} +% 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. +% \begin{macrocode} +\DeclareOption{eulermath} +{\renewcommand{\TPSFMathfont}{euler}\setboolean{TPSFtextops}{true}} +% \end{macrocode} +% The option eulerdigits works only in conjunction with eulermath and sets the +% euler-digits option of the eulervm package. +% \begin{macrocode} +\newboolean{TPSFeulerdigits} +\DeclareOption{eulerdigits} +{% + \setboolean{TPSFeulerdigits}{true}% + \PassOptionsToPackage{euler-digits}{eulervm}% +} +% \end{macrocode} +% The option cmbrightmath sets cmbright math fonts (slightly adapted from the +% cmbright package to match lcmss better). +% \begin{macrocode} +\DeclareOption{cmbrightmath}{\renewcommand{\TPSFMathfont}{cmbrm}} + +\newcommand{\TPSFOpF@cmbrm}{cmbrmt} +% \end{macrocode} + +% +% \subsubsection{Process options} +% \begin{macrocode} +\ProcessOptions +% \end{macrocode} +% +% 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. +% \begin{macrocode} +\@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]}} +% \end{macrocode} +% +% As mentioned above, the ``scaleup...'' options make sense really only if lcmss +% text fonts are used. Otherwise, we give a warning. +% \begin{macrocode} +\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.% + }% +} +{} +% \end{macrocode} +% +% We need to set the math operator font corresponing to the settings of the +% TPSFtextops switch, the text and math fonts. +% \begin{macrocode} +\ifthenelse{\boolean{TPSFtextops}} +{\let\TPSFOperatorfont\TPSFTextfont} +{% + \expandafter\let\expandafter\TPSFOperatorfont + \csname TPSFOpF@\TPSFMathfont\endcsname +} +% \end{macrocode} +% +% 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). +% \begin{macrocode} +\ifthenelse{\equal{\TPSFMathfont}{cmbrm}} +{% + \RequirePackage[standard-baselineskips]{cmbright}% +} +% \end{macrocode} +% +% \subsection{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<name>{<list>}| filters out all sizes (represented as +% nonnegative integer numbers) from the comma-separated <list> which are above +% the threshold in |\TPSFMaxDesignSize| and stores the result in the macro +% <name>. To avoid inconsistencies if all sizes exceed |\TPSFMaxDesignSize|, the +% first size is always passed. +% \begin{macrocode} +\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 +} +% \end{macrocode} +% \begin{macro}{\DeclareFontShape@TPSF} +% |\DeclareFontShape@TPSF[<scale>]|\\ +% | {<enc>}{<fam>}{<ser>}{<shp>}{<name>}{<sizes>}| +% 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 |<sizes>| as a comma-separated list +% of numbers. If |<s>| is one of the sizes, it is expected that the corresponding +% font name can be constructed as |<name><s>|. +% If the optional argument |<scale>| is given, it has to be of the form +% |[<factor>]|, where |<factor>| specifies the scaling of the font (see the +% options ``scaleupmath'' and ``scaleuptt'' above). +% \begin{macrocode} +\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}{}% +} +% \end{macrocode} +% \end{macro} +% \begin{macrocode} + +\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 +} +% \end{macrocode} +% +% \subsection{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|. +% \begin{macrocode} +\begingroup +\nfss@catcodes +% \end{macrocode} +% +% \subsubsection{Text fonts for OT1 encoding} +% +% computer modern roman. +% \begin{macrocode} +\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}{% + <->s* cmff10 + }{} +\DeclareFontShape{OT1}{cmfr}{m}{it}{ + <->s* cmfi10 + }{} + +\DeclareFontFamily{OT1}{cmdh}{\hyphenchar\font=45} + +\DeclareFontShape{OT1}{cmdh}{m}{n}{ + <->s* cmdunh10 + }{} + +\DeclareFontFamily{OT1}{cmfib}{\hyphenchar\font=45} + +\DeclareFontShape{OT1}{cmfib}{m}{n}{ + <->s* cmfib8 + }{} + +\DeclareFontShape{OT1}{cmfib}{m}{sl} + {<->ssub * cmr/m/sl}{} + +\DeclareFontShape{OT1}{cmfib}{m}{it} + {<->ssub * cmr/m/it}{} + +\DeclareFontShape{OT1}{cmfib}{m}{sc} + {<->ssub * cmr/m/sc}{} + +\DeclareFontShape{OT1}{cmfib}{m}{ui} + {<->ssub * cmr/m/ui}{} + +\DeclareFontShape{OT1}{cmfib}{b}{n} + {<->ssub * cmr/b/n}{} + +\DeclareFontShape{OT1}{cmfib}{bx}{n} + {<->ssub * cmr/bx/n}{} + +\DeclareFontShape{OT1}{cmfib}{bx}{sl} + {<->ssub * cmr/bx/sl}{} + +\DeclareFontShape{OT1}{cmfib}{bx}{it} + {<->ssub * cmr/bx/it}{} + +\DeclareFontShape{OT1}{cmfib}{bx}{ui} + {<->ssub * cmr/m/ui}{} +% \end{macrocode} +% computer modern sans serif. +% \begin{macrocode} +\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}{} +% \end{macrocode} +% slide computer modern sans serif. +% \begin{macrocode} +\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}{} +% \end{macrocode} +% computer modern bright +% \begin{macrocode} +\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} +% \end{macrocode} +% concrete roman +% \begin{macrocode} +\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} +% \end{macrocode} +% +% \subsubsection{Text fonts for T1 encoding} +% +% \begin{macrocode} +\let\ecscale@TPSF\empty + +\ifcase\TPSFMaxDesignSize + \or\or\or\or\or + \providecommand{\EC@family}[5]{% + \DeclareFontShape{#1}{#2}{#3}{#4}{% + <->s*\ecscale@TPSF#50500% + }{}} + \or + \providecommand{\EC@family}[5]{% + \DeclareFontShape{#1}{#2}{#3}{#4}{% + <-6>s*\ecscale@TPSF#50500% + <6->s*\ecscale@TPSF#50600% + }{}} + \or + \providecommand{\EC@family}[5]{% + \DeclareFontShape{#1}{#2}{#3}{#4}{% + <-6>s*\ecscale@TPSF#50500% + <6-7>s*\ecscale@TPSF#50600% + <7->s*\ecscale@TPSF#50700% + }{}} + \or + \providecommand{\EC@family}[5]{% + \DeclareFontShape{#1}{#2}{#3}{#4}{% + <-6>s*\ecscale@TPSF#50500% + <6-7>s*\ecscale@TPSF#50600% + <7-8>s*\ecscale@TPSF#50700% + <8->s*\ecscale@TPSF#50800% + }{}} + \or + \providecommand{\EC@family}[5]{% + \DeclareFontShape{#1}{#2}{#3}{#4}{% + <-6>s*\ecscale@TPSF#50500% + <6-7>s*\ecscale@TPSF#50600% + <7-8>s*\ecscale@TPSF#50700% + <8-9>s*\ecscale@TPSF#50800% + <9->s*\ecscale@TPSF#50900% + }{}} + \or + \providecommand{\EC@family}[5]{% + \DeclareFontShape{#1}{#2}{#3}{#4}{% + <-6>s*\ecscale@TPSF#50500% + <6-7>s*\ecscale@TPSF#50600% + <7-8>s*\ecscale@TPSF#50700% + <8-9>s*\ecscale@TPSF#50800% + <9-10>s*\ecscale@TPSF#50900% + <10->s*\ecscale@TPSF#51000% + }{}} + \or + \providecommand{\EC@family}[5]{% + \DeclareFontShape{#1}{#2}{#3}{#4}{% + <-6>s*\ecscale@TPSF#50500% + <6-7>s*\ecscale@TPSF#50600% + <7-8>s*\ecscale@TPSF#50700% + <8-9>s*\ecscale@TPSF#50800% + <9-10>s*\ecscale@TPSF#50900% + <10-10.95>s*\ecscale@TPSF#51000% + <10.95->s*\ecscale@TPSF#51095% + }{}} + \or + \providecommand{\EC@family}[5]{% + \DeclareFontShape{#1}{#2}{#3}{#4}{% + <-6>s*\ecscale@TPSF#50500% + <6-7>s*\ecscale@TPSF#50600% + <7-8>s*\ecscale@TPSF#50700% + <8-9>s*\ecscale@TPSF#50800% + <9-10>s*\ecscale@TPSF#50900% + <10-10.95>s*\ecscale@TPSF#51000% + <10.95-12>s*\ecscale@TPSF#51095% + <12->s*\ecscale@TPSF#51200% + }{}} +\fi +% \end{macrocode} +% european computer modern roman. +% \begin{macrocode} +\input{t1cmr.fd} + +\input{t1cmfr.fd} + +\input{t1cmdh.fd} + +\input{t1cmfib.fd} + +\DeclareFontShape{T1}{cmfib}{m}{it} + {<->ssub * cmr/m/it}{} + +\DeclareFontShape{T1}{cmfib}{m}{sc} + {<->ssub * cmr/m/sc}{} + +\DeclareFontShape{T1}{cmfib}{m}{ui} + {<->ssub * cmr/m/ui}{} + +\DeclareFontShape{T1}{cmfib}{b}{n} + {<->ssub * cmr/b/n}{} + +\DeclareFontShape{T1}{cmfib}{bx}{n} + {<->ssub * cmr/bx/n}{} + +\DeclareFontShape{T1}{cmfib}{bx}{sl} + {<->ssub * cmr/bx/sl}{} + +\DeclareFontShape{T1}{cmfib}{bx}{it} + {<->ssub * cmr/bx/it}{} + +\DeclareFontShape{T1}{cmfib}{bx}{ui} + {<->ssub * cmr/m/ui}{} +% \end{macrocode} +% european computer modern roman sans serif. +% \begin{macrocode} +\input{t1cmss.fd} + +\DeclareFontShape@TPSF{T1}{cmss}{sbc}{n}{ecssdc}{10} +% \end{macrocode} +% european slide computer modern sans serif. +% \begin{macrocode} +\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}{} +% \end{macrocode} +% european computer modern bright +% \begin{macrocode} +\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% +}{} +% \end{macrocode} +% european concrete roman +% \begin{macrocode} +\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}{} +% \end{macrocode} +% +% \subsection{Typewriter fonts for OT1 encoding} +% +% computer modern typewriter. +% \begin{macrocode} +\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}{} +% \end{macrocode} +% `Slides' computer modern typewriter exists only for compatibility with T1 +% encoding. +% \begin{macrocode} +\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}{} +% \end{macrocode} +% computer modern typewriter light. +% \begin{macrocode} +\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}{} +% \end{macrocode} +% +% \subsection{Typewriter fonts for T1 encoding} +% +% \begin{macrocode} +\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 +% \end{macrocode} +% european computer modern typewriter. +% \begin{macrocode} +\input{t1cmtt.fd} +% \end{macrocode} +% european `Slides' computer modern typewriter. There exists \textbf{one} dedicated +% font ``ecltt8'' for this setup. +% \begin{macrocode} +\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}{} +% \end{macrocode} +% european computer modern typewriter light. +% \begin{macrocode} +\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}{} +% \end{macrocode} +% +% \subsection{Typewriter fonts for mTT encoding} +% +% Used by cmtt.sty. +% \begin{macrocode} +\@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}{} +} +% \end{macrocode} +% +% \subsection{Math fonts} +% +% computer modern math italic. +% \begin{macrocode} +\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@TPSF[\mathscale@TPSF]{OMX}{cmex}{m}{n}{cmex}{7,10} +% \end{macrocode} +% Euler fonts (eulervm style). +% \begin{macrocode} +\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}{ + <->s* \eulerscale@TPSF zeuex10 +}{} +% \end{macrocode} +% computer modern bright math slanted. +% \begin{macrocode} +\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}{} +% \end{macrocode} +% Concrete Math Italic +% \begin{macrocode} +\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}{<->s*\mathscale@TPSF xccex10}{} +% \end{macrocode} +% LaTeX symbols +% \begin{macrocode} +\DeclareFontFamily{U}{lasy}{} + +\DeclareFontShape@TPSF[\mathscale@TPSF]{U}{lasy}{m}{n}{lasy}{5,6,7,8,9,10} + +\DeclareFontShape{U}{lasy}{b}{n}{ + <->s* \mathscale@TPSF lasyb10 + }{} +% \end{macrocode} +% AMS fonts +% \begin{macrocode} +\DeclareFontFamily{U}{msa}{} + +\DeclareFontFamily{U}{msb}{} + +\ifthenelse{\equal{\TPSFMathfont}{cmbrm}} +{% +% \end{macrocode} +% AMS fonts should be available immediately, so they can be used in say panels. +% \begin{macrocode} + \DeclareFontShape@TPSF[\cmbrscale@TPSF]{U}{msa}{m}{n}{cmbras}{8,9,10}% + \DeclareFontShape@TPSF[\cmbrscale@TPSF]{U}{msb}{m}{n}{cmbrbs}{8,9,10}% +% \end{macrocode} +% On the other hand, the cmbright package redeclares them |\AtBeginDocument|, so +% we need to overwrite that change as well. +% \begin{macrocode} + \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}{ + <->s* \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} +% \end{macrocode} +% St Mary's Road symbol font. +% \begin{macrocode} +\DeclareFontFamily{U}{stmry}{} + +\DeclareFontShape@TPSF[\mathscale@TPSF]{U}{stmry}{m}{n}{stmary}{5,6,7,8,9,10} +% \end{macrocode} +% Wasy symbol font. +% \begin{macrocode} +\DeclareFontFamily{U}{wasy}{} + +\DeclareFontShape@TPSF[\mathscale@TPSF]{U}{wasy}{m}{n}{wasy}{5,6,7,8,9,10} + +\DeclareFontShape{U}{wasy}{b}{n} +{ <->s*\mathscale@TPSF wasyb10 +}{} +% \end{macrocode} +% formal script math symbols +% \begin{macrocode} +\DeclareFontFamily{U}{rsfs}{\skewchar\font127 } + +\DeclareFontShape@TPSF[\mathscale@TPSF]{U}{rsfs}{m}{n}{rsfs}{5,7,10} +% \end{macrocode} +% double stroke computer modern +% \begin{macrocode} +\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 +% \end{macrocode} + +% Just to make sure in case these have been defined before... +% \begin{macrocode} +\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 +% \end{macrocode} +% +% \subsection{Font shape selection} +% +% \subsubsection{Set text fonts} +% \begin{macrocode} +\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{\setcmfibTextFonts@TPSF} +{% + \renewcommand{\familydefault}{\rmdefault}% Main text font is roman. + \renewcommand{\rmdefault}{cmfib}% Choose cmfib 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 +% \end{macrocode} +% +% \subsubsection{Configure Math fonts} +% +% \begin{macrocode} +\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 +% \end{macrocode} +% +% \subsubsection{Configure Operator fonts} +% +% \begin{macrocode} +\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}% +} +% \end{macrocode} +% +% \subsubsection{Alphabets for ``text inside math''} +% +% \begin{macrocode} +\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} +% \end{macrocode} +% +% |\oldstylenums| follow in style the math font setting. +% \begin{macrocode} +\def\oldstylenums#1{% + \begingroup + \spaceskip\fontdimen\tw@\font + \usefont{OML}{\TPSFMathfont}{\f@series}{it}% + \mathgroup\symletters #1% + \endgroup +} +% \end{macrocode} +% +% \subsubsection{Configure doublestroke fonts} +% +% \begin{macrocode} +\@ifpackageloaded{dsfont} +{% + \ifthenelse{\equal{\TPSFOperatorfont}{cmr}\or\equal{\TPSFOperatorfont}{cmrm}} + {% + \DeclareMathAlphabet{\mathds}{U}{dsrom}{m}{n} + } + {% + \DeclareMathAlphabet{\mathds}{U}{dsss}{m}{n} + } +}{}% +% \end{macrocode} +% +% \Finale +\endinput |