Current File : //usr/share/texlive/texmf-dist/tex/latex/base/tracefnt.sty |
%%
%% This is file `tracefnt.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% ltfsstrc.dtx (with options: `package,trace')
%%
%% This is a generated file.
%%
%% The source is maintained by the LaTeX Project team and bug
%% reports for it can be opened at https://latex-project.org/bugs.html
%% (but please observe conditions on bug reports sent to that address!)
%%
%%
%% Copyright (C) 1993-2020
%% The LaTeX3 Project and any individual authors listed elsewhere
%% in this file.
%%
%% This file was generated from file(s) of the LaTeX base system.
%% --------------------------------------------------------------
%%
%% It may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3c
%% of this license or (at your option) any later version.
%% The latest version of this license is in
%% https://www.latex-project.org/lppl.txt
%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2008 or later.
%%
%% This file has the LPPL maintenance status "maintained".
%%
%% This file may only be distributed together with a copy of the LaTeX
%% base system. You may however distribute the LaTeX base system without
%% such generated files.
%%
%% The list of all files belonging to the LaTeX base distribution is
%% given in the file `manifest.txt'. See also `legal.txt' for additional
%% information.
%%
%% The list of derived (unpacked) files belonging to the distribution
%% and covered by LPPL is defined by the unpacking scripts (with
%% extension .ins) which are part of the distribution.
%%% From File: ltfsstrc.dtx
%% Copyright (C) 1989-97 by Frank Mittelbach and Rainer Sch\"opf.
%% Copyright (C) 1994-97 by LaTeX3 project. All rights reserved.
\NeedsTeXFormat{LaTeX2e}[1995/05/16]
\ProvidesPackage{tracefnt}
[2019/10/11 v3.0l Standard LaTeX package (font tracing)]
\newcount\tracingfonts
\tracingfonts=0
\DeclareOption{errorshow}{%
\def\@font@info#1{%
\GenericInfo{(Font)\@spaces\@spaces\@spaces\space\space}%
{LaTeX Font Info: \space\space\space#1}}%
\def\@font@warning#1{%
\GenericInfo{(Font)\@spaces\@spaces\@spaces\space\space}%
{LaTeX Font Warning: #1}}%
}
\DeclareOption{warningshow}{%
\def\@font@info#1{%
\GenericInfo{(Font)\@spaces\@spaces\@spaces\space\space}%
{LaTeX Font Info: \space\space\space#1}}%
\def\@font@warning#1{%
\GenericWarning{(Font)\@spaces\@spaces\@spaces\space\space}%
{LaTeX Font Warning: #1}}%
}
\DeclareOption{infoshow}{%
\def\@font@info#1{%
\GenericWarning{(Font)\@spaces\@spaces\@spaces\space\space}%
{LaTeX Font Info: \space\space\space#1}}%
\def\@font@warning#1{%
\GenericWarning{(Font)\@spaces\@spaces\@spaces\space\space}%
{LaTeX Font Warning: #1}}%
}
\DeclareOption{loading}{%
\tracingfonts\tw@
}
\DeclareOption{debugshow}{%
\ExecuteOptions{infoshow}%
\tracingfonts\thr@@
}
\DeclareOption{pausing}{%
\def\@font@warning#1{%
\GenericError
{(Font)\@spaces\@spaces\@spaces\space\space}%
{LaTeX Font Warning: #1}%
{See the LaTeX Companion for details.}%
{I'll stop for every LaTeX Font Warning because
you requested\MessageBreak the `pausing' option
to the tracefnt package.}}%
}
\ExecuteOptions{infoshow}
\ProcessOptions
\def\extract@font{%
\get@external@font
\global\expandafter\font\font@name\external@font\relax
\ifnum \tracingfonts >\@ne
\@font@info{External font `\external@font'
loaded as\MessageBreak \font@name}\fi
\font@name \relax
\csname \f@encoding+\f@family\endcsname
\csname\curr@fontshape\endcsname
\relax
}
\DeclareRobustCommand\selectfont
{%
\ifx\f@linespread\baselinestretch \else
\set@fontsize\baselinestretch\f@size\f@baselineskip \fi
\xdef\font@name{%
\csname\curr@fontshape/\f@size\endcsname}%
\pickup@font
\font@name
\ifnum \tracingfonts>\tw@
\@font@info{Switching to \font@name}\fi
\size@update
\enc@update
}
\def\set@fontsize#1#2#3{%
\@defaultunits\@tempdimb#2pt\relax\@nnil
\edef\f@size{\strip@pt\@tempdimb}%
\@defaultunits\@tempskipa#3pt\relax\@nnil
\edef\f@baselineskip{\the\@tempskipa}%
\edef\f@linespread{#1}%
\let\baselinestretch\f@linespread
\def\size@update{%
\baselineskip\f@baselineskip\relax
\baselineskip\f@linespread\baselineskip
\normalbaselineskip\baselineskip
\setbox\strutbox\hbox{%
\vrule\@height.7\baselineskip
\@depth.3\baselineskip
\@width\z@}%
\ifnum \tracingfonts>\tw@
\ifx\f@linespread\@empty
\let\reserved@a\@empty
\else
\def\reserved@a{\f@linespread x}%
\fi
\@font@info{Changing size to \f@size/\reserved@a
\f@baselineskip}%
\aftergroup\type@restoreinfo \fi
\let\size@update\relax}%
}
\let\size@update\relax
\def\type@restoreinfo{%
\ifx\f@linespread\@empty
\let\reserved@a\@empty
\else
\def\reserved@a{\f@linespread x}%
\fi
\@font@info{Restoring size to
\f@size/\reserved@a\f@baselineskip}}
\def\glb@settings{%
\expandafter\ifx\csname S@\f@size\endcsname\relax
\calculate@math@sizes
\fi
\csname S@\f@size\endcsname
\ifmath@fonts
\ifnum \tracingfonts>\tw@
\@font@info{Setting up math fonts for
\f@size/\f@baselineskip}\fi
\begingroup
\escapechar\m@ne
\csname mv@\math@version \endcsname
\globaldefs\@ne
\math@fonts
\let \glb@currsize \f@size
\endgroup
\the\every@math@size
\else
\ifnum \tracingfonts>\tw@
\@font@info{No math setup for
\f@size/\f@baselineskip}\fi
\fi
}
\def\check@mathfonts{%
\ifx \glb@currsize \f@size
\ifnum \tracingfonts>\thr@@
\@font@info{*** MATH: no change \f@size\space
curr/global (\curr@math@size/\glb@currsize)}\fi
\else
\ifnum \tracingfonts>\thr@@
\@font@info{*** MATH: setting up \f@size\space
curr/global (\curr@math@size/\glb@currsize)}\fi
\glb@settings
\init@restore@glb@settings
\fi
\let\curr@math@size\f@size
\def\init@restore@glb@settings{\aftergroup\restglb@settings}%
}
\def\init@restore@glb@settings{%
\ifnum \tracingfonts>\thr@@
\@font@info{*** MATH: no resetting (not in
nested math)}\fi
}
\def\restglb@settings{%
\ifnum \tracingfonts>\thr@@
\@font@info{*** MATH: restoring}\fi
\begingroup
\let\f@size\curr@math@size
\ifx\glb@currsize \f@size
\ifnum \tracingfonts>\thr@@
\@font@info{*** MATH: ... already okay (\f@size)}\fi
\else
\ifnum \tracingfonts>\thr@@
\@font@info{*** MATH: ... to \f@size}\fi
\glb@settings
\fi
\endgroup
}
\def\use@mathgroup#1#2{\relax\ifmmode
\ifnum \tracingfonts>\tw@
\count@#2\relax
\@font@info{Using \noexpand\mathgroup
(\the\count@) #2}\fi
\math@bgroup
\expandafter\ifx\csname M@\f@encoding\endcsname#1\else
#1\fi
\mathgroup#2\relax
\expandafter\math@egroup\fi}%
\ifx\math@bgroup\bgroup
\def\math@egroup#1{#1\egroup
\ifnum \tracingfonts>\tw@
\@font@info{Restoring \noexpand\mathgroup
(\ifnum\mathgroup=\m@ne default\else \the\mathgroup \fi)%
}\fi}
\fi
\def\getanddefine@fonts#1#2{%
\ifnum \tracingfonts>\tw@
\count@#1\relax
\@font@info{\noexpand\mathgroup (\the\count@) #1 :=\MessageBreak
\string#2 \tf@size/\sf@size/\ssf@size}\fi
\xdef\font@name{\csname \string#2/\tf@size\endcsname}%
\pickup@font \let\textfont@name\font@name
\xdef\font@name{\csname \string#2/\sf@size\endcsname}%
\pickup@font \let\scriptfont@name\font@name
\xdef\font@name{\csname \string#2/\ssf@size\endcsname}%
\pickup@font
\edef\math@fonts{\math@fonts
\textfont#1\textfont@name
\scriptfont#1\scriptfont@name
\scriptscriptfont#1\font@name}%
}
\def\execute@size@function#1{%
\@ifundefined{s@fct@#1}%
{\errmessage{Undefined font size function #1}%
\s@fct@}%
{\csname s@fct@#1\endcsname}%
}
\def\fontsubfuzz{0pt}
\endinput
%%
%% End of file `tracefnt.sty'.