% $Id: __TPslifonts.tex,v 1.4 2002/11/14 20:46:00 hansfn Exp $
%  
% TeXPower bundle - dynamic online presentations with LaTeX
% Copyright (C) 1999-2002 Stephan Lehmke
% 
% This program is free software; you can redistribute it and/or
% modify it under the terms of the GNU General Public License
% as published by the Free Software Foundation; either version 2
% of the License, or (at your option) any later version.
% 
% This program is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
% GNU General Public License for more details.
%
%-----------------------------------------------------------------------------------------------------------------
% File: __TPslifonts.tex
%
% Code for the slifonts example for the package texpower.sty.
% 
% This file is input by others. Don't compile it separately.
%
%-----------------------------------------------------------------------------------------------------------------
% 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.4 May 28, 2003: Adapted to tpslifonts v0.6.
%

\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 ate 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}
}
{}

%%% Local Variables: 
%%% mode: latex
%%% fill-column: 120
%%% TeX-master: "slifontsexample"
%%% End: 
