1 % \iffalse meta-comment
4 % The LaTeX3 Project and any individual authors listed elsewhere
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
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.
30 %%% From File: fontdef.dtx
32 \ProvidesFile{fontdef.dtx}
34 %<text, >\ProvidesFile{fonttext.ltx}
35 %<math, >\ProvidesFile{fontmath.ltx}
36 %<+cfgtext>\ProvidesFile{fonttext.cfg}
37 %<+cfgmath>\ProvidesFile{fontmath.cfg}
38 %<+cfgprel>\ProvidesFile{preload.cfg}
39 %<driver, >\ProvidesFile{fontdef.drv}
41 % \ProvidesFile{fontdef.dtx}
42 [2016/12/03 v3.0a LaTeX Kernel
46 %<+cfgtext>(Uncustomised text
47 %<+cfgmath>(Uncustomised math
48 %<+cfgprel>(Uncustomised preload
53 %\iffalse This is a META comment
56 % Copyright (C) 1989-1999 Frank Mittelbach and Rainer Sch\"opf,
57 % All rights reserved.
61 % \changes{v2.1a}{1993/12/01}{Update for LaTeX2e}
62 % \changes{v2.2a}{1994/10/14}{New coding}
63 % \changes{v2.2i}{1994/12/02}{Commented out \cs{ldots}. ASAJ.}
64 % \changes{v2.2j}{1995/05/11}{Updates to some plain macros}
65 % \changes{v2.2l}{1995/10/03}{\cs{@@sqrt} from patch file for /1701}
66 % \changes{v2.2o}{1996/05/17}{\cs{@@sqrt} removed, at last}
67 % \changes{v2.2p}{1996/11/20}{lowercase fd and enc.def file names /1044}
68 % \changes{v2.2x}{1999/01/05}{Need special protection for character
69 % \texttt{\char62} in \cs{changes} entry.}
71 % \title{The \texttt{fontdef.dtx} file\thanks
72 % {This file has version number \fileversion, dated \filedate}}
73 % \author{Frank Mittelbach \and Rainer Sch\"opf}
75 % \def\dst{{\normalfont\scshape docstrip}}
76 % \setcounter{StandardModuleDepth}{1}
79 % \MaintainedByLaTeXTeam{latex}
82 % \section{Introduction}
84 % This file is used to generate the files \texttt{fonttext.ltx} (text
85 % font declarations) and \texttt{fontmath.ltx} (math font
86 % declarations), which are used during the format generation. It
87 % contains the declaration of the standard text encodings used at the
88 % site as well as a minimal subset of font shape groups that NFSS will
89 % look at to ensure that the specified encodings are valid.
91 % The math part contains the setup for math encodings as well as the
92 % default math symbol declarations that belong to the encoding.
94 % It is possible to change this setup (by using other fonts, or
95 % defaults) without losing the ability to
96 % process documents written at other sites. Portability in this sense
97 % means that a document will compile without errors. It does not mean,
98 % however, that identical output will be produced. For this it is
99 % necessary that the distributed setup is used at both installations.
101 % \section{Customization}
103 % You are not allowed to change this source file! If you want to
104 % change the default encodings and/or the font shape groups preloaded
105 % you should should create a copy of \texttt{fonttext.ltx}
106 % under the name \texttt{fonttext.cfg} and change this copy. If
107 % \LaTeXe{} finds a file of this name it will use it, otherwise it
108 % uses the standard file which is \texttt{fontdef.ltx}.
110 % If you don't plan to use Computer Modern much or at all, it might
111 % (!) be a good idea to make your own \texttt{fonttext.cfg}. Look at
112 % the comments below (docstrip module `text') to see what should
113 % should go into such a file.
115 % To change the math font setup use a copy of \texttt{fontmath.ltx}
116 % under the name \texttt{fontmath.cfg} and change this copy. However,
117 % dealing with this interface is even more a job for an expert than
118 % changing the text font setup --- in short, we don't encourage either.
121 % \textbf{Warning:} please note that we don't support customised
122 % \LaTeX{} versions. Thus, before sending in a bug report please try
123 % your test file with a \LaTeX{} format which is not customised and
124 % send in the log from that version (unless the problem goes away).
127 % Please note: the following standard encodings have to
128 % be defined in all local variants of \texttt{font....cfg} to guarantee
129 % that all \LaTeX{} installations behave in the same way.
131 % \begin{tabular}{ll}
132 % |T1| & Cork \TeX{} text encoding \\
133 % |OT1| & old \TeX{} text encoding \\
134 % |U| & unknown encoding \\
135 % |OML| & old \TeX{} math letters encoding \\
136 % |OMS| & old \TeX{} math symbols encoding \\
137 % |OMX| & old \TeX{} math extension symbols encoding\\
141 % Notice that some of these encodings are `old' in the sense that we
142 % hope that they will be superseded soon by encoding standards defined
143 % by the \TeX{} user community. Therefore this set of default encodings
144 % may change in the future.
146 % The first candidate is |OT1| which will soon be replaced by |T1|, the
147 % official \TeX{} text encoding.
149 % \begin{quote}\textbf{Warning:}
150 % If you add additional encodings to this file there is no guarantee
151 % any longer that files processable at your installation will also be
152 % processable at other installations. Thus, if you make use of
153 % such an encoding in your document, e.g.~if you intend to typeset in
154 % Cyrillic (|OT2| encoding), you need to specify this encoding in the
155 % preamble of your document prior to sending it to another
156 % installation. Once the encoding is specified in that place in your
157 % document, the document is processable at all \LaTeX{} installations
158 % (provided they have suitable fonts installed).
160 % For this reason we suggest that you define a short package file that
161 % sets up an additional encoding used at your site (rather than
162 % putting the encoding into this file) since this package can easily
163 % be shipped with your document.
169 % \section{The \texttt{docstrip} modules}
171 % The following modules are used to direct \texttt{docstrip} in
172 % generating external files:
174 % \begin{tabular}{ll}
175 % driver & produce a documentation driver file \\
176 % text & produce the file \texttt{fonttext.ltx}\\
177 % math & produce the file \texttt{fontmath.ltx}\\
178 % cfgtext & produce a dummy \texttt{fonttext.cfg} file\\
179 % cfgmath & produce a dummy \texttt{fontmath.cfg} file\\
182 % A typical \texttt{docstrip} command file would then have entries like:
184 %\generateFile{fonttext.ltx}{t}{\from{fontdef.dtx}{text}}
188 % \section{A driver for this document}
190 % The next bit of code contains the documentation driver file for
191 % \TeX{}, i.e.~the file that will produce the documentation you are
192 % currently reading. It will be extracted from this file by the
196 \documentclass{ltxdoc}
197 \GetFileInfo{fontdef.dtx}
199 \DocInput{fontdef.dtx}
206 % \section{The \texttt{fonttext.ltx} file}
208 % The identification is done earlier on with a |\ProvidesFile|
212 \typeout{=== Don't modify this file, use a .cfg file instead ===^^J}
215 % \subsection{Encodings}
217 % This file declares the standard encodings for text and math
218 % fonts. All others should be declared in packages or in the
219 % documents directly.
221 % For every text encoding there are normally a number of encoding
222 % specific commands, e.g.~accents, special characters, etc. (The
223 % definition for such a command might have to change when the
224 % encoding is changed, because the character is in a different
225 % position, or not available at all, or the accent is produced in a
226 % different way.) This is handled by a general mechanism which is
227 % described in \texttt{ltoutenc.dtx}.
229 % By convention, text encoding specific declarations, including the
230 % declaration |\DeclareFontEncoding|, are kept in separate file of
231 % the form \meta{enc}\texttt{enc.def}, e.g.~\texttt{ot1enc.def}. This
232 % allows other applications to make use of the declarations as
235 % Similar to the default encoding, the loading of the encoding
236 % files for the two major text encodings shouldn't be changed.
237 % In particular, the \texttt{inputenc} package depends on this.
238 % \changes{v2.2s}{1997/12/20}{Added documentation}
240 % \changes{v2.1d}{1994/01/05}{Removed nf prefix from file names.}
241 % \changes{v2.1f}{1994/05/14}{Removed .def files.}
242 % \changes{v2.1g}{1994/05/1g}{Removed \cs{DeclareFontEncoding} for ot1
243 % and t1 and input .def files instead}
244 % \changes{v2.2c}{1994/10/25}{Added OMSenc.def}
245 % \changes{v2.2d}{1994/10/31}{Added OMLenc.def ...}
246 % \changes{v2.2e}{1994/10/31}{... and moved further down}
247 % \changes{v2.2f}{1994/11/07}{(DPC) Updated to use \cs{ProvidesFile}}
248 % \changes{v2.2h}{1994/11/16}{(DPC) Removed \cmd\{ and \cmd\}}
249 % \changes{v3.0a}{2016/12/03}{(DPC) Default to TU encoding for Unicode TeX engines}
253 \input {ot1enc.def} % <- should come after T1 for speed
256 % \changes{v3.0a}{2016/12/03}{(DPC) Default to TU encoding for Unicode TeX engines}
258 \ifx\Umathchar\@undefined
261 % We then set set the default text font encoding. This will
262 % hopefully change some day to |T1|. This setting should \emph{not}
263 % be changed to produce a portable format.
275 \DeclareFontSubstitution{TU}{lmr}{m}{n}
285 \DeclareFontSubstitution{TU}{lmr}{m}{n}
287 % End of Unicode branch.
292 % If different encodings for text fonts are in use one could put
293 % the common setup into |\DeclareFontEncodingDefaults|. There is
294 % now a better mechanism so using this interface is discouraged!
296 \DeclareFontEncodingDefaults{}{}
299 % Then we define the default substitution for every encoding.
300 % This release of \LaTeXe{} assumes that the ec fonts are
301 % available. It is possible to change this to point to some other
302 % font family (e.g., Times with the appropriate encoding if it is
303 % available) without making documents non-portable. However, in
304 % such a case documents will produce different page breaks at other
305 % sites. The substitution defaults can all be changed without
306 % losing portability as long as there are font shape definitions
307 % for the selected substitutions.
309 \DeclareFontSubstitution{T1}{cmr}{m}{n}
310 \DeclareFontSubstitution{OT1}{cmr}{m}{n}
313 % For every encoding declaration, \LaTeXe{} will try to verify that
314 % the given substitution information makes sense, i.e.~that it is
315 % impossible to go into an endless loop if font substitution
316 % happens. This is done at the moment the |\begin{document}| is
317 % encountered. \LaTeXe{} will then check that for every encoding the
318 % substitution defaults form a valid font shape group, which means
319 % that it will check if there is a |\DeclareFontShape| declaration
320 % for this combination. We will therefore load the corresponding
321 % |.fd| files now. If we don't do this they would be loaded at
322 % verification time (i.e.~at |\begin{document}| which would delay
323 % processing unnecessarily.
326 % \textbf{Warning:} Please note that this means that you have to
327 % regenerate the format whenever you change any of these
328 % \texttt{.fd} files since \LaTeXe{} will not read \texttt{.fd}
329 % files if it already knows about the encoding/family
333 % \changes{v2.2m}{1995/11/01}{add \cs{nfss@catcodes} for internal/1932}
334 % The |\nfss@catcodes| ensures that white space is ignored in any
335 % definitions made in the fd files.
344 % We also load some other font definition files which are normally
345 % needed in a document. This is only done for processing speed and
346 % you can comment the next two lines out to save some memory. If
347 % necessary these files are then loaded when your document is
348 % processed. (Loading |.fd| files is a less drastic step compared
349 % to preloading fonts because the number of fonts is limited 255 at
350 % (nearly) every \TeX{} installation, while the amount of main memory
351 % is not a limiting factor at most installations.)
361 % Even with all the precautions it is still possible that NFSS will
362 % run into problems, for example, when a |.fd| file contains
363 % corrupted data. To guard against such cases NFSS has a very
364 % low-level fallback font that is installed with the following line.
366 \DeclareErrorFont{OT1}{cmr}{m}{n}{10}
368 % This means, ``if everything else fails use Computer Modern Roman
369 % normal shape at 10pt in the old text encoding''.
370 % You can change the font used but the encoding should be the same
371 % as the one specified with |\fontencoding| above.
374 % \subsection{Defaults}
376 % To allow the use of |\rmfamily|, |\sffamily|, etc.\ in documents
377 % even if non-standard families are used we provide nine macros
378 % which hold the name of the corresponding families, series, and so
379 % on. This makes it easy to use other font families (like Times
380 % Roman, etc.). One simply has to redefine these defaults.
382 % All these hooks have to be defined in this file but you can
383 % change their meaning (except for |\encodingdefault|) without
384 % making documents non-portable.
387 % \begin{macro}{\encodingdefault}
388 % \begin{macro}{\rmdefault}
389 % \begin{macro}{\sfdefault}
390 % \begin{macro}{\ttdefault}
391 % The following three definitions set up the meaning for
392 % |\rmfamily|, |\sffamily|, and |\ttfamily|.
395 %<*text|latexrelease>
396 \ifx\Umathchar\@undefined
397 \newcommand\encodingdefault{OT1}
398 \newcommand\rmdefault{cmr}
399 \newcommand\sfdefault{cmss}
400 \newcommand\ttdefault{cmtt}
402 \newcommand\encodingdefault{TU}
403 \newcommand\rmdefault{lmr}\fontfamily{\rmdefault}
404 \newcommand\sfdefault{lmss}
405 \newcommand\ttdefault{lmtt}
407 %<latexrelease>\IncludeInRelease{2017/01/01}%
408 %<latexrelease> {\encodingdefault}{TU encoding default}%
409 %<latexrelease>\ifx\Umathchar\@undefined
410 %<latexrelease>\renewcommand\encodingdefault{OT1}
411 %<latexrelease>\renewcommand\rmdefault{cmr}
412 %<latexrelease>\renewcommand\sfdefault{cmss}
413 %<latexrelease>\renewcommand\ttdefault{cmtt}
415 %<latexrelease>\renewcommand\encodingdefault{TU}
416 %<latexrelease>\renewcommand\rmdefault{lmr}
417 %<latexrelease>\renewcommand\sfdefault{lmss}
418 %<latexrelease>\renewcommand\ttdefault{lmtt}
420 %<latexrelease>\EndIncludeInRelease
421 %<latexrelease>\IncludeInRelease{0000/00/00}%
422 %<latexrelease> {\encodingdefault}{TU encoding default}%
423 %<latexrelease>\renewcommand\encodingdefault{OT1}
424 %<latexrelease>\renewcommand\rmdefault{cmr}
425 %<latexrelease>\renewcommand\sfdefault{cmss}
426 %<latexrelease>\renewcommand\ttdefault{cmtt}
427 %</text|latexrelease>
435 % \begin{macro}{\bfdefault}
436 % \begin{macro}{\mddefault}
437 % Series changing commands are influenced by the following hooks.
439 \newcommand\bfdefault{bx}
440 \newcommand\mddefault{m}
445 % \begin{macro}{\itdefault}
446 % \begin{macro}{\sldefault}
447 % \begin{macro}{\scdefault}
448 % \begin{macro}{\updefault}
449 % Shape changing commands use the following hooks.
451 \newcommand\itdefault{it}
452 \newcommand\sldefault{sl}
453 \newcommand\scdefault{sc}
454 \newcommand\updefault{n}
461 % \begin{macro}{\familydefault}
462 % \begin{macro}{\seriesdefault}
463 % \begin{macro}{\shapedefault}
464 % Finally we have the hooks that describe the behaviour of
465 % the |\normalfont| command. To stay portable, the definition of
466 % |\encodingdefault| should \emph{not} be changed and should match
467 % the setting above for |\fontencoding|. All other values can be
468 % set according to your taste.
469 % \changes{v3.0a}{2016/12/03}{(DPC) Default to TU encoding for Unicode TeX engines}
471 \newcommand\familydefault{\rmdefault}
472 \newcommand\seriesdefault{\mddefault}
473 \newcommand\shapedefault{\updefault}
480 % This finishes the low-level setup in \texttt{fonttext.ltx}.
488 % \section{The \texttt{fontmath.ltx} file}
490 % The identification is done earlier on with a |\ProvidesFile|
494 \typeout{=== Don't modify this file, use a .cfg file instead ===^^J}
497 % \subsection{The font encodings used}
500 \DeclareFontEncoding{OML}{}{}
501 \DeclareFontEncoding{OMS}{}{}
502 \DeclareFontEncoding{OMX}{}{}
504 % Finally a declaration for |U| encoding which serves for all fonts
505 % that do not fit standard encodings. For math this sets up
506 % |\noaccents@| providing for AMS-\LaTeX{}. This macro is used
507 % therein to handle accented characters if they are not supported
508 % by the font. In other words, if fonts with |U| encoding are used
509 % in math, all accents (like from |\breve|) are obtained from some
510 % other font that has them.
512 \DeclareFontEncoding{U}{}{\noaccents@}
514 % The encodings for math are next:
516 \DeclareFontSubstitution{OML}{cmm}{m}{it}
517 \DeclareFontSubstitution{OMS}{cmsy}{m}{n}
518 \DeclareFontSubstitution{OMX}{cmex}{m}{n}
519 \DeclareFontSubstitution{U}{cmr}{m}{n}
532 % \subsubsection{Symbolfont and Alphabet declarations}
534 % We now define the basic symbol fonts used by \LaTeX{}.
535 % These four symbol fonts must be defined by this file.
537 % It is possible to make the symbol fonts point to other external
538 % fonts without losing the ability to process documents written
539 % at other sites, as long as one defines the same symbol font names
540 % with the same encodings, e.g.~|operators| with |OT1| etc.
541 % If other encodings are used documents become non-portable.
542 % Such a change should therefore be done in a package file.
544 % \changes{v2.1e}{1994/01/19}{Added missing setting for symbols in
547 \DeclareSymbolFont{operators} {OT1}{cmr} {m}{n}
548 \DeclareSymbolFont{letters} {OML}{cmm} {m}{it}
549 \DeclareSymbolFont{symbols} {OMS}{cmsy}{m}{n}
550 \DeclareSymbolFont{largesymbols}{OMX}{cmex}{m}{n}
554 \SetSymbolFont{operators}{bold}{OT1}{cmr} {bx}{n}
555 \SetSymbolFont{letters} {bold}{OML}{cmm} {b}{it}
556 \SetSymbolFont{symbols} {bold}{OMS}{cmsy}{b}{n}
559 % Below are the seven math alphabets which are defined by NFSS.
560 % Again they must be defined by this file.
561 % However, as before you can change the fonts used without losing
562 % portability, but you should be careful when changing the encoding
563 % since that may make documents come out wrong.
565 \DeclareSymbolFontAlphabet{\mathrm} {operators}
566 \DeclareSymbolFontAlphabet{\mathnormal}{letters}
567 \DeclareSymbolFontAlphabet{\mathcal} {symbols}
568 \DeclareMathAlphabet {\mathbf}{OT1}{cmr}{bx}{n}
569 \DeclareMathAlphabet {\mathsf}{OT1}{cmss}{m}{n}
570 \DeclareMathAlphabet {\mathit}{OT1}{cmr}{m}{it}
571 \DeclareMathAlphabet {\mathtt}{OT1}{cmtt}{m}{n}
573 % Given the currently available fonts we cannot bold-en |\mathbf|
574 % and |\mathtt| but in principle one could use `ultra bold' or
575 % something. The alphabets defined via |\DeclareSymbolFontAlphabet|
576 % will change automatically in a new math version if the
577 % corresponding symbol font changes.
579 \SetMathAlphabet\mathsf{bold}{OT1}{cmss}{bx}{n}
580 \SetMathAlphabet\mathit{bold}{OT1}{cmr}{bx}{it}
584 % \subsection{Math font sizes}
585 % \changes{v2.2f}{1994/11/07}
586 % {(DPC) Add \cs{DeclareMathSizes} declarations}
588 % The declarations below declare the text, script and scriptscript
589 % size to be used for each text font size.
591 % All occurrences of sizes longer than a single character are replaced
592 % with the macro name that holds them, saving a number of
593 % tokens (but losing a bit of speed, so this may not stay this way).
595 \DeclareMathSizes{5}{5}{5}{5}
596 \DeclareMathSizes{6}{6}{5}{5}
597 \DeclareMathSizes{7}{7}{5}{5}
598 \DeclareMathSizes{8}{8}{6}{5}
599 \DeclareMathSizes{9}{9}{6}{5}
600 \DeclareMathSizes{\@xpt}{\@xpt}{7}{5}
601 \DeclareMathSizes{\@xipt}{\@xipt}{8}{6}
602 \DeclareMathSizes{\@xiipt}{\@xiipt}{8}{6}
603 \DeclareMathSizes{\@xivpt}{\@xivpt}{\@xpt}{7}
604 \DeclareMathSizes{\@xviipt}{\@xviipt}{\@xiipt}{\@xpt}
605 \DeclareMathSizes{\@xxpt}{\@xxpt}{\@xivpt}{\@xiipt}
606 \DeclareMathSizes{\@xxvpt}{\@xxvpt}{\@xxpt}{\@xviipt}
609 % \subsection{The math symbol assignments}
611 % We start by setting up math codes for most of the characters
612 % typed in directly from the keyboard. Most of them are normally
613 % already setup up in the same way by Ini\TeX{}. However, we repeat
614 % them here to have a complete setup which can be exchanged with
615 % another if desired.
617 % \subsubsection{The letters}
619 \DeclareMathSymbol{a}{\mathalpha}{letters}{`a}
620 \DeclareMathSymbol{b}{\mathalpha}{letters}{`b}
621 \DeclareMathSymbol{c}{\mathalpha}{letters}{`c}
622 \DeclareMathSymbol{d}{\mathalpha}{letters}{`d}
623 \DeclareMathSymbol{e}{\mathalpha}{letters}{`e}
624 \DeclareMathSymbol{f}{\mathalpha}{letters}{`f}
625 \DeclareMathSymbol{g}{\mathalpha}{letters}{`g}
626 \DeclareMathSymbol{h}{\mathalpha}{letters}{`h}
627 \DeclareMathSymbol{i}{\mathalpha}{letters}{`i}
628 \DeclareMathSymbol{j}{\mathalpha}{letters}{`j}
629 \DeclareMathSymbol{k}{\mathalpha}{letters}{`k}
630 \DeclareMathSymbol{l}{\mathalpha}{letters}{`l}
631 \DeclareMathSymbol{m}{\mathalpha}{letters}{`m}
632 \DeclareMathSymbol{n}{\mathalpha}{letters}{`n}
633 \DeclareMathSymbol{o}{\mathalpha}{letters}{`o}
634 \DeclareMathSymbol{p}{\mathalpha}{letters}{`p}
635 \DeclareMathSymbol{q}{\mathalpha}{letters}{`q}
636 \DeclareMathSymbol{r}{\mathalpha}{letters}{`r}
637 \DeclareMathSymbol{s}{\mathalpha}{letters}{`s}
638 \DeclareMathSymbol{t}{\mathalpha}{letters}{`t}
639 \DeclareMathSymbol{u}{\mathalpha}{letters}{`u}
640 \DeclareMathSymbol{v}{\mathalpha}{letters}{`v}
641 \DeclareMathSymbol{w}{\mathalpha}{letters}{`w}
642 \DeclareMathSymbol{x}{\mathalpha}{letters}{`x}
643 \DeclareMathSymbol{y}{\mathalpha}{letters}{`y}
644 \DeclareMathSymbol{z}{\mathalpha}{letters}{`z}
648 \DeclareMathSymbol{A}{\mathalpha}{letters}{`A}
649 \DeclareMathSymbol{B}{\mathalpha}{letters}{`B}
650 \DeclareMathSymbol{C}{\mathalpha}{letters}{`C}
651 \DeclareMathSymbol{D}{\mathalpha}{letters}{`D}
652 \DeclareMathSymbol{E}{\mathalpha}{letters}{`E}
653 \DeclareMathSymbol{F}{\mathalpha}{letters}{`F}
654 \DeclareMathSymbol{G}{\mathalpha}{letters}{`G}
655 \DeclareMathSymbol{H}{\mathalpha}{letters}{`H}
656 \DeclareMathSymbol{I}{\mathalpha}{letters}{`I}
657 \DeclareMathSymbol{J}{\mathalpha}{letters}{`J}
658 \DeclareMathSymbol{K}{\mathalpha}{letters}{`K}
659 \DeclareMathSymbol{L}{\mathalpha}{letters}{`L}
660 \DeclareMathSymbol{M}{\mathalpha}{letters}{`M}
661 \DeclareMathSymbol{N}{\mathalpha}{letters}{`N}
662 \DeclareMathSymbol{O}{\mathalpha}{letters}{`O}
663 \DeclareMathSymbol{P}{\mathalpha}{letters}{`P}
664 \DeclareMathSymbol{Q}{\mathalpha}{letters}{`Q}
665 \DeclareMathSymbol{R}{\mathalpha}{letters}{`R}
666 \DeclareMathSymbol{S}{\mathalpha}{letters}{`S}
667 \DeclareMathSymbol{T}{\mathalpha}{letters}{`T}
668 \DeclareMathSymbol{U}{\mathalpha}{letters}{`U}
669 \DeclareMathSymbol{V}{\mathalpha}{letters}{`V}
670 \DeclareMathSymbol{W}{\mathalpha}{letters}{`W}
671 \DeclareMathSymbol{X}{\mathalpha}{letters}{`X}
672 \DeclareMathSymbol{Y}{\mathalpha}{letters}{`Y}
673 \DeclareMathSymbol{Z}{\mathalpha}{letters}{`Z}
676 % \subsubsection{The digits}
679 \DeclareMathSymbol{0}{\mathalpha}{operators}{`0}
680 \DeclareMathSymbol{1}{\mathalpha}{operators}{`1}
681 \DeclareMathSymbol{2}{\mathalpha}{operators}{`2}
682 \DeclareMathSymbol{3}{\mathalpha}{operators}{`3}
683 \DeclareMathSymbol{4}{\mathalpha}{operators}{`4}
684 \DeclareMathSymbol{5}{\mathalpha}{operators}{`5}
685 \DeclareMathSymbol{6}{\mathalpha}{operators}{`6}
686 \DeclareMathSymbol{7}{\mathalpha}{operators}{`7}
687 \DeclareMathSymbol{8}{\mathalpha}{operators}{`8}
688 \DeclareMathSymbol{9}{\mathalpha}{operators}{`9}
692 % \subsubsection{Punctuation, brace, etc. keys}
695 \DeclareMathSymbol{!}{\mathclose}{operators}{"21}
696 \DeclareMathSymbol{*}{\mathbin}{symbols}{"03} % \ast
697 \DeclareMathSymbol{+}{\mathbin}{operators}{"2B}
698 \DeclareMathSymbol{,}{\mathpunct}{letters}{"3B}
699 \DeclareMathSymbol{-}{\mathbin}{symbols}{"00}
700 \DeclareMathSymbol{.}{\mathord}{letters}{"3A}
701 \DeclareMathSymbol{:}{\mathrel}{operators}{"3A}
702 \DeclareMathSymbol{;}{\mathpunct}{operators}{"3B}
703 \DeclareMathSymbol{=}{\mathrel}{operators}{"3D}
704 \DeclareMathSymbol{?}{\mathclose}{operators}{"3F}
706 % The following symbols are defined as delimiters below
707 % which automatically defines them as math symbols.
709 %\DeclareMathSymbol{(}{\mathopen}{operators}{"28}
710 %\DeclareMathSymbol{)}{\mathclose}{operators}{"29}
711 %\DeclareMathSymbol{/}{\mathord}{letters}{"3D}
712 %\DeclareMathSymbol{[}{\mathopen}{operators}{"5B}
713 %\DeclareMathSymbol{]}{\mathclose}{operators}{"5D}
714 %\DeclareMathSymbol{|}{\mathord}{symbols}{"6A}
715 %\DeclareMathSymbol{<}{\mathrel}{letters}{"3C}
716 %\DeclareMathSymbol{>}{\mathrel}{letters}{"3E}
719 % Should all of the following being activated by default? Probably
722 %\DeclareMathSymbol{`\{}{\mathopen}{symbols}{"66}
723 %\DeclareMathSymbol{`\}}{\mathclose}{symbols}{"67}
724 %\DeclareMathSymbol{`\\}{\mathord}{symbols}{"6E} % \backslash
725 \mathcode`\ ="8000 % \space
726 \mathcode`\'="8000 % ^\prime
727 \mathcode`\_="8000 % \_
731 % \subsubsection{Delimitercodes for characters}
732 % \changes{v2.2q}{1997/01/08}
733 % {Use \cs{DeclareMathDelimiter} to set delimiter codes}
734 % \changes{v2.2u}{1998/04/15}
735 % {Use new syntax for \cs{DeclareMathDelimiter}}
738 % Finally, Ini\TeX{} sets all |\delcode| values to -1, except
741 \DeclareMathDelimiter{(}{\mathopen} {operators}{"28}{largesymbols}{"00}
742 \DeclareMathDelimiter{)}{\mathclose}{operators}{"29}{largesymbols}{"01}
743 \DeclareMathDelimiter{[}{\mathopen} {operators}{"5B}{largesymbols}{"02}
744 \DeclareMathDelimiter{]}{\mathclose}{operators}{"5D}{largesymbols}{"03}
747 % The next two are considered to be relations when not used in the context
748 % of a delimiter! And worse, they do even represent different glyphs when
749 % being used as delimiter and not as delimiter. This is a user level syntax
750 % inherited from plain \TeX{}. Therefore we explicitly redefine the math
751 % symbol definitions for these symbols afterwards.
752 % \changes{v2.2v}{1998/04/17}
753 % {Reinsert symbol defs for \texttt{<} and \texttt{\char62} chars.}
755 \DeclareMathDelimiter{<}{\mathopen}{symbols}{"68}{largesymbols}{"0A}
756 \DeclareMathDelimiter{>}{\mathclose}{symbols}{"69}{largesymbols}{"0B}
757 \DeclareMathSymbol{<}{\mathrel}{letters}{"3C}
758 \DeclareMathSymbol{>}{\mathrel}{letters}{"3E}
760 % And here is another case where the non-delimiter version produces a
761 % glyph different from the delimiter version.
762 % \changes{v2.2w}{1998/04/18}
763 % {Reinsert symbol def for \texttt{/} char.}
765 \DeclareMathDelimiter{/}{\mathord}{operators}{"2F}{largesymbols}{"0E}
766 \DeclareMathSymbol{/}{\mathord}{letters}{"3D}
770 \DeclareMathDelimiter{|}{\mathord}{symbols}{"6A}{largesymbols}{"0C}
774 \expandafter\DeclareMathDelimiter\@backslashchar
775 {\mathord}{symbols}{"6E}{largesymbols}{"0F}
777 % N.B. |{| and |}| should NOT get delcodes;
778 % otherwise parameter grouping fails!
781 % \subsection{Symbols accessed via control sequences}
783 % \subsubsection{Greek letters}
786 \DeclareMathSymbol{\alpha}{\mathord}{letters}{"0B}
787 \DeclareMathSymbol{\beta}{\mathord}{letters}{"0C}
788 \DeclareMathSymbol{\gamma}{\mathord}{letters}{"0D}
789 \DeclareMathSymbol{\delta}{\mathord}{letters}{"0E}
790 \DeclareMathSymbol{\epsilon}{\mathord}{letters}{"0F}
791 \DeclareMathSymbol{\zeta}{\mathord}{letters}{"10}
792 \DeclareMathSymbol{\eta}{\mathord}{letters}{"11}
793 \DeclareMathSymbol{\theta}{\mathord}{letters}{"12}
794 \DeclareMathSymbol{\iota}{\mathord}{letters}{"13}
795 \DeclareMathSymbol{\kappa}{\mathord}{letters}{"14}
796 \DeclareMathSymbol{\lambda}{\mathord}{letters}{"15}
797 \DeclareMathSymbol{\mu}{\mathord}{letters}{"16}
798 \DeclareMathSymbol{\nu}{\mathord}{letters}{"17}
799 \DeclareMathSymbol{\xi}{\mathord}{letters}{"18}
800 \DeclareMathSymbol{\pi}{\mathord}{letters}{"19}
801 \DeclareMathSymbol{\rho}{\mathord}{letters}{"1A}
802 \DeclareMathSymbol{\sigma}{\mathord}{letters}{"1B}
803 \DeclareMathSymbol{\tau}{\mathord}{letters}{"1C}
804 \DeclareMathSymbol{\upsilon}{\mathord}{letters}{"1D}
805 \DeclareMathSymbol{\phi}{\mathord}{letters}{"1E}
806 \DeclareMathSymbol{\chi}{\mathord}{letters}{"1F}
807 \DeclareMathSymbol{\psi}{\mathord}{letters}{"20}
808 \DeclareMathSymbol{\omega}{\mathord}{letters}{"21}
809 \DeclareMathSymbol{\varepsilon}{\mathord}{letters}{"22}
810 \DeclareMathSymbol{\vartheta}{\mathord}{letters}{"23}
811 \DeclareMathSymbol{\varpi}{\mathord}{letters}{"24}
812 \DeclareMathSymbol{\varrho}{\mathord}{letters}{"25}
813 \DeclareMathSymbol{\varsigma}{\mathord}{letters}{"26}
814 \DeclareMathSymbol{\varphi}{\mathord}{letters}{"27}
815 \DeclareMathSymbol{\Gamma}{\mathalpha}{operators}{"00}
816 \DeclareMathSymbol{\Delta}{\mathalpha}{operators}{"01}
817 \DeclareMathSymbol{\Theta}{\mathalpha}{operators}{"02}
818 \DeclareMathSymbol{\Lambda}{\mathalpha}{operators}{"03}
819 \DeclareMathSymbol{\Xi}{\mathalpha}{operators}{"04}
820 \DeclareMathSymbol{\Pi}{\mathalpha}{operators}{"05}
821 \DeclareMathSymbol{\Sigma}{\mathalpha}{operators}{"06}
822 \DeclareMathSymbol{\Upsilon}{\mathalpha}{operators}{"07}
823 \DeclareMathSymbol{\Phi}{\mathalpha}{operators}{"08}
824 \DeclareMathSymbol{\Psi}{\mathalpha}{operators}{"09}
825 \DeclareMathSymbol{\Omega}{\mathalpha}{operators}{"0A}
829 % \subsubsection{Ordinary symbols}
832 \DeclareMathSymbol{\aleph}{\mathord}{symbols}{"40}
833 \def\hbar{{\mathchar'26\mkern-9muh}}
834 \DeclareMathSymbol{\imath}{\mathord}{letters}{"7B}
835 \DeclareMathSymbol{\jmath}{\mathord}{letters}{"7C}
836 \DeclareMathSymbol{\ell}{\mathord}{letters}{"60}
837 \DeclareMathSymbol{\wp}{\mathord}{letters}{"7D}
838 \DeclareMathSymbol{\Re}{\mathord}{symbols}{"3C}
839 \DeclareMathSymbol{\Im}{\mathord}{symbols}{"3D}
840 \DeclareMathSymbol{\partial}{\mathord}{letters}{"40}
841 \DeclareMathSymbol{\infty}{\mathord}{symbols}{"31}
842 \DeclareMathSymbol{\prime}{\mathord}{symbols}{"30}
843 \DeclareMathSymbol{\emptyset}{\mathord}{symbols}{"3B}
844 \DeclareMathSymbol{\nabla}{\mathord}{symbols}{"72}
845 \def\surd{{\mathchar"1270}}
846 \DeclareMathSymbol{\top}{\mathord}{symbols}{"3E}
847 \DeclareMathSymbol{\bot}{\mathord}{symbols}{"3F}
848 \def\angle{{\vbox{\ialign{$\m@th\scriptstyle##$\crcr
849 \not\mathrel{\mkern14mu}\crcr
850 \noalign{\nointerlineskip}
851 \mkern2.5mu\leaders\hrule \@height.34pt\hfill\mkern2.5mu\crcr}}}}
852 \DeclareMathSymbol{\triangle}{\mathord}{symbols}{"34}
853 \DeclareMathSymbol{\forall}{\mathord}{symbols}{"38}
854 \DeclareMathSymbol{\exists}{\mathord}{symbols}{"39}
855 \DeclareMathSymbol{\neg}{\mathord}{symbols}{"3A}
857 \DeclareMathSymbol{\flat}{\mathord}{letters}{"5B}
858 \DeclareMathSymbol{\natural}{\mathord}{letters}{"5C}
859 \DeclareMathSymbol{\sharp}{\mathord}{letters}{"5D}
860 \DeclareMathSymbol{\clubsuit}{\mathord}{symbols}{"7C}
861 \DeclareMathSymbol{\diamondsuit}{\mathord}{symbols}{"7D}
862 \DeclareMathSymbol{\heartsuit}{\mathord}{symbols}{"7E}
863 \DeclareMathSymbol{\spadesuit}{\mathord}{symbols}{"7F}
867 % \subsubsection{Large Operators}
870 \DeclareMathSymbol{\coprod}{\mathop}{largesymbols}{"60}
871 \DeclareMathSymbol{\bigvee}{\mathop}{largesymbols}{"57}
872 \DeclareMathSymbol{\bigwedge}{\mathop}{largesymbols}{"56}
873 \DeclareMathSymbol{\biguplus}{\mathop}{largesymbols}{"55}
874 \DeclareMathSymbol{\bigcap}{\mathop}{largesymbols}{"54}
875 \DeclareMathSymbol{\bigcup}{\mathop}{largesymbols}{"53}
876 \DeclareMathSymbol{\intop}{\mathop}{largesymbols}{"52}
877 \def\int{\intop\nolimits}
878 \DeclareMathSymbol{\prod}{\mathop}{largesymbols}{"51}
879 \DeclareMathSymbol{\sum}{\mathop}{largesymbols}{"50}
880 \DeclareMathSymbol{\bigotimes}{\mathop}{largesymbols}{"4E}
881 \DeclareMathSymbol{\bigoplus}{\mathop}{largesymbols}{"4C}
882 \DeclareMathSymbol{\bigodot}{\mathop}{largesymbols}{"4A}
883 \DeclareMathSymbol{\ointop}{\mathop}{largesymbols}{"48}
884 \def\oint{\ointop\nolimits}
885 \DeclareMathSymbol{\bigsqcup}{\mathop}{largesymbols}{"46}
886 \DeclareMathSymbol{\smallint}{\mathop}{symbols}{"73}
890 % \subsubsection{Binary symbols}
892 % \changes{v2.3a}{2004/02/04}
893 % {Added bigtriangle synonyms for stmaryrd}
895 \DeclareMathSymbol{\triangleleft}{\mathbin}{letters}{"2F}
896 \DeclareMathSymbol{\triangleright}{\mathbin}{letters}{"2E}
897 \DeclareMathSymbol{\bigtriangleup}{\mathbin}{symbols}{"34}
898 \DeclareMathSymbol{\bigtriangledown}{\mathbin}{symbols}{"35}
899 \let \varbigtriangledown \bigtriangledown
900 \let \varbigtriangleup \bigtriangleup
903 % These last two synonyms are needed because the \textsf{stamryrd}
904 % package redefines them as Operators.
907 \DeclareMathSymbol{\wedge}{\mathbin}{symbols}{"5E}
909 \DeclareMathSymbol{\vee}{\mathbin}{symbols}{"5F}
911 \DeclareMathSymbol{\cap}{\mathbin}{symbols}{"5C}
912 \DeclareMathSymbol{\cup}{\mathbin}{symbols}{"5B}
913 \DeclareMathSymbol{\ddagger}{\mathbin}{symbols}{"7A}
914 \DeclareMathSymbol{\dagger}{\mathbin}{symbols}{"79}
915 \DeclareMathSymbol{\sqcap}{\mathbin}{symbols}{"75}
916 \DeclareMathSymbol{\sqcup}{\mathbin}{symbols}{"74}
917 \DeclareMathSymbol{\uplus}{\mathbin}{symbols}{"5D}
918 \DeclareMathSymbol{\amalg}{\mathbin}{symbols}{"71}
919 \DeclareMathSymbol{\diamond}{\mathbin}{symbols}{"05}
920 \DeclareMathSymbol{\bullet}{\mathbin}{symbols}{"0F}
921 \DeclareMathSymbol{\wr}{\mathbin}{symbols}{"6F}
922 \DeclareMathSymbol{\div}{\mathbin}{symbols}{"04}
923 \DeclareMathSymbol{\odot}{\mathbin}{symbols}{"0C}
924 \DeclareMathSymbol{\oslash}{\mathbin}{symbols}{"0B}
925 \DeclareMathSymbol{\otimes}{\mathbin}{symbols}{"0A}
926 \DeclareMathSymbol{\ominus}{\mathbin}{symbols}{"09}
927 \DeclareMathSymbol{\oplus}{\mathbin}{symbols}{"08}
928 \DeclareMathSymbol{\mp}{\mathbin}{symbols}{"07}
929 \DeclareMathSymbol{\pm}{\mathbin}{symbols}{"06}
930 \DeclareMathSymbol{\circ}{\mathbin}{symbols}{"0E}
931 \DeclareMathSymbol{\bigcirc}{\mathbin}{symbols}{"0D}
932 \DeclareMathSymbol{\setminus}{\mathbin}{symbols}{"6E}
933 \DeclareMathSymbol{\cdot}{\mathbin}{symbols}{"01}
934 \DeclareMathSymbol{\ast}{\mathbin}{symbols}{"03}
935 \DeclareMathSymbol{\times}{\mathbin}{symbols}{"02}
936 \DeclareMathSymbol{\star}{\mathbin}{letters}{"3F}
940 % \subsubsection{Relations}
943 \DeclareMathSymbol{\propto}{\mathrel}{symbols}{"2F}
944 \DeclareMathSymbol{\sqsubseteq}{\mathrel}{symbols}{"76}
945 \DeclareMathSymbol{\sqsupseteq}{\mathrel}{symbols}{"77}
946 \DeclareMathSymbol{\parallel}{\mathrel}{symbols}{"6B}
947 \DeclareMathSymbol{\mid}{\mathrel}{symbols}{"6A}
948 \DeclareMathSymbol{\dashv}{\mathrel}{symbols}{"61}
949 \DeclareMathSymbol{\vdash}{\mathrel}{symbols}{"60}
950 \DeclareMathSymbol{\nearrow}{\mathrel}{symbols}{"25}
951 \DeclareMathSymbol{\searrow}{\mathrel}{symbols}{"26}
952 \DeclareMathSymbol{\nwarrow}{\mathrel}{symbols}{"2D}
953 \DeclareMathSymbol{\swarrow}{\mathrel}{symbols}{"2E}
954 \DeclareMathSymbol{\Leftrightarrow}{\mathrel}{symbols}{"2C}
955 \DeclareMathSymbol{\Leftarrow}{\mathrel}{symbols}{"28}
956 \DeclareMathSymbol{\Rightarrow}{\mathrel}{symbols}{"29}
957 \def\neq{\not=} \let\ne=\neq
958 \DeclareMathSymbol{\leq}{\mathrel}{symbols}{"14}
960 \DeclareMathSymbol{\geq}{\mathrel}{symbols}{"15}
962 \DeclareMathSymbol{\succ}{\mathrel}{symbols}{"1F}
963 \DeclareMathSymbol{\prec}{\mathrel}{symbols}{"1E}
964 \DeclareMathSymbol{\approx}{\mathrel}{symbols}{"19}
965 \DeclareMathSymbol{\succeq}{\mathrel}{symbols}{"17}
966 \DeclareMathSymbol{\preceq}{\mathrel}{symbols}{"16}
967 \DeclareMathSymbol{\supset}{\mathrel}{symbols}{"1B}
968 \DeclareMathSymbol{\subset}{\mathrel}{symbols}{"1A}
969 \DeclareMathSymbol{\supseteq}{\mathrel}{symbols}{"13}
970 \DeclareMathSymbol{\subseteq}{\mathrel}{symbols}{"12}
971 \DeclareMathSymbol{\in}{\mathrel}{symbols}{"32}
972 \DeclareMathSymbol{\ni}{\mathrel}{symbols}{"33}
974 \DeclareMathSymbol{\gg}{\mathrel}{symbols}{"1D}
975 \DeclareMathSymbol{\ll}{\mathrel}{symbols}{"1C}
976 \DeclareMathSymbol{\not}{\mathrel}{symbols}{"36}
977 \DeclareMathSymbol{\leftrightarrow}{\mathrel}{symbols}{"24}
978 \DeclareMathSymbol{\leftarrow}{\mathrel}{symbols}{"20}
980 \DeclareMathSymbol{\rightarrow}{\mathrel}{symbols}{"21}
982 \DeclareMathSymbol{\mapstochar}{\mathrel}{symbols}{"37}
983 \def\mapsto{\mapstochar\rightarrow}
984 \DeclareMathSymbol{\sim}{\mathrel}{symbols}{"18}
985 \DeclareMathSymbol{\simeq}{\mathrel}{symbols}{"27}
986 \DeclareMathSymbol{\perp}{\mathrel}{symbols}{"3F}
987 \DeclareMathSymbol{\equiv}{\mathrel}{symbols}{"11}
988 \DeclareMathSymbol{\asymp}{\mathrel}{symbols}{"10}
989 \DeclareMathSymbol{\smile}{\mathrel}{letters}{"5E}
990 \DeclareMathSymbol{\frown}{\mathrel}{letters}{"5F}
991 \DeclareMathSymbol{\leftharpoonup}{\mathrel}{letters}{"28}
992 \DeclareMathSymbol{\leftharpoondown}{\mathrel}{letters}{"29}
993 \DeclareMathSymbol{\rightharpoonup}{\mathrel}{letters}{"2A}
994 \DeclareMathSymbol{\rightharpoondown}{\mathrel}{letters}{"2B}
997 % Here cometh much profligate robustification of math constructs.
998 % Warning: some of these commands may become non-robust if an
999 % AMS package is loaded.
1001 % Further potential problems: some math font packages may make
1002 % unfortunate assumptions about some of these definitions that are
1003 % not true of the robust versions we need.
1004 % \changes{v2.3}{2004/02/02}
1005 % {Many things from here on made robust}
1007 \DeclareRobustCommand
1008 \cong{\mathrel{\mathpalette\@vereq\sim}} % congruence sign
1009 \def\@vereq#1#2{\lower.5\p@\vbox{\lineskiplimit\maxdimen\lineskip-.5\p@
1010 \ialign{$\m@th#1\hfil##\hfil$\crcr#2\crcr=\crcr}}}
1011 \DeclareRobustCommand
1012 \notin{\mathrel{\m@th\mathpalette\c@ncel\in}}
1013 \def\c@ncel#1#2{\m@th\ooalign{$\hfil#1\mkern1mu/\hfil$\crcr$#1#2$}}
1014 \DeclareRobustCommand
1015 \rightleftharpoons{\mathrel{\mathpalette\rlh@{}}}
1016 \def\rlh@#1{\vcenter{\m@th\hbox{\ooalign{\raise2pt
1017 \hbox{$#1\rightharpoonup$}\crcr
1018 $#1\leftharpoondown$}}}}
1019 \DeclareRobustCommand
1020 \doteq{\buildrel\textstyle.\over=}
1023 % \subsubsection{Arrows}
1026 \DeclareRobustCommand
1027 \joinrel{\mathrel{\mkern-3mu}}
1028 \DeclareRobustCommand
1029 \relbar{\mathrel{\smash-}} % \smash, because -
1030 % has the same height as +
1032 % In contrast to \texttt{plain.tex} |\Relbar| got braces around the
1033 % equal sign to guard against it being ``math active'' expanding to
1034 % |\futurelet...|. This might be the case when packages are
1035 % implementing shorthands for math, e.g. |=>| meaning |\Rightarrow|
1036 % etc. It would actually be better not to use |=| in such
1037 % definitions but instead define something like |\mathequalsign|
1038 % and use this. However we can't do this now as it would break
1039 % other math layouts where characters are in different places
1040 % (since those wouldn't know about the need for a new command name).
1041 % \changes{v2.2z}{2001/06/04}{Guard against math active equal sign in
1042 % \cs{Relbar} (pr/3333)}
1044 \DeclareRobustCommand
1045 \Relbar{\mathrel{=}}
1046 \DeclareMathSymbol{\lhook}{\mathrel}{letters}{"2C}
1047 \def\hookrightarrow{\lhook\joinrel\rightarrow}
1048 \DeclareMathSymbol{\rhook}{\mathrel}{letters}{"2D}
1049 \def\hookleftarrow{\leftarrow\joinrel\rhook}
1050 \DeclareRobustCommand
1051 \bowtie{\mathrel\triangleright\joinrel\mathrel\triangleleft}
1054 % \changes{v2.2z}{2001/06/04}{Guard against math active equal and pipe
1055 % sign in \cs{models} (pr/3333)}
1057 \DeclareRobustCommand
1058 \models{\mathrel{|}\joinrel\Relbar}
1059 \DeclareRobustCommand
1060 \Longrightarrow{\Relbar\joinrel\Rightarrow}
1063 % LaTeX Change: |\longrightarrow| and |\longleftarrow| redefined to make
1066 \DeclareRobustCommand\longrightarrow
1067 {\relbar\joinrel\rightarrow}
1068 \DeclareRobustCommand\longleftarrow
1069 {\leftarrow\joinrel\relbar}
1073 \DeclareRobustCommand
1074 \Longleftarrow{\Leftarrow\joinrel\Relbar}
1075 \DeclareRobustCommand
1076 \longmapsto{\mapstochar\longrightarrow}
1077 \DeclareRobustCommand
1078 \longleftrightarrow{\leftarrow\joinrel\rightarrow}
1079 \DeclareRobustCommand
1080 \Longleftrightarrow{\Leftarrow\joinrel\Rightarrow}
1081 \DeclareRobustCommand
1082 \iff{\;\Longleftrightarrow\;}
1086 % \subsubsection{Punctuation symbols}
1089 \DeclareMathSymbol{\ldotp}{\mathpunct}{letters}{"3A}
1090 \DeclareMathSymbol{\cdotp}{\mathpunct}{symbols}{"01}
1091 \DeclareMathSymbol{\colon}{\mathpunct}{operators}{"3A}
1095 % This is commented out, since |\ldots| is now defined in ltoutenc.dtx.
1097 %\def\@ldots{\mathinner{\ldotp\ldotp\ldotp}}
1098 %\DeclareRobustCommand\ldots
1099 % {\relax\ifmmode\@ldots\else\mbox{$\m@th\@ldots\,$}\fi}
1103 \DeclareRobustCommand
1104 \cdots{\mathinner{\cdotp\cdotp\cdotp}}
1105 \DeclareRobustCommand
1106 \vdots{\vbox{\baselineskip4\p@ \lineskiplimit\z@
1107 \kern6\p@\hbox{.}\hbox{.}\hbox{.}}}
1108 \DeclareRobustCommand
1109 \ddots{\mathinner{\mkern1mu\raise7\p@
1110 \vbox{\kern7\p@\hbox{.}}\mkern2mu
1111 \raise4\p@\hbox{.}\mkern2mu\raise\p@\hbox{.}\mkern1mu}}
1115 % \subsubsection{Math accents}
1118 \DeclareMathAccent{\acute}{\mathalpha}{operators}{"13}
1119 \DeclareMathAccent{\grave}{\mathalpha}{operators}{"12}
1120 \DeclareMathAccent{\ddot}{\mathalpha}{operators}{"7F}
1121 \DeclareMathAccent{\tilde}{\mathalpha}{operators}{"7E}
1122 \DeclareMathAccent{\bar}{\mathalpha}{operators}{"16}
1123 \DeclareMathAccent{\breve}{\mathalpha}{operators}{"15}
1124 \DeclareMathAccent{\check}{\mathalpha}{operators}{"14}
1125 \DeclareMathAccent{\hat}{\mathalpha}{operators}{"5E}
1126 \DeclareMathAccent{\vec}{\mathord}{letters}{"7E}
1127 \DeclareMathAccent{\dot}{\mathalpha}{operators}{"5F}
1128 \DeclareMathAccent{\widetilde}{\mathord}{largesymbols}{"65}
1129 \DeclareMathAccent{\widehat}{\mathord}{largesymbols}{"62}
1131 % For some reason plain \TeX{} never bothered to provide
1132 % a ring accent in math (although it is available in the fonts),
1133 % but since we got a request for it here we go:
1134 % \changes{v2.2t}{1998/04/11}{Added \cs{mathring} accent (pr2785)}
1136 \DeclareMathAccent{\mathring}{\mathalpha}{operators}{"17}
1140 % \subsubsection{Radicals}
1142 % \changes{v2.2o}{1996/05/17}{\cs{@@sqrt} removed, at last}
1144 \DeclareMathRadical{\sqrtsign}{symbols}{"70}{largesymbols}{"70}
1148 % \subsubsection{Over and under something, etc}
1151 \def\overrightarrow#1{\vbox{\m@th\ialign{##\crcr
1152 \rightarrowfill\crcr\noalign{\kern-\p@\nointerlineskip}
1153 $\hfil\displaystyle{#1}\hfil$\crcr}}}
1154 \def\overleftarrow#1{\vbox{\m@th\ialign{##\crcr
1155 \leftarrowfill\crcr\noalign{\kern-\p@\nointerlineskip}%
1156 $\hfil\displaystyle{#1}\hfil$\crcr}}}
1157 \def\overbrace#1{\mathop{\vbox{\m@th\ialign{##\crcr\noalign{\kern3\p@}%
1158 \downbracefill\crcr\noalign{\kern3\p@\nointerlineskip}%
1159 $\hfil\displaystyle{#1}\hfil$\crcr}}}\limits}
1160 \def\underbrace#1{\mathop{\vtop{\m@th\ialign{##\crcr
1161 $\hfil\displaystyle{#1}\hfil$\crcr
1162 \noalign{\kern3\p@\nointerlineskip}%
1163 \upbracefill\crcr\noalign{\kern3\p@}}}}\limits}
1165 % (quite a waste of tokens, IMHO --- Frank)
1167 \def\skew#1#2#3{{\muskip\z@#1mu\divide\muskip\z@\tw@ \mkern\muskip\z@
1168 #2{\mkern-\muskip\z@{#3}\mkern\muskip\z@}\mkern-\muskip\z@}{}}
1171 % \changes{v2.2n}{1995/11/21}{Incorporate changed figures,
1174 \def\rightarrowfill{$\m@th\smash-\mkern-7mu%
1175 \cleaders\hbox{$\mkern-2mu\smash-\mkern-2mu$}\hfill
1176 \mkern-7mu\mathord\rightarrow$}
1177 \def\leftarrowfill{$\m@th\mathord\leftarrow\mkern-7mu%
1178 \cleaders\hbox{$\mkern-2mu\smash-\mkern-2mu$}\hfill
1180 \DeclareMathSymbol{\braceld}{\mathord}{largesymbols}{"7A}
1181 \DeclareMathSymbol{\bracerd}{\mathord}{largesymbols}{"7B}
1182 \DeclareMathSymbol{\bracelu}{\mathord}{largesymbols}{"7C}
1183 \DeclareMathSymbol{\braceru}{\mathord}{largesymbols}{"7D}
1184 \def\downbracefill{$\m@th \setbox\z@\hbox{$\braceld$}%
1185 \braceld\leaders\vrule \@height\ht\z@ \@depth\z@\hfill\braceru
1186 \bracelu\leaders\vrule \@height\ht\z@ \@depth\z@\hfill\bracerd$}
1187 \def\upbracefill{$\m@th \setbox\z@\hbox{$\braceld$}%
1188 \bracelu\leaders\vrule \@height\ht\z@ \@depth\z@\hfill\bracerd
1189 \braceld\leaders\vrule \@height\ht\z@ \@depth\z@\hfill\braceru$}
1192 % \subsubsection{Delimiters}
1195 \DeclareMathDelimiter{\lmoustache} % top from (, bottom from )
1196 {\mathopen}{largesymbols}{"7A}{largesymbols}{"40}
1197 \DeclareMathDelimiter{\rmoustache} % top from ), bottom from (
1198 {\mathclose}{largesymbols}{"7B}{largesymbols}{"41}
1199 \DeclareMathDelimiter{\arrowvert} % arrow without arrowheads
1200 {\mathord}{symbols}{"6A}{largesymbols}{"3C}
1201 \DeclareMathDelimiter{\Arrowvert} % double arrow without arrowheads
1202 {\mathord}{symbols}{"6B}{largesymbols}{"3D}
1203 \DeclareMathDelimiter{\Vert}
1204 {\mathord}{symbols}{"6B}{largesymbols}{"0D}
1206 \DeclareMathDelimiter{\vert}
1207 {\mathord}{symbols}{"6A}{largesymbols}{"0C}
1208 \DeclareMathDelimiter{\uparrow}
1209 {\mathrel}{symbols}{"22}{largesymbols}{"78}
1210 \DeclareMathDelimiter{\downarrow}
1211 {\mathrel}{symbols}{"23}{largesymbols}{"79}
1212 \DeclareMathDelimiter{\updownarrow}
1213 {\mathrel}{symbols}{"6C}{largesymbols}{"3F}
1214 \DeclareMathDelimiter{\Uparrow}
1215 {\mathrel}{symbols}{"2A}{largesymbols}{"7E}
1216 \DeclareMathDelimiter{\Downarrow}
1217 {\mathrel}{symbols}{"2B}{largesymbols}{"7F}
1218 \DeclareMathDelimiter{\Updownarrow}
1219 {\mathrel}{symbols}{"6D}{largesymbols}{"77}
1220 \DeclareMathDelimiter{\backslash} % for double coset G\backslash H
1221 {\mathord}{symbols}{"6E}{largesymbols}{"0F}
1222 \DeclareMathDelimiter{\rangle}
1223 {\mathclose}{symbols}{"69}{largesymbols}{"0B}
1224 \DeclareMathDelimiter{\langle}
1225 {\mathopen}{symbols}{"68}{largesymbols}{"0A}
1226 \DeclareMathDelimiter{\rbrace}
1227 {\mathclose}{symbols}{"67}{largesymbols}{"09}
1228 \DeclareMathDelimiter{\lbrace}
1229 {\mathopen}{symbols}{"66}{largesymbols}{"08}
1230 \DeclareMathDelimiter{\rceil}
1231 {\mathclose}{symbols}{"65}{largesymbols}{"07}
1232 \DeclareMathDelimiter{\lceil}
1233 {\mathopen}{symbols}{"64}{largesymbols}{"06}
1234 \DeclareMathDelimiter{\rfloor}
1235 {\mathclose}{symbols}{"63}{largesymbols}{"05}
1236 \DeclareMathDelimiter{\lfloor}
1237 {\mathopen}{symbols}{"62}{largesymbols}{"04}
1240 % \begin{macro}{\lgroup}
1241 % \begin{macro}{\rgroup}
1242 % \begin{macro}{\bracevert}
1243 % There are three plain \TeX{} delimiters which are not fully
1244 % supported by NFSS, since they partly point into a bold cmr font.
1245 % Allocating a full symbol font, just to have three delimiters
1246 % seems a bit too much given the limited space available. For this
1247 % reason only the extensible sizes are supported. If this is not
1248 % desired one can use, without losing portability, define |\mathbf|
1249 % and |\mathtt| as font symbol alphabet (setting up
1250 % \texttt{cmr/bx/n} and \texttt{cmtt/m/n} as symbol fonts first)
1251 % and modify the delimiter declarations to point with their
1252 % small variant to those symbol fonts. (This is done in
1253 % \texttt{oldlfont.dtx} so look there for examples.)
1255 \DeclareMathDelimiter{\lgroup} % extensible ( with sharper tips
1256 {\mathopen}{largesymbols}{"3A}{largesymbols}{"3A}
1257 \DeclareMathDelimiter{\rgroup} % extensible ) with sharper tips
1258 {\mathclose}{largesymbols}{"3B}{largesymbols}{"3B}
1259 \DeclareMathDelimiter{\bracevert} % the vertical bar that extends braces
1260 {\mathord}{largesymbols}{"3E}{largesymbols}{"3E}
1266 % \subsection{Math versions of text commands}
1268 % \changes{v2.2k}{1995/06/05}{Moved math commands from ltoutenc.dtx.}
1270 % The |\mathunderscore| here is really a text definition, so it has
1271 % been put back into |ltoutenc.dtx| (by Chris, 30/04/97) and should
1272 % be removed from here.
1274 % These symbols are the math versions of text commands such as |\P|,
1276 % \begin{macro}{\mathparagraph}
1277 % \changes{v2.2q}{1997/01/08}
1278 % {Define using \cs{DeclareMathSymbol}}
1279 % \begin{macro}{\mathsection}
1280 % \begin{macro}{\mathdollar}
1281 % \begin{macro}{\mathsterling}
1282 % \begin{macro}{\mathunderscore}
1283 % These math symbols are not in plain \TeX.
1285 \DeclareMathSymbol{\mathparagraph}{\mathord}{symbols}{"7B}
1286 \DeclareMathSymbol{\mathsection}{\mathord}{symbols}{"78}
1287 \DeclareMathSymbol{\mathdollar}{\mathord}{operators}{"24}
1291 \def\mathsterling{\mathit{\mathchar"7024}}
1292 \def\mathunderscore{\kern.06em\vbox{\hrule\@width.3em}}
1300 % \begin{macro}{\mathellipsis}
1301 % This is plain \TeX's |\ldots|.
1303 \def\mathellipsis{\mathinner{\ldotp\ldotp\ldotp}}%
1307 % \subsection{Other special functions and parameters}
1309 % \subsubsection{Biggggg}
1312 \def\big#1{{\hbox{$\left#1\vbox to8.5\p@{}\right.\n@space$}}}
1313 \def\Big#1{{\hbox{$\left#1\vbox to11.5\p@{}\right.\n@space$}}}
1314 \def\bigg#1{{\hbox{$\left#1\vbox to14.5\p@{}\right.\n@space$}}}
1315 \def\Bigg#1{{\hbox{$\left#1\vbox to17.5\p@{}\right.\n@space$}}}
1316 \def\n@space{\nulldelimiterspace\z@ \m@th}
1321 % \subsubsection{The log-like functions}
1323 % \begin{macro}{\operator@font}
1324 % The |\operator@font| determines the symbol font used for log-like
1327 \def\operator@font{\mathgroup\symoperators}
1332 % \subsubsection{Parameters}
1336 \medmuskip=4mu plus 2mu minus 4mu
1337 \thickmuskip=5mu plus 5mu
1341 % This finishes the low-level setup in \texttt{fontmath.ltx}.
1347 % \section{Default cfg files}
1349 % We provide default \texttt{cfg} files here to ensure that
1350 % on installations that search large file trees we do not pick up
1351 % some strange customisation files from somewhere.
1352 % \changes{v2.2y}{2001/06/02}{Provide default cfg files (pr/3264)}
1354 %<*cfgtext|cfgmath|cfgprel>
1358 %% Load the standard setup:
1360 %<+cfgtext>\input{fonttext.ltx}
1361 %<+cfgmath>\input{fontmath.ltx}
1362 %<+cfgprel>\input{preload.ltx}
1364 %% Small changes could go here; see documentation in cfgguide.tex for
1365 %% allowed modifications.
1367 %% In particular it is not allowed to misuse this configuration file
1368 %% to modify internal LaTeX commands!
1370 %% If you use this file as the basis for configuration please change
1371 %% the \ProvidesFile lines to clearly identify your modification, e.g.,
1373 %<+cfgtext>%% \ProvidesFile{fonttext.cfg}[2001/06/01
1374 %<+cfgmath>%% \ProvidesFile{fonttext.cfg}[2001/06/01
1375 %<+cfgprel>%% \ProvidesFile{preload.cfg}[2001/06/01
1376 %% Customised local font setup]
1379 %</cfgtext|cfgmath|cfgprel>