Use new l3buld call() function to propogate options
[latex2e.git] / latex2e-20160201 / base / exscale.dtx
blob91abcb7e904015a785bc0fc326a394aa3313799f
1 % \iffalse meta-comment
3 % Copyright 1993-2016
4 % The LaTeX3 Project and any individual authors listed elsewhere
5 % in this file.
7 % This file is part of the LaTeX base system.
8 % -------------------------------------------
10 % It may be distributed and/or modified under the
11 % conditions of the LaTeX Project Public License, either version 1.3c
12 % of this license or (at your option) any later version.
13 % The latest version of this license is in
14 %    http://www.latex-project.org/lppl.txt
15 % and version 1.3c or later is part of all distributions of LaTeX
16 % version 2005/12/01 or later.
18 % This file has the LPPL maintenance status "maintained".
20 % The list of all files belonging to the LaTeX base distribution is
21 % given in the file `manifest.txt'. See also `legal.txt' for additional
22 % information.
24 % The list of derived (unpacked) files belonging to the distribution
25 % and covered by LPPL is defined by the unpacking scripts (with
26 % extension .ins) which are part of the distribution.
28 % \fi
29 % \iffalse
30 %%% File: exscale.dtx
31 %% Copyright (C) 1992-1997,2007 Frank Mittelbach and Rainer Sch\"opf,
32 %% all rights reserved.
33 %<package>\NeedsTeXFormat{LaTeX2e}
34 %<package>\ProvidesPackage{exscale}
35 %<fd,    >\ProvidesFile{OMXcmex.fd}
36 %<package,fd>     [2014/09/29 v2.1h
37 %<package>                         Standard LaTeX package exscale]
38 %<fd,    >                         exscale package font definitions]
39 %<*driver>
40 \documentclass{ltxdoc}
41 \usepackage{exscale}
42 \GetFileInfo{exscale.sty}
43 \begin{document}
44 \title{The \texttt{exscale} package\thanks
45        {This file has version number \fileversion, dated \filedate.}\\
46       for use with \LaTeX2e}
47 \author{Frank Mittelbach \and Rainer Sch\"opf}
48 \date{\filedate}
49 \MaintainedByLaTeXTeam{latex}
50  \maketitle
51  \DocInput{exscale.dtx}
52 \end{document}
53 %</driver>
54 % \fi
56 % \CheckSum{41}
58 % \changes{v2.1g}{1997/06/16}{Documentation fix.}
59 % \changes{v2.1d}{1994/05/09}{Added setting \cs{big}... sizes.}
60 % \changes{v2.1c}{1994/05/08}{Changed to new documentation standards.}
61 % \changes{v2.1a}{1993/12/12}{Update for \LaTeXe}
63 % \def\MF{\textsf{Metafont}}
64 % \def\dst{{\normalfont\scshape docstrip}}
67 % \section{Introduction}
69 % On popular request, this package implements scaling of the
70 % math extension font `cmex'. If this package is used the site needs
71 % scaled versions of the \texttt{cmex10} in the sizes 10.95pt, 12pt,
72 % 14.4pt , 17.28pt, 20.74pt, and 24.88pt which corresponds to standard
73 % magsteps using |\magstephalf|, and |\magstep1| through |\magstep5|.
74 % Additionally `cmex' variants for the sizes 7pt to 9pt are necessary.
75 % These fonts are part of the AMS font package and can be found on
76 % many servers.
78 % We don't think that using a scalable `cmex' font improves the
79 % appearance of the document very much because the linear scaling of
80 % the font introduces changes to font dimen parameters of the font
81 % that are used all over the place in \TeX's math placement routines
82 % and definitely shouldn't be scaled linearly.  As a positive result,
83 % however, symbols from this font will come out in approximately the
84 % right size when used with a large basis font size.
86 % We therefore strongly recommend the generation of designed fonts for
87 % the larger sizes and hope that the corresponding \MF{} sources will
88 % be available in the near future.
91 % \section{Usage}
93 % This file can be used either as a package by placing its name
94 % in the argument of
95 % |\usepackage|, or by generating from it a |.fd| file which then
96 % replaces the normally used |.fd| file |OMXcmex.fd|.
98 % For the second solution you should prepare a small \dst{} command
99 % file containing the following statements:
100 % \begin{quote}
101 %   |\def\batchfile{|\meta{name-of-your-command-file}|}|  \\
102 %   |\input docstrip.tex|                         \\
103 %   |\generateFile{OMXcmex.fd}{t}{\from{exscale.dtx}{fd}}|
104 % \end{quote}
105 % and then run this file through \LaTeX.
106 % This would mean however, that your documents may look different if
107 % they are printed on another installation whereas when using the
108 % package file they would come out the same on both sites.
110 % \StopEventually{}
113 % \section{Implementation}
116 %    In case this should produce a font definition file we write
117 %    a message to the transcript file only.
118 %    The explicit spaces are necessary in an
119 %    |.fd| file and the |\string| guards against situations where |`|,
120 %    |<| or |>| is active.
121 % \changes{v2.1f}{1995/11/27}{Use \cs{ProvidesFile}}
122 %    \begin{macrocode}
123 %\ProvidesFile{OMXcmex.fd}[]% moved to top of the file
124 %    \end{macrocode}
126 % We now define to which external fonts the font/shape Computer Modern
127 % Extension Medium Normal. For the sizes 7--10pt we use fonts that are
128 % designed for the corresponding size and for the higher sizes we use
129 % scaled versions of the 10pt font since for these sizes no designed
130 % fonts are easily available.
131 %    \begin{macrocode}
132 %<*fd|package>
133 \DeclareFontShape{OMX}{cmex}{m}{n}{%
134 %    \end{macrocode}
135 %    According to Michael Downes `cmex5' and `cmex6' are not
136 %    distributed currently. Therefore we use `cmex7' in those size but
137 %    we omit a warning.
138 %    \begin{macrocode}
139       <-8>sfixed * cmex7
140       <8> cmex8
141       <9> cmex9
142       <10> <10.95> <12> <14.4> <17.28> <20.74> <24.88>cmex10
143        }{}
144 %</fd|package>
145 %    \end{macrocode}
147 % We also redeclare the symbol font for large symbols. This is
148 % already done when the base format also uses CM math fonts, but it
149 % doesn't hurt either.
150 %    \begin{macrocode}
151 %<*package>
152 \DeclareSymbolFont{largesymbols}{OMX}{cmex}{m}{n}
153 %    \end{macrocode}
155 % Finally we redefine the primitive commands |\big|, |\Big|, |\bigg|
156 % and |\Bigg| to change size with main size changes. To this end we
157 % need a new dimen register |\big@size|.
158 %    \begin{macrocode}
159 \newdimen\big@size
160 %    \end{macrocode}
161 % This dimen is set with every size change to $1.2$ times the height
162 % of a left parenthesis.
163 % \changes{v2.1e}{1994/11/06}{Renamed \cs{every@size} to
164 %                             \cs{every@math@size}}
165 % \changes{v2.1e}{1994/11/06}{Update \cs{big@size} globally}
166 % \changes{v2.1h}{2001/10/29}{Use box 0 within group to avoid changing this
167 %                             scratch register}
168 %    \begin{macrocode}
169 \addto@hook\every@math@size{%
170   \begingroup
171      \setbox\z@\vbox{\hbox{$($}\kern\z@}%
172      \global\big@size 1.2\ht\z@
173   \endgroup}
174 %    \end{macrocode}
175 % Now we can define the macros. Note: |\n@space| sets the internal
176 % variables |\nulldelimiterspace| and |\mathsurround| to zero length.
177 %    \begin{macrocode}
178 \def\bBigg@#1#2{%
179    {\hbox{$\left#2\vcenter to#1\big@size{}\right.\n@space$}}}
180 \def\big{\bBigg@\@ne}
181 \def\Big{\bBigg@{1.5}}
182 \def\bigg{\bBigg@\tw@}
183 \def\Bigg{\bBigg@{2.5}}
184 %</package>
185 %    \end{macrocode}
187 % \Finale
189 \endinput