diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/texpower/tpslifonts |
Initial commit
Diffstat (limited to 'macros/latex/contrib/texpower/tpslifonts')
6 files changed, 3492 insertions, 0 deletions
diff --git a/macros/latex/contrib/texpower/tpslifonts/00readme.txt b/macros/latex/contrib/texpower/tpslifonts/00readme.txt new file mode 100644 index 0000000000..6d46258caa --- /dev/null +++ b/macros/latex/contrib/texpower/tpslifonts/00readme.txt @@ -0,0 +1,90 @@ +====================================================================== + + Package tpslifonts + Configure presentation fonts + + alpha version (v0.6) + This readme file last changed on July 27, 2004 + + Author: Stephan Lehmke <mailto:Stephan.Lehmke@cs.uni-dortmund.de> + Lehrstuhl Informatik I + Universität Dortmund + Dortmund, Germany + +====================================================================== + +Contents: +========= + +00readme.txt + This file. + +01install.txt + Installation instructions. + +Makefile + Builds documentation and unpacks dtx-file. + (Only useful on Unix-like systems.) + +tpslifonts.dtx + Documented TeX source for the tpslifonts package. + +tpslifonts.ins + Docstrip batchfile that generates the tpslifonts package. + +slifontsexample.tex + An documented example. + +Overview: +========= + +Beamer and overhead presentations are often viewed under peculiar +circumstances. Especially for presentations which are projected +directly `out of the computer', low power of the beamer, low +resolution and an abundance of colors can lead to severe readability +problems. + +It is therefore of utmost importance to optimize font selection as +much as possible towards readability. + +The package tpslifonts offers a couple of `harmonising' combinations +of text and math fonts from the (distant) relatives of computer modern +fonts, with a couple of extras for optimising readability. + +The package offers the following features: + + 1) Text fonts from computer modern roman, computer modern sans serif, + SliTeX computer modern sans serif, computer modern bright, or + concrete roman. + + 2) Support for OT1 and T1 font encoding. + + 3) Math fonts from computer modern math, computer modern bright math, + or Euler fonts. + + 4) Support of additional symbol fonts like AMS symbols or + doublestroke. + + 5) All fonts configured for `smooth scaling' (like in the type1cm + package). + + 6) Avoiding fonts not freely available in Type 1 format. + + 7) Careful design size selection for optimum readability. + +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. + +tpslifonts is part of the TeXPower bundle, residing at + +http://texpower.sourceforge.net/ + +but is completely independent and can be used without texpower without +problems. The example document slifontsexample.tex can also be +compiled without TeXPower installed. + diff --git a/macros/latex/contrib/texpower/tpslifonts/01install.txt b/macros/latex/contrib/texpower/tpslifonts/01install.txt new file mode 100644 index 0000000000..733f860738 --- /dev/null +++ b/macros/latex/contrib/texpower/tpslifonts/01install.txt @@ -0,0 +1,79 @@ +====================================================================== + + Package tpslifonts + Configure presentation fonts + + alpha version (v0.6) + Installation Instructions + + This file last changed on July 27, 2004 + + Author: Stephan Lehmke <mailto:Stephan.Lehmke@cs.uni-dortmund.de> + Lehrstuhl Informatik I + Universität Dortmund + Dortmund, Germany + +====================================================================== + +Installation of tpslifonts.sty: +------------------------------- + +If you have installed the current TeXPower bundle, then tpslifonts has +been installed as part of it, so there's nothing to do. + +If you want to install tpslifonts without TeXPower, do: + +1) Run "latex tpslifonts.ins" to generate + - tpslifonts.sty + +2) Produce the documentation by running + latex tpslifonts.dtx + makeindex -s gglo.ist -o tpslifonts.gls tpslifonts.glo + makeindex -s gind.ist -o tpslifonts.ind tpslifonts.idx + latex tpslifonts.dtx + +3) Move the file tpslifonts.sty to a place where latex can find it. On a + TDS-compliant system, a nice place would be + + <path to a texmf tree>/tex/latex/texpower/tpslifonts/ + + Then, on systems using a filename database, don't forget to refresh + the database! + +On a Unix-like system 1) and 2) can be done easily using "make". + +Compiling the example document: +------------------------------- + +After installing tpslifonts, you can compile the document + + slifontsexample + +using pdflatex or latex, to see whether everything works as expected. + +If you get an error message, most likely you're missing a package used +therein. Don't worry, if you don't want to install a new package, just +open the file slifontsexample.tex and comment out the offending +\usepackage command, the document will adapt by leaving out the +corresponding parts. + +If you've not used pdflatex, please do whatever neccessary on your +system to convert the document to pdf, then open in acrobat reader. + +Read the file slifontsexample.tex carefully; there are a lot +of configuration alternatives to try out. + +If the document should look ugly on screen, most likely you're missing +Type1 (PostScript outline) versions of some fonts used. + +Either you use a configuration alternative for which you possess the +fonts, or you install the respective PostScript fonts. + +Some candidates which may not be present even in an up-to-date +distributuion: + +cm-super CTAN:/fonts/ps-type1/cm-super/ + +hfbright CTAN:/fonts/ps-type1/hfbright/ + +doublestroke CTAN:/fonts/doublestroke/ diff --git a/macros/latex/contrib/texpower/tpslifonts/Makefile b/macros/latex/contrib/texpower/tpslifonts/Makefile new file mode 100644 index 0000000000..625328b252 --- /dev/null +++ b/macros/latex/contrib/texpower/tpslifonts/Makefile @@ -0,0 +1,38 @@ +RM=rm -f +SHELL=sh +VERSION=0.1 +JUNKS=*.aux *.toc *.idx *.glo *.dvi *.log *.lof *.ist *.ilg *.ind *.gls *.out *.tmp *~ + +help: + @echo '**********************************************' + @echo ' The following targets exist: ' + @echo ' - all: All targets below ' + @echo ' - unpack: Unpacks the tpslifonts package ' + @echo ' - pack: Packs the package ' + @echo ' - doc: Builds tpslifonts documentation ' + @echo ' - clean: Remove all generate/junk files ' + @echo '**********************************************' + +unpack: + latex tpslifonts.ins + @echo '**********************************************' + @echo ' To make tpslifonts package documentation ' + @echo ' % make doc ' + @echo '**********************************************' + +all: unpack doc + +doc: tpslifonts.dtx + latex tpslifonts.dtx + latex tpslifonts.dtx + makeindex -s gglo.ist -o tpslifonts.gls tpslifonts.glo + makeindex -s gind.ist -o tpslifonts.ind tpslifonts.idx + latex tpslifonts.dtx + +pack: clean + -(cd ..; cp -r tpslifonts tpslifonts-$(VERSION); \ + tar cvfz tpslifonts-$(VERSION).tgz tpslifonts-$(VERSION)) + +clean: + @$(RM) $(JUNKS) tpslifonts.sty + @echo The current directory has been cleaned up. diff --git a/macros/latex/contrib/texpower/tpslifonts/slifontsexample.tex b/macros/latex/contrib/texpower/tpslifonts/slifontsexample.tex new file mode 100644 index 0000000000..7b92148943 --- /dev/null +++ b/macros/latex/contrib/texpower/tpslifonts/slifontsexample.tex @@ -0,0 +1,1600 @@ +%----------------------------------------------------------------------------------------------------------------- +% File: slifontsexample.tex +% +% Example for the package tpslifonts.sty. +% +% This file can be compiled with pdfLaTeX or (standard) LaTeX. When using standard LaTeX, the dvi file produced should +% be converted to pdf afterwards (using dvips+distill/ps2pdf or dvipdf, for instance). +% +% The resulting pdf file is meant for presenting `interactively' with Adobe Acrobat Reader. +% +%----------------------------------------------------------------------------------------------------------------- +% Author: Stephan Lehmke <Stephan.Lehmke@cs.uni-dortmund.de> +% +% v0.1 Nov 14, 2002: First version for the pre-alpha release of TeXPower. +% +% v0.2 Jan 07, 2003: Adapted to tpslifonts v0.4 (added support for cmbright). +% +% v0.3 Mar 28, 2003: Adapted to tpslifonts v0.5 (added support for T1 encoding). +% +% v0.4 May 28, 2003: Adapted to tpslifonts v0.6. +% +%----------------------------------------------------------------------------------------------------------------- +% Please go to USER CONFIGURATION AREA below to find configuration options for experimenting with font settings. +%----------------------------------------------------------------------------------------------------------------- + +\newif\ifTPaware +\IfFileExists{texpower.sty}{\TPawaretrue}{\TPawarefalse} + +\ifTPaware +\documentclass[letterpaper,landscape,KOMA,smallheadings,calcdimensions,display]{powersem} +%----------------------------------------------------------------------------------------------------------------- +% Set slide margins rather small for maximum use of space. This is a demo, remember. +\renewcommand{\slidetopmargin}{5mm} +\renewcommand{\slidebottommargin}{5mm} +\renewcommand{\slideleftmargin}{5mm} +\renewcommand{\sliderightmargin}{5mm} +%----------------------------------------------------------------------------------------------------------------- +% Some setup for more reasonable spacing. +\makeatletter +\renewcommand\section{\@startsection{section}{1}{\z@}% + {-1.5ex\@plus -1ex \@minus -.5ex}% + {.5ex \@plus .2ex}% + {\raggedsection\normalfont\size@section\sectfont}} +\renewcommand\subsection{\@startsection{subsection}{2}{\z@}% + {-1.25ex\@plus -1ex \@minus -.2ex}% + {.5ex \@plus .2ex}% + {\raggedsection\normalfont\size@subsection\sectfont}} +\def\slideitemsep{.5ex plus .3ex minus .2ex} +\makeatother +%----------------------------------------------------------------------------------------------------------------- +% We need some more packages... +\usepackage{url} +\usepackage[latin1]{inputenc} +% One more Text emphasis command... +\let\name=\textsc +\else % NOT TPaware +% Make a `poor man's presentation mode. +\documentclass{article} +\setlength{\paperwidth}{13cm} +\setlength{\paperheight}{10cm} +\usepackage[left=3mm,right=3mm,top=3mm,bottom=3mm]{geometry} +\setlength{\parindent}{0pt} +\setlength{\parskip}{1ex plus .5ex minus .5ex} +\linespread{1.3} +\usepackage{url} +\usepackage{calc} +\raggedbottom +\fi % END TPaware + +%================================================================================================================= +% begin USER CONFIGURATION AREA. +% In the following, you can configure this demo by changing settings made below (until the ``end USER CONFIGURATION +% AREA mark). +% Note in particular the part below labelled ``Configuration scenarios''. +%================================================================================================================= + +%----------------------------------------------------------------------------------------------------------------- +% Packages and Preamble settings individual for this example. + +% We use a lot of fonts for demonstration. You can comment out any of the following \usepackage calls to emulate your +% own working environment. Note, however, that some of the examples will vanish then because of lacking commands. + +\usepackage{amssymb} +\usepackage{latexsym} +\usepackage{wasysym} +\usepackage{stmaryrd} +\usepackage{mathrsfs} +\usepackage{dsfont} + +\usepackage[override]{cmtt} + +% Make nested braces grow. +\delimitershortfall-1sp\relax + +% The following packages are needed only for the examples. If you're lacking any of them, just comment out the +% \usepackage call. Note, however, that some of the examples will vanish then because of lacking commands. + +% Both amsmath and wasysym insist on defining \iint and \iiint. +\makeatletter\let\iint\@undefined\let\iiint\@undefined\makeatother +\usepackage[leqno]{amsmath} + +\usepackage{amscd} + +\usepackage{array} + +\IfFileExists{easymat.sty}{\usepackage{easymat}} + +%----------------------------------------------------------------------------------------------------------------- +% TeXPower configuration. + +\PassOptionsToPackage{lightbackground,colorhighlight}{texpower} + +% Comment out to avoid coloring math formulae. +\PassOptionsToPackage{colormath}{texpower} + +\usepackage{ifthen}[2001/05/26] + +%----------------------------------------------------------------------------------------------------------------- +% Configuration scenarios + +% In the following, we give several `configuration scenarios' for presentation font selection with tpslifonts. Each +% hopefully represents a nice and readable selection of tpslifonts options and parameters. For some scenarios, you might +% need to have some Type1 fonts installed which are not part of every TeX distribution, otherwise bitmap versions will +% be used which look `blurred' in acroread. +% Of course taste varies, so after testing each scenario in turn and making yourself acquainted with the possibilities, +% you might start experimenting further by removing some options or parameters from a scenario or by adding parameters +% used in other scenarios. +% For selecting a scenario, just uncomment its code lines. Remember to comment out all other scenarios, otherwise there +% might be conflicts. + +% Configuration scenario 1: +% Slifonts with cm italic math. +% ----------------------------- +% This is a `standard' setting. The text fonts come from the lcmss family, Typewriter from cmtt and math from cmmi. Size +% differences are remedied by using `scaleup' options. The `textops' option causes operator names and digits to be taken +% from the text font lcmss. The `scale7pt' will hopefully make math look a little `bolder'. +% Type 1 versions of all fonts used by this scenario (apart from certain math fonts like dsrom) should be part of every +% moderately modern TeX distribution. + +% \PassOptionsToPackage{scaleupmath,scaleuptt,textops,scale7pt}{tpslifonts} + +% If you find the typewriter characters to be too `bold', try uncommenting the following line: + +% \def\TPSFttscale{1.13} + + +% Configuration scenario 2: +% Slifonts with euler math. +% ------------------------- +% Combining lcmss with euler math might look strange at first, but the euler math fonts are definitely extremely well +% readable on screen. The text fonts come from the lcmss family, Typewriter from cmtt and math from euler roman. Size +% differences are remedied by using `scaleup' options. +% Type 1 versions of all fonts used by this scenario (apart from certain math fonts like dsrom) should be part of every +% moderately modern TeX distribution. + +% \PassOptionsToPackage{eulermath,scaleupmath,scaleuptt}{tpslifonts} + +% If you uncomment the following option, digits are also taken from Euler math. + +% \PassOptionsToPackage{eulerdigits}{tpslifonts} + +% If you find the typewriter characters to be too `bold', try uncommenting the following line: + +% \def\TPSFttscale{1.13} + +% Configuration scenario 3: +% Slifonts with cmbright math. +% ---------------------------- +% The cmbright family is the only existing source for a complete set of sans serif math fonts which fit the computer +% modern grand family. Although being slightly different from cmss, it fits well with lcmss . The text fonts come from +% the lcmss family, Typewriter from cmtt and math from cm bright. Size differences are remedied by using `scaleup' +% options. The `textops' option causes operator names and digits to be taken from the text font lcmss. +% Even with a modern TeX distribution, you might need to install Type1 versions of the cmbright fonts, for instance from +% the ``hfbright'' bundle by Harald Harders. + +% \PassOptionsToPackage{cmbrightmath,scaleupmath,scaleuptt,textops}{tpslifonts} + +% If you find the typewriter characters to be too `bold', try uncommenting the following line: + +% \def\TPSFttscale{1.1} + +% Configuration scenario 4: +% cmss fonts with cm italic math. +% ------------------------------- +% The text fonts come from the cmss family, Typewriter from cmtt and math from cmmi. The `textops' option causes +% operator names and digits to be taken from the text font cmss. The `scale7pt' option makes characters look a little +% `bolder', enhancing readability. +% Type 1 versions of all fonts used by this scenario (apart from certain math fonts like dsrom) should be part of every +% moderately modern TeX distribution. + +% \PassOptionsToPackage{cmss,textops,scale7pt}{tpslifonts} + +% Configuration scenario 5: +% cmss fonts with euler math. +% --------------------------- +% Combining cmss with euler math might look strange at first, but the euler math fonts are definitely extremely well +% readable on screen. The text fonts come from the cmss family, Typewriter from cmtt and math from euler roman. +% Type 1 versions of all fonts used by this scenario (apart from certain math fonts like dsrom) should be part of every +% moderately modern TeX distribution. + +% \PassOptionsToPackage{cmss,eulermath}{tpslifonts} + +% If you uncomment the following option, digits are also taken from Euler math. + +% \PassOptionsToPackage{eulerdigits}{tpslifonts} + +% Configuration scenario 6: +% cmss fonts with cmbright math. +% ------------------------------ +% The cmbright family is the only existing source for a complete set of sans serif math fonts which fit the computer +% modern grand family. Although being slightly different from cmss, it fits well with cmss. The text fonts come from +% the cmss family, Typewriter from cmtt and math from cm bright. The `textops' option causes operator names and digits +% to be taken from the text font cmss. +% Even with a modern TeX distribution, you might need to install Type1 versions of the cmbright fonts, for instance from +% the ``hfbright'' bundle by Harald Harders. + +% \PassOptionsToPackage{cmss,cmbrightmath,textops}{tpslifonts} + +% Configuration scenario 7: +% cmr fonts. +% ------------------------- +% In this case, all fonts are the TeX standard computer modern roman. The text fonts come from the cmr family, +% Typewriter from cmtt and math from cmmi. The `scale7pt' option makes characters look a little `bolder', enhancing +% readability. +% Type 1 versions of all fonts used by this scenario (apart from certain math fonts like dsrom) should be part of every +% moderately modern TeX distribution. + +\PassOptionsToPackage{cmr,scale7pt}{tpslifonts} + +% Configuration scenario 8: +% cmbright fonts. +% ------------------------- +% In this case, all fonts are taken from the cmbright family. The text fonts come from the cmbr family, +% Typewriter from cmtl and math from cmbrm. +% Even with a modern TeX distribution, you might need to install Type1 versions of the cmbright fonts, for instance from +% the ``hfbright'' bundle by Harald Harders. + +% \PassOptionsToPackage{cmbright,cmbrightmath}{tpslifonts} + +% Configuration scenario 9: +% concrete fonts with Euler math. +% ------------------------------- +% In this case, text fonts are taken from the concrete family. The text fonts come from the ccr family, +% Typewriter from cmtt and math from Euler. +% Unfortunately, it seems there are no Type1 versions of OT1 encoded ccr fonts. Hence, to use this setup (at this +% moment) it is neccessary to select T1 fontencoding (see below) and install some Type1 collection of ``ec'' fonts like +% the cm-super fonts. Even then, there's no Type1 version of ccm math fonts, so for this scenario, (the matching) Euler +% math fonts are selected. + +% \PassOptionsToPackage{concrete,eulermath}{tpslifonts} + +% With this scenario, T1 fontencoding is neccessary because (to the authors knowledge) there exists no OT1 encoded Type1 +% version of ccr. + +% \usepackage[T1]{fontenc} + +%----------------------------------------------------------------------------------------------------------------- +% Other tpslifonts settings. + +% Use T1 font encoding. This will lead to using EC fonts instead of CM. + +\usepackage[T1]{fontenc} + +% tpslifonts allows to define independent scaling factors for different groups of fonts. Selecting one of the +% scaleup... options will define a default value supposed to match ``SliTeX'' fonts, but you can set any scaling factor +% by just defining (any of) the respective macros: + +% Typewriter fonts. + +% \def\TPSFttscale{1.1} + +% Math fonts related to cm math. + +% \def\TPSFmathscale{1.1} + +% Euler math fonts. + +% \def\TPSFeulerscale{1.05} + +% cmbright math fonts. + +% \def\TPSFcmbrscale{1.05} + + +%================================================================================================================= +% end USER CONFIGURATION AREA. +%================================================================================================================= + + +\RequirePackage{tpslifonts} + +\makeatletter +\ifTPaware +%----------------------------------------------------------------------------------------------------------------- +% We load hyperref and fixseminar which fixes some problems with seminar. +\usepackage[plainpages=false,bookmarksopen,colorlinks,urlcolor=red,pdfpagemode=FullScreen]{hyperref} +\usepackage{fixseminar} +%----------------------------------------------------------------------------------------------------------------- +% Finally, the texpower package is loaded. +\usepackage{texpower} +%----------------------------------------------------------------------------------------------------------------- +% Some more parameters... +\slidesmag{5} +\slideframe{none} +\pagestyle{empty} +\setcounter{tocdepth}{2} +\renewcommand{\currentpagevalue}{\value{slide}} +%----------------------------------------------------------------------------------------------------------------- +% The following command produces a title page for every example and documentation file. +\newcommand{\makeslidetitle}[1] +{% + \title{The \TeX Power bundle\\[2ex]{\normalfont #1}} + \author + {% + Stephan Lehmke\\ + \mdseries + University of Dortmund\\ + \mdseries + Department of Computer Science I\\ + \url{mailto:Stephan.Lehmke@udo.edu}% + } + {\centerslidestrue + \maketitle + \newslide} + \setcounter{firststep}{1}% This way, the first step of all examples is displayed. +} +\hypersetup{pdftitle={texpower tpslifonts example}} +\slidesmag{4} +\else % NOT TPaware +% Load everything manually. +\pagestyle{empty} +\newcommand{\makeslidetitle}[1] +{% + \begin{center} + {\leavevmode\Large\sffamily + + \vspace*{\fill} + + \textbf{The \TeX Power bundle\\{\normalfont #1}} + \par} + + \vspace*{\fill} + + Stephan Lehmke\\ + University of Dortmund\\ + Department of Computer Science I\\ + \url{mailto:Stephan.Lehmke@udo.edu}% + + \vspace*{\fill} + \today + + \vspace*{\fill} + + \vspace*{\fill} + \end{center} + \newpage +} + +\renewcommand\section{\@startsection{section}{1}{\z@}% + {-1.5ex\@plus -1ex \@minus -.5ex}% + {.5ex \@plus .2ex}% + {\normalfont\large\sffamily\bfseries}} + +\let\code\texttt +\let\concept\textbf +\let\underl\textbf +\let\name\textsc +\newcommand{\macroname}[1]{\code{\textbackslash##1}} + +\newenvironment{slide}{\raggedright}{} + +\newenvironment{presentbox}{\par\begin{minipage}[t]{\linewidth}}{\end{minipage}\par} + +\let\present=\fbox +\fi % END TPaware + +\newboolean{TPSFamsfonts} +\@ifpackageloaded{amsfonts}{\setboolean{TPSFamsfonts}{true}}{} +\newboolean{TPSFlasy} +\@ifpackageloaded{latexsym}{\setboolean{TPSFlasy}{true}}{} +\newboolean{TPSFwasysym} +\@ifpackageloaded{wasysym}{\setboolean{TPSFwasysym}{true}}{} +\newboolean{TPSFstmaryrd} +\@ifpackageloaded{stmaryrd}{\setboolean{TPSFstmaryrd}{true}}{} +\newboolean{TPSFrsfs} +\@ifpackageloaded{mathrsfs}{\setboolean{TPSFrsfs}{true}}{} +\newboolean{TPSFdstroke} +\@ifpackageloaded{dsfont}{\setboolean{TPSFdstroke}{true}}{} +\makeatother + + +%----------------------------------------------------------------------------------------------------------------- +% Finally, everything is set up. Here we go... +% +\begin{document} +\begin{slide} +% +%----------------------------------------------------------------------------------------------------------------- +% +% Body of slifonts example. +% + +\newcommand{\textbfsl}[1]{\textbf{\textsl{#1}}} +\newcommand{\textbfit}[1]{\textbf{\textit{#1}}} +\newcommand{\textbfsc}[1]{\textbf{\textsc{#1}}} +\newcommand{\textcsl}[1]{\textc{\textsl{#1}}} +\newcommand{\textsbsl}[1]{\textsb{\textsl{#1}}} +\newcommand{\textsbc}[1]{{\fontseries{sbc}\selectfont#1}} +\newcommand{\textb}[1]{{\fontseries{b}\selectfont#1}} +\newcommand{\textsb}[1]{{\fontseries{sb}\selectfont#1}} +\newcommand{\textc}[1]{{\fontseries{c}\selectfont#1}} +\newcommand{\textui}[1]{{\fontshape{ui}\selectfont#1}} +\newcommand{\textff}[1]{{\fontfamily{cmfr}\selectfont#1}} +\newcommand{\textffi}[1]{{\fontfamily{cmfr}\textit{#1}}} +\newcommand{\textdh}[1]{{\fontfamily{cmdh}\selectfont#1}} +\newcommand{\textfib}[1]{{\fontfamily{cmfib}\selectfont#1}} +\newcommand{\textfibsl}[1]{{\fontfamily{cmfib}\selectfont\textsl{#1}}} + +\makeatletter +\@namedef{TextFontNamelcmssOT1}{SliTeX Sans Serif (\code{lcmss})} + +\@namedef{TextFontNameShortlcmssOT1}{\code{lcmss}} + +\@namedef{TextItFontNamelcmssOT1}{SliTeX Sans-Serif Slanted (\code{lcmssi})} + +\@namedef{TextFontslcmssOT1}% +{% + {SliTeX Sans Serif (\code{lcmss})}\textnormal,% + {SliTeX Sans-Serif Slanted (\code{lcmssi})}\textsl,% + {SliTeX Sans-Serif bold (\code{lcmssb})}\textbf% +} + +\@namedef{TextFontNamelcmssT1}{European Computer Modern Sans Serif Quotation (\code{eclq})} + +\@namedef{TextFontNameShortlcmssT1}{\code{eclq}} + +\@namedef{TextItFontNamelcmssT1}{European Computer Modern Sans Serif Quotation Inclined (\code{ecli})} + +\@namedef{TextFontslcmssT1}% +{% + {European Computer Modern Sans Serif Quotation (\code{eclq})}\textnormal,% + {European Computer Modern Sans Serif Quotation Inclined (\code{ecli})}\textsl,% + {European Computer Modern Sans Serif Quotation Bold (\code{eclb})}\textbf,% + {European Computer Modern Sans Serif Quotation Bold Oblique (\code{eclo})}\textbfsl% +} + +\@namedef{TextFontNamecmrOT1}{Computer Modern Roman (\code{cmr})} +\expandafter\let\csname TextFontNamecmrmOT1\expandafter\endcsname\csname TextFontNamecmrOT1\endcsname + +\@namedef{TextFontNameShortcmrOT1}{\code{cmr}} +\expandafter\let\csname TextFontNameShortcmrmOT1\expandafter\endcsname\csname TextFontNameShortcmrOT1\endcsname + +\@namedef{TextItFontNamecmrOT1}{Computer Modern Text Italic (\code{cmti})} + +\@namedef{TextFontscmrOT1}% +{% + {Computer Modern Roman (\code{cmr})}\textnormal,% + {Computer Modern Slanted Roman (\code{cmsl})}\textsl,% + {Computer Modern Text Italic (\code{cmti})}\textit,% + {Computer Modern Roman Caps and Small Caps (\code{cmcsc})}\textsc,% + {Computer Modern Unslanted Italic (\code{cmu})}\textui,% + {Computer Modern Bold Roman (\code{cmb})}\textb,% + {Computer Modern Bold Extended Roman (\code{cmbx})}\textbf,% + {Computer Modern Bold Extended Slanted Roman (\code{cmbxsl})}\textbfsl,% + {Computer Modern Bold Extended Text Italic (\code{cmbxti})}\textbfit,% + {Computer Modern Funny Roman (\code{cmff})}\textff,% + {Computer Modern Funny Italic (\code{cmfi})}\textffi,% + {Computer Modern Dunhill Roman (\code{cmdunh})}\textdh,% + {Computer Modern Roman Fibonacci Font (\code{cmfib})}\textfib% +} + +\@namedef{TextFontNamecmrT1}{European Computer Modern Roman Medium (\code{ecrm})} +\expandafter\let\csname TextFontNamecmrmT1\expandafter\endcsname\csname TextFontNamecmrT1\endcsname + +\@namedef{TextFontNameShortcmrT1}{\code{ecrm}} +\expandafter\let\csname TextFontNameShortcmrmT1\expandafter\endcsname\csname TextFontNameShortcmrT1\endcsname + +\@namedef{TextItFontNamecmrT1}{European Computer Modern Text Italic (\code{ecti})} + +\@namedef{TextFontscmrT1}% +{% + {European Computer Modern Roman Medium (\code{ecrm})}\textnormal,% + {European Computer Modern Roman Slanted (\code{ecsl})}\textsl,% + {European Computer Modern Text Italic (\code{ecti})}\textit,% + {European Computer Modern Caps and Small Caps (\code{eccc})}\textsc,% + {European Computer Modern Bold Extend Roman (\code{ecbx})}\textbf,% + {European Computer Modern Roman Bold (Non-Extended) (\code{ecrb})}\textb,% + {European Computer Modern Bold Extended Text Italic (\code{ecbi})}\textbfit,% + {European Computer Modern Bold Extended Slanted Roman (\code{ecbl})}\textbfsl,% + {European Computer Modern Bold Extended Caps and Small Caps (\code{ecxc})}\textbfsc,% + {European Computer Modern Unslanted Italic (\code{ecui})}\textui,% +% {European Computer Modern Funny Roman (\code{ecff})}\textff,% unable to make tfm ?!? +% {European Computer Modern Funny Italic (\code{ecfi})}\textffi,% + {European Computer Modern Dunhill Roman (\code{ecdh})}\textdh,% + {European Computer Modern Fibonacci Font (\code{ecfb})}\textfib,% + {European Computer Modern Fibonacci Slanted Font (\code{ecfs})}\textfibsl% +} + +\@namedef{TextFontNamecmssOT1}{Computer Modern Sans Serif (\code{cmss})} + +\@namedef{TextFontNameShortcmssOT1}{\code{cmss}} + +\@namedef{TextItFontNamecmssOT1}{Computer Modern Slanted Sans Serif (\code{cmssi})} + +\@namedef{TextFontscmssOT1}% +{% + {Computer Modern Sans Serif (\code{cmss})}\textnormal,% + {Computer Modern Slanted Sans Serif (\code{cmssi})}\textsl,% + {Computer Modern Sans Serif Demibold Condensed (\code{cmssdc})}\textsbc,% + {Computer Modern Sans Serif Bold Extended (\code{cmssbx})}\textbf% +} + +\@namedef{TextFontNamecmssT1}{European Computer Modern Sans Serif (\code{ecss})} + +\@namedef{TextFontNameShortcmssT1}{\code{ecss}} + +\@namedef{TextItFontNamecmssT1}{European Computer Modern Sans Serif Inclined (\code{ecsi})} + +\@namedef{TextFontscmssT1}% +{% + {European Computer Modern Sans Serif (\code{ecss})}\textnormal,% + {European Computer Modern Sans Serif Inclined (\code{ecsi})}\textsl,% + {European Computer Modern Sans Serif Bold Extended (\code{ecsx})}\textbf,% + {European Computer Modern Sans Serif Bold Extended Oblique (\code{ecso})}\textbfsl,% + {European Computer Modern Sans Serif Demi Condensed (\code{ecssdc})}\textsbc% +} + +\@namedef{TextFontNamecmbrOT1}{Computer Modern Bright (\code{cmbr})} +\expandafter\let\csname TextFontNamecmbrmtOT1\expandafter\endcsname\csname TextFontNamecmbrOT1\endcsname + +\@namedef{TextFontNameShortcmbrOT1}{\code{cmbr}} +\expandafter\let\csname TextFontNameShortcmbrmtOT1\expandafter\endcsname\csname TextFontNameShortcmbrOT1\endcsname + +\@namedef{TextItFontNamecmbrOT1}{Computer Modern Bright Slanted (\code{cmbrsl})} + +\@namedef{TextFontscmbrOT1}% +{% + {Computer Modern Bright (\code{cmbr})}\textnormal,% + {Computer Modern Bright Slanted (\code{cmbrsl})}\textsl,% + {Computer Modern Bright Bold Extended (\code{cmbrbx})}\textbf% +} + +\@namedef{TextFontNamecmbrT1}{European Computer Modern Bright medium regular (\code{ebmr})} +\expandafter\let\csname TextFontNamecmbrmtT1\expandafter\endcsname\csname TextFontNamecmbrT1\endcsname + +\@namedef{TextFontNameShortcmbrT1}{\code{ebmr}} +\expandafter\let\csname TextFontNameShortcmbrmtT1\expandafter\endcsname\csname TextFontNameShortcmbrT1\endcsname + +\@namedef{TextItFontNamecmbrT1}{European Computer Modern Bright medium oblique (\code{ebmo})} + +\@namedef{TextFontscmbrT1}% +{% + {European Computer Modern Bright medium regular (\code{ebmr})}\textnormal,% + {European Computer Modern Bright medium oblique (\code{ebmo})}\textsl,% + {European Computer Modern Bright semibold regular (\code{ebsr})}\textsb,% + {European Computer Modern Bright semibold oblique (\code{ebso})}\textsbsl% +} + +\@namedef{TextFontNameccrOT1}{Concrete Roman (\code{ccr})} + +\@namedef{TextFontNameShortccrOT1}{\code{ccr}} + +\@namedef{TextItFontNameccrOT1}{Concrete Text Italic (\code{ccti})} + +\@namedef{TextFontsccrOT1}% +{% + {Concrete Roman (\code{ccr})}\textnormal,% + {Concrete Slanted Roman (\code{ccsl})}\textsl,% + {Concrete Text Italic (\code{ccti})}\textit,% + {Concrete Roman Caps and Small Caps (\code{cccsc})}\textsc,% + {Concrete Slanted Condensed Roman (\code{ccslc})}\textcsl,% + {Computer Modern Sans Serif Bold Extended (\code{cmssbx}) as a replacement for `bold' ccr}\textbf% +} + +\@namedef{TextFontNameccrT1}{European Concrete Roman (\code{eorm})} + +\@namedef{TextFontNameShortccrT1}{\code{eorm}} + +\@namedef{TextItFontNameccrT1}{European Computer Concrete Text Italic (\code{eoti})} + +\@namedef{TextFontsccrT1}% +{% + {European Concrete Roman (\code{eorm})}\textnormal,% + {European Computer Concrete Slanted (\code{eosl})}\textsl,% + {European Computer Concrete Text Italic (\code{eoti})}\textit,% + {European Concrete Roman Caps and Small Caps (\code{eocc})}\textsc,% + {European Computer Modern Sans Serif Bold Extended (\code{ecsx}) as a replacement for `bold' ccr}\textbf,% + {European Computer Modern Sans Serif Bold Extended Oblique (\code{ecso}) as a replacement for `bold slanted' ccr}% + \textbfsl% +} + +\@namedef{TTFontNamelcmssOT1}{Computer Modern Typewriter Text (\code{cmtt})} + +\@namedef{TTItFontNamelcmssOT1}{Computer Modern Italic Typewriter Text (\code{cmitt})} + +\@namedef{TTFontslcmssOT1}% +{% + {Computer Modern Typewriter Text (\code{cmtt})}\textnormal,% + {Computer Modern Italic Typewriter Text (\code{cmitt})}\textit,% + {Computer Modern Slanted Typewriter Text (\code{cmsltt})}\textsl,% + {Computer Modern Typewriter Caps and Small Caps (\code{cmtcsc})}\textsc% +} + +\@namedef{TTFontNamelcmssT1}{European Computer Modern LaTeX Typewriter (\code{ecltt})} + +\@namedef{TTItFontNamelcmssT1}{European Computer Modern Italic Typewriter Text (\code{ecit})} + +\@namedef{TTFontslcmssT1}% +{% + {European Computer Modern LaTeX Typewriter (\code{ecltt})}\textnormal,% + {European Computer Modern Italic Typewriter Text (\code{ecit})}\textit,% + {European Computer Modern Slanted Typewriter Text (\code{ecst})}\textsl,% + {European Computer Modern Typewritr Caps and Small Caps (\code{ectc})}\textsc% +} + +\@namedef{TTFontNamecmrOT1}{Computer Modern Typewriter Text (\code{cmtt})} + +\@namedef{TTItFontNamecmrOT1}{Computer Modern Italic Typewriter Text (\code{cmitt})} + +\@namedef{TTFontscmrOT1}% +{% + {Computer Modern Typewriter Text (\code{cmtt})}\textnormal,% + {Computer Modern Italic Typewriter Text (\code{cmitt})}\textit,% + {Computer Modern Slanted Typewriter Text (\code{cmsltt})}\textsl,% + {Computer Modern Typewriter Caps and Small Caps (\code{cmtcsc})}\textsc% +} + +\@namedef{TTFontNamecmrT1}{European Computer Modern Typewriter (\code{ectt})} + +\@namedef{TTItFontNamecmrT1}{European Computer Modern Italic Typewriter Text (\code{ecit})} + +\@namedef{TTFontscmrT1}% +{% + {European Computer Modern Typewriter (\code{ectt})}\textnormal,% + {European Computer Modern Italic Typewriter Text (\code{ecit})}\textit,% + {European Computer Modern Slanted Typewriter Text (\code{ecst})}\textsl,% + {European Computer Modern Typewritr Caps and Small Caps (\code{ectc})}\textsc% +} + +\expandafter\let\csname TTFontscmssOT1\expandafter\endcsname\csname TTFontscmrOT1\endcsname + +\expandafter\let\csname TTFontscmssT1\expandafter\endcsname\csname TTFontscmrT1\endcsname + +\expandafter\let\csname TTFontNamecmssOT1\expandafter\endcsname\csname TTFontNamecmrOT1\endcsname + +\expandafter\let\csname TTFontNamecmssT1\expandafter\endcsname\csname TTFontNamecmrT1\endcsname + +\expandafter\let\csname TTItFontNamecmssOT1\expandafter\endcsname\csname TTItFontNamecmrOT1\endcsname + +\expandafter\let\csname TTItFontNamecmssT1\expandafter\endcsname\csname TTItFontNamecmrT1\endcsname + +\@namedef{TTFontNamecmbrOT1}{CM Typewriter Light (\code{cmtl})} + +\@namedef{TTItFontNamecmbrOT1}{CM Typewriter Light Slanted (\code{cmsltl})} + +\@namedef{TTFontscmbrOT1}% +{% + {CM Typewriter Light (\code{cmtl})}\textnormal,% + {CM Typewriter Light Slanted (\code{cmsltl})}\textsl% +} + +\@namedef{TTFontNamecmbrT1}{EC Typewriter Light (\code{ebtl})} + +\@namedef{TTItFontNamecmbrT1}{EC Typewriter Light oblique (\code{ebto})} + +\@namedef{TTFontscmbrT1}% +{% + {EC Typewriter Light (\code{ebtl})}\textnormal,% + {EC Typewriter Light oblique (\code{ebto})}\textsl% +} + +\expandafter\let\csname TTFontsccrOT1\expandafter\endcsname\csname TTFontscmrOT1\endcsname + +\expandafter\let\csname TTFontsccrT1\expandafter\endcsname\csname TTFontscmrT1\endcsname + +\expandafter\let\csname TTFontNameccrOT1\expandafter\endcsname\csname TTFontNamecmrOT1\endcsname + +\expandafter\let\csname TTFontNameccrT1\expandafter\endcsname\csname TTFontNamecmrT1\endcsname + +\expandafter\let\csname TTItFontNameccrOT1\expandafter\endcsname\csname TTItFontNamecmrOT1\endcsname + +\expandafter\let\csname TTItFontNameccrT1\expandafter\endcsname\csname TTItFontNamecmrT1\endcsname + +\@namedef{MathFontNamecmm}{Computer Modern Math} + +\@namedef{MathFontNameccm}{Concrete Math} + +\@namedef{MathFontNameeuler}{Euler} + +\@namedef{MathFontNamecmbrm}{Computer Modern Bright Math} + +\@namedef{MathLetterFontNamecmm}{Computer Modern Math Italic (\code{cmmi})} + +\@namedef{MathLetterFontNameccm}{Concrete Math Italic (\code{xccmi})} + +\@namedef{MathLetterFontNameeuler}{Euler Roman Medium (\code{eurm})} + +\@namedef{MathLetterFontNamecmbrm}{Computer Modern Bright Math Slanted (\code{cmbrmi})} + +\@namedef{MathSymbolFontNamecmm}{Computer Modern Math Symbols (\code{cmsy})} + +\@namedef{MathSymbolFontNameccm}{Concrete Math Symbols (\code{xccsy})} + +\@namedef{MathSymbolFontNameeuler}{Euler Script Medium (\code{eusm})} + +\@namedef{MathSymbolFontNamecmbrm}{Computer Modern Bright Math Symbols (\code{cmbrmi})} + +\@namedef{MathExtensionFontNamecmm}{Computer Modern Math Extension (\code{cmex})} + +\@namedef{MathExtensionFontNameccm}{Concrete Math Extension (\code{xccex})} + +\@namedef{MathExtensionFontNameeuler}{Euler Extension (\code{euex})} + +\expandafter\let\csname MathExtensionFontNamecmbrm\expandafter\endcsname\csname MathExtensionFontNamecmm\endcsname + +\newcommand{\listdescriptions}[1] +{% + \expandafter\expandafter\expandafter\@listdescriptions\expandafter\expandafter\expandafter + {\csname#1\endcsname}% +} + +\newcommand{\@listdescriptions}[1]{\@for\temp := #1 \do {\expandafter\mkdescription\temp}} + +\newcommand{\mkdescription}[2]{} + +\newcommand{\TextFontName}{\@nameuse{TextFontName\TPSFTextfont\encodingdefault}} + +\newcommand{\TextFontNameShort}{\@nameuse{TextFontNameShort\TPSFTextfont\encodingdefault}} + +\let\nameuse\@nameuse +\makeatother + +%----------------------------------------------------------------------------------------------------------------- +% +\makeslidetitle{\TeX Power Example: Package \code{tpslifonts}}\label{Sec:tpslifonts} + +This is the demonstration document for \code{tpslifonts}, \TeX Power's slide fonts configuration package. + +Beamer and overhead presentations are often viewed under peculiar circumstances. Especially for presentations which are +projected directly `out of the computer', low power of the beamer, low resolution and an abundance of colors can lead to +severe readability problems. + +It is therefore of utmost importance to optimize font selection as much as possible towards \emph{readability}. + +The package \code{tpslifonts} offers a couple of `harmonising' combinations of text and math fonts from the (distant) +relatives of \concept{computer modern} fonts, with a couple of extras for optimising readability. + +\newpage + +The package offers the following features: +\begin{enumerate} +\item Text fonts from \concept{computer modern roman}, \concept{computer modern sans serif}, \concept{Sli\TeX{} computer + modern sans serif}, \concept{computer modern bright}, or \concept{concrete roman}. +\item Math fonts from \concept{computer modern math}, \concept{computer modern bright math}, or \concept{Euler fonts}. +\item Support of additional symbol fonts like \concept{AMS symbols} or \concept{doublestroke}. +\item All fonts configured for `smooth scaling' (like in the \code{type1cm} package). +\item Avoiding fonts not freely available in \concept{Type 1} format. +\item Careful \concept{design size} selection for optimum readability. +\end{enumerate} + +\newpage + +In the following, the fonts configured by this package are listed, augmented by font samples and some larger examples +which hopefully allow to review the configuration parameters. + +Note that there are a couple of options and parameter settings in the preamble of \code{slifontsexample.tex} which allow +to try different configuration variants. + +This document has been typeset using \encodingdefault{} font encoding. + +\section{Text Fonts} + +Package \code{tpslifonts} has configured the following \concept{text fonts}: + +\renewcommand{\mkdescription}[2] +{% + + \medskip\pagebreak[3] + + \hrule + + #1:\\ #2{The quick brown fox jumps over the lazy dog.} + +}% +\listdescriptions{TextFonts\TPSFTextfont\encodingdefault} + +\medskip + +\hrule + +\medskip + +\section{Typewriter Fonts} + +\ifthenelse{\isundefined{\TPSFttscale}}{} +{% + \ifthenelse{\equal{\TPSFTextfont}{lcmss}} + {For harmonising better with \ifthenelse{\equal{\encodingdefault}{OT1}}{\code{lcmss}}{\code{eclq}}, t} + {T}% + ypewriter fonts are scaled up by a factor of $\TPSFttscale$. +}% + +Package \code{tpslifonts} has configured the following \concept{typewriter fonts}: + +\renewcommand{\mkdescription}[2] +{% + + \medskip\pagebreak[3] + + \hrule + + #1:\\ #2{\texttt{The quick brown fox jumps over the lazy dog.}} + +}% +\listdescriptions{TTFonts\TPSFTextfont\encodingdefault} + +\medskip + +\hrule + +\medskip + +\section{Math Fonts} + +\ifthenelse{\equal{\TPSFMathfont}{euler}} +{% + The main math fonts are derived from the \concept{\MathFontNameeuler} fonts. Operators% + \ifthenelse{\boolean{TPSFeulerdigits}}{}{ and digits} are taken from \TextFontName. +}% +{% + The main math fonts are derived from the \concept{\nameuse{MathFontName\TPSFMathfont}} fonts. + \ifthenelse{\boolean{TPSFtextops}}% + {Operators, digits, and upper case greek letters are taken from \TextFontName.} + {}% +} + +\ifthenelse{\isundefined{\TPSFmathscale}}{} +{% + \ifthenelse{\equal{\TPSFTextfont}{lcmss}} + {For harmonising better with \ifthenelse{\equal{\encodingdefault}{OT1}}{\code{lcmss}}{\code{eclq}}, m} + {M}% + ath fonts are scaled up by a factor of $\TPSFmathscale$. % + \ifthenelse{\equal{\TPSFMathfont}{euler}} {Euler fonts are scaled up by a factor of $\TPSFeulerscale$. } + {}% + \ifthenelse{\equal{\TPSFMathfont}{cmbrm}} + {The cmbright math fonts are scaled up by a factor of $\TPSFcmbrscale$. } + {}% +}% + +\medskip\pagebreak[3] + +\hrule\nopagebreak + +\ifthenelse{\equal{\TPSFMathfont}{euler}} +{% + Operators\ifthenelse{\boolean{TPSFeulerdigits}}{}{ and digits} are taken from \TextFontName:\\ + $\min \max \sup \lim \ifthenelse{\boolean{TPSFeulerdigits}}{}{1 2 3 4 5}$ + + \medskip + + \hrule + + Latin and greek letters\ifthenelse{\boolean{TPSFeulerdigits}}{, digits,}{} and some symbols are taken from (virtual) + Euler Roman (\code{zeur}):\\ + $abcd ABCD>/<\alpha \beta \gamma \delta\Phi \Pi \Gamma \Theta\ifthenelse{\boolean{TPSFeulerdigits}}{1 2 3 4 5}{}$ + + \medskip + + \begin{samepage} + \hrule\nopagebreak + + Symbols and calligraphic letters are taken from (virtual) Euler Script (\code{zeus}):\\ + $ \mathcal{ABC} -*+ = \div\equiv \leq \forall \cap \cup \nabla \neq$ + \par + \end{samepage} + + \medskip + + \hrule + + \parbox{\linewidth-\widthof{$\displaystyle\left(\sum^{\left\{\bigcup\limits^\bigoplus\right\}}_{\left[\prod\limits_\biguplus\right]}\right)$}-1ex} + {% + Large and growing symbols are taken from (virtual) Euler Extension (\code{zeuex}). + }\hfill + $\displaystyle\left(\sum^{\left\{\bigcup\limits^\bigoplus\right\}}_{\left[\prod\limits_\biguplus\right]}\right)$ +} +{% + Operators, digits, some symbols and upper case greek letters are taken from + \nameuse{TextFontName\TPSFOperatorfont OT1}% + :\\ + $\min \max \sup \lim 1 2 3 4 5 + = \Phi \Pi \Gamma \Theta$ + + \medskip + + \hrule + + Latin and lower case greek letters and some symbols are taken from \nameuse{MathLetterFontName\TPSFMathfont}% + :\\ + $abcd ABCD >/< \alpha \beta \gamma \delta$ + + \medskip + +\begin{samepage} + \hrule\nopagebreak + + Symbols and calligraphic letters are taken from \nameuse{MathSymbolFontName\TPSFMathfont}% + :\\ + $\mathcal{ABC} -*\div\equiv \leq \forall \cap \cup \nabla \neq$ + \par +\end{samepage} + +\medskip + +\begin{samepage} + \hrule\nopagebreak + +\parbox{\linewidth-\widthof{$\displaystyle\left(\sum^{\left\{\bigcup\limits^\bigoplus\right\}}_{\left[\prod\limits_\biguplus\right]}\right)$}-1ex} +{% + Large and growing symbols are taken from \nameuse{MathExtensionFontName\TPSFMathfont}. +}\hfill +$\displaystyle\left(\sum^{\left\{\bigcup\limits^\bigoplus\right\}}_{\left[\prod\limits_\biguplus\right]}\right)$ +\par +\end{samepage} +} + +\medskip + +\ifthenelse{\boolean{TPSFamsfonts}} +{% + \begin{samepage} + \hrule\nopagebreak + + \ifthenelse{\equal{\TPSFMathfont}{cmbrm}} + {% + Fraktur letters are taken from Euler Fraktur (\code{eufm}):\\ + $\mathfrak{abcdABCD}$ + \par + \end{samepage} + + \medskip + + \begin{samepage} + \hrule\nopagebreak + + Blackboard bold letters and a lot of additional math symbols are taken from the cmbright AMS math fonts + (\code{cmbras}, \code{cmbrbs}):\\ + $\mathbb{NZQR} \Cap \boxtimes \succapprox \subseteqq \nsubseteq \curvearrowright \complement \varnothing$ + } + {% + Fraktur letters, blackboard bold letters, and a lot of additional math symbols are taken from the AMS math fonts + (\code{msam}, \code{msbm}, \code{eufm}):\\ + $\mathfrak{abcdABCD}\mathbb{NZQR} \Cap \boxtimes \succapprox \subseteqq \nsubseteq \curvearrowright \complement + \varnothing$ + } + \par + \end{samepage} + + \medskip +}% +{} + +\ifthenelse{\boolean{TPSFlasy}\and\not\boolean{TPSFwasysym}} +{% + \begin{samepage} + \hrule\nopagebreak + + A couple of additional math symbols are taken from the \LaTeX{} symbol font (\code{lasy}):\\ + $\mho\Join\Box\leadsto\Diamond\sqsubset\sqsupset$ + \par + \end{samepage} + + \medskip +}% +{} + +\ifthenelse{\boolean{TPSFstmaryrd}} +{% + \begin{samepage} + \hrule\nopagebreak + + Additional math symbols are taken from St Mary's Road symbol font (\code{stmary}):\\ + $\boxast \merge \nplus \varolessthan \subsetpluseq \lightning$ + \par + \end{samepage} + + \medskip +}% +{} + +\ifthenelse{\boolean{TPSFwasysym}} +{% + \begin{samepage} + \hrule\nopagebreak + + Additional symbols are taken from Waldis symbol font (\code{wasy}):\\ + $\oiint$\space \permil\space \phone\space \diameter\space \smiley\space \venus\space \mars + \par + \end{samepage} + + \medskip +}% +{} + +\ifthenelse{\boolean{TPSFrsfs}} +{% + \begin{samepage} + \hrule\nopagebreak + + Upper case script letters are taken from Ralph Smith Formal Script (\code{rsfs}):\\ + $\mathscr{ABCDEFGHIJKLMNOPQRSTUVWXYZ}$ + \par + \end{samepage} + + \medskip +}% +{} + +\ifthenelse{\boolean{TPSFdstroke}} +{% + \begin{samepage} + \hrule\nopagebreak + + Double stroke letters are taken from Doublestroke Font + (\ifthenelse{\equal{\TPSFOperatorfont}{cmr}}{\code{dsrom}}{\code{dsss}}):\\ + $\mathds{ABCDEFGHIJKLMNOPQRSTUVWXYZ1hk}$ + \par + \end{samepage} + + \medskip +}% +{} + +\hrule + +\newpage +\subsection{Math Examples} +Next, some examples of math formulae so you can see how the fonts work together (translations from german done by me). + +\ifthenelse{\isundefined{\align}}{} +{% +\medskip + +\hrule + +\begin{minipage}{\linewidth} + \underl{From The Book.} + \begin{presentbox} + \setlength{\abovedisplayskip}{.3\abovedisplayskip}% + \textbf{(D)}\quad The functions $f$ and $g$ fulfil the same functional equation: + $f\left(\frac{x}{2}\right)+f\left(\frac{x+1}{2}\right)=2f(x)$ and + $g\left(\frac{x}{2}\right)+g\left(\frac{x+1}{2}\right)=2g(x)$. + + For $f(x)$, we obtain this from the addition formulas for the sine and cosine: + \begin{align*} + f\left(\textstyle\frac{x}{2}\right)+f\left(\textstyle\frac{x+1}{2}\right) + &=\pi + \left[\frac{\cos\frac{\pi x}{2}}{\sin\frac{\pi x}{2}}-\frac{\sin\frac{\pi x}{2}}{\cos\frac{\pi x}{2}}\right] + \\[1ex] + &=2\pi\frac{\cos\left(\frac{\pi x}{2}+\frac{\pi x}{2}\right)}{\sin\left(\frac{\pi x}{2}+\frac{\pi x}{2}\right)} + =2f(x)\text{.} + \end{align*} + + The functional equation for $g$ follows from + \begin{displaymath} + g_N\left(\textstyle\frac{x}{2}\right)+g_N\left(\textstyle\frac{x+1}{2}\right) + =2g_{2N}(x)+\frac{2}{x+2N+1}\text{.} + \end{displaymath} + \end{presentbox} +\end{minipage}% +} + +\ifthenelse{\boolean{TPSFdstroke}\and\not\isundefined{\align}} +{% +\newpage + +\begin{minipage}{\linewidth} + \underl{From an undergrad book on calculus.} + \begin{presentbox} + \begin{align*} + c_k&=\frac{1}{2\pi}\int_{0}^{2\pi} f(x) e^{-\mathrm{i}kx}\,\mathrm{d}x + =\frac{1}{2\pi}\sum_{j=1}^{r}\int_{t_{j-1}}^{t_j} f(x) e^{-\mathrm{i}kx}\,\mathrm{d}x\\ + &=\frac{-\mathrm{i}}{2\pi k}\int_{0}^{2\pi} \varphi(x) e^{-\mathrm{i}kx}\,\mathrm{d}x + =\frac{-\mathrm{i}\gamma_k}{k}\text{.} + \end{align*} + As for all $\alpha,\beta\in\mathds{C}$, + $\left|\alpha\beta\right|\leq\frac{1}{2}\left(\left|\alpha\right|^2+\left|\beta\right|^2\right)$, it holds that + \begin{displaymath} + \left|c_k\right|\leq\frac{1}{2}\left(\frac{1}{\left|k\right|^2}+\left|\gamma_k\right|^2\right)\text{.} + \end{displaymath} + From the convergence of $\sum\limits_{k=1}^{\infty}\frac{1}{k^2}$ and + $\sum\limits_{k=-\infty}^{\infty}\left|\gamma_k\right|^2$, it follows that + \begin{displaymath} + \sum_{k=-\infty}^{\infty}\left|c_k\right|<\infty\text{.} + \end{displaymath} + \end{presentbox} +\end{minipage}% +} +{} + +\ifthenelse{\isundefined{\align}\or\isundefined{\extrarowheight}}{} +{% +\newpage + +\begin{minipage}{\linewidth} + \underl{From an undergrad book on calculus (2nd volume).} + \begin{presentbox} + \small + By \name{Fubini}'s theorem, + \setcounter{equation}{8}% + \begin{equation} + \label{eq:GaussLemma1} + \int\limits_{Z_\varepsilon}\operatorname{div} F \,\mathrm{d}x + = \sum_{k=1}^{n}\, + \underbrace + {% + \int\limits_{Q'} + \left( + \int\limits^{h\left(x'\right)-\varepsilon}_{-\infty}\partial_kF_k\left(x',x_n\right)\,\mathrm{d}x_n + \right) + \,\mathrm{d}x' + }_{{}\mathrel{=:} I_k} + \text{.} + \end{equation} + Evaluation of $I_k$: Obviously, + \begin{displaymath} + I_n=\int\limits_{Q'}F_n\left(x',h(x'-\varepsilon)\right)\,\mathrm{d}x'\text{.} + \end{displaymath} + In the case $1\leq k \leq n-1$, we employ the identity + \begin{displaymath} + \partial_k + \left( + \int\limits^{h\left(x'\right)-\varepsilon}_{-\infty}\!\!\!\!\!\!F_k\left(x',x_n\right)\,\mathrm{d}x_n + \right) + = + \begin{array}[t]{@{}>{\displaystyle}l@{}} + \int\limits^{h\left(x'\right)-\varepsilon}_{-\infty} + \!\!\!\!\!\!\partial_kF_k\left(x',x_n\right)\,\mathrm{d}x_n\\ + {}+F_k\left(x',h(x'-\varepsilon)\right)\cdot\partial_k h\left(x'\right)\text{.} + \end{array} + \end{displaymath} + \end{presentbox} +\end{minipage}% +} + +\newpage + +\ifthenelse{\isundefined{\align}\or\isundefined{\CD}}{} +{% +\begin{minipage}{\linewidth} + \underl{From a book on functional analysis.} + \begin{presentbox} + \textbf{Definition 25}\quad Let $\mathcal{C}$ and $\mathcal{D}$ be categories and $\mathcal{F}, \mathcal{G}$ + functors from $\mathcal{C}$ into $\mathcal{D}$. A mapping + $\eta:\operatorname{Ob}\mathcal{C}\to\operatorname{Mor}\mathcal{D}$ is called a \concept{natural transformation + between $\mathcal{F}$ and $\mathcal{G}$} if + \begin{enumerate} + \item[(i)] $\forall + A\in\operatorname{Ob}\mathcal{C}: + \eta(A)\in\operatorname{Mor}_{\mathcal{D}}\left(\mathcal{F}(A),\mathcal{G}(A)\right)$ + \item[(ii)] $\forall A,B\in\operatorname{Ob}\mathcal{C}\;\forall f\in\operatorname{Mor}_{\mathcal{C}}(A,B):$ + \begin{align*} + \begin{CD} + \mathcal{F}(A)@>{\mathcal{F}(f)}>>\mathcal{F}(B)\\ + @V{\eta(A)}VV @VV{\eta(B)}V\\ + \mathcal{G}(A)@>>{\mathcal{G}(f)}>\mathcal{G}(B)\\ + \end{CD} + &&\text{or}&& + \begin{CD} + \mathcal{F}(A)@<{\mathcal{F}(f)}<<\mathcal{F}(B)\\ + @V{\eta(A)}VV @VV{\eta(B)}V\\ + \mathcal{G}(A)@<<{\mathcal{G}(f)}<\mathcal{G}(B)\\ + \end{CD} + \end{align*} + respectively, commute, if $\mathcal{F}, \mathcal{G}$ are covariant or contravariant, respectively. + \end{enumerate} + + This is denoted as $\eta:\mathcal{F}\to \mathcal{G}$. Such a natural transformation is called a \concept{natural + equivalence between $\mathcal{F}$ and $\mathcal{G}$} if $\eta(A)$ is an isomorphism for every + $A\in\operatorname{Ob}\mathcal{C}$. + \end{presentbox} +\end{minipage}% +} + +\ifthenelse{\boolean{TPSFamsfonts}\and\not\isundefined{\align}\and\not\isundefined{\MAT}} +{% +\newpage + +\begin{minipage}{\linewidth} + \underl{From an undergrad book on linear algebra.} + \begin{presentbox} + \textit{Step 2.}\quad Determine an eigenvector $v_2$ for an eigenvalue $\lambda_2$ of $F_2$ ($\lambda_2$ is also + an eigenvalue of $F_1$). Next, determine a $j_2\in\{1,\dots,n\}$ such that + \begin{displaymath} + \mathfrak{B}_3 := (v_1,v_2,w_1,\dots,\widehat{w_{j_1}},\dots,\widehat{w_{j_2}},\dots,w_n) + \end{displaymath} + is a base of $V$. + + Next, calculate + \vspace*{-\baselineskip} + \begin{displaymath} + M_{\mathfrak{B}_3}(F)= + \left( + \begin{MAT}(b){ccccccc} + \lambda_1&\cdot&\cdot&\cdot&\cdot&\cdot&\cdot\\ + 0&\lambda_2&\cdot&\cdot&\cdot&\cdot&\cdot\\ + \cdot&0&&&&&\\ + \cdot&\cdot&&&&&\\ + \cdot&\cdot&&&A_3&&\\ + \cdot&\cdot&&&&&\\ + 0&0&&&&& + \addpath{(2,0,0)rrrrruuuuulllllddddd}\\ + \end{MAT} + \right)\text{.} + \end{displaymath} + If $W_3:=\operatorname{Span}(w_1,\dots,\widehat{w_{j_1}},\dots,\widehat{w_{j_2}},\dots,w_n)$, then $A_3$ + determines a linear mapping $F_3:W_3\to W_3$. + \end{presentbox} +\end{minipage}% +} +{} + +\ifthenelse{\isundefined{\align}}{} +{% +\newpage + +\begin{minipage}{\linewidth} + \underl{From an undergrad book on linear algebra (2nd volume).} + \begin{presentbox} + \DeclareRobustCommand{\with}{\;\vline\;}% + \DeclareRobustCommand{\Set}[2]{\left\{#1\with#2\right\}}% + \setlength{\abovedisplayskip}{.5\abovedisplayskip}% + \setlength{\belowdisplayskip}{.5\belowdisplayskip}% + \textit{Remark.}\quad If $\left(Y_i\right)_{i\in I}$ is a family of affine subspaces $Y_i$ of an affine space $X$, + then + \begin{displaymath} + Y := \bigcup_{i\in I} Y_i\subset X + \end{displaymath} + is again an affine subspace. If $Y\neq\emptyset$, then + \begin{displaymath} + T(Y)=\bigcup_{i\in I} T\left(Y_i\right)\text{.} + \end{displaymath} + + \textit{Proof.}\quad For $Y=\emptyset$, nothing is to be proved. Otherwise, there is a fixed point $p_0\in Y$ such + that + \begin{align*} + T(Y)&=\Set{\overrightarrow{p_0q}\in T(X)}{q\in\bigcup_{i\in I} Y_i} \\ + &= \bigcup_{i\in I}\Set{\overrightarrow{p_0q}\in T(X)}{q\in Y_i}=\bigcup_{i\in I} T\left(Y_i\right)\text{.} + \end{align*} + From this, both claims follow. + \end{presentbox} +\end{minipage} +} + +\ifthenelse{\boolean{TPSFrsfs}\and\not\isundefined{\align}} +{% +\newpage + +\begin{minipage}{\linewidth} + \underl{From a book on measure theory.} + \begin{presentbox} + Analogously, the general \concept{associativity} of $\sigma$-Algebra products is shown, that is + \begin{equation} + \tag{23.12} + \left(\bigotimes_{i=1}^{m}\mathscr{A}_i\right)\otimes\left(\bigotimes_{i=m+1}^{n}\mathscr{A}_i\right) + =\bigotimes_{i=1}^{n}\mathscr{A}_i + \makebox[0pt][l]{\normalcolor\quad($1\leq m<n$).} + \qquad\qquad\qquad\quad + \end{equation} + Statement (23.11) allows to prove the existence of the product measure for all $n\geq 2$ by induction. + + \medskip + + \textbf{23.9 Theorem}\quad\textit{For $\sigma$-finite measures $\mu_1,\dots,\mu_n$ on + $\mathscr{A}_1,\dots,\mathscr{A}_n$, there exists exactly one measure $\pi$ on + $\mathscr{A}_1\otimes\dots\otimes\mathscr{A}_n$ such that + \begin{equation} + \tag{23.13} + \pi\left(A_1\times\dots\times A_n\right)=\mu_1(A_1)\cdot\dots\cdot\mu_n(A_n) + \end{equation} + for all $A_i\in\mathscr{A}_i$ ($i=1,\dots,n$). Here, $\pi$ is also $\sigma$-finite.} + \end{presentbox} +\end{minipage}% +} +{} + +\ifthenelse{\boolean{TPSFrsfs}\and\boolean{TPSFdstroke}\and\not\isundefined{\align}} +{% +\newpage + +\begin{minipage}{\linewidth} + \underl{From a book on probability theory.} + \begin{presentbox} + \textbf{17.3 Lemma}\quad\textit{If\/ $T$ takes values exclusively from $\mathds{N}$, then $X_T$ is an + $\mathscr{F}_T$-measurable random variable with values in $\left(\Omega',\mathscr{A}'\right)$. If only + $P\left\{T<+\infty\right\}=1$ holds, then up to $P$-almost certain equality there exists exactly one + $\mathscr{F}_T$-measurable random variable $X^*$ with values in $\left(\Omega',\mathscr{A}'\right)$ which + fulfils the condition + \begin{equation} + \tag{17.7} + X^*(\omega)=X_{T(\omega)}(\omega) + \makebox[0pt][l]{\normalcolor\quad for all $\omega\in\{T<\infty\}$.} + \qquad\qquad + \end{equation} + }% + + \smallskip + + \textit{Proof.}\quad It suffices to treat the second case and provide an $\mathscr{F}_T$-measurable random + variable fulfilling the given condition. To this end, choose an arbitrary $\omega'\in\Omega'$. We set + \begin{displaymath} + X^*(\omega) := + \begin{cases} + X_{T(\omega)}(\omega),&\omega\in\{T<\infty\}\text{,}\\ + \omega',&\omega\in\{T=\infty\}\text{.} + \end{cases} + \end{displaymath} + For every $A'\in\mathscr{A}'$, it is to be proved that $A := \left\{X^*\in A'\right\}$ is an element of + $\mathscr{F}_T$. + \end{presentbox} +\end{minipage}% +} +{} + +\ifthenelse{\isundefined{\align}\or\isundefined{\extrarowheight}}{} +{% +\newpage + +\begin{minipage}{\linewidth} + \underl{From my MSc Thesis.} + \begin{presentbox} + \newcommand{\PV}{\operatorname{PV}}% + If we expand equations (4.102) and (4.103), we get + \begin{align*} + \lefteqn{\left(\sum_{q\in\PV}\max\left(M(q),M(\neg q)\right)\right)-\delta}\quad&\\[1ex] + &= + \begin{array}[t]{@{}>{\displaystyle}l@{}} + \sum_{\substack{q\in\PV\\q\neq p}} + \max + \left( + \begin{array}{@{}l@{}} + \frac{m}{M_{{>}s}'\left(\neg p\right)}\cdot M_{{>}s}'(q) + +\frac{m}{M_{s}'\left(p\right)}\cdot M_{s}'(q),\\[2ex] + \frac{m}{M_{{>}s}'\left(\neg p\right)}\cdot M_{{>}s}'(\neg q) + +\frac{m}{M_{s}'\left(p\right)}\cdot M_{s}'(\neg q) + \end{array} + \right)\\[6ex] + {}-\frac{m}{M_{{>}s}'\left(\neg p\right)}\cdot\delta_{{>}s}' + -\frac{m}{M_{s}'\left(p\right)}\cdot\delta_{s}'\\[3ex] + {}-\left(\frac{m}{M_{{>}s}'\left(\neg p\right)}-1\right)\cdot r_1 + -\left(\frac{m}{M_{s}'\left(p\right)}-1\right)\cdot r_2\\[3ex] + {}-\max(r_1,r_2)+m + \end{array} + \end{align*} + \end{presentbox} +\end{minipage}% +} + +\ifthenelse{\boolean{TPSFamsfonts}\and\not\isundefined{\align}} +{% +\newpage + +\begin{minipage}{\linewidth} + \underl{From my PhD Thesis.} + \begin{presentbox} + \DeclareRobustCommand{\Lcap}{\ensuremath{\sqcap}} + \DeclareRobustCommand{\FPcapIcup}{\ensuremath{\uplus}} + \DeclareRobustCommand{\pFl}[1]{\ensuremath{\overline{#1}}} + \DeclareRobustCommand{\Lprimecup}{\ensuremath{\curlyvee}} + \def\FpFl(#1,#2)% + {% + \ensuremath{\mathord + {% + \mathchoice + {\sideset{^{#1}}{^{\,}}{\mathop{\displaystyle\pFl{#2}}}}% + {\sideset{^{#1}}{^{\,}}{\mathop{\pFl{#2}}}}% + {\sideset{^{\scriptscriptstyle#1}}{^{\,}}{\mathop{\scriptstyle\pFl{#2}}}}% + {\sideset{^{\scriptscriptstyle#1}}{^{\,}}{\mathop{\scriptscriptstyle\pFl{#2}}}}% + }}% + } + \DeclareRobustCommand{\Lprimesub}{\ensuremath{\preccurlyeq}} + \DeclareRobustCommand{\Lsub}{\ensuremath{\sqsubseteq}} + \DeclareRobustCommand{\FIsub}{\ensuremath{\subseteqq}} + By Lemma 2.2.7, + \begin{displaymath} + \FpFl(d,a)\FPcapIcup\FpFl(d',b) + =\FpFl({\left(d\Lprimecup \delta\left(\FpFl(d',b)\right)\right)},{a\Lcap \alpha\left(\FpFl(d',b)\right)}). + \end{displaymath} + Furthermore, + \begin{align*} + d&\Lprimesub d\Lprimecup \delta\left(\FpFl(d',b)\right),\\ + a\Lcap \alpha\left(\FpFl(d',b)\right)&\Lsub a. + \end{align*} + From this, + \begin{displaymath} + \FpFl(d,a)\FIsub\FpFl(d,a)\FPcapIcup\FpFl(d',b) + \end{displaymath} + follows by (2.3). + \end{presentbox} +\end{minipage}% +} +{} + +\newcounter{char}% +\newcounter{symcnt}% +\makeatletter +\newcommand{\charlist}[4] +{% + \begingroup + \setcounter{char}{#1} + \whiledo{\value{char}<#2} + {% + \medskip + \hrule + \hbox{\@for\charht := #3\do{\fontsize{\charht}{\charht}\selectfont#4}}% + \stepcounter{char}% + \hrule + }% + \endgroup +}% +\newcommand{\mksymline}[2] +{% + \begingroup + \medskip + \hrule + \hbox + {% + \@for\charht := #2\do + {% + \fontsize{\charht}{\charht}\selectfont + \setcounter{symcnt}{0}% + $% + \@for\thesymbol := #1\do + {% + \ifcase\value{symcnt}% + \ifthenelse{\equal{\TPSFMathfont}{euler}}{{\thesymbol}}{}% + \or\ifthenelse{\equal{\TPSFMathfont}{euler}}{\,\vrule\,{\thesymbol}}{}% + \or\ifthenelse{\equal{\TPSFMathfont}{euler}}{}{{\thesymbol}}% + \or\ifthenelse{\equal{\TPSFMathfont}{euler}}{}{\,\vrule\,{\thesymbol}}% + \or\ifthenelse{\equal{\TPSFMathfont}{euler}}{}{\,\vrule\,{\thesymbol}}% + \or\ifthenelse{\boolean{TPSFamsfonts}}{\,\vrule\,{\thesymbol}}{}% + \or\ifthenelse{\boolean{TPSFlasy}\and\not\boolean{TPSFwasysym}}{\,\vrule\,{\thesymbol}}{}% + \or\ifthenelse{\boolean{TPSFstmaryrd}}{\,\vrule\,{\thesymbol}}{}% + \or\ifthenelse{\boolean{TPSFwasysym}}{\,\vrule\,{\thesymbol}}{}% + \fi + \stepcounter{symcnt}% + }% + \;\vrule width1ex\;% + $% + }% + }% + \hrule + \endgroup +}% +\makeatother + +\ifthenelse{\equal{\TPSFTextfont}{lcmss}} +{% +\newpage + +\section{Comparison of Characters} +As mentioned before, \code{tpslifonts} does a little scaling and fiddling with design sizes to make the fonts harmonize +as much as possible. + +The following scaling factors are used in this document: +\begin{center} + \begin{tabular}{lll} + Name&Purpose&Value\\\hline + \macroname{TPSFttscale}&Typewriter fonts&\TPSFttscale\\\hline + \macroname{TPSFmathscale}&Math fonts related to cm math&\TPSFmathscale\\\hline + \macroname{TPSFeulerscale}&Euler math fonts&\TPSFeulerscale\\\hline + \macroname{TPSFcmbrscale}&Cmbright math fonts&\TPSFcmbrscale\\\hline + \end{tabular} +\end{center} + +Unfortunately, the base font \TextFontName{} is quite excentric wrt the height ratio of upper case and lower case +letters; compare \TextFontNameShort{} \present{a\,A} with \nameuse{TextFontNameShortcmss\encodingdefault} +\present{\fontfamily{cmss}\selectfont a\,A}. + +For this reason, no amount of scaling can make \TextFontNameShort{} harmonise completely with `normal' fonts. + +In this section, you will see lists of similar characters from different fonts, arranged such that you can check how +good the sizes match. You then have to set your priorities and decide the respective scaling factors accordingly. See +the comments in the preamble of \code{slifontsexample.tex} for instructions on how to experiment with scaling. + +To account for different design sizes, the character samples are shown in several sizes. + +\subsection{Digits} + +Digits from \TextFontName, \nameuse{TTFontName\TPSFTextfont\encodingdefault}% +\ifthenelse{\boolean{TPSFeulerdigits}}{, Euler Roman (\code{zeur})}{}% +\ifthenelse{\equal{\TPSFOperatorfont}{\TPSFTextfont}}{}{, \nameuse{TextFontName\TPSFOperatorfont OT1}}, +\nameuse{TextItFontName\TPSFTextfont\encodingdefault}, and \nameuse{TTItFontName\TPSFTextfont\encodingdefault} are +listed in sizes 5pt, 6pt, 7pt, 8pt, 9pt, 10pt, 11pt, and 17pt. + +\charlist{48}{58}{5,6,7,8,9,10,11,17} +{% + \char\value{char}\texttt{\char\value{char}}% + \ifthenelse + {% + \boolean{TPSFeulerdigits}\OR\not\equal{\TPSFOperatorfont}{\TPSFTextfont}% + }% + {$\char\value{char}$}{}% + \,\textit{\char\value{char}}\textit{\texttt{\char\value{char}}} +} + +\subsection{Upper Case Letters} + +Upper Case Letters from \TextFontName, \nameuse{TTFontName\TPSFTextfont\encodingdefault}% +\ifthenelse{\equal{\TPSFMathfont}{euler}}{, Euler Roman (\code{zeur})}{}% +\ifthenelse{\equal{\TPSFOperatorfont}{\TPSFTextfont}}{}{, \nameuse{TextFontName\TPSFOperatorfont OT1}}% +\ifthenelse{\equal{\TPSFMathfont}{euler}}{, Euler Script (\code{zeus}; for calligraphic letters)}{}% +\ifthenelse{\boolean{TPSFamsfonts}} +{% + , Euler Fraktur (\code{eufm})% + , \ifthenelse{\equal{\TPSFMathfont}{cmbrm}}{cmbright AMS math (\code{cmbrbs}}{AMS math (\code{msbm}}% + ; for blackboard bold)% +}{}% +\ifthenelse{\boolean{TPSFdstroke}} +{, Doublestroke Font (\ifthenelse{\equal{cmr}{\TPSFTextfont}}{\code{dsrom}}{\code{dsss}})}{}% +, \nameuse{TextItFontName\TPSFTextfont\encodingdefault}, \nameuse{TTItFontName\TPSFTextfont\encodingdefault}% +\ifthenelse{\equal{\TPSFMathfont}{euler}}{}{, \nameuse{MathLetterFontName\TPSFMathfont}}% +\ifthenelse{\equal{\TPSFMathfont}{euler}}{}{, \nameuse{MathSymbolFontName\TPSFMathfont} for calligraphic letters}% +\ifthenelse{\boolean{TPSFrsfs}}{, Ralph Smith Formal Script (\code{rsfs})}{} +are listed in sizes 5pt, 7pt, and 10pt. + +\charlist{65}{91}{5,6,7,10} +{% + \char\value{char}\texttt{\char\value{char}}% + \ifthenelse{\equal{\TPSFMathfont}{euler}}{$\char\value{char}$}{}% + \ifthenelse{\equal{\TPSFOperatorfont}{\TPSFTextfont}}{} + {$\operatorname{\char\value{char}}$}% + \ifthenelse{\equal{\TPSFMathfont}{euler}}{$\mathcal{\char\value{char}}$}{}% + \ifthenelse{\boolean{TPSFamsfonts}}{$\mathfrak{\char\value{char}}\mathbb{\char\value{char}}$}{}% + \ifthenelse{\boolean{TPSFdstroke}}{$\mathds{\char\value{char}}$}{}% + \,\textit{\char\value{char}}\textit{\texttt{\char\value{char}}}% + \ifthenelse{\equal{\TPSFMathfont}{euler}}{}{$\char\value{char}$}% + \ifthenelse{\equal{\TPSFMathfont}{euler}}{}{$\mathcal{\char\value{char}}$}% + \ifthenelse{\boolean{TPSFrsfs}}{$\mathscr{\char\value{char}}$}{}% + ~ +} + +\subsection{Lower Case Letters} + +Lower Case Letters from \TextFontName, \nameuse{TTFontName\TPSFTextfont\encodingdefault}% +\ifthenelse{\equal{\TPSFMathfont}{euler}}{, Euler Roman (\code{zeur})}{}% +\ifthenelse{\equal{\TPSFOperatorfont}{\TPSFTextfont}}{}{, \nameuse{TextFontName\TPSFOperatorfont OT1}}% +\ifthenelse{\boolean{TPSFamsfonts}}{, Euler Fraktur (\code{eufm})}{}% +, \nameuse{TextItFontName\TPSFTextfont\encodingdefault}, \nameuse{TTItFontName\TPSFTextfont\encodingdefault}% +\ifthenelse{\equal{\TPSFMathfont}{euler}}{}{, \nameuse{MathLetterFontName\TPSFMathfont}} +are listed in sizes 5pt, 7pt, 10pt, 12pt, and 14pt. + +\charlist{97}{123}{5,7,10,12,14} +{% + \char\value{char}\texttt{\char\value{char}}% + \ifthenelse{\equal{\TPSFMathfont}{euler}}{$\char\value{char}$}{}% + \ifthenelse{\equal{\TPSFOperatorfont}{\TPSFTextfont}}{} + {$\operatorname{\char\value{char}}$}% + \ifthenelse{\boolean{TPSFamsfonts}}{$\mathfrak{\char\value{char}}$}{}% + \,\textit{\char\value{char}}\textit{\texttt{\char\value{char}}}% + \ifthenelse{\equal{\TPSFMathfont}{euler}}{}{$\char\value{char}$}% + ~ +} + +\newpage + +\subsection{Math Symbols} + +The different math fonts define symbols of similar shape, which should look equally large. Symbols from +\ifthenelse{\equal{\TPSFMathfont}{euler}} +{Euler Roman (\code{zeur}), Euler Symbol (\code{zeus})} +{% + \nameuse{TextFontName\TPSFOperatorfont OT1}, \nameuse{MathLetterFontName\TPSFMathfont}, + \nameuse{MathSymbolFontName\TPSFMathfont}% +}% +\ifthenelse{\boolean{TPSFamsfonts}}{, \ifthenelse{\equal{\TPSFMathfont}{cmbrm}}{cmbright }{}AMS math fonts}{}% +\ifthenelse{\boolean{TPSFlasy}\and\not\boolean{TPSFwasysym}}{, \LaTeX{} symbol font (\code{lasy})}{}% +\ifthenelse{\boolean{TPSFstmaryrd}}{, St Mary's Road symbol font (\code{stmary})}{}% +\ifthenelse{\boolean{TPSFwasysym}}{, Waldis symbol font (\code{wasy})}{} +are listed in sizes 5pt, 7pt, 10pt, and 12pt. + +To make clear which characters stem from which font, they are separated by vertical bars. + +\mksymline{\star,+,+,\star,\times,\divideontimes,,\moo,}{5,7,10,12} + +\mksymline{,\cup,,,\cup,\Cup,,\nplus,}{5,7,10,12} + +\mksymline{,\oplus,,,\oplus,\circledast,,\olessthan,\ocircle}{5,7,10,12} + +\mksymline{,\vdash,,,\vdash,\Vdash,,,}{5,7,10,12} + +\mksymline{,=,=,,\equiv,\doteqdot,,,}{5,7,10,12} + +\mksymline{<,\leq,,<,\leq,\leqslant,\sqsubset,\trianglelefteqslant,\apprle}{5,7,10,12} + +\mksymline{\leftharpoondown,\leftarrow,,\leftharpoondown,\leftarrow,\twoheadleftarrow,\leadsto,\leftarrowtriangle,\leadsto}{5,7,10,12} +} +{} + +\end{slide} +\end{document} diff --git a/macros/latex/contrib/texpower/tpslifonts/tpslifonts.dtx b/macros/latex/contrib/texpower/tpslifonts/tpslifonts.dtx new file mode 100644 index 0000000000..a549c2dcc4 --- /dev/null +++ b/macros/latex/contrib/texpower/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 diff --git a/macros/latex/contrib/texpower/tpslifonts/tpslifonts.ins b/macros/latex/contrib/texpower/tpslifonts/tpslifonts.ins new file mode 100644 index 0000000000..8d73c1c2cf --- /dev/null +++ b/macros/latex/contrib/texpower/tpslifonts/tpslifonts.ins @@ -0,0 +1,64 @@ +%% +%% -------------------------------------------------------------- +%% 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.ins,v 1.2 2004/07/27 11:33:07 hansfn Exp +%% +%% --------------- start of docstrip commands ------------------ +%% + +\input docstrip + +\preamble + +-------------------------------------------------------------- +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. +-------------------------------------------------------------- + +\endpreamble + +\keepsilent +\usedir{tex/latex/texpower/tpslifonts} +\askonceonly + +\generate{% + \file{tpslifonts.sty}{\from{tpslifonts.dtx}{tpslifonts}} +} + +\ifToplevel{ +\Msg{***********************************************************} +\Msg{*} +\Msg{* To finish the installation you have to move the following} +\Msg{* files into a directory searched by TeX:} +\Msg{*} +\Msg{* \space\space tpslifonts.sty} +\Msg{*} +\Msg{* Happy TeXing} +\Msg{***********************************************************} +} + +\endbatchfile + |