%-----------------------------------------------------------------------------------------------------------------
% 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}
