summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/psnfssx
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/psnfssx
Initial commit
Diffstat (limited to 'macros/latex/contrib/psnfssx')
-rw-r--r--macros/latex/contrib/psnfssx/8r/8r.sty151
-rw-r--r--macros/latex/contrib/psnfssx/adobe/adobe.dtx96
-rw-r--r--macros/latex/contrib/psnfssx/adobe/adobe.ins38
-rw-r--r--macros/latex/contrib/psnfssx/em/em.fdd994
-rw-r--r--macros/latex/contrib/psnfssx/em/em.ins110
-rw-r--r--macros/latex/contrib/psnfssx/em/em.sty619
-rw-r--r--macros/latex/contrib/psnfssx/em/em.txt241
-rw-r--r--macros/latex/contrib/psnfssx/hvmath/hvmaths.dtx495
-rw-r--r--macros/latex/contrib/psnfssx/hvmath/hvmaths.ins7
-rw-r--r--macros/latex/contrib/psnfssx/hvmath/hvmaths.txt105
-rw-r--r--macros/latex/contrib/psnfssx/lucidabr/Makefile24
-rw-r--r--macros/latex/contrib/psnfssx/lucidabr/README29
-rw-r--r--macros/latex/contrib/psnfssx/lucidabr/README.TUG148
-rw-r--r--macros/latex/contrib/psnfssx/lucidabr/lucida-amsmath.pdfbin0 -> 220287 bytes
-rw-r--r--macros/latex/contrib/psnfssx/lucidabr/lucida-amsmath.tex2334
-rw-r--r--macros/latex/contrib/psnfssx/lucidabr/lucida-oneline-samples.tex86
-rw-r--r--macros/latex/contrib/psnfssx/lucidabr/lucida-sample.pdfbin0 -> 393399 bytes
-rw-r--r--macros/latex/contrib/psnfssx/lucidabr/lucida-sample.tex303
-rw-r--r--macros/latex/contrib/psnfssx/lucidabr/lucidabr.dtx1323
-rw-r--r--macros/latex/contrib/psnfssx/lucidabr/lucidabr.fdd316
-rw-r--r--macros/latex/contrib/psnfssx/lucidabr/lucidabr.ins75
-rw-r--r--macros/latex/contrib/psnfssx/lucidabr/lucidabr.pdfbin0 -> 168099 bytes
-rw-r--r--macros/latex/contrib/psnfssx/lucidabr/manifest.txt16
l---------macros/latex/contrib/psnfssx/ly11
-rw-r--r--macros/latex/contrib/psnfssx/mathtime/mathtime.dtx1187
-rw-r--r--macros/latex/contrib/psnfssx/mathtime/mathtime.ins84
-rw-r--r--macros/latex/contrib/psnfssx/mathtime/mathtime.txt74
-rw-r--r--macros/latex/contrib/psnfssx/mathtime/mtfonts.fdd260
-rw-r--r--macros/latex/contrib/psnfssx/tmmath/tmmaths.dtx366
-rw-r--r--macros/latex/contrib/psnfssx/tmmath/tmmaths.ins6
-rw-r--r--macros/latex/contrib/psnfssx/tmmath/tmmaths.txt100
31 files changed, 9588 insertions, 0 deletions
diff --git a/macros/latex/contrib/psnfssx/8r/8r.sty b/macros/latex/contrib/psnfssx/8r/8r.sty
new file mode 100644
index 0000000000..d4021f67e8
--- /dev/null
+++ b/macros/latex/contrib/psnfssx/8r/8r.sty
@@ -0,0 +1,151 @@
+% A \LaTeXe\ encoding file for use with standard raw PostScript fonts;
+% normally these will be used as the base of virtual fonts which produce
+% T1 or OT1 encoding; but for faster performance or on systems which
+% don't support virtual fonts, the encoding can be used directly. It has
+% the disadvantage that the full T1 encoding is not available, but this
+% may not matter for simple languages.
+%
+% THIS STYLE IS TOTALLY UNSUPPORTED AND NOT RECOMMENDED BY THE
+% LATEX DEVELOPMENT TEAM.
+%
+% It needs a lccode/uccode table
+%
+\ProvidesFile{8r.sty}[1995/03/12. [UNSUPPORTED!] TeXBase1Encoding in LaTeX. SPQR]
+\DeclareFontEncoding{8r}{}{}
+\DeclareFontSubstitution{8r}{ptm}{m}{n}
+\def\texbase@@undeclared#1{%
+ \typeout{!!!! WARNING!!! #1 is not available in the 8r encoding}%
+}
+\DeclareFontEncoding{8r}{}{}
+\DeclareTextAccent{\`}{8r}{30} %grave
+\DeclareTextAccent{\'}{8r}{180} %acute
+\DeclareTextAccent{\^}{8r}{136} %circumflex
+\DeclareTextAccent{\~}{8r}{152} %tilde
+\DeclareTextAccent{\"}{8r}{168} %dieresis
+\DeclareTextAccent{\H}{8r}{05} %hungarumlaut
+\DeclareTextAccent{\r}{8r}{09} %ring
+\DeclareTextAccent{\v}{8r}{16} %caron
+\DeclareTextAccent{\u}{8r}{11} %breve
+\DeclareTextAccent{\=}{8r}{175} %macron
+\DeclareTextAccent{\.}{8r}{01} %dotaccent
+\DeclareTextCommand{\b}{8r}[1] %bar under
+ {\oalign{\null#1\crcr\hidewidth\sh@ft{29}%
+ \vbox to.2ex{\hbox{\char175}\vss}\hidewidth}}
+\DeclareTextCommand{\c}{8r}[1]
+ {\setbox\z@\hbox{#1}\ifdim\ht\z@=1ex\accent184 #1%
+ \else{\ooalign{\hidewidth\char184\hidewidth
+ \crcr\unhbox\z@}}\fi}
+\DeclareTextCommand{\d}{8r}[1] % dot under
+ {\oalign{\null#1\crcr\hidewidth\sh@ft{08}.\hidewidth}}
+\DeclareTextCommand{\k}{8r}[1]
+ {\oalign{#1\crcr\hidewidth\char8}} % ogonek
+\DeclareTextSymbol{\AA}{8r}{197} %Aring
+\DeclareTextSymbol{\AE}{8r}{198} %AE
+\DeclareTextSymbol{\DH}{8r}{208} %Eth
+\DeclareTextSymbol{\DJ}{8r}{208} %Eth
+\DeclareTextSymbol{\L}{8r}{6} %Lslash
+\def\NG{\texbase@@undeclared{Eng}} %Eng
+\DeclareTextSymbol{\OE}{8r}{140} %OE
+\DeclareTextSymbol{\O}{8r}{216} %Oslash
+\DeclareTextCommand{\SS}{8r}{SS}
+\DeclareTextSymbol{\TH}{8r}{222} %Thorn
+\DeclareTextSymbol{\aa}{8r}{229} %aring
+\DeclareTextSymbol{\ae}{8r}{230} %ae
+\DeclareTextSymbol{\dh}{8r}{240} %eth
+\def\dj{\texbase@@undeclared{dbar}}
+\DeclareTextSymbol{\guillemotleft}{8r}{171} %guillemotleft
+\DeclareTextSymbol{\guillemotright}{8r}{187} %guillemotright
+\DeclareTextSymbol{\guilsinglleft}{8r}{139} %guilsinglleft
+\DeclareTextSymbol{\guilsinglright}{8r}{155} %guilsinglright
+\DeclareTextSymbol{\i}{8r}{17} %dotlessi
+\DeclareTextSymbol{\j}{8r}{18} %dotlessj
+\DeclareTextSymbol{\l}{8r}{7} %lslash
+\def\ng{\texbase@@undeclared{eng}} %eng
+\DeclareTextSymbol{\oe}{8r}{156} %oe
+\DeclareTextSymbol{\o}{8r}{248} %oslash
+\DeclareTextSymbol{\quotedblbase}{8r}{132} %quotedblbase
+\DeclareTextSymbol{\quotesinglbase}{8r}{130} %quotesinglbase
+\DeclareTextSymbol{\ss}{8r}{223} %germandbls
+\DeclareTextSymbol{\textbraceleft}{8r}{`\{}
+\DeclareTextSymbol{\textbraceright}{8r}{`\}}
+\def\textcompwordmark{\texbase@@undeclared{compoundwordmark}}
+\DeclareTextSymbol{\textdollar}{8r}{`\$}
+\DeclareTextSymbol{\textemdash}{8r}{151} %emdash
+\DeclareTextSymbol{\textendash}{8r}{150} %endash
+\DeclareTextSymbol{\textexclamdown}{8r}{161} %exclamdown
+\DeclareTextSymbol{\textquestiondown}{8r}{191} %questiondown
+\DeclareTextSymbol{\textquotedblleft}{8r}{147} %quotedblleft
+\DeclareTextSymbol{\textquotedblright}{8r}{148} %quotedblright
+\DeclareTextSymbol{\textquotedbl}{8r}{34}
+\DeclareTextSymbol{\textquotesingle}{8r}{31}
+\DeclareTextSymbol{\textquoteleft}{8r}{39}
+\DeclareTextSymbol{\textquoteright}{8r}{96}
+\DeclareTextSymbol{\textsection}{8r}{167} %section
+\DeclareTextSymbol{\textsterling}{8r}{163} %sterling
+\DeclareTextSymbol{\textunderscore}{8r}{95} %underscore
+\def\textvisiblespace{\texbase@@undeclared{visiblespace}}
+\DeclareTextSymbol{\th}{8r}{254} %thorn
+\DeclareTextComposite{\.}{8r}{i}{`\i}
+\DeclareTextComposite{\v}{8r}{S}{138} %Scaron
+\DeclareTextComposite{\"}{8r}{Y}{159} %Ydieresis
+\DeclareTextComposite{\v}{8r}{Z}{11} %Zcaron
+\DeclareTextComposite{\v}{8r}{s}{154} %scaron
+\DeclareTextComposite{\"}{8r}{y}{255} %ydieresis
+\DeclareTextComposite{\v}{8r}{z}{12} %zcaron
+\DeclareTextComposite{\`}{8r}{A}{192} %Agrave
+\DeclareTextComposite{\'}{8r}{A}{193} %Aacute
+\DeclareTextComposite{\^}{8r}{A}{194} %Acircumflex
+\DeclareTextComposite{\~}{8r}{A}{195} %Atilde
+\DeclareTextComposite{\"}{8r}{A}{196} %Adieresis
+\DeclareTextComposite{\r}{8r}{A}{197} %Aring
+\DeclareTextComposite{\c}{8r}{C}{199} %Ccedilla
+\DeclareTextComposite{\`}{8r}{E}{200} %Egrave
+\DeclareTextComposite{\'}{8r}{E}{201} %Eacute
+\DeclareTextComposite{\^}{8r}{E}{202} %Ecircumflex
+\DeclareTextComposite{\"}{8r}{E}{203} %Edieresis
+\DeclareTextComposite{\`}{8r}{I}{204} %Igrave
+\DeclareTextComposite{\'}{8r}{I}{205} %Iacute
+\DeclareTextComposite{\^}{8r}{I}{206} %Icircumflex
+\DeclareTextComposite{\"}{8r}{I}{207} %Idieresis
+\DeclareTextComposite{\~}{8r}{N}{209} %Ntilde
+\DeclareTextComposite{\`}{8r}{O}{210} %Ograve
+\DeclareTextComposite{\'}{8r}{O}{211} %Oacute
+\DeclareTextComposite{\^}{8r}{O}{212} %Ocircumflex
+\DeclareTextComposite{\~}{8r}{O}{213} %Otilde
+\DeclareTextComposite{\"}{8r}{O}{214} %Odieresis
+\DeclareTextComposite{\`}{8r}{U}{217} %Ugrave
+\DeclareTextComposite{\'}{8r}{U}{218} %Uacute
+\DeclareTextComposite{\^}{8r}{U}{219} %Ucircumflex
+\DeclareTextComposite{\"}{8r}{U}{220} %Udieresis
+\DeclareTextComposite{\'}{8r}{Y}{221} %Yacute
+\DeclareTextComposite{\`}{8r}{a}{224} %agrave
+\DeclareTextComposite{\'}{8r}{a}{225} %aacute
+\DeclareTextComposite{\^}{8r}{a}{226} %acircumflex
+\DeclareTextComposite{\~}{8r}{a}{227} %atilde
+\DeclareTextComposite{\"}{8r}{a}{228} %adieresis
+\DeclareTextComposite{\r}{8r}{a}{229} %aring
+\DeclareTextComposite{\c}{8r}{c}{231} %ccedilla
+\DeclareTextComposite{\`}{8r}{e}{232} %egrave
+\DeclareTextComposite{\'}{8r}{e}{233} %eacute
+\DeclareTextComposite{\^}{8r}{e}{234} %ecircumflex
+\DeclareTextComposite{\"}{8r}{e}{235} %edieresis
+\DeclareTextComposite{\`}{8r}{i}{236} %igrave
+\DeclareTextComposite{\`}{8r}{\i}{236} %igrave
+\DeclareTextComposite{\'}{8r}{i}{237} %iacute
+\DeclareTextComposite{\'}{8r}{\i}{237} %iacute
+\DeclareTextComposite{\^}{8r}{i}{238} %icircumflex
+\DeclareTextComposite{\^}{8r}{\i}{238} %icircumflex
+\DeclareTextComposite{\"}{8r}{i}{239} %idieresis
+\DeclareTextComposite{\"}{8r}{\i}{239} %idieresis
+\DeclareTextComposite{\~}{8r}{n}{241} %ntilde
+\DeclareTextComposite{\`}{8r}{o}{242} %ograve
+\DeclareTextComposite{\'}{8r}{o}{243} %oacute
+\DeclareTextComposite{\^}{8r}{o}{244} %ocircumflex
+\DeclareTextComposite{\~}{8r}{o}{245} %otilde
+\DeclareTextComposite{\"}{8r}{o}{246} %odieresis
+\DeclareTextComposite{\`}{8r}{u}{249} %ugrave
+\DeclareTextComposite{\'}{8r}{u}{250} %uacute
+\DeclareTextComposite{\^}{8r}{u}{251} %ucircumflex
+\DeclareTextComposite{\"}{8r}{u}{252} %udieresis
+\DeclareTextComposite{\'}{8r}{y}{253} %yacute
+\endinput
diff --git a/macros/latex/contrib/psnfssx/adobe/adobe.dtx b/macros/latex/contrib/psnfssx/adobe/adobe.dtx
new file mode 100644
index 0000000000..d1ec7f764d
--- /dev/null
+++ b/macros/latex/contrib/psnfssx/adobe/adobe.dtx
@@ -0,0 +1,96 @@
+% \CheckSum{16}
+%
+% \iffalse
+%
+% Copyright 1995--2001 Sebastian Rahtz
+% This file may be distributed under the terms of the LaTeX Project Public
+% License, as described in lppl.txt in the base LaTeX distribution.
+% Either version 1.0 or, at your option, any later version.
+%
+% \fi
+%
+%\iffalse
+%<*dtx>
+\ProvidesFile{adobe.dtx}
+%</dtx>
+%<garamond>\ProvidesPackage{garamond}
+%<basker>\ProvidesPackage{basker}
+%<mtimes>\ProvidesPackage{mtimes}
+%<bembo>\ProvidesPackage{bembo}
+[2001/02/07 (SPQR)]
+%
+%<*driver>
+\documentclass{ltxdoc}
+\begin{document}
+ \DocInput{adobe.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \GetFileInfo{adobe.dtx}
+% \title{The \textsf{adobe} bundle}
+% \author{Sebastian Rahtz\\sebastian.rahtz@computing-services.oxford.ac.uk}
+% \date{\filedate}
+% \maketitle
+%
+% \noindent
+% This file contains suitable macro packages to load
+% certain non-standard Adobe PostScript fonts.
+% The font definition files and
+% font metrics are available with T1, TS1 and OT1 encodings in the companion
+% CTAN fonts/psfonts collection or can be generated using the
+% \textsf{fontinst} software.
+%
+%
+% \StopEventually{}
+%
+% \section{The \textsf{garamond} package}
+% \begin{macrocode}
+%<*garamond>
+\renewcommand{\rmdefault}{pgm}
+\renewcommand{\sfdefault}{pop}
+\renewcommand{\ttdefault}{pcr}
+%</garamond>
+% \end{macrocode}
+%
+% \section{The \textsf{basker} package}
+% \begin{macrocode}
+%<*basker>
+\renewcommand{\rmdefault}{pnb}
+%</basker>
+% \end{macrocode}
+%
+% \section{The \textsf{mtimes} package}
+% \begin{macrocode}
+%<*mtimes>
+\renewcommand{\rmdefault}{mnt}
+%</mtimes>
+% \end{macrocode}
+%
+% \section{The \textsf{bembo} package}
+% \begin{macrocode}
+%<*bembo>
+\renewcommand{\rmdefault}{pbb}
+\renewcommand{\sfdefault}{pop}
+\renewcommand{\ttdefault}{pcr}
+%</bembo>
+% \end{macrocode}
+% \Finale
+%
+\endinput
+%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
diff --git a/macros/latex/contrib/psnfssx/adobe/adobe.ins b/macros/latex/contrib/psnfssx/adobe/adobe.ins
new file mode 100644
index 0000000000..9a979c7b12
--- /dev/null
+++ b/macros/latex/contrib/psnfssx/adobe/adobe.ins
@@ -0,0 +1,38 @@
+% file: adobe.ins
+% Copyright 1995--2001 Sebastian Rahtz
+
+%\NeedsTeXFormat{LaTeX2e}[1996/12/01]
+\input docstrip
+%\usedir{tex/latex/psnfss}
+\keepsilent
+
+\preamble
+
+Copyright (C) 1995--2001 Sebastian Rahtz
+All rights reserved.
+
+This is a generated file. Permission is granted to to customize the
+declarations in this file to serve the needs of your installation.
+However, no permission is granted to distribute a modified version of
+this file under its original name.
+
+\endpreamble
+
+\generate{\file{garamond.sty}{\from{adobe.dtx}{garamond}}
+ \file{basker.sty} {\from{adobe.dtx}{basker}}
+ \file{mtimes.sty} {\from{adobe.dtx}{mtimes}}
+ \file{bembo.sty} {\from{adobe.dtx}{bembo}}
+}
+
+\ifToplevel{
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* files into a directory searched by TeX:}
+\Msg{*}
+\Msg{* \space\space All *.sty}
+\Msg{*}
+\Msg{***********************************************************}
+}
+
+\endbatchfile
diff --git a/macros/latex/contrib/psnfssx/em/em.fdd b/macros/latex/contrib/psnfssx/em/em.fdd
new file mode 100644
index 0000000000..35bde017ab
--- /dev/null
+++ b/macros/latex/contrib/psnfssx/em/em.fdd
@@ -0,0 +1,994 @@
+% \iffalse
+%
+%% EM package for LaTeX
+%%
+%% Copyright 1997 Y&Y, Inc.
+%%
+%% Modified to also cover LM1 (Textures) encoding 1997/Dec/05
+%%
+%
+%<*driver>
+\documentclass{ltxdoc}
+\begin{document}
+ \DocInput{em.fdd}
+\end{document}
+%</driver>
+% \fi
+%
+% \begin{macrocode}
+%<*package>
+\ProvidesPackage{em}
+%</package>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*T1>
+%<emr, >\ProvidesFile{t1cmr.fd}
+%<emss, >\ProvidesFile{t1cmss.fd}
+%<emtt, >\ProvidesFile{t1cmtt.fd}
+%<emfr, >\ProvidesFile{t1cmfr.fd}
+%<emdh, >\ProvidesFile{t1cmdh.fd}
+%<emfib, >\ProvidesFile{t1cmfib.fd}
+%</T1>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*LY1>
+%<emr, >\ProvidesFile{ly1cmr.fd}
+%<emss, >\ProvidesFile{ly1cmss.fd}
+%<emtt, >\ProvidesFile{ly1cmtt.fd}
+%<emfr, >\ProvidesFile{ly1cmfr.fd}
+%<emdh, >\ProvidesFile{ly1cmdh.fd}
+%<emfib, >\ProvidesFile{ly1cmfib.fd}
+%</LY1>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*LM1>
+%<emr, >\ProvidesFile{lm1cmr.fd}
+%<emss, >\ProvidesFile{lm1cmss.fd}
+%<emtt, >\ProvidesFile{lm1cmtt.fd}
+%<emfr, >\ProvidesFile{lm1cmfr.fd}
+%<emdh, >\ProvidesFile{lm1cmdh.fd}
+%<emfib, >\ProvidesFile{lm1cmfib.fd}
+%</LM1>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*OML>
+%<emm, >\ProvidesFile{omlcmm.fd}
+%<cmr, >\ProvidesFile{omlcmr.fd}
+%</OML>
+%<*OMS>
+%<cmsy, >\ProvidesFile{omscmsy.fd}
+%<cmr, >\ProvidesFile{omscmr.fd}
+%</OMS>
+%<*OMX>
+%<cmex, >\ProvidesFile{omxcmex.fd}
+%</OMX>
+%<*U>
+%<lasy, >\ProvidesFile{ulasy.fd}
+%<msa, >\ProvidesFile{umsa.fd}
+%<msb, >\ProvidesFile{umsb.fd}
+%<euex, >\ProvidesFile{ueuex.fd}
+%<euf, >\ProvidesFile{ueuf.fd}
+%<eur, >\ProvidesFile{ueur.fd}
+%<eus, >\ProvidesFile{ueus.fd}
+%</U>
+% \end{macrocode}
+%
+% \begin{macrocode}
+% [1997/08/05 v0.05 Y&Y EM font definitions (BKPH,DPC)]
+% [1997/12/05 v0.06 Y&Y EM font definitions T1, LY1, LM1 (BKPH,DPC)]
+ [2000/02/20 v0.07 Y&Y EM font definitions T1, LY1, LM1 (BKPH,DPC)]
+% \end{macrocode}
+%
+% Options to control the encoding used.
+% \begin{macrocode}
+%<*package>
+\edef\operator@encoding{\encodingdefault}
+\DeclareOption{T1}{\def\operator@encoding{T1}}
+\DeclareOption{LY1}{\def\operator@encoding{LY1}}
+\DeclareOption{LM1}{\def\operator@encoding{LM1}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\ProcessOptions
+% \end{macrocode}
+%
+% Call fontenc to set up the encoding for \LaTeX.
+% \begin{macrocode}
+\RequirePackage[\operator@encoding]{fontenc}
+% \end{macrocode}
+%
+% Either at the line above, or in an earlier |\usepackage| the
+% default font may have been already loaded. As we haven't
+% given the new font shape declarations yet, want to forget about
+% that font, so it will be looked up again with the new settings.
+% \begin{macrocode}
+\expandafter\let
+ \csname \operator@encoding/cmr/m/n/10\endcsname\@undefined
+% \end{macrocode}
+%
+% `fd' code done in a group with white space ignored, for
+% a minor efficiency saving (otherwise each command individually
+% turns on ignoring white space).
+% \begin{macrocode}
+\begingroup
+\nfss@catcodes
+% \end{macrocode}
+%
+% First the T1 encoding.
+% \begin{macrocode}
+\def\@tempa{T1}
+\ifx\operator@encoding\@tempa
+% \end{macrocode}
+%
+% Make the default hyphenchar 127, if you want the old one
+% set the default back to 45.
+% \begin{macrocode}
+\global\defaulthyphenchar=127
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</package>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*package,T1>
+%<*package,emr>
+\DeclareFontFamily{T1}{cmr}{}
+\DeclareFontShape{T1}{cmr}{m}{n}{
+ <-6> emr5
+ <6-7> emr6
+ <7-8> emr7
+ <8-9> emr8
+ <9-10> emr9
+ <10-12> emr10
+ <12-17> emr12
+ <17-> emr17
+ }{}
+\DeclareFontShape{T1}{cmr}{m}{sl}{
+ <-9> emsl8
+ <9-10> emsl9
+ <10-12> emsl10
+ <12-> emsl12
+ }{}
+\DeclareFontShape{T1}{cmr}{m}{it}{
+ <-8> emti7
+ <8-9> emti8
+ <9-10> emti9
+ <10-12> emti10
+ <12-> emti12
+ }{}
+\DeclareFontShape{T1}{cmr}{m}{sc}{
+ <-9> emcsc8
+ <9-10> emcsc9
+ <10-> emcsc10
+ }{}
+\DeclareFontShape{T1}{cmr}{m}{ui}{
+ <-> emu10
+ }{}
+\DeclareFontShape{T1}{cmr}{b}{n}{
+ <-> emb10
+ }{}
+\DeclareFontShape{T1}{cmr}{bx}{n}{
+ <-6> embx5
+ <6-7> embx6
+ <7-8> embx7
+ <8-9> embx8
+ <9-10> embx9
+ <10-12> embx10
+ <12-> embx12
+ }{}
+\DeclareFontShape{T1}{cmr}{bx}{sl}{
+ <-> embxsl10
+ }{}
+\DeclareFontShape{T1}{cmr}{bx}{it}{
+ <-> embxti10
+ }{}
+\DeclareFontShape{T1}{cmr}{bx}{ui}
+ {<->ssub * cmr/m/ui}{}
+%</package,emr>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*package,emss>
+\DeclareFontFamily{T1}{cmss}{}
+\DeclareFontShape{T1}{cmss}{m}{n}{
+ <-9> emss8
+ <9-10> emss9
+ <10-12> emss10
+ <12-17> emss12
+ <17-> emss17
+ }{}
+\DeclareFontShape{T1}{cmss}{m}{it}
+ {<->sub * cmss/m/sl}{}
+\DeclareFontShape{T1}{cmss}{m}{sl}{
+ <-9> emssi8
+ <9-10> emssi9
+ <10-12> emssi10
+ <12-17> emssi12
+ <17-> emssi17
+ }{}
+\DeclareFontShape{T1}{cmss}{m}{sc}
+ {<->sub * cmr/m/sc}{}
+\DeclareFontShape{T1}{cmss}{m}{ui}
+ {<->sub * cmr/m/ui}{}
+\DeclareFontShape{T1}{cmss}{sbc}{n}{
+ <-> emssdc10
+ }{}
+\DeclareFontShape{T1}{cmss}{bx}{n}{
+ <-> emssbx10
+ }{}
+\DeclareFontShape{T1}{cmss}{bx}{ui}
+ {<->sub * cmr/bx/ui}{}
+%</package,emss>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*package,emtt>
+\DeclareFontFamily{T1}{cmtt}{\hyphenchar \font\m@ne}
+\DeclareFontShape{T1}{cmtt}{m}{n}{
+ <-9> emtt8
+ <9-10> emtt9
+ <10-12> emtt10
+ <12-> emtt12
+ }{}
+\DeclareFontShape{T1}{cmtt}{m}{it}{
+ <-> emitt10
+ }{}
+\DeclareFontShape{T1}{cmtt}{m}{sl}{
+ <-> emsltt10
+ }{}
+\DeclareFontShape{T1}{cmtt}{m}{sc}{
+ <-> emtcsc10
+ }{}
+\DeclareFontShape{T1}{cmtt}{m}{ui}
+ {<->sub * cmtt/m/it}{}
+\DeclareFontShape{T1}{cmtt}{bx}{n}
+ {<->sub * cmtt/m/n}{}
+\DeclareFontShape{T1}{cmtt}{bx}{it}
+ {<->sub * cmtt/m/it}{}
+\DeclareFontShape{T1}{cmtt}{bx}{ui}
+ {<->sub * cmtt/m/it}{}
+%</package,emtt>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*package,emfr>
+\DeclareFontFamily{T1}{cmfr}{}
+\DeclareFontShape{T1}{cmfr}{m}{n}{%
+ <-> emff10
+ }{}
+\DeclareFontShape{T1}{cmfr}{m}{it}{
+ <-> emfi10
+ }{}
+%</package,emfr>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*package,emdh>
+\DeclareFontFamily{T1}{cmdh}{}
+\DeclareFontShape{T1}{cmdh}{m}{n}{
+ <-> emdunh10
+ }{}
+%</package,emdh>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*package,emfib>
+\DeclareFontFamily{T1}{cmfib}{}
+\DeclareFontShape{T1}{cmfib}{m}{n}{
+ <-> emfib8
+ }{}
+%</package,emfib>
+%</package,T1>
+% \end{macrocode}
+%
+% End the T1 code, and now the LY1 encoding case.
+% \begin{macrocode}
+%<*package>
+\fi
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\@tempa{LY1}
+\ifx\operator@encoding\@tempa
+% \end{macrocode}
+%
+% Make the default hyphenchar 173, if you want the old one
+% set the default back to 45.
+% \begin{macrocode}
+\global\defaulthyphenchar=173
+%</package>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*package,LY1>
+%<*package,emr>
+\DeclareFontFamily{LY1}{cmr}{}
+\DeclareFontShape{LY1}{cmr}{m}{n}{
+ <-6> emr5
+ <6-7> emr6
+ <7-8> emr7
+ <8-9> emr8
+ <9-10> emr9
+ <10-12> emr10
+ <12-17> emr12
+ <17-> emr17
+ }{}
+\DeclareFontShape{LY1}{cmr}{m}{sl}{
+ <-9> emsl8
+ <9-10> emsl9
+ <10-12> emsl10
+ <12-> emsl12
+ }{}
+\DeclareFontShape{LY1}{cmr}{m}{it}{
+ <-8> emti7
+ <8-9> emti8
+ <9-10> emti9
+ <10-12> emti10
+ <12-> emti12
+ }{}
+\DeclareFontShape{LY1}{cmr}{m}{sc}{
+ <-9> emcsc8
+ <9-10> emcsc9
+ <10-> emcsc10
+ }{}
+\DeclareFontShape{LY1}{cmr}{m}{ui}{
+ <-> emu10
+ }{}
+\DeclareFontShape{LY1}{cmr}{b}{n}{
+ <-> emb10
+ }{}
+\DeclareFontShape{LY1}{cmr}{bx}{n}{
+ <-6> embx5
+ <6-7> embx6
+ <7-8> embx7
+ <8-9> embx8
+ <9-10> embx9
+ <10-12> embx10
+ <12-> embx12
+ }{}
+\DeclareFontShape{LY1}{cmr}{bx}{sl}{
+ <-> embxsl10
+ }{}
+\DeclareFontShape{LY1}{cmr}{bx}{it}{
+ <-> embxti10
+ }{}
+\DeclareFontShape{LY1}{cmr}{bx}{ui}
+ {<->ssub * cmr/m/ui}{}
+%</package,emr>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*package,emss>
+\DeclareFontFamily{LY1}{cmss}{}
+\DeclareFontShape{LY1}{cmss}{m}{n}{
+ <-9> emss8
+ <9-10> emss9
+ <10-12> emss10
+ <12-17> emss12
+ <17-> emss17
+ }{}
+\DeclareFontShape{LY1}{cmss}{m}{it}
+ {<->sub * cmss/m/sl}{}
+\DeclareFontShape{LY1}{cmss}{m}{sl}{
+ <-9> emssi8
+ <9-10> emssi9
+ <10-12> emssi10
+ <12-17> emssi12
+ <17-> emssi17
+ }{}
+\DeclareFontShape{LY1}{cmss}{m}{sc}
+ {<->sub * cmr/m/sc}{}
+\DeclareFontShape{LY1}{cmss}{m}{ui}
+ {<->sub * cmr/m/ui}{}
+\DeclareFontShape{LY1}{cmss}{sbc}{n}{
+ <-> emssdc10
+ }{}
+\DeclareFontShape{LY1}{cmss}{bx}{n}{
+ <-> emssbx10
+ }{}
+\DeclareFontShape{LY1}{cmss}{bx}{ui}
+ {<->sub * cmr/bx/ui}{}
+%</package,emss>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*package,emtt>
+\DeclareFontFamily{LY1}{cmtt}{\hyphenchar \font\m@ne}
+\DeclareFontShape{LY1}{cmtt}{m}{n}{
+ <-9> emtt8
+ <9-10> emtt9
+ <10-12> emtt10
+ <12-> emtt12
+ }{}
+\DeclareFontShape{LY1}{cmtt}{m}{it}{
+ <-> emitt10
+ }{}
+\DeclareFontShape{LY1}{cmtt}{m}{sl}{
+ <-> emsltt10
+ }{}
+\DeclareFontShape{LY1}{cmtt}{m}{sc}{
+ <-> emtcsc10
+ }{}
+\DeclareFontShape{LY1}{cmtt}{m}{ui}
+ {<->sub * cmtt/m/it}{}
+\DeclareFontShape{LY1}{cmtt}{bx}{n}
+ {<->sub * cmtt/m/n}{}
+\DeclareFontShape{LY1}{cmtt}{bx}{it}
+ {<->sub * cmtt/m/it}{}
+\DeclareFontShape{LY1}{cmtt}{bx}{ui}
+ {<->sub * cmtt/m/it}{}
+%</package,emtt>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*package,emfr>
+\DeclareFontFamily{LY1}{cmfr}{}
+\DeclareFontShape{LY1}{cmfr}{m}{n}{%
+ <-> emff10
+ }{}
+\DeclareFontShape{LY1}{cmfr}{m}{it}{
+ <-> emfi10
+ }{}
+%</package,emfr>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*package,emdh>
+\DeclareFontFamily{LY1}{cmdh}{}
+\DeclareFontShape{LY1}{cmdh}{m}{n}{
+ <-> emdunh10
+ }{}
+%</package,emdh>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*package,emfib>
+\DeclareFontFamily{LY1}{cmfib}{}
+\DeclareFontShape{LY1}{cmfib}{m}{n}{
+ <-> emfib8
+ }{}
+%</package,emfib>
+%</package,LY1>
+% \end{macrocode}
+%
+% End the LY1 code, and now the LM1 encoding case.
+% \begin{macrocode}
+%<*package>
+\fi
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\@tempa{LM1}
+\ifx\operator@encoding\@tempa
+% \end{macrocode}
+%
+% Make the default hyphenchar 45 (no sfthyphen available in LM1)
+% \begin{macrocode}
+\global\defaulthyphenchar=45
+%</package>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*package,LM1>
+%<*package,emr>
+\DeclareFontFamily{LM1}{cmr}{}
+\DeclareFontShape{LM1}{cmr}{m}{n}{
+ <-6> emr5
+ <6-7> emr6
+ <7-8> emr7
+ <8-9> emr8
+ <9-10> emr9
+ <10-12> emr10
+ <12-17> emr12
+ <17-> emr17
+ }{}
+\DeclareFontShape{LM1}{cmr}{m}{sl}{
+ <-9> emsl8
+ <9-10> emsl9
+ <10-12> emsl10
+ <12-> emsl12
+ }{}
+\DeclareFontShape{LM1}{cmr}{m}{it}{
+ <-8> emti7
+ <8-9> emti8
+ <9-10> emti9
+ <10-12> emti10
+ <12-> emti12
+ }{}
+\DeclareFontShape{LM1}{cmr}{m}{sc}{
+ <-9> emcsc8
+ <9-10> emcsc9
+ <10-> emcsc10
+ }{}
+\DeclareFontShape{LM1}{cmr}{m}{ui}{
+ <-> emu10
+ }{}
+\DeclareFontShape{LM1}{cmr}{b}{n}{
+ <-> emb10
+ }{}
+\DeclareFontShape{LM1}{cmr}{bx}{n}{
+ <-6> embx5
+ <6-7> embx6
+ <7-8> embx7
+ <8-9> embx8
+ <9-10> embx9
+ <10-12> embx10
+ <12-> embx12
+ }{}
+\DeclareFontShape{LM1}{cmr}{bx}{sl}{
+ <-> embxsl10
+ }{}
+\DeclareFontShape{LM1}{cmr}{bx}{it}{
+ <-> embxti10
+ }{}
+\DeclareFontShape{LM1}{cmr}{bx}{ui}
+ {<->ssub * cmr/m/ui}{}
+%</package,emr>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*package,emss>
+\DeclareFontFamily{LM1}{cmss}{}
+\DeclareFontShape{LM1}{cmss}{m}{n}{
+ <-9> emss8
+ <9-10> emss9
+ <10-12> emss10
+ <12-17> emss12
+ <17-> emss17
+ }{}
+\DeclareFontShape{LM1}{cmss}{m}{it}
+ {<->sub * cmss/m/sl}{}
+\DeclareFontShape{LM1}{cmss}{m}{sl}{
+ <-9> emssi8
+ <9-10> emssi9
+ <10-12> emssi10
+ <12-17> emssi12
+ <17-> emssi17
+ }{}
+\DeclareFontShape{LM1}{cmss}{m}{sc}
+ {<->sub * cmr/m/sc}{}
+\DeclareFontShape{LM1}{cmss}{m}{ui}
+ {<->sub * cmr/m/ui}{}
+\DeclareFontShape{LM1}{cmss}{sbc}{n}{
+ <-> emssdc10
+ }{}
+\DeclareFontShape{LM1}{cmss}{bx}{n}{
+ <-> emssbx10
+ }{}
+\DeclareFontShape{LM1}{cmss}{bx}{ui}
+ {<->sub * cmr/bx/ui}{}
+%</package,emss>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*package,emtt>
+\DeclareFontFamily{LM1}{cmtt}{\hyphenchar \font\m@ne}
+\DeclareFontShape{LM1}{cmtt}{m}{n}{
+ <-9> emtt8
+ <9-10> emtt9
+ <10-12> emtt10
+ <12-> emtt12
+ }{}
+\DeclareFontShape{LM1}{cmtt}{m}{it}{
+ <-> emitt10
+ }{}
+\DeclareFontShape{LM1}{cmtt}{m}{sl}{
+ <-> emsltt10
+ }{}
+\DeclareFontShape{LM1}{cmtt}{m}{sc}{
+ <-> emtcsc10
+ }{}
+\DeclareFontShape{LM1}{cmtt}{m}{ui}
+ {<->sub * cmtt/m/it}{}
+\DeclareFontShape{LM1}{cmtt}{bx}{n}
+ {<->sub * cmtt/m/n}{}
+\DeclareFontShape{LM1}{cmtt}{bx}{it}
+ {<->sub * cmtt/m/it}{}
+\DeclareFontShape{LM1}{cmtt}{bx}{ui}
+ {<->sub * cmtt/m/it}{}
+%</package,emtt>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*package,emfr>
+\DeclareFontFamily{LM1}{cmfr}{}
+\DeclareFontShape{LM1}{cmfr}{m}{n}{%
+ <-> emff10
+ }{}
+\DeclareFontShape{LM1}{cmfr}{m}{it}{
+ <-> emfi10
+ }{}
+%</package,emfr>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*package,emdh>
+\DeclareFontFamily{LM1}{cmdh}{}
+\DeclareFontShape{LM1}{cmdh}{m}{n}{
+ <-> emdunh10
+ }{}
+%</package,emdh>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*package,emfib>
+\DeclareFontFamily{LM1}{cmfib}{}
+\DeclareFontShape{LM1}{cmfib}{m}{n}{
+ <-> emfib8
+ }{}
+%</package,emfib>
+%</package,LM1>
+% \end{macrocode}
+%
+% End of LM1 case, and stub test for OT1.
+% \begin{macrocode}
+%<*package>
+\fi
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\@tempa{OT1}
+\ifx\operator@encoding\@tempa
+\PackageError{em}%
+{OT1\space encoding\space not\space useable\space with\space em.sty}%
+{Specify\space T1\space or\space LY1\space or\space LM1 option}%
+\fi
+%</package>
+% \end{macrocode}
+%
+% Now the fonts with fixed encodings (Math fonts and symbol fonts).
+%
+% \begin{macrocode}
+%<*package,emm>
+\DeclareFontFamily{OML}{cmm}{\skewchar\font127 }
+\DeclareFontShape{OML}{cmm}{m}{it}{
+ <-6> emmi5
+ <6-7> emmi6
+ <7-8> emmi7
+ <8-9> emmi8
+ <9-10> emmi9
+ <10-12> emmi10
+ <12-> emmi12
+ }{}
+\DeclareFontShape{OML}{cmm}{b}{it}{%
+ <-6> emmib5
+ <6-7> emmib6
+ <7-8> emmib7
+ <8-9> emmib8
+ <9-10> emmib9
+ <10-> emmib10
+ }{}
+\DeclareFontShape{OML}{cmm}{bx}{it}
+ {<-> ssub * cmm/b/it}{}
+%</package,emm>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*package,OML>
+%<*package,cmr>
+\DeclareFontFamily{OML}{cmr}{\skewchar\font127 }
+\DeclareFontShape{OML}{cmr}{m}{n}
+ {<-> ssub * cmm/m/it}{}
+\DeclareFontShape{OML}{cmr}{m}{it}
+ {<-> ssub * cmm/m/it}{}
+\DeclareFontShape{OML}{cmr}{m}{sl}
+ {<-> ssub * cmm/m/it}{}
+\DeclareFontShape{OML}{cmr}{m}{sc}
+ {<-> ssub * cmm/m/it}{}
+\DeclareFontShape{OML}{cmr}{bx}{n}
+ {<-> ssub * cmm/b/it}{}
+\DeclareFontShape{OML}{cmr}{bx}{it}
+ {<-> ssub * cmm/b/it}{}
+\DeclareFontShape{OML}{cmr}{bx}{sl}
+ {<-> ssub * cmm/b/it}{}
+\DeclareFontShape{OML}{cmr}{bx}{sc}
+ {<-> ssub * cmm/b/it}{}
+%</package,cmr>
+%</package,OML>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*package,OMS>
+%<*package,cmsy>
+\DeclareFontFamily{OMS}{cmsy}{\skewchar\font48 }
+\DeclareFontShape{OMS}{cmsy}{m}{n}{%
+ <-6> cmsy5
+ <6-7> cmsy6
+ <7-8> cmsy7
+ <8-9> cmsy8
+ <9-10> cmsy9
+ <10-> cmsy10
+ }{}
+\DeclareFontShape{OMS}{cmsy}{b}{n}{%
+%<*ams&!extra>
+ <-7> cmbsy5
+ <7-10> cmbsy7
+ <10-> cmbsy10
+%</ams&!extra>
+%<*ams&extra>
+ <-6> cmbsy5
+ <6-7> cmbsy6
+ <7-8> cmbsy7
+ <8-9> cmbsy8
+ <9-10> cmbsy9
+ <10-> cmbsy10
+%</ams&extra>
+%<!ams> <-> cmbsy10
+ }{}
+%</package,cmsy>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*package,cmr>
+\DeclareFontFamily{OMS}{cmr}{\skewchar\font48 }
+\DeclareFontShape{OMS}{cmr}{m}{n}
+ {<-> ssub * cmsy/m/n}{}
+\DeclareFontShape{OMS}{cmr}{m}{it}
+ {<-> ssub * cmsy/m/n}{}
+\DeclareFontShape{OMS}{cmr}{m}{sl}
+ {<-> ssub * cmsy/m/n}{}
+\DeclareFontShape{OMS}{cmr}{m}{sc}
+ {<-> ssub * cmsy/m/n}{}
+\DeclareFontShape{OMS}{cmr}{bx}{n}
+ {<-> ssub * cmsy/b/n}{}
+\DeclareFontShape{OMS}{cmr}{bx}{it}
+ {<-> ssub * cmsy/b/n}{}
+\DeclareFontShape{OMS}{cmr}{bx}{sl}
+ {<-> ssub * cmsy/b/n}{}
+\DeclareFontShape{OMS}{cmr}{bx}{sc}
+ {<-> ssub * cmsy/b/n}{}
+%</package,cmr>
+%</package,OMS>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*package,OMX>
+%<*package,cmex>
+\DeclareFontFamily{OMX}{cmex}{}{}
+\DeclareFontShape{OMX}{cmex}{m}{n}{
+%<*ams&extra>
+ <-8> cmex7
+ <8-9> cmex8
+ <9-10> cmex9
+ <10-> cmex10
+%</ams&extra>
+%<!extra><-> cmex10
+ }{}
+%</package,cmex>
+%</package,OMX>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*package,U>
+%<*package,lasy>
+\DeclareFontFamily{U}{lasy}{}
+\DeclareFontShape{U}{lasy}{m}{n}{
+ <-6> lasy5
+ <6-7> lasy6
+ <7-8> lasy7
+ <8-9> lasy8
+ <9-10> lasy9
+ <10-> lasy10
+ }{}
+\DeclareFontShape{U}{lasy}{b}{n}{
+ <-> lasyb10
+ }{}
+%</package,lasy>
+%<*package,ams>
+%<*package,msa>
+\DeclareFontFamily{U}{msa}{}
+\DeclareFontShape{U}{msa}{m}{n}{
+%<!extra> <-7> msam5
+%<!extra> <7-10> msam7
+%<extra> <-6> msam5
+%<extra> <6-7> msam6
+%<extra> <7-8> msam7
+%<extra> <8-9> msam8
+%<extra> <9-10> msam9
+ <10-> msam10
+ }{}
+%</package,msa>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*package,msb>
+\DeclareFontFamily{U}{msb}{}
+\DeclareFontShape{U}{msb}{m}{n}{
+%<!extra> <-7> msbm5
+%<!extra> <7-10> msbm7
+%<extra> <-6> msbm5
+%<extra> <6-7> msbm6
+%<extra> <7-8> msbm7
+%<extra> <8-9> msbm8
+%<extra> <9-10> msbm9
+ <10-> msbm10
+ }{}
+%</package,msb>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*package,euex>
+\DeclareFontFamily{U}{euex}{}
+\DeclareFontShape{U}{euex}{m}{n}{
+ <-> euex10 % AMS set only includes euex10
+ }{}
+%</package,euex>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*package,euf>
+\DeclareFontFamily{U}{euf}{}
+\DeclareFontShape{U}{euf}{m}{n}{
+ <-7> eufm5
+ <7-10> eufm7
+ <10-> eufm10
+ }{}
+\DeclareFontShape{U}{euf}{b}{n}{
+ <-7> eufb5
+ <7-10> eufb7
+ <10-> eufb10
+ }{}
+%</package,euf>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*package,eur>
+\DeclareFontFamily{U}{eur}{\skewchar\font'177}
+\DeclareFontShape{U}{eur}{m}{n}{
+ <-7> eurm5
+ <7-10> eurm7
+ <10-> eurm10
+ }{}
+\DeclareFontShape{U}{eur}{b}{n}{
+ <-7> eurb5
+ <7-10> eurb7
+ <10-> eurb10
+ }{}
+%</package,eur>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*package,eus>
+\DeclareFontFamily{U}{eus}{\skewchar\font'60}
+\DeclareFontShape{U}{eus}{m}{n}{
+ <-7> eusm5
+ <7-10> eusm7
+ <10-> eusm10
+ }{}
+\DeclareFontShape{U}{eus}{b}{n}{
+ <-7> eusb5
+ <7-10> eusb7
+ <10-> eusb10
+ }{}
+%</package,eus>
+%</package,ams>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</package,U>
+% \end{macrocode}
+%
+% End of `fd' codes
+% \begin{macrocode}
+%<*package>
+\endgroup
+% \end{macrocode}
+%
+% Now just check we have picked the em fonts with the right encoding.
+% \begin{macrocode}
+% \sbox\z@{\normalfont\char140}
+\sbox\z@{\normalfont\fontsize{10}{10pt}\selectfont\char140}
+\edef\@tempa{%
+ \ifdim\wd0=7.5ptT1% T1 Ncaron
+ \else\ifdim\wd0=10.1389ptLY1% LY1 aring
+ \else\ifdim\wd0=5.24998ptLM1% LM1 OE
+ \else U%
+ \fi\fi\fi}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\ifx\@tempa\operator@encoding
+\else
+ \PackageError{em}{%
+ Installed em tfm files have encoding `\@tempa'\MessageBreak
+ but this document requests encoding `\operator@encoding'}
+ {Change the package option}
+ \showthe\wd0 % debugging output
+\fi
+% \end{macrocode}
+%
+% Use the text encoding for text fonts used in math
+% \begin{macrocode}
+\DeclareSymbolFont{operators}{\operator@encoding}{\rmdefault}{m}{n}
+\SetSymbolFont{operators}{bold}{\operator@encoding}{\rmdefault}{bx}{n}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareMathAlphabet\mathbf \operator@encoding{\rmdefault}{bx}{n}
+\DeclareMathAlphabet\mathrm \operator@encoding{\rmdefault}{m}{n}
+\DeclareMathAlphabet\mathsf \operator@encoding{\sfdefault}{m}{n}
+\DeclareMathAlphabet\mathit \operator@encoding{\rmdefault}{m}{it}
+\DeclareMathAlphabet\mathtt \operator@encoding{\ttdefault}{m}{n}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\SetMathAlphabet{\mathbf}{bold}{\operator@encoding}{\rmdefault}{bx}{n}
+\SetMathAlphabet{\mathsf}{bold}{\operator@encoding}{\sfdefault}{bx}{n}
+\SetMathAlphabet{\mathrm}{bold}{\operator@encoding}{\rmdefault}{bx}{n}
+\SetMathAlphabet{\mathit}{bold}{\operator@encoding}{\rmdefault}{bx}{it}
+\SetMathAlphabet{\mathtt}{bold}{\operator@encoding}{\ttdefault}{bx}{n}
+% \end{macrocode}
+%
+% So move the Greek to the letters font (which therefore should
+% not really be considered OML encoded, but pass on that for now)
+% \begin{macrocode}
+\DeclareMathSymbol{\Gamma}{\mathalpha}{letters}{"D0}
+\DeclareMathSymbol{\Delta}{\mathalpha}{letters}{"D1}
+\DeclareMathSymbol{\Theta}{\mathalpha}{letters}{"D2}
+\DeclareMathSymbol{\Lambda}{\mathalpha}{letters}{"D3}
+\DeclareMathSymbol{\Xi}{\mathalpha}{letters}{"D4}
+\DeclareMathSymbol{\Pi}{\mathalpha}{letters}{"D5}
+\DeclareMathSymbol{\Sigma}{\mathalpha}{letters}{"D6}
+\DeclareMathSymbol{\Upsilon}{\mathalpha}{letters}{"D7}
+\DeclareMathSymbol{\Phi}{\mathalpha}{letters}{"D8}
+\DeclareMathSymbol{\Psi}{\mathalpha}{letters}{"D9}
+\DeclareMathSymbol{\Omega}{\mathalpha}{letters}{"DA}
+% \end{macrocode}
+%
+% Also need to move the math accents, depending on the
+% encoding used for the operators font.
+% Actually for LY1 only |\dot| needs changing as the others
+% are the same as OT1.
+% Actually for LM1 coding we need not do anything since
+% (by remapping of Macintosh standard roman) it matches OT1.
+% \begin{macrocode}
+\def\@tempa{T1}
+\ifx\operator@encoding\@tempa
+ \DeclareMathAccent{\grave}{\mathalpha}{operators}{0}
+ \DeclareMathAccent{\acute}{\mathalpha}{operators}{1}
+ \DeclareMathAccent{\hat}{\mathalpha}{operators}{2}
+ \DeclareMathAccent{\tilde}{\mathalpha}{operators}{3}
+ \DeclareMathAccent{\ddot}{\mathalpha}{operators}{4}
+ \DeclareMathAccent{\check}{\mathalpha}{operators}{7}
+ \DeclareMathAccent{\breve}{\mathalpha}{operators}{8}
+ \DeclareMathAccent{\bar}{\mathalpha}{operators}{9}
+ \DeclareMathAccent{\dot}{\mathalpha}{operators}{10}
+\else
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\@tempa{LY1}
+\ifx\operator@encoding\@tempa
+ \DeclareMathAccent{\dot}{\mathalpha}{operators}{5}
+\else
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\@tempa{LM1}
+\ifx\operator@encoding\@tempa
+% \DeclareMathAccent{\grave}{\mathalpha}{operators}{18}% or 96
+% \DeclareMathAccent{\acute}{\mathalpha}{operators}{19}% or 171
+% \DeclareMathAccent{\hat}{\mathalpha}{operators}{94}% or 246
+% \DeclareMathAccent{\tilde}{\mathalpha}{operators}{126}% or 247
+% \DeclareMathAccent{\ddot}{\mathalpha}{operators}{127}% or 172
+% \DeclareMathAccent{\check}{\mathalpha}{operators}{20}% or 255
+% \DeclareMathAccent{\breve}{\mathalpha}{operators}{21}% or 249
+% \DeclareMathAccent{\bar}{\mathalpha}{operators}{22}% or 248
+% \DeclareMathAccent{\dot}{\mathalpha}{operators}{95}% or 250
+\else
+ \PackageWarningNoLine{em}
+ {Unknown Operator Encoding!\MessageBreak
+ Math accents may be wrong: assuming OT1 positions}
+\fi\fi\fi
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</package>
+% \end{macrocode}
+%
+
diff --git a/macros/latex/contrib/psnfssx/em/em.ins b/macros/latex/contrib/psnfssx/em/em.ins
new file mode 100644
index 0000000000..766dc2ffd7
--- /dev/null
+++ b/macros/latex/contrib/psnfssx/em/em.ins
@@ -0,0 +1,110 @@
+%% em package Copyright 1997 Y&Y, Inc.
+%%
+%% Please see em.txt for instructions.
+%%
+%% Based on the type1cm package Copyright 1997 David Carlisle.
+%%
+%% Revised to also cover LM1 (Textures) encoding 1997/Dec/05
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% YOU CAN EDIT THIS FIRST PART TO SUITE YOUR INSTALLATION
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Assume AMS fontset and the `AMS Extra' fonts from Y&Y by default
+
+\def\ams{ams,extra}
+
+% If you have the AMS fonts, but not the `AMS EXTRA' font set available
+% (that is, you do not have msam6 in addition to msam5 msam7 and msam10),
+% then remove the % on the next line.
+% \def\ams{ams}
+
+% If you do not have the AMS FONT SET at all, then
+% remove the % on the next line.
+% \def\ams{}
+
+% We'll assume you do not want to make fd files (see em.txt for details)
+\newif\ifmakefd
+\makefdfalse
+
+% If you DO want to make fd files replacing the standard LaTeX and AMS
+% ones, remove the % on the next line.
+% \makefdtrue
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% DO NOT EDIT BELOW THIS POINT
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\batchfile{em.ins}
+
+\input docstrip
+
+\askforoverwritefalse
+\keepsilent
+
+\preamble
+This is a generated file for the EM font set from Y&Y, Inc.
+No permission is granted to distribute a
+modified version of this file under its original name.
+
+\endpreamble
+
+\generate{%
+ \file{em.sty}{\from{em.fdd}{package,\ams}}}
+
+{\ifmakefd
+
+\preamble
+This is a generated file for EM. Permission is granted to
+customize the declarations in this file to serve the needs of your
+installation. However, no permission is granted to distribute a
+modified version of this file under its original name.
+
+\endpreamble
+
+\generate{%
+ \file{ly1cmr.fd}{\from{em.fdd}{LY1,emr,\ams}}
+ \file{ly1cmss.fd}{\from{em.fdd}{LY1,emss,\ams}}
+ \file{ly1cmtt.fd}{\from{em.fdd}{LY1,emtt,\ams}}
+ \file{ly1cmfr.fd}{\from{em.fdd}{LY1,emfr,\ams}}
+ \file{ly1cmdh.fd}{\from{em.fdd}{LY1,emdh,\ams}}
+ }
+
+\generate{%
+ \file{lm1cmr.fd}{\from{em.fdd}{LM1,emr,\ams}}
+ \file{lm1cmss.fd}{\from{em.fdd}{LM1,emss,\ams}}
+ \file{lm1cmtt.fd}{\from{em.fdd}{LM1,emtt,\ams}}
+ \file{lm1cmfr.fd}{\from{em.fdd}{LM1,emfr,\ams}}
+ \file{lm1cmdh.fd}{\from{em.fdd}{LM1,emdh,\ams}}
+ }
+
+\generate{%
+ \file{t1cmr.fd}{\from{em.fdd}{T1,emr,\ams}}
+ \file{t1cmss.fd}{\from{em.fdd}{T1,emss,\ams}}
+ \file{t1cmtt.fd}{\from{em.fdd}{T1,emtt,\ams}}
+ \file{t1cmfr.fd}{\from{em.fdd}{T1,emfr,\ams}}
+ \file{t1cmdh.fd}{\from{em.fdd}{T1,emdh,\ams}}}
+
+\generate{%
+% \file{omlcmm.fd}{\from{em.fdd}{OML,cmm,\ams}}
+ \file{omlcmm.fd}{\from{em.fdd}{OML,emm,\ams}}
+ \file{omlcmr.fd}{\from{em.fdd}{OML,cmr,\ams}}
+ \file{omscmsy.fd}{\from{em.fdd}{OMS,cmsy,\ams}}
+ \file{omscmr.fd}{\from{em.fdd}{OMS,cmr,\ams}}
+ \file{omxcmex.fd}{\from{em.fdd}{OMX,cmex,\ams}}
+ \file{ulasy.fd}{\from{em.fdd}{U,lasy,\ams}}}
+
+\ifx\ams\empty\else
+
+\generate{%
+ \file{umsa.fd}{\from{em.fdd}{U,msa,ams}}
+ \file{umsb.fd}{\from{em.fdd}{U,msb,ams}}
+ \file{ueuex.fd}{\from{em.fdd}{U,euex,ams}}
+ \file{ueuf.fd}{\from{em.fdd}{U,euf,ams}}
+ \file{ueur.fd}{\from{em.fdd}{U,eur,ams}}
+ \file{ueus.fd}{\from{em.fdd}{U,eus,ams}}
+ }
+
+\fi
+\fi
+}
diff --git a/macros/latex/contrib/psnfssx/em/em.sty b/macros/latex/contrib/psnfssx/em/em.sty
new file mode 100644
index 0000000000..6e4ff4a358
--- /dev/null
+++ b/macros/latex/contrib/psnfssx/em/em.sty
@@ -0,0 +1,619 @@
+%%
+%% This is file `em.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% em.fdd (with options: `package,ams,extra')
+%% This is a generated file for the EM font set from Y&Y, Inc.
+%% No permission is granted to distribute a
+%% modified version of this file under its original name.
+%%
+%% EM package for LaTeX
+%%
+%% Copyright 1997 Y&Y, Inc.
+%%
+%% Modified to also cover LM1 (Textures) encoding 1997/Dec/05
+%%
+\ProvidesPackage{em}
+ [2000/02/20 v0.07 Y&Y EM font definitions T1, LY1, LM1 (BKPH,DPC)]
+\edef\operator@encoding{\encodingdefault}
+\DeclareOption{T1}{\def\operator@encoding{T1}}
+\DeclareOption{LY1}{\def\operator@encoding{LY1}}
+\DeclareOption{LM1}{\def\operator@encoding{LM1}}
+\ProcessOptions
+\RequirePackage[\operator@encoding]{fontenc}
+\expandafter\let
+ \csname \operator@encoding/cmr/m/n/10\endcsname\@undefined
+\begingroup
+\nfss@catcodes
+\def\@tempa{T1}
+\ifx\operator@encoding\@tempa
+\global\defaulthyphenchar=127
+\DeclareFontFamily{T1}{cmr}{}
+\DeclareFontShape{T1}{cmr}{m}{n}{
+ <-6> emr5
+ <6-7> emr6
+ <7-8> emr7
+ <8-9> emr8
+ <9-10> emr9
+ <10-12> emr10
+ <12-17> emr12
+ <17-> emr17
+ }{}
+\DeclareFontShape{T1}{cmr}{m}{sl}{
+ <-9> emsl8
+ <9-10> emsl9
+ <10-12> emsl10
+ <12-> emsl12
+ }{}
+\DeclareFontShape{T1}{cmr}{m}{it}{
+ <-8> emti7
+ <8-9> emti8
+ <9-10> emti9
+ <10-12> emti10
+ <12-> emti12
+ }{}
+\DeclareFontShape{T1}{cmr}{m}{sc}{
+ <-9> emcsc8
+ <9-10> emcsc9
+ <10-> emcsc10
+ }{}
+\DeclareFontShape{T1}{cmr}{m}{ui}{
+ <-> emu10
+ }{}
+\DeclareFontShape{T1}{cmr}{b}{n}{
+ <-> emb10
+ }{}
+\DeclareFontShape{T1}{cmr}{bx}{n}{
+ <-6> embx5
+ <6-7> embx6
+ <7-8> embx7
+ <8-9> embx8
+ <9-10> embx9
+ <10-12> embx10
+ <12-> embx12
+ }{}
+\DeclareFontShape{T1}{cmr}{bx}{sl}{
+ <-> embxsl10
+ }{}
+\DeclareFontShape{T1}{cmr}{bx}{it}{
+ <-> embxti10
+ }{}
+\DeclareFontShape{T1}{cmr}{bx}{ui}
+ {<->ssub * cmr/m/ui}{}
+\DeclareFontFamily{T1}{cmss}{}
+\DeclareFontShape{T1}{cmss}{m}{n}{
+ <-9> emss8
+ <9-10> emss9
+ <10-12> emss10
+ <12-17> emss12
+ <17-> emss17
+ }{}
+\DeclareFontShape{T1}{cmss}{m}{it}
+ {<->sub * cmss/m/sl}{}
+\DeclareFontShape{T1}{cmss}{m}{sl}{
+ <-9> emssi8
+ <9-10> emssi9
+ <10-12> emssi10
+ <12-17> emssi12
+ <17-> emssi17
+ }{}
+\DeclareFontShape{T1}{cmss}{m}{sc}
+ {<->sub * cmr/m/sc}{}
+\DeclareFontShape{T1}{cmss}{m}{ui}
+ {<->sub * cmr/m/ui}{}
+\DeclareFontShape{T1}{cmss}{sbc}{n}{
+ <-> emssdc10
+ }{}
+\DeclareFontShape{T1}{cmss}{bx}{n}{
+ <-> emssbx10
+ }{}
+\DeclareFontShape{T1}{cmss}{bx}{ui}
+ {<->sub * cmr/bx/ui}{}
+\DeclareFontFamily{T1}{cmtt}{\hyphenchar \font\m@ne}
+\DeclareFontShape{T1}{cmtt}{m}{n}{
+ <-9> emtt8
+ <9-10> emtt9
+ <10-12> emtt10
+ <12-> emtt12
+ }{}
+\DeclareFontShape{T1}{cmtt}{m}{it}{
+ <-> emitt10
+ }{}
+\DeclareFontShape{T1}{cmtt}{m}{sl}{
+ <-> emsltt10
+ }{}
+\DeclareFontShape{T1}{cmtt}{m}{sc}{
+ <-> emtcsc10
+ }{}
+\DeclareFontShape{T1}{cmtt}{m}{ui}
+ {<->sub * cmtt/m/it}{}
+\DeclareFontShape{T1}{cmtt}{bx}{n}
+ {<->sub * cmtt/m/n}{}
+\DeclareFontShape{T1}{cmtt}{bx}{it}
+ {<->sub * cmtt/m/it}{}
+\DeclareFontShape{T1}{cmtt}{bx}{ui}
+ {<->sub * cmtt/m/it}{}
+\DeclareFontFamily{T1}{cmfr}{}
+\DeclareFontShape{T1}{cmfr}{m}{n}{%
+ <-> emff10
+ }{}
+\DeclareFontShape{T1}{cmfr}{m}{it}{
+ <-> emfi10
+ }{}
+\DeclareFontFamily{T1}{cmdh}{}
+\DeclareFontShape{T1}{cmdh}{m}{n}{
+ <-> emdunh10
+ }{}
+\DeclareFontFamily{T1}{cmfib}{}
+\DeclareFontShape{T1}{cmfib}{m}{n}{
+ <-> emfib8
+ }{}
+\fi
+\def\@tempa{LY1}
+\ifx\operator@encoding\@tempa
+\global\defaulthyphenchar=173
+\DeclareFontFamily{LY1}{cmr}{}
+\DeclareFontShape{LY1}{cmr}{m}{n}{
+ <-6> emr5
+ <6-7> emr6
+ <7-8> emr7
+ <8-9> emr8
+ <9-10> emr9
+ <10-12> emr10
+ <12-17> emr12
+ <17-> emr17
+ }{}
+\DeclareFontShape{LY1}{cmr}{m}{sl}{
+ <-9> emsl8
+ <9-10> emsl9
+ <10-12> emsl10
+ <12-> emsl12
+ }{}
+\DeclareFontShape{LY1}{cmr}{m}{it}{
+ <-8> emti7
+ <8-9> emti8
+ <9-10> emti9
+ <10-12> emti10
+ <12-> emti12
+ }{}
+\DeclareFontShape{LY1}{cmr}{m}{sc}{
+ <-9> emcsc8
+ <9-10> emcsc9
+ <10-> emcsc10
+ }{}
+\DeclareFontShape{LY1}{cmr}{m}{ui}{
+ <-> emu10
+ }{}
+\DeclareFontShape{LY1}{cmr}{b}{n}{
+ <-> emb10
+ }{}
+\DeclareFontShape{LY1}{cmr}{bx}{n}{
+ <-6> embx5
+ <6-7> embx6
+ <7-8> embx7
+ <8-9> embx8
+ <9-10> embx9
+ <10-12> embx10
+ <12-> embx12
+ }{}
+\DeclareFontShape{LY1}{cmr}{bx}{sl}{
+ <-> embxsl10
+ }{}
+\DeclareFontShape{LY1}{cmr}{bx}{it}{
+ <-> embxti10
+ }{}
+\DeclareFontShape{LY1}{cmr}{bx}{ui}
+ {<->ssub * cmr/m/ui}{}
+\DeclareFontFamily{LY1}{cmss}{}
+\DeclareFontShape{LY1}{cmss}{m}{n}{
+ <-9> emss8
+ <9-10> emss9
+ <10-12> emss10
+ <12-17> emss12
+ <17-> emss17
+ }{}
+\DeclareFontShape{LY1}{cmss}{m}{it}
+ {<->sub * cmss/m/sl}{}
+\DeclareFontShape{LY1}{cmss}{m}{sl}{
+ <-9> emssi8
+ <9-10> emssi9
+ <10-12> emssi10
+ <12-17> emssi12
+ <17-> emssi17
+ }{}
+\DeclareFontShape{LY1}{cmss}{m}{sc}
+ {<->sub * cmr/m/sc}{}
+\DeclareFontShape{LY1}{cmss}{m}{ui}
+ {<->sub * cmr/m/ui}{}
+\DeclareFontShape{LY1}{cmss}{sbc}{n}{
+ <-> emssdc10
+ }{}
+\DeclareFontShape{LY1}{cmss}{bx}{n}{
+ <-> emssbx10
+ }{}
+\DeclareFontShape{LY1}{cmss}{bx}{ui}
+ {<->sub * cmr/bx/ui}{}
+\DeclareFontFamily{LY1}{cmtt}{\hyphenchar \font\m@ne}
+\DeclareFontShape{LY1}{cmtt}{m}{n}{
+ <-9> emtt8
+ <9-10> emtt9
+ <10-12> emtt10
+ <12-> emtt12
+ }{}
+\DeclareFontShape{LY1}{cmtt}{m}{it}{
+ <-> emitt10
+ }{}
+\DeclareFontShape{LY1}{cmtt}{m}{sl}{
+ <-> emsltt10
+ }{}
+\DeclareFontShape{LY1}{cmtt}{m}{sc}{
+ <-> emtcsc10
+ }{}
+\DeclareFontShape{LY1}{cmtt}{m}{ui}
+ {<->sub * cmtt/m/it}{}
+\DeclareFontShape{LY1}{cmtt}{bx}{n}
+ {<->sub * cmtt/m/n}{}
+\DeclareFontShape{LY1}{cmtt}{bx}{it}
+ {<->sub * cmtt/m/it}{}
+\DeclareFontShape{LY1}{cmtt}{bx}{ui}
+ {<->sub * cmtt/m/it}{}
+\DeclareFontFamily{LY1}{cmfr}{}
+\DeclareFontShape{LY1}{cmfr}{m}{n}{%
+ <-> emff10
+ }{}
+\DeclareFontShape{LY1}{cmfr}{m}{it}{
+ <-> emfi10
+ }{}
+\DeclareFontFamily{LY1}{cmdh}{}
+\DeclareFontShape{LY1}{cmdh}{m}{n}{
+ <-> emdunh10
+ }{}
+\DeclareFontFamily{LY1}{cmfib}{}
+\DeclareFontShape{LY1}{cmfib}{m}{n}{
+ <-> emfib8
+ }{}
+\fi
+\def\@tempa{LM1}
+\ifx\operator@encoding\@tempa
+\global\defaulthyphenchar=45
+\DeclareFontFamily{LM1}{cmr}{}
+\DeclareFontShape{LM1}{cmr}{m}{n}{
+ <-6> emr5
+ <6-7> emr6
+ <7-8> emr7
+ <8-9> emr8
+ <9-10> emr9
+ <10-12> emr10
+ <12-17> emr12
+ <17-> emr17
+ }{}
+\DeclareFontShape{LM1}{cmr}{m}{sl}{
+ <-9> emsl8
+ <9-10> emsl9
+ <10-12> emsl10
+ <12-> emsl12
+ }{}
+\DeclareFontShape{LM1}{cmr}{m}{it}{
+ <-8> emti7
+ <8-9> emti8
+ <9-10> emti9
+ <10-12> emti10
+ <12-> emti12
+ }{}
+\DeclareFontShape{LM1}{cmr}{m}{sc}{
+ <-9> emcsc8
+ <9-10> emcsc9
+ <10-> emcsc10
+ }{}
+\DeclareFontShape{LM1}{cmr}{m}{ui}{
+ <-> emu10
+ }{}
+\DeclareFontShape{LM1}{cmr}{b}{n}{
+ <-> emb10
+ }{}
+\DeclareFontShape{LM1}{cmr}{bx}{n}{
+ <-6> embx5
+ <6-7> embx6
+ <7-8> embx7
+ <8-9> embx8
+ <9-10> embx9
+ <10-12> embx10
+ <12-> embx12
+ }{}
+\DeclareFontShape{LM1}{cmr}{bx}{sl}{
+ <-> embxsl10
+ }{}
+\DeclareFontShape{LM1}{cmr}{bx}{it}{
+ <-> embxti10
+ }{}
+\DeclareFontShape{LM1}{cmr}{bx}{ui}
+ {<->ssub * cmr/m/ui}{}
+\DeclareFontFamily{LM1}{cmss}{}
+\DeclareFontShape{LM1}{cmss}{m}{n}{
+ <-9> emss8
+ <9-10> emss9
+ <10-12> emss10
+ <12-17> emss12
+ <17-> emss17
+ }{}
+\DeclareFontShape{LM1}{cmss}{m}{it}
+ {<->sub * cmss/m/sl}{}
+\DeclareFontShape{LM1}{cmss}{m}{sl}{
+ <-9> emssi8
+ <9-10> emssi9
+ <10-12> emssi10
+ <12-17> emssi12
+ <17-> emssi17
+ }{}
+\DeclareFontShape{LM1}{cmss}{m}{sc}
+ {<->sub * cmr/m/sc}{}
+\DeclareFontShape{LM1}{cmss}{m}{ui}
+ {<->sub * cmr/m/ui}{}
+\DeclareFontShape{LM1}{cmss}{sbc}{n}{
+ <-> emssdc10
+ }{}
+\DeclareFontShape{LM1}{cmss}{bx}{n}{
+ <-> emssbx10
+ }{}
+\DeclareFontShape{LM1}{cmss}{bx}{ui}
+ {<->sub * cmr/bx/ui}{}
+\DeclareFontFamily{LM1}{cmtt}{\hyphenchar \font\m@ne}
+\DeclareFontShape{LM1}{cmtt}{m}{n}{
+ <-9> emtt8
+ <9-10> emtt9
+ <10-12> emtt10
+ <12-> emtt12
+ }{}
+\DeclareFontShape{LM1}{cmtt}{m}{it}{
+ <-> emitt10
+ }{}
+\DeclareFontShape{LM1}{cmtt}{m}{sl}{
+ <-> emsltt10
+ }{}
+\DeclareFontShape{LM1}{cmtt}{m}{sc}{
+ <-> emtcsc10
+ }{}
+\DeclareFontShape{LM1}{cmtt}{m}{ui}
+ {<->sub * cmtt/m/it}{}
+\DeclareFontShape{LM1}{cmtt}{bx}{n}
+ {<->sub * cmtt/m/n}{}
+\DeclareFontShape{LM1}{cmtt}{bx}{it}
+ {<->sub * cmtt/m/it}{}
+\DeclareFontShape{LM1}{cmtt}{bx}{ui}
+ {<->sub * cmtt/m/it}{}
+\DeclareFontFamily{LM1}{cmfr}{}
+\DeclareFontShape{LM1}{cmfr}{m}{n}{%
+ <-> emff10
+ }{}
+\DeclareFontShape{LM1}{cmfr}{m}{it}{
+ <-> emfi10
+ }{}
+\DeclareFontFamily{LM1}{cmdh}{}
+\DeclareFontShape{LM1}{cmdh}{m}{n}{
+ <-> emdunh10
+ }{}
+\DeclareFontFamily{LM1}{cmfib}{}
+\DeclareFontShape{LM1}{cmfib}{m}{n}{
+ <-> emfib8
+ }{}
+\fi
+\def\@tempa{OT1}
+\ifx\operator@encoding\@tempa
+\PackageError{em}%
+{OT1\space encoding\space not\space useable\space with\space em.sty}%
+{Specify\space T1\space or\space LY1\space or\space LM1 option}%
+\fi
+\DeclareFontFamily{OML}{cmm}{\skewchar\font127 }
+\DeclareFontShape{OML}{cmm}{m}{it}{
+ <-6> emmi5
+ <6-7> emmi6
+ <7-8> emmi7
+ <8-9> emmi8
+ <9-10> emmi9
+ <10-12> emmi10
+ <12-> emmi12
+ }{}
+\DeclareFontShape{OML}{cmm}{b}{it}{%
+ <-6> emmib5
+ <6-7> emmib6
+ <7-8> emmib7
+ <8-9> emmib8
+ <9-10> emmib9
+ <10-> emmib10
+ }{}
+\DeclareFontShape{OML}{cmm}{bx}{it}
+ {<-> ssub * cmm/b/it}{}
+\DeclareFontFamily{OML}{cmr}{\skewchar\font127 }
+\DeclareFontShape{OML}{cmr}{m}{n}
+ {<-> ssub * cmm/m/it}{}
+\DeclareFontShape{OML}{cmr}{m}{it}
+ {<-> ssub * cmm/m/it}{}
+\DeclareFontShape{OML}{cmr}{m}{sl}
+ {<-> ssub * cmm/m/it}{}
+\DeclareFontShape{OML}{cmr}{m}{sc}
+ {<-> ssub * cmm/m/it}{}
+\DeclareFontShape{OML}{cmr}{bx}{n}
+ {<-> ssub * cmm/b/it}{}
+\DeclareFontShape{OML}{cmr}{bx}{it}
+ {<-> ssub * cmm/b/it}{}
+\DeclareFontShape{OML}{cmr}{bx}{sl}
+ {<-> ssub * cmm/b/it}{}
+\DeclareFontShape{OML}{cmr}{bx}{sc}
+ {<-> ssub * cmm/b/it}{}
+\DeclareFontFamily{OMS}{cmsy}{\skewchar\font48 }
+\DeclareFontShape{OMS}{cmsy}{m}{n}{%
+ <-6> cmsy5
+ <6-7> cmsy6
+ <7-8> cmsy7
+ <8-9> cmsy8
+ <9-10> cmsy9
+ <10-> cmsy10
+ }{}
+\DeclareFontShape{OMS}{cmsy}{b}{n}{%
+ <-6> cmbsy5
+ <6-7> cmbsy6
+ <7-8> cmbsy7
+ <8-9> cmbsy8
+ <9-10> cmbsy9
+ <10-> cmbsy10
+ }{}
+\DeclareFontFamily{OMS}{cmr}{\skewchar\font48 }
+\DeclareFontShape{OMS}{cmr}{m}{n}
+ {<-> ssub * cmsy/m/n}{}
+\DeclareFontShape{OMS}{cmr}{m}{it}
+ {<-> ssub * cmsy/m/n}{}
+\DeclareFontShape{OMS}{cmr}{m}{sl}
+ {<-> ssub * cmsy/m/n}{}
+\DeclareFontShape{OMS}{cmr}{m}{sc}
+ {<-> ssub * cmsy/m/n}{}
+\DeclareFontShape{OMS}{cmr}{bx}{n}
+ {<-> ssub * cmsy/b/n}{}
+\DeclareFontShape{OMS}{cmr}{bx}{it}
+ {<-> ssub * cmsy/b/n}{}
+\DeclareFontShape{OMS}{cmr}{bx}{sl}
+ {<-> ssub * cmsy/b/n}{}
+\DeclareFontShape{OMS}{cmr}{bx}{sc}
+ {<-> ssub * cmsy/b/n}{}
+\DeclareFontFamily{OMX}{cmex}{}{}
+\DeclareFontShape{OMX}{cmex}{m}{n}{
+ <-8> cmex7
+ <8-9> cmex8
+ <9-10> cmex9
+ <10-> cmex10
+ }{}
+\DeclareFontFamily{U}{lasy}{}
+\DeclareFontShape{U}{lasy}{m}{n}{
+ <-6> lasy5
+ <6-7> lasy6
+ <7-8> lasy7
+ <8-9> lasy8
+ <9-10> lasy9
+ <10-> lasy10
+ }{}
+\DeclareFontShape{U}{lasy}{b}{n}{
+ <-> lasyb10
+ }{}
+\DeclareFontFamily{U}{msa}{}
+\DeclareFontShape{U}{msa}{m}{n}{
+ <-6> msam5
+ <6-7> msam6
+ <7-8> msam7
+ <8-9> msam8
+ <9-10> msam9
+ <10-> msam10
+ }{}
+\DeclareFontFamily{U}{msb}{}
+\DeclareFontShape{U}{msb}{m}{n}{
+ <-6> msbm5
+ <6-7> msbm6
+ <7-8> msbm7
+ <8-9> msbm8
+ <9-10> msbm9
+ <10-> msbm10
+ }{}
+\DeclareFontFamily{U}{euex}{}
+\DeclareFontShape{U}{euex}{m}{n}{
+ <-> euex10 % AMS set only includes euex10
+ }{}
+\DeclareFontFamily{U}{euf}{}
+\DeclareFontShape{U}{euf}{m}{n}{
+ <-7> eufm5
+ <7-10> eufm7
+ <10-> eufm10
+ }{}
+\DeclareFontShape{U}{euf}{b}{n}{
+ <-7> eufb5
+ <7-10> eufb7
+ <10-> eufb10
+ }{}
+\DeclareFontFamily{U}{eur}{\skewchar\font'177}
+\DeclareFontShape{U}{eur}{m}{n}{
+ <-7> eurm5
+ <7-10> eurm7
+ <10-> eurm10
+ }{}
+\DeclareFontShape{U}{eur}{b}{n}{
+ <-7> eurb5
+ <7-10> eurb7
+ <10-> eurb10
+ }{}
+\DeclareFontFamily{U}{eus}{\skewchar\font'60}
+\DeclareFontShape{U}{eus}{m}{n}{
+ <-7> eusm5
+ <7-10> eusm7
+ <10-> eusm10
+ }{}
+\DeclareFontShape{U}{eus}{b}{n}{
+ <-7> eusb5
+ <7-10> eusb7
+ <10-> eusb10
+ }{}
+\endgroup
+% \sbox\z@{\normalfont\char140}
+\sbox\z@{\normalfont\fontsize{10}{10pt}\selectfont\char140}
+\edef\@tempa{%
+ \ifdim\wd0=7.5ptT1% T1 Ncaron
+ \else\ifdim\wd0=10.1389ptLY1% LY1 aring
+ \else\ifdim\wd0=5.24998ptLM1% LM1 OE
+ \else U%
+ \fi\fi\fi}
+\ifx\@tempa\operator@encoding
+\else
+ \PackageError{em}{%
+ Installed em tfm files have encoding `\@tempa'\MessageBreak
+ but this document requests encoding `\operator@encoding'}
+ {Change the package option}
+ \showthe\wd0 % debugging output
+\fi
+\DeclareSymbolFont{operators}{\operator@encoding}{\rmdefault}{m}{n}
+\SetSymbolFont{operators}{bold}{\operator@encoding}{\rmdefault}{bx}{n}
+\DeclareMathAlphabet\mathbf \operator@encoding{\rmdefault}{bx}{n}
+\DeclareMathAlphabet\mathrm \operator@encoding{\rmdefault}{m}{n}
+\DeclareMathAlphabet\mathsf \operator@encoding{\sfdefault}{m}{n}
+\DeclareMathAlphabet\mathit \operator@encoding{\rmdefault}{m}{it}
+\DeclareMathAlphabet\mathtt \operator@encoding{\ttdefault}{m}{n}
+\SetMathAlphabet{\mathbf}{bold}{\operator@encoding}{\rmdefault}{bx}{n}
+\SetMathAlphabet{\mathsf}{bold}{\operator@encoding}{\sfdefault}{bx}{n}
+\SetMathAlphabet{\mathrm}{bold}{\operator@encoding}{\rmdefault}{bx}{n}
+\SetMathAlphabet{\mathit}{bold}{\operator@encoding}{\rmdefault}{bx}{it}
+\SetMathAlphabet{\mathtt}{bold}{\operator@encoding}{\ttdefault}{bx}{n}
+\DeclareMathSymbol{\Gamma}{\mathalpha}{letters}{"D0}
+\DeclareMathSymbol{\Delta}{\mathalpha}{letters}{"D1}
+\DeclareMathSymbol{\Theta}{\mathalpha}{letters}{"D2}
+\DeclareMathSymbol{\Lambda}{\mathalpha}{letters}{"D3}
+\DeclareMathSymbol{\Xi}{\mathalpha}{letters}{"D4}
+\DeclareMathSymbol{\Pi}{\mathalpha}{letters}{"D5}
+\DeclareMathSymbol{\Sigma}{\mathalpha}{letters}{"D6}
+\DeclareMathSymbol{\Upsilon}{\mathalpha}{letters}{"D7}
+\DeclareMathSymbol{\Phi}{\mathalpha}{letters}{"D8}
+\DeclareMathSymbol{\Psi}{\mathalpha}{letters}{"D9}
+\DeclareMathSymbol{\Omega}{\mathalpha}{letters}{"DA}
+\def\@tempa{T1}
+\ifx\operator@encoding\@tempa
+ \DeclareMathAccent{\grave}{\mathalpha}{operators}{0}
+ \DeclareMathAccent{\acute}{\mathalpha}{operators}{1}
+ \DeclareMathAccent{\hat}{\mathalpha}{operators}{2}
+ \DeclareMathAccent{\tilde}{\mathalpha}{operators}{3}
+ \DeclareMathAccent{\ddot}{\mathalpha}{operators}{4}
+ \DeclareMathAccent{\check}{\mathalpha}{operators}{7}
+ \DeclareMathAccent{\breve}{\mathalpha}{operators}{8}
+ \DeclareMathAccent{\bar}{\mathalpha}{operators}{9}
+ \DeclareMathAccent{\dot}{\mathalpha}{operators}{10}
+\else
+\def\@tempa{LY1}
+\ifx\operator@encoding\@tempa
+ \DeclareMathAccent{\dot}{\mathalpha}{operators}{5}
+\else
+\def\@tempa{LM1}
+\ifx\operator@encoding\@tempa
+\else
+ \PackageWarningNoLine{em}
+ {Unknown Operator Encoding!\MessageBreak
+ Math accents may be wrong: assuming OT1 positions}
+\fi\fi\fi
+
+\endinput
+%%
+%% End of file `em.sty'.
diff --git a/macros/latex/contrib/psnfssx/em/em.txt b/macros/latex/contrib/psnfssx/em/em.txt
new file mode 100644
index 0000000000..3c36567388
--- /dev/null
+++ b/macros/latex/contrib/psnfssx/em/em.txt
@@ -0,0 +1,241 @@
+European Modern (EM) package for LaTeX:
+========================================
+
+ CM style fonts - but with accented characters - in Adobe Type 1 format.
+
+ Copyright 1997 Y&Y, Inc.
+ Parts Copyright 1997 David Carlisle
+Important Note:
+===============
+
+The LaTeX PSNFSS support files for "European Modern" (EM) fonts on
+their own are not useful without the actual fonts. The EM font set
+itself is available from Y&Y, Inc.
+
+Background:
+===========
+
+Do you:
+
+ (1) like the look of Computer Modern (CM) fonts; but
+ (2) need ready-made accented characters for proper hyphenation; and
+ (3) need scalable outline fonts (a.k.a. `PostScript' or `ATM' fonts)?
+
+Then the EM font set is for you. The character shapes are from Computer
+Modern, yet the glyph complement is much larger -- including numerous
+ready-made accented and composite characters -- and the fonts are in
+scalable Adobe Type 1 format (as opposed to METAFONT based PK bitmaps).
+
+The EM fonts also satisfy the needs of non-TeX users desireous of the CM
+look, because they appear to the operating system as plain vanilla text
+fonts, and so can be easily used with applications other than TeX.
+
+The EM font set:
+================
+
+The EM font set contains 57 text fonts based on the text fonts in Knuth's
+Computer Modern font (CM) set. It also contains 13 math italic fonts based
+on the math italic fonts in CM and AMS font sets. The EM text fonts
+have a much larger glyph set than the corresponding CM fonts.
+
+Each CM text font has about 117 usable glyphs for text (plus eleven
+Greek letters). The EM fonts add over 90 ready-made composites and
+numerous other `missing' glyphs to bring the total number of glyphs to
+over 300. This makes it possible, e.g., to use these fonts with
+T1 (Cork) encoding, or LY1 (TeX 'n ANSI) encoding, or LM1 (Textures)
+encoding. The AFM files show the actual glyph complement available.
+
+Note that the EM fonts are set up as normal text fonts, unlike the CM fonts --
+all of which have to be set up as pi/math/symbol/decorative/non-text since
+CM fonts use there own unusual character layout and do not have anywhere
+near the `standard' complement of 228 glyphs expected of a text font.
+
+Treated as text fonts, the EM fonts are reencoded to platform
+specific encoding when installed on operating systems with
+system-level support for scalable fonts, such as Windows and Macintosh.
+Consequently, for optimum use with TeX, you need a system that can
+reencode fonts `on the fly' (or you need to `hard reencode' the PFB
+and PFM files using the REENCODE and AFMtoPFM utilities, or use the
+reencoding feature of psfonts.map for DVIPS when printing to PS printers).
+
+The EM text fonts are used in conjunction with some of the CM math fonts.
+CM math fonts do not contain upright uppercase Greek letters -- these are
+normally taken from the roman text fonts (CMR* and CMBX*). Included in the EM
+font set are EMMI* math italic fonts which have these irksome upright
+uppercase Greek letters in character code positions 208 - 218. Note that
+this is the same scheme used in the MathTime font set, and similar to the
+scheme used with the Lucida Bright + Lucida New Math font set when the Lucida
+Bright Expert set is not available.
+
+The names of the EM fonts are derived directly from those of the CM fonts.
+So, for example, EMR17 is based on CMR17 --- with close to two hundred
+glyphs added. And EMMI10 is based on CMMI10 --- with upright Greek added.
+
+Relation to the EC font set:
+============================
+
+The "European Computer Modern" (EC) font set was defined to add
+ready-made accented characters to CM, including those needed for some
+Eastern European languages. In order to make space for these
+characters, many typographically important glyphs had to be banished
+to "text companion" (TC) fonts.
+
+The new EM font set differs from the EC font set in several ways:
+
+(1) The EC font set is unmanageably large (500 to 600 fonts), making it
+ unlikely that a well hinted version will become available, and
+ cluttering operating system files with font listings.
+
+(2) The EC font set uses fixed encoding, just like CM fonts, except
+ it is hard wired to T1/Cork encoding instead of OT1/TeX Text encoding.
+ This means it is less flexible and harder to use with non-TeX applications.
+
+(3) EC fonts are hard-wired for T1/Cork encoding.
+ EM text fonts have a larger glyph complement covering several encodings
+ including T1, LY1, LM1, Windows ANSI, and various ISO standard encodings.
+
+(4) The metric files for EC fonts have a problem with kerning for
+ quotation marks. The EM fonts are setup to deal correctly with
+ "boundary character" kerning for both left and right quotation marks.
+
+(5) The metric files for EC fonts include a few errors, such as incorrect
+ sign on a few kerning pairs. These have been fixed in the EM font set.
+
+(6) The EM fonts use the old germandbls from the CM fonts instead of the
+ redesigned one in EC.
+
+(7) The EM font metrics match the CM font metrics exactly for characters that
+ occur in CM. EC font metrics differ slightly from CM.
+
+As a result EM is not a "drop in" replacement for EC - it is better.
+
+NOTE: the following is largely adapted from David Carlisle's type1cm.txt
+
+Using the LaTeX support for the EM font set
+===========================================
+
+The default way of using the `em' package is as a LaTeX package file.
+Install em.sty as described below and then just add
+
+\usepackage[T1]{em} or \usepackage[LY1]{em} or \usepackage[LM1]{em}
+
+to your document. This will override the definitions for all the fonts
+and so the standard fd files are not used. This will cause LaTeX
+to use the em fonts, and will also call the fontenc package to switch
+to the requested encoding (T1/Cork, or LY1/TeXnANSI, or LM1/Mac).
+
+Installation Instructions:
+==========================
+
+IMPORTANT NOTE: we supply a ready-made em.sty file so the following
+`unpacking' is actually not normally needed; unless you require some
+particular customization.
+
+The installation is controlled by the file em.ins which you may want to
+edit in two places.
+
+1) If you do not have the AMS Font set available in scalable form then
+ remove the `%' from the line %\def\ams{}
+ This will cause a more restricted font specification to be used.
+
+ If you do not have the `AMS Extra' font set available in scalable form
+ (i.e. msam6, msam8 and msam9 in addition to msam5, msam7 and msam10)
+ then remove the `%' from the line %\def\ams{ams}
+
+2) If after reading the warning above regarding *.fd files, you decide to
+ make a set of fd files, remove the `%'from the line %\makefdtrue
+
+Then run TeX (or LaTeX) on the file em.ins. A package file em.sty (and
+perhaps a set of fd files - see above) will be produced which you should
+place in a directory where TeX looks for input files. (Alternatively, add
+the directory containing these files to the list in the TEXINPUTS
+environment variable; or the format specific environment variable LATEX).
+
+Appendix A: Font sizing -- discrete or continuous?
+==================================================
+
+LaTeX separates its internal notion of font specification from the external
+fonts available on the system by means of `Font Shape Specifications', that
+are normally held in `Font Descriptor' (fd) files.
+
+The fd files that come with LaTeX that refer to the standard Computer Modern
+set (and the related AMS set) are based on the classical bitmap fonts which
+are available in discrete `magstep' sizes only. For instance, the
+specification of the main roman font is
+
+ \DeclareFontShape{OT1}{cmr}{m}{n}
+ { <5> <6> <7> <8> <9> <10> <12> gen * cmr
+ <10.95> cmr10
+ <14.4> cmr12
+ <17.28><20.74><24.88>cmr17}{}
+
+which says that no font is available at 10.5pt (LaTeX will substitute the
+nearest available size if you ask for this) and similarly the font is not
+available at all above 25pt.
+
+Such restrictions are essential with bitmap fonts to save generating huge
+numbers of bitmaps for any size that might be requested, however with
+scalable versions of the fonts these restrictions are not really needed.
+For instance the equivalent definition here is:
+
+\DeclareFontShape{LY1}{cmr}{m}{n}{
+ <-6> emr5
+ <6-7> emr6
+ <7-8> emr7
+ <8-9> emr8
+ <9-10> emr9
+ <10-12> emr10
+ <12-17> emr12
+ <17-> emr17
+ }{}
+
+which means that you can (although some may consider it bad style) go
+\fontsize{10.345pt}{12pt}\selectfont and be given a suitably scaled version of
+emr10 and a baseline setting of 12pt. Similarly if you really want, you can
+go \fontsize{2cm}{2.5cm}\selectfont and use emr17 scaled to 2cm height for a
+special display context.
+
+Appendix B: Technical note about the Font Shape specifications used:
+==========================================================================
+
+David Carlisle consistently specifies that given a requested size, the
+largest available font size smaller than (or equal to) the requested size
+should be used and then enlarged to the requested size. The exception being
+sizes smaller than the smallest available font, which use a reduced version
+of that font. The rationale for this is that enlarging a small font
+typically produces a rather `fat' font, but something readable, whereas
+shrinking a font may produce something unreadable quite quickly, particulary
+since the strokes in Computer Modern - and hence European Modern - are
+already quite thin.
+
+So for msam (if `extra' is not specified) he used:
+
+\DeclareFontShape{U}{msa}{m}{n}{
+ <-7> msam5
+ <7-10> msam7
+ <10-> msam10
+ }{}
+
+That is, for sizes strictly below 7pt use msam5, 7pt to (less than) 10pt
+use msam7 and sizes 10pt and above use msam10.
+
+This differs from the specification that the AMS use for the scalable
+AMS fonts (used by the psfonts option to the amsfonts package). They use
+
+\DeclareFontShape{U}{msa}{m}{n}{
+ <-6> msam5
+ <6-8> msam7
+ <8-> msam10
+ }{}
+
+This scheme has the advantage of minimising the scaling used, so for instance
+a 9pt request is satisfied by msam7 scaled up to 9 by this package, but by
+msam10 scaled down to 9 by the AMS package.
+
+In practice this is not likely to make a difference that anyone might notice,
+but it could in principle affect line breaks etc, so David thought that it
+should be mentioned here.
+
+--------------------------------------------------------------------------------
+(TM) European Modern is a trademark of Y&Y, Inc. http://www.YandY.com
+-------------------------------------------------------------------------------- \ No newline at end of file
diff --git a/macros/latex/contrib/psnfssx/hvmath/hvmaths.dtx b/macros/latex/contrib/psnfssx/hvmath/hvmaths.dtx
new file mode 100644
index 0000000000..4bffd6f148
--- /dev/null
+++ b/macros/latex/contrib/psnfssx/hvmath/hvmaths.dtx
@@ -0,0 +1,495 @@
+%\CheckSum{398}
+%
+% \iffalse
+%
+% Copyright (c) 1999-2004 Walter Schmidt
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.1
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.1 or later is part of all distributions of LaTeX
+% version 1999/06/01 or later.
+%
+% This program consists of the files hvmaths.txt, hvmaths.dtx
+% and hvmaths.ins.
+%
+% \fi
+%
+% \iffalse
+%
+\NeedsTeXFormat{LaTeX2e}[1997/12/01]
+%<*driver>
+\ProvidesFile{hvmaths.dtx}
+%</driver>
+%<+package>\ProvidesPackage{hvmaths}
+ [2004/02/01 v1.5 (WaS/MicroPress)]
+%
+%<*driver>
+\documentclass{ltxdoc}
+\usepackage{url}
+\OnlyDescription
+\begin{document}
+ \DocInput{hvmaths.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \GetFileInfo{hvmaths.dtx}
+% \DeleteShortVerb{\|}
+% \MakeShortVerb{\+}
+%
+% \title{The \LaTeX{} macro package \textsf{hvmaths}}
+% \author{Walter Schmidt}
+% \date{(\fileversion{} -- \filedate)}
+% \maketitle
+%
+%
+% \section{The HV-Math font set}
+%
+% MicroPress' HV-Math font set extends the Adobe Helvetica fonts:
+% \begin{itemize}
+% \item Additional text and text companion symbols make the
+% full OT1 and T1 character sets and a subset of the
+% text companion symbols available, including the Euro sign.
+% With \LaTeX, the enhanced Helveiica typefaces are provided
+% as a font family named \texttt{hvr}.
+% \item Several math fonts, matching the `Helvetica' style, are provided
+% to support all of \TeX's math typesetting capabilites and fully
+% replace the default Computer Modern fonts.
+% \end{itemize}
+%
+%
+% \section{The macro package \textsf{hvmaths}}
+% Loading the package
+% \begin{verse}
+% +\usepackage{hvmaths}+
+% \end{verse}
+% effects the following:
+% \begin{itemize}
+% \item
+% The default sans serif font family for typesetting text
+% is changed to \texttt{hvr}, i.\,e.\ Micropress HV-Math.
+% \item
+% The sans serif font family will be the default for the whole document.
+% \item
+% The matching MicroPress~HV-Math fonts will be used in formulas.
+% \end{itemize}
+% Using the \textsf{hvmaths} package requires also the package
+% \textsf{keyval}, which is part of the \textsc{Graphics} bundle
+% and should be available in any decent \LaTeX\ system.
+%
+%
+% \subsection{Font encoding}
+% The package does \emph{not} change the default output font
+% encoding from OT1. It is, however, recommended to switch to
+% the extended T1 and TS1 encodings,
+% so as to provide access to all glyphs.
+% This is enabled by means of the following additional commands:
+% \begin{verse}
+% +\usepackage[T1]{fontenc}+\\
+% +\usepackage{textcomp}+
+% \end{verse}
+%
+%
+% \subsection{Using the AMS math symbol fonts}
+% The HV-Math font set includes matching AMS symbol fonts, too.
+% \LaTeX{} will use these, if the package \texttt{amssymb}
+% is loaded in conjunction with \texttt{hvmaths}. The sequence of loading does
+% not matter.
+%
+%
+% \subsection{Bold italic letters in formulas}
+% The \texttt{hvmaths} package provides a {\bfseries\itshape bold italic}
+% math alphabet +\mathbold+. It includes both Latin and Greek.
+% (Do not mix this up with +\mathbf+, which implements
+% the {\bfseries bold upright} text font for use in math!)
+%
+%
+% \subsection{Upright Greek letters}
+% A full upright Greek alphabet is made available.
+% The macros +\upalpha+, +\upbeta+ \dots\ +\upGamma+, +\upDelta+ etc.\
+% always produce upright Greek letters, regardless of the \texttt{slantedGreek} option
+% described below,
+%
+%
+% \subsection{Options}
+% The behavior of the package, as described above, can be modified
+% by various options:
+%
+% \subsubsection{The option \texttt{sans}}
+% Loading the package with this option will only change
+% the sans serif text font family to Helvetica.
+% The default font family and the math fonts are untouched.
+% Thus, the \textsf{hvmaths} package will behave like the PSNFSS
+% package \textsf{helvet}.
+%
+% Using both \textsf{sans} and \textsf{roman} does not
+% make sense, of course, and the \textsf{sans} option is ignored then.
+%
+%
+% \subsubsection{The option \texttt{roman}}
+% This option will cause HV-Math to be mapped
+% to the default `roman' font family instead of
+% the `sans serif' one. This is provided for compatibility with the
+% package \textsf{hvmath} only and should normally not be used.
+%
+%
+% \subsubsection{The option \texttt{scaled}}
+% Helvetica is noticeably larger than most other fonts (incl.\ CM),
+% when used with the same nominal size.
+% As a result, it may become difficult to mix fonts or add further
+% math alphabets.
+% This can be fixed by loading the \textsf{hvmaths}
+% package with the option
+%\texttt{[scaled=}$\langle\textit{scale}\rangle$\texttt{]},
+% e.g.:
+% \begin{quote}
+% +\usepackage[scaled=.92]{hvmaths}+
+% \end{quote}
+% This will load the font family \texttt{hvr} (Helvetica) for sans-serif,
+% scaled down to 92\% of its `natural' size, which blends well with
+% Adobe Times.
+%
+% The $\langle$\textit{scale}$\rangle$ can be omitted:
+% \begin{quote}
+% +\usepackage[scaled]{hvmaths}+
+% \end{quote}
+% A default scaling of 0.95 will be assumed then, which makes the
+% height of the Helvetica capitals comply with many other typeface
+% families.
+%
+% As a side effect,
+% the default line spacing of the standard \LaTeX{} document classes
+% may be sufficient for the now scaled-down Helvetica,
+% especially when the line width is not too large.
+%
+%
+% \subsubsection{The option \texttt{slantedGreek}}
+% When the macro package is loaded using the option \texttt{[slantedGreek]},
+% uppercase Greek letters in math will, by default, be slanted.
+%
+%
+% \subsection{Changes over \texttt{hvmath.sty}}
+% As compared with MicroPress' original \texttt{hvmath.sty}, this package
+% provides a number of improvements:
+% \begin{itemize}
+% \item the option \texttt{slantedGreek}
+% \item support for a full upright Greek alphabet, without loading
+% any additional package
+% \item AMS symbols can be used by just loading the package \texttt{amssymb};
+% no extra packages are needed, and the sequence of of loading does not matter.
+% \end{itemize}
+% In contrast to \texttt{hvmath}, the package does \emph{not} support MicroPress'
+% `local' font encoding LV1.
+%
+%
+% \section{Availability and support}
+% The latest version of this package can be obtained from the directory
+% \begin{verse}
+% \path{macros/latex/contrib/psnfssx/hvmath}
+% \end{verse}
+% of any CTAN host.
+%
+% \noindent The HV-Math fonts are provided by
+% \begin{verse}
+% MicroPress, Inc.\\
+% 6830~Harrow~Street,
+% Forest Hills NY 11375,
+% USA\\
+% \path{<http://www.micropress-inc.com>}
+% \end{verse}
+% Please, address questions or bug reports via email to
+% \begin{verse}
+% \path{<support@micropress-inc.com>}.
+% \end{verse}
+%
+% \StopEventually{\par\vfill\noindent{\sffamily\footnotesize
+% Adobe is a trademark of Adobe Systems Incorporated.
+% Helvetica is a trademark of Linotype-Hell AG.
+% HV-Math is a trademark of MicroPress, Inc.
+% \par }}
+%
+%
+% \section{The package}
+%
+% \subsection{Declaring and processing options}
+% Options processing uses the \textsf{keyval} package
+% and a hack borrowed from \textsf{hyperref}:
+% \begin{macrocode}
+%<*package>
+\RequirePackage{keyval}
+\newif\ifhvmath@slantedGreek
+\newif\ifhvmath@roman
+\newif\ifhvmath@sans
+\define@key{Hvr}{scaled}[.95]{%
+ \expandafter\def\csname OM1@hvr@scale\endcsname{#1}
+ \expandafter\def\csname OT1@hvr@scale\endcsname{#1}
+ \expandafter\def\csname T1@hvr@scale\endcsname{#1}
+}
+\define@key{Hvr}{slantedGreek}[true]{%
+ \csname hvmath@slantedGreek#1\endcsname
+}
+\define@key{Hvr}{roman}[true]{%
+ \csname hvmath@roman#1\endcsname
+}
+\define@key{Hvr}{sans}[true]{%
+ \csname hvmath@sans#1\endcsname
+}
+\def\ProcessOptionsWithKV#1{%
+ \let\@tempc\relax
+ \let\Hvr@tempa\@empty
+ \@for\CurrentOption:=\@classoptionslist\do{%
+ \@ifundefined{KV@#1@\CurrentOption}%
+ {}%
+ {%
+ \edef\Hvr@tempa{\Hvr@tempa,\CurrentOption,}%
+ \@expandtwoargs\@removeelement\CurrentOption
+ \@unusedoptionlist\@unusedoptionlist
+ }%
+ }%
+ \edef\Hvr@tempa{%
+ \noexpand\setkeys{#1}{%
+ \Hvr@tempa\@ptionlist{\@currname.\@currext}%
+ }%
+ }%
+ \Hvr@tempa
+ \let\CurrentOption\@empty
+}
+\ProcessOptionsWithKV{Hvr}
+\AtEndOfPackage{%
+ \let\@unprocessedoptions\relax
+}
+% \end{macrocode}
+% The HV-Math \texttt{.fd} files will evaluate
+% +\T1@hvr@scale+, +\OT1@hvr@scale+ and +\OM1@hvr@scale+,
+% thus determining whether or not the fonts are to be scaled.
+%
+%
+% \subsection{Setting up the text fonts}
+% The package \texttt{hvmaths} switches the default roman text font
+% family to \texttt{tmr} and provides an improved definition of Aring
+% for use with the OT1 encoding:
+% \begin{macrocode}
+\ifhvmath@roman
+ \hvmath@sansfalse
+ \DeclareFontSubstitution{OT1}{hvr}{m}{n}
+ \renewcommand{\rmdefault}{hvr}
+\else
+ \renewcommand{\sfdefault}{hvr}
+ \ifhvmath@sans\else
+ \renewcommand{\familydefault}{\sfdefault}
+ \fi
+\fi
+\def\hvmath@Aring
+{%
+ \leavevmode
+ \setbox0\hbox{h}%
+ \dimen@\ht0 %
+ \advance\dimen@-1ex%
+ \ooalign{\hfil\raise.85\dimen@\hbox{\r{}}\hfil\crcr A}%
+}%
+\DeclareTextCompositeCommand{\r}{OT1}{A}{\hvmath@Aring}%
+\normalfont
+% \end{macrocode}
+%
+%
+% \subsection{Setting up the math fonts}
+% The remaining code is not to be executed when the \textsf{sans}
+% option has been specified:
+% \begin{macrocode}
+\ifhvmath@sans\endinput\fi
+% \end{macrocode}
+% \begin{macrocode}
+\DeclareSymbolFont{operators}{OT1}{hvr}{m}{n}%
+\DeclareSymbolFont{letters}{OML}{hvm}{m}{it}%
+\DeclareSymbolFont{symbols}{OMS}{hvsy}{m}{n}%
+\DeclareSymbolFont{largesymbols}{OMX}{hvex}{m}{n}%
+\SetSymbolFont{operators}{bold}{OT1}{hvr}{bx}{n}%
+\SetSymbolFont{letters}{bold}{OML}{hvm}{b}{it}%
+\SetSymbolFont{symbols}{bold}{OMS}{hvsy}{b}{n}%
+\DeclareMathAlphabet{\mathbf}{OT1}{hvr}{bx}{n}%
+\DeclareMathAlphabet{\mathit}{OT1}{hvr}{m}{it}%
+\SetMathAlphabet\mathit{bold}{OT1}{hvr}{bx}{it}%
+% \end{macrocode}
+%
+% Define +\hbar+:
+% \begin{macrocode}
+\DeclareMathSymbol{\hbar}{\mathord}{letters}{128}
+% \end{macrocode}
+%
+% Define +\mathbold+:
+% \begin{macrocode}
+\DeclareMathAlphabet{\mathbold}{OML}{hvm}{b}{it}%
+% \end{macrocode}
+%
+% Make +\mathbold+ act on lowercase Greek, too:
+% \begin{macrocode}
+\DeclareMathSymbol{\alpha}{\mathalpha}{letters}{11}
+\DeclareMathSymbol{\beta}{\mathalpha}{letters}{12}
+\DeclareMathSymbol{\gamma}{\mathalpha}{letters}{13}
+\DeclareMathSymbol{\delta}{\mathalpha}{letters}{14}
+\DeclareMathSymbol{\epsilon}{\mathalpha}{letters}{15}
+\DeclareMathSymbol{\zeta}{\mathalpha}{letters}{16}
+\DeclareMathSymbol{\eta}{\mathalpha}{letters}{17}
+\DeclareMathSymbol{\theta}{\mathalpha}{letters}{18}
+\DeclareMathSymbol{\iota}{\mathalpha}{letters}{19}
+\DeclareMathSymbol{\kappa}{\mathalpha}{letters}{20}
+\DeclareMathSymbol{\lambda}{\mathalpha}{letters}{21}
+\DeclareMathSymbol{\mu}{\mathalpha}{letters}{22}
+\DeclareMathSymbol{\nu}{\mathalpha}{letters}{23}
+\DeclareMathSymbol{\xi}{\mathalpha}{letters}{24}
+\DeclareMathSymbol{\pi}{\mathalpha}{letters}{25}
+\DeclareMathSymbol{\rho}{\mathalpha}{letters}{26}
+\DeclareMathSymbol{\sigma}{\mathalpha}{letters}{27}
+\DeclareMathSymbol{\tau}{\mathalpha}{letters}{28}
+\DeclareMathSymbol{\upsilon}{\mathalpha}{letters}{29}
+\DeclareMathSymbol{\phi}{\mathalpha}{letters}{30}
+\DeclareMathSymbol{\chi}{\mathalpha}{letters}{31}
+\DeclareMathSymbol{\psi}{\mathalpha}{letters}{32}
+\DeclareMathSymbol{\omega}{\mathalpha}{letters}{33}
+\DeclareMathSymbol{\varepsilon}{\mathalpha}{letters}{34}
+\DeclareMathSymbol{\vartheta}{\mathalpha}{letters}{35}
+\DeclareMathSymbol{\varpi}{\mathalpha}{letters}{36}
+\DeclareMathSymbol{\varphi}{\mathalpha}{letters}{39}
+\DeclareMathSymbol{\varrho}{\mathalpha}{letters}{37}
+\DeclareMathSymbol{\varsigma}{\mathalpha}{letters}{38}
+% \end{macrocode}
+%
+% The option \textsf{slantedGreek}:
+% \begin{macrocode}
+\ifhvmath@slantedGreek
+ \DeclareMathSymbol{\Gamma}{\mathalpha}{letters}{0}
+ \DeclareMathSymbol{\Delta}{\mathalpha}{letters}{1}
+ \DeclareMathSymbol{\Theta}{\mathalpha}{letters}{2}
+ \DeclareMathSymbol{\Lambda}{\mathalpha}{letters}{3}
+ \DeclareMathSymbol{\Xi}{\mathalpha}{letters}{4}
+ \DeclareMathSymbol{\Pi}{\mathalpha}{letters}{5}
+ \DeclareMathSymbol{\Sigma}{\mathalpha}{letters}{6}
+ \DeclareMathSymbol{\Upsilon}{\mathalpha}{letters}{7}
+ \DeclareMathSymbol{\Phi}{\mathalpha}{letters}{8}
+ \DeclareMathSymbol{\Psi}{\mathalpha}{letters}{9}
+ \DeclareMathSymbol{\Omega}{\mathalpha}{letters}{10}
+\fi
+% \end{macrocode}
+%
+% \subsection{Upright Greek}
+% Uppercase upright Greek is taken from the `operators' font:
+% \begin{macrocode}
+\DeclareMathSymbol{\upGamma} {\mathord}{operators}{"00}
+\DeclareMathSymbol{\upDelta} {\mathord}{operators}{"01}
+\DeclareMathSymbol{\upTheta} {\mathord}{operators}{"02}
+\DeclareMathSymbol{\upLambda} {\mathord}{operators}{"03}
+\DeclareMathSymbol{\upXi} {\mathord}{operators}{"04}
+\DeclareMathSymbol{\upPi} {\mathord}{operators}{"05}
+\DeclareMathSymbol{\upSigma} {\mathord}{operators}{"06}
+\DeclareMathSymbol{\upUpsilon}{\mathord}{operators}{"07}
+\DeclareMathSymbol{\upPhi} {\mathord}{operators}{"08}
+\DeclareMathSymbol{\upPsi} {\mathord}{operators}{"09}
+\DeclareMathSymbol{\upOmega} {\mathord}{operators}{"0A}
+% \end{macrocode}
+% The lowercase upright Greek letters are -- unfortunately -- not in the `letters'
+% font, so we need to set up a particular math alphabet for them:
+% \begin{macrocode}
+\DeclareFontFamily{U}{hvrmex}{}
+\DeclareFontShape{U}{hvrmex}{m}{n}{<->hvrm10ex}{}
+\DeclareFontShape{U}{hvrmex}{b}{n}{<->hvrb10ex}{}
+\DeclareSymbolFont{upright}{U}{hvrmex}{m}{n}%
+\SetSymbolFont{upright}{bold}{U}{hvrmex}{b}{n}
+\DeclareMathSymbol{\upalpha}{\mathord}{upright}{211}
+\DeclareMathSymbol{\upbeta}{\mathord}{upright}{212}
+\DeclareMathSymbol{\upgamma}{\mathord}{upright}{213}
+\DeclareMathSymbol{\updelta}{\mathord}{upright}{214}
+\DeclareMathSymbol{\upepsilon}{\mathord}{upright}{215}
+\DeclareMathSymbol{\upzeta}{\mathord}{upright}{216}
+\DeclareMathSymbol{\upeta}{\mathord}{upright}{217}
+\DeclareMathSymbol{\uptheta}{\mathord}{upright}{218}
+\DeclareMathSymbol{\upiota}{\mathord}{upright}{219}
+\DeclareMathSymbol{\upkappa}{\mathord}{upright}{220}
+\DeclareMathSymbol{\uplambda}{\mathord}{upright}{221}
+\DeclareMathSymbol{\upmu}{\mathord}{upright}{222}
+\DeclareMathSymbol{\upnu}{\mathord}{upright}{223}
+\DeclareMathSymbol{\upxi}{\mathord}{upright}{224}
+\DeclareMathSymbol{\uppi}{\mathord}{upright}{225}
+\DeclareMathSymbol{\uprho}{\mathord}{upright}{226}
+\DeclareMathSymbol{\upsigma}{\mathord}{upright}{227}
+\DeclareMathSymbol{\uptau}{\mathord}{upright}{228}
+\DeclareMathSymbol{\upupsilon}{\mathord}{upright}{229}
+\DeclareMathSymbol{\upphi}{\mathord}{upright}{230}
+\DeclareMathSymbol{\upchi}{\mathord}{upright}{231}
+\DeclareMathSymbol{\uppsi}{\mathord}{upright}{232}
+\DeclareMathSymbol{\upomega}{\mathord}{upright}{233}
+\DeclareMathSymbol{\upvarepsilon}{\mathord}{upright}{234}
+\DeclareMathSymbol{\upvartheta}{\mathord}{upright}{235}
+\DeclareMathSymbol{\upvarpi}{\mathord}{upright}{236}
+\DeclareMathSymbol{\upvarphi}{\mathord}{upright}{239}
+\DeclareMathSymbol{\upvarrho}{\mathord}{upright}{237}
+\DeclareMathSymbol{\upvarsigma}{\mathord}{upright}{238}
+% \end{macrocode}
+%
+% \subsection{Peaceful coexistence with AMS-\LaTeX}
+% \begin{macrocode}
+\AtBeginDocument{%
+% \end{macrocode}
+%
+% Fix multiple integrals from \textsf{amsmath} for use with HV-Math fonts:
+% \begin{macrocode}
+ \@ifpackageloaded{amsmath}{%
+ \def\intkern@{\mkern-6mu}
+ }{}
+% \end{macrocode}
+%
+% Use the HV-Math versions of the AMS symbol fonts:
+% \begin{macrocode}
+ \expandafter\ifx\csname OM1@hvr@scale\endcsname\relax
+ \let\@l@scale\@empty
+ \else
+ \edef\@l@scale{s*[\csname OM1@hvr@scale\endcsname]}%
+ \fi
+ \DeclareFontFamily{U}{msa}{}
+ \DeclareFontShape{U}{msa}{m}{n}{<->\@l@scale hvam10}{}
+ \DeclareFontFamily{U}{msb}{}
+ \DeclareFontShape{U}{msb}{m}{n}{<->\@l@scale hvbm10}{}
+% \end{macrocode}
+% \begin{macrocode}
+}
+% \end{macrocode}
+%
+%
+% \section*{DocStrip modules in this file \texttt{hvmaths.dtx}}
+% \begin{quote}
+% \begin{tabular}{ll}
+% module: & contents:\\[0.5ex]
+% +package+ & package \textsf{hvmaths}\\
+% +driver+ & driver for documentation \\
+% \end{tabular}
+% \end{quote}
+%
+%
+% \Finale
+%
+%
+% \iffalse
+% The next line of code prevents DocStrip from adding the
+% character table to the modules:
+%\endinput
+% \fi
+%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+
diff --git a/macros/latex/contrib/psnfssx/hvmath/hvmaths.ins b/macros/latex/contrib/psnfssx/hvmath/hvmaths.ins
new file mode 100644
index 0000000000..97d32f7987
--- /dev/null
+++ b/macros/latex/contrib/psnfssx/hvmath/hvmaths.ins
@@ -0,0 +1,7 @@
+% file hvmaths.ins 2001-02-19
+\input docstrip
+
+\generate{\file{hvmaths.sty}{\from{hvmaths.dtx}{package}}}
+
+\endbatchfile
+
diff --git a/macros/latex/contrib/psnfssx/hvmath/hvmaths.txt b/macros/latex/contrib/psnfssx/hvmath/hvmaths.txt
new file mode 100644
index 0000000000..9c6d9f680b
--- /dev/null
+++ b/macros/latex/contrib/psnfssx/hvmath/hvmaths.txt
@@ -0,0 +1,105 @@
+============================================================
+ The LaTeX macro package hvmaths.sty
+ version 1.5 as of 2004-02-01
+============================================================
+ Walter Schmidt
+ w.a.schmidt@gmx.net
+
+
+The purpose of this macro package is to use MicroPress
+HV-Math fonts, version 1.2, as the main font family for text
+and math. It constitutes an alternative to the package
+hvmath.sty which is shipped with the fonts.
+
+The basic usage is simply to add \usepackage{hvmaths} to
+your document preamble; however, there are several options
+to control the behaviour, as described in the documentation.
+
+
+Prerequisites
+=============
+You need the HV-Math fonts, which are provided in Type1
+(PostScript) format by MicroPress, Inc, see
+
+ <http://www.micropress-inc.com/fonts/>.
+
+A free bitmapped (demo) version of the fonts is available
+from CTAN:
+
+ fonts/micropress/hvmath/
+
+Note that the demo version does not include the AMS symbols,
+and that it does not support scaling of the fonts.
+
+
+Installing the macro package
+============================
+The documented source of the package is the file
+hvmaths.dtx.
+
+To generate the package file you should run
+
+ latex hvmaths.ins
+
+The resulting file hvmaths.sty must then be moved to a
+directory where LaTeX will find it. In a TDS-compliant TeX
+system, such as teTeX or VTeX/Free, we recommend the
+directory texmf/tex/latex/hvmath or ../psnfssx.
+
+Documentation on the package is obtained by running LaTeX
+on the package source file:
+
+ latex hvmaths.dtx
+
+
+News
+====
+2004-02-01 (v1.5)
+ Fixed options processing.
+ Reintroduced the fixt re. \r{A} in OT1 encoding.
+
+2004-01-19 (v1.4)
+ A full upright Greek math alphabet is made available.
+
+2001-05-06 (v1.2b)
+ Bug fixes:
+ made the option [scaled] act on the HV AMS fonts, too;
+ removed questionable redefinition of \AA in OT1 encoding;
+ fixed AMS multiple integrals (again...)
+
+2001-02-12 (v1.2a)
+ added support for the HV-AMS fonts
+
+2000-01-06 (v1.2)
+ fixed version number so as to comply with the fonts
+
+1999-11-22 (v2.0): the package is to be used with version
+ 1.2 of the HV-Math fonts. The default font family is
+ always hvr, since hvr now includes T1 and TS1, too.
+
+1999-08-30 (v1.0): fixed bug with multiple integrals from
+ the amsmath package.
+
+
+
+Notes
+=====
+This collection is made up from the following files:
+
+ hvmaths.dtx
+ hvmaths.ins
+ hvmaths.txt
+
+It may be may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either
+version 1.2 of this license or (at your option) any later
+version. The latest version of this license is in
+http://www.latex-project.org/lppl.txt and version 1.2 or
+later is part of all distributions of LaTeX version
+1999/12/01 or later.
+
+Adobe and PostScript are trademarks of Adobe Systems
+Incorporated. Helvetica is a trademark of Linotype-Hell AG.
+HV-Math is a trademark of MicroPress, Inc.
+
+-- finis
diff --git a/macros/latex/contrib/psnfssx/lucidabr/Makefile b/macros/latex/contrib/psnfssx/lucidabr/Makefile
new file mode 100644
index 0000000000..b1fa8b7be8
--- /dev/null
+++ b/macros/latex/contrib/psnfssx/lucidabr/Makefile
@@ -0,0 +1,24 @@
+# Trivial Makefile to generate and move files to the appropriate directory.
+# Copyright 2005, 2006, 2007 TeX Users Group.
+# You may freely use, modify and/or distribute this file.
+
+styles = lucmtime.sty lucbmath.sty lucidabr.sty lucidbrb.sty \
+ lucidbry.sty lucmin.sty luctime.sty
+fd = lmrhlcm.fd omlhlcm.fd omlhlh.fd omshlcy.fd omshlh.fd omxhlcv.fd
+
+default: $(styles) $(fd)
+
+$(styles) $(fd): lucidabr.ins
+ latex '\nonstopmode\input $<'
+
+$(styles): lucidabr.dtx
+$(fd): lucidabr.fdd
+
+lucidabr.pdf: lucidabr.dtx
+ pdflatex '\nonstopmode\input $<'
+
+texmf = ../../..
+install: $(styles) $(fd)
+ mv -f $(styles) $(texmf)/tex/latex/lucidabr/
+ mv -f $(fd) $(texmf)/tex/latex/lucidabr/
+ rm -f lucfont.tex lucidabr.log lucidabr.aux
diff --git a/macros/latex/contrib/psnfssx/lucidabr/README b/macros/latex/contrib/psnfssx/lucidabr/README
new file mode 100644
index 0000000000..9968b4038c
--- /dev/null
+++ b/macros/latex/contrib/psnfssx/lucidabr/README
@@ -0,0 +1,29 @@
+Copyright 2007, 2010 TeX Users Group.
+You may freely use, modify and/or distribute this file (README).
+
+This lucidabr package provides LaTeX support for the Lucida fonts.
+
+The related lucida package, at
+http://mirror.ctan.org/fonts/psfonts/bh/lucida, provides basic TeX
+support files, such as tfm and map files.
+
+The lucidabr and lucida packages on CTAN are free, but the Lucida fonts
+are not: you must order them from TUG or another source to actually
+typeset anything in Lucida. The TUG Lucida web pages explain the
+details -- see http://tug.org/lucida.
+
+For installation instructions, after ordering the fonts from TUG, see the
+README.TUG file. (You'll get the same info in email after ordering.)
+The "zip file" referred to in README.TUG is the combination of
+http://mirror.ctan.org/install/macros/latex/contrib/psnfssx/lucidabr.zip
+and http://mirror.ctan.org/install/fonts/psfonts/bh/lucida.zip.
+
+If you have questions or problems regarding installation or use, please
+email lucida@tug.org; this is an open list for Lucida discussion, and
+you can subscribe via http://lists.tug.org/lucida. Questions or
+problems related to ordering or licensing should go to
+lucida-admin@tug.org.
+
+The lucidabr package is looking for an active maintainer to improve the
+documentation, add some requested features, and generally maintain the
+distribution. If you are interested, please email.
diff --git a/macros/latex/contrib/psnfssx/lucidabr/README.TUG b/macros/latex/contrib/psnfssx/lucidabr/README.TUG
new file mode 100644
index 0000000000..9bfecad1b4
--- /dev/null
+++ b/macros/latex/contrib/psnfssx/lucidabr/README.TUG
@@ -0,0 +1,148 @@
+To install the Lucida Type 1 font distribution from TUG:
+
+1) download the zip file from TUG via the url given to you after ordering.
+
+2) change directories to a suitable texmf hierarchy; your "local texmf"
+ tree is the best choice. More info below(*).
+
+3) unzip the archive as retrieved. It unpacks into subdirectories
+ fonts/, tex/, and so on. These directories will probably already
+ exist if you already have a local texmf tree; that's ok. You must
+ use an unzip program or settings which does *not* create any
+ top-level directory of its own (such as "lucida-type1/"), but just
+ unpacks what is in the zip file.
+
+4) remake the so-called "filename database", unless you unpacked in a
+ personal directory, such as ~/Library/texmf on MacOSX.
+ Under Unix, this is generally done by running the command mktexlsr
+ (on MacOSX, typically as root, so: sudo -H mktexlsr).
+ Under MiKTeX, it is generally done through the GUI:
+ Start > Programs > MiKTeX > Maintenance > Settings > General
+ > Refresh FNDB
+ In older versions of MiKTeX, it may be under a menu called
+ "MiKTeX Options" instead of "Maintenance".
+ There may also be a "Maintenance(Admin)" entry if you have
+ administrative privileges; if so, that is usually the better choice.
+ Or from a DOS command line, if you prefer: initexmf --update-fndb
+
+5) enable the Lucida "map files", if necessary.
+ Under Unix, this is generally done by running the command
+updmap-sys --force --enable Map lucida.map
+ (on MacOSX, typically as root, so: sudo -H updmap-sys ...)
+ For MiKTeX, the procedure is more complicated; see below(**).
+
+ Some distributions already have the map file enabled. You can tell
+ by running the sample document mentioned below on your system. If it
+ starts calling programs like mktexpk, and fonts are unable to be
+ loaded, and you don't get any actual Lucida in the output, then you
+ need to enable the map file. If the output is fine, you're all set.
+
+6) remake the filename database again; this is not always necessary,
+ depending on your setup, but should never hurt.
+
+7) the document doc/fonts/lucidabr/lucida-type1.pdf explains the basic
+ usage of the fonts in LaTeX, and is itself typeset using Lucida. The
+ LaTeX source is also included (lucida-type1.tex) so that you can see
+ how it was produced. Running this file through LaTeX yourself is a
+ good test of the installation.(***)
+
+ The short text file doc/fonts/lucidabr/lucidabr.txt lists the options
+ to the package. Additional documentation and samples are in
+ doc/fonts/lucidabr and doc/fonts/lucida.
+
+If you have questions or problems regarding installation or use, please
+email lucida@tug.org; this is an open and publicly archived list for
+Lucida discussion, and you can subscribe via
+http://lists.tug.org/lucida. Questions or problems related to ordering
+or licensing should go to lucida-admin@tug.org.
+
+The TUG Lucida home page is http://tug.org/lucida.
+Happy typesetting!
+
+--
+(*) Finding and/or creating your texmf-local tree:
+
+TeX systems have thousands of files, arranged in one or more
+"trees" of directories. Your system can quickly look through
+the trees that it knows about.
+
+When you install TeX, you may have noticed or set up a "local" tree,
+used for your own macros and other files. The advantage of a local tree
+is that if you install an new version of your TeX system then these
+local materials will not be overwritten. A local tree is the best place
+to install the Lucida fonts.
+
+Typical names for local trees are "C:\Local TeX Files" on Windows or
+"/usr/local/texlive/texmf-local" on Unix. They might be entirely empty.
+How to find or define a local tree depends on your system:
+
+ MiKTeX
+ Navigate through the MiKTeX program:
+ Start > Programs > MiKTeX > Maintenance > Roots
+ (or "MiKTeX Settings", in older versions). Some paths shown there
+ have a "Description" such as Install, UserConfig or UserData. A
+ tree labeled UserConfig (but not any of the others) is an acceptable
+ target for your new fonts, if you have no permission to create a new
+ tree. However, it is better to use a tree without a description, as
+ follows:
+
+ You can create a new local tree by clicking on "Add". The folder
+ must not contain files at its root level or MiKTeX will reject it.
+ Files in the folder must be in subfolders similar to the subfolders
+ in the "Install" root. For more info, see
+ http://docs.miktex.org/manual/localadditions.html.
+
+ TeX Live and MacTeX
+ From a system terminal (aka command prompt, shell window) enter the
+ command
+ kpsewhich --var-value TEXMFLOCAL
+ to see the directory name.
+
+
+(**) Enabling the Lucida map file under MiKTeX:
+
+1. Edit the map configuration file updmap.cfg. In a DOS Window/Command
+Prompt window, run:
+initexmf --edit-config-file updmap
+ You'll want to edit this in a text editor such as Notepad. If the
+ file or any of the leading directories do not exist, create them.
+
+2. Add this one line to updmap.cfg and save it:
+Map lucida.map
+
+3. Back at the DOS prompt, run:
+initexmf --mkmaps
+ (Ignore any error messages.)
+
+Hopefully that is it. Resume above at step 5.
+
+
+(***) Potential problems:
+
+1. If when you run a Lucida document you get complaints about missing
+ fonts, mktexpk could not make bitmaps, etc., most likely you need to
+ enable the Lucida map file. See step 4 above.
+
+2. If you do try latex-ing lucida-type1.tex and get an error at the line:
+ \DeclareEncodingSubset{TS1}{hlh}{1} % including \oldstylenums
+Please check your version of the textcomp.sty style file against
+the current release, available at:
+ http://www.ctan.org/tex-archive/macros/latex/unpacked/textcomp.sty
+
+
+--
+Legal: the Lucida fonts are made available only under an end-user or
+site license, which you must have agreed to when you ordered the fonts.
+The license text is available in the distribution files
+doc/fonts/lucidabr/lucida-license-*.txt, or online at
+http://tug.org/store/lucida. (This documentation itself may be freely
+used, modified and/or distributed.)
+
+The Lucida typeface family was designed by Charles Bigelow and Kris Holmes.
+(R) Lucida is a trademark of Bigelow & Holmes Inc.
+registered in the U.S. Patent & Trademark Office and other
+jurisdictions.
+
+TUG gratefully acknowledges Y&Y for the original Lucida TeX distribution,
+Walter Schmidt for creating and updating the TeX font support files, and
+PCTeX for sponsoring him and allowing his work to be redistributed.
diff --git a/macros/latex/contrib/psnfssx/lucidabr/lucida-amsmath.pdf b/macros/latex/contrib/psnfssx/lucidabr/lucida-amsmath.pdf
new file mode 100644
index 0000000000..3ed7cd1f88
--- /dev/null
+++ b/macros/latex/contrib/psnfssx/lucidabr/lucida-amsmath.pdf
Binary files differ
diff --git a/macros/latex/contrib/psnfssx/lucidabr/lucida-amsmath.tex b/macros/latex/contrib/psnfssx/lucidabr/lucida-amsmath.tex
new file mode 100644
index 0000000000..48eb29d1cb
--- /dev/null
+++ b/macros/latex/contrib/psnfssx/lucidabr/lucida-amsmath.tex
@@ -0,0 +1,2334 @@
+% lucida-amsmath.tex
+% Copyright 2005 TeX Users Group.
+%
+% This file is based on testmath.tex by the AMS. Unrestricted
+% permission is granted to copy, modify, and extract portions of this file.
+%
+% This is a documentation file for the lucidabr package, showing
+% advanced mathematical and AMS usage for the Lucida fonts.
+% http://tug.org/lucida
+
+\documentclass{article}
+\pagestyle{headings}
+
+\title{Sample Paper for the \pkg{amsmath} and \pkg{lucidabr} Packages\\
+File name: \fn{\jobname.tex}}
+\author{\TeX\ Users Group \& American Mathematical Society}
+\date{Version 2.1, 28 November 2005}
+
+\setlength\textwidth{375pt}
+
+\usepackage{amsmath,amsthm}
+\usepackage[T1]{fontenc}
+\usepackage{lucidabr}
+
+% Some definitions useful in producing this sort of documentation:
+\chardef\bslash=`\\ % p. 424, TeXbook
+% Normalized (nonbold, nonitalic) tt font, to avoid font
+% substitution warning messages if tt is used inside section
+% headings and other places where odd font combinations might
+% result.
+\DeclareRobustCommand*\ntt{\normalfont\ttfamily}
+% command name
+\newcommand{\cn}[1]{{\ntt\bslash#1}}
+% LaTeX package name
+\newcommand{\pkg}[1]{{\ntt#1}}
+% File name
+\newcommand{\fn}[1]{{\ntt#1}}
+% environment name
+\newcommand{\env}[1]{{\ntt#1}}
+
+% Theorem environments
+
+%% \theoremstyle{plain} %% This is the default
+\newtheorem{thm}{Theorem}[section]
+\newtheorem{cor}[thm]{Corollary}
+\newtheorem{lem}[thm]{Lemma}
+\newtheorem{prop}[thm]{Proposition}
+\newtheorem{ax}{Axiom}
+
+\theoremstyle{definition}
+\newtheorem{defn}{Definition}[section]
+
+\theoremstyle{remark}
+\newtheorem{rem}{Remark}[section]
+\newtheorem*{notation}{Notation}
+
+%\numberwithin{equation}{section}
+
+\newcommand{\thmref}[1]{Theorem~\ref{#1}}
+\newcommand{\secref}[1]{\S\ref{#1}}
+\newcommand{\lemref}[1]{Lemma~\ref{#1}}
+
+\newcommand{\bysame}{\mbox{\rule{3em}{.4pt}}\,}
+
+% Math definitions
+
+\newcommand{\A}{\mathcal{A}}
+\newcommand{\B}{\mathcal{B}}
+\newcommand{\st}{\sigma}
+\newcommand{\XcY}{{(X,Y)}}
+\newcommand{\SX}{{S_X}}
+\newcommand{\SY}{{S_Y}}
+\newcommand{\SXY}{{S_{X,Y}}}
+\newcommand{\SXgYy}{{S_{X|Y}(y)}}
+\newcommand{\Cw}[1]{{\hat C_#1(X|Y)}}
+\newcommand{\G}{{G(X|Y)}}
+\newcommand{\PY}{{P_{\mathcal{Y}}}}
+\newcommand{\X}{\mathcal{X}}
+\newcommand{\wt}{\widetilde}
+\newcommand{\wh}{\widehat}
+
+\DeclareMathOperator{\per}{per}
+\DeclareMathOperator{\cov}{cov}
+\DeclareMathOperator{\non}{non}
+\DeclareMathOperator{\cf}{cf}
+\DeclareMathOperator{\add}{add}
+\DeclareMathOperator{\Cham}{Cham}
+\DeclareMathOperator{\IM}{Im}
+\DeclareMathOperator{\esssup}{ess\,sup}
+\DeclareMathOperator{\meas}{meas}
+\DeclareMathOperator{\seg}{seg}
+
+% \interval is used to provide better spacing after a [ that
+% is used as a closing delimiter.
+\newcommand{\interval}[1]{\mathinner{#1}}
+
+% Notation for an expression evaluated at a particular condition. The
+% optional argument can be used to override automatic sizing of the
+% right vert bar, e.g. \eval[\biggr]{...}_{...}
+\newcommand{\eval}[2][\right]{\relax
+ \ifx#1\right\relax \left.\fi#2#1\rvert}
+
+% Enclose the argument in vert-bar delimiters:
+\newcommand{\envert}[1]{\left\lvert#1\right\rvert}
+\let\abs=\envert
+
+% Enclose the argument in double-vert-bar delimiters:
+\newcommand{\enVert}[1]{\left\lVert#1\right\rVert}
+\let\norm=\enVert
+
+\begin{document}
+\maketitle
+\markboth{Sample paper for the {\ntt\lowercase{amsmath}} and {\ntt\lowercase{lucidabr}} packages}
+{Sample paper for the {\ntt\lowercase{amsmath}} and {\ntt\lowercase{lucidabr}} packages}
+\renewcommand{\sectionmark}[1]{}
+
+\section{Introduction}
+
+{\def\thefootnote{}
+% article.cls uses 1.8em for the footnote indent.
+\footnotetext{\kern-1.8em \textregistered\ Lucida is a trademark of
+Bigelow \& Holmes Inc.\ registered in the U.S. Patent \& Trademark
+Office and other jurisdictions.}
+}
+
+This paper contains examples of various features from the widely used
+\pkg{amsmath} package used with the Lucida math fonts.
+
+When loading the packages, you must load \pkg{amsmath} before
+\pkg{lucidabr}. Work is planned for improving interaction between these
+packages.
+
+For more information about Lucida and \TeX, and an order form for the
+fonts, please see {\tt http://tug.org/store/lucida}.
+
+\section{Enumeration of Hamiltonian paths in a graph}
+
+Let $\mathbf{A}=(a_{ij})$ be the adjacency matrix of graph $G$. The
+corresponding Kirchhoff matrix $\mathbf{K}=(k_{ij})$ is obtained from
+$\mathbf{A}$ by replacing in $-\mathbf{A}$ each diagonal entry by the
+degree of its corresponding vertex; i.e., the $i$th diagonal entry is
+identified with the degree of the $i$th vertex. It is well known that
+\begin{equation}
+\det\mathbf{K}(i|i)=\text{ the number of spanning trees of $G$},
+\quad i=1,\dots,n
+\end{equation}
+where $\mathbf{K}(i|i)$ is the $i$th principal submatrix of
+$\mathbf{K}$.
+\begin{verbatim}
+\det\mathbf{K}(i|i)=\text{ the number of spanning trees of $G$},
+\end{verbatim}
+
+Let $C_{i(j)}$ be the set of graphs obtained from $G$ by attaching edge
+$(v_iv_j)$ to each spanning tree of $G$. Denote by $C_i=\bigcup_j
+C_{i(j)}$. It is obvious that the collection of Hamiltonian cycles is a
+subset of $C_i$. Note that the cardinality of $C_i$ is $k_{ii}\det
+\mathbf{K}(i|i)$. Let $\wh X=\{\hat x_1,\dots,\hat x_n\}$.
+\begin{verbatim}
+$\wh X=\{\hat x_1,\dots,\hat x_n\}$
+\end{verbatim}
+Define multiplication for the elements of $\wh X$ by
+\begin{equation}\label{multdef}
+\hat x_i\hat x_j=\hat x_j\hat x_i,\quad \hat x^2_i=0,\quad
+i,j=1,\dots,n.
+\end{equation}
+Let $\hat k_{ij}=k_{ij}\hat x_j$ and $\hat k_{ij}=-\sum_{j\not=i} \hat
+k_{ij}$. Then the number of Hamiltonian cycles $H_c$ is given by the
+relation \cite{liuchow:formalsum}
+\begin{equation}\label{H-cycles}
+\biggl(\prod^n_{\,j=1}\hat x_j\biggr)H_c=\frac{1}{2}\hat k_{ij}\det
+\wh{\mathbf{K}}(i|i),\qquad i=1,\dots,n.
+\end{equation}
+The task here is to express \eqref{H-cycles}
+in a form free of any $\hat x_i$,
+$i=1,\dots,n$. The result also leads to the resolution of enumeration of
+Hamiltonian paths in a graph.
+
+It is well known that the enumeration of Hamiltonian cycles and paths in
+a complete graph $K_n$ and in a complete bipartite graph $K_{n_1n_2}$
+can only be found from \textit{first combinatorial principles}
+\cite{hapa:graphenum}. One wonders if there exists a formula which can
+be used very efficiently to produce $K_n$ and $K_{n_1n_2}$. Recently,
+using Lagrangian methods, Goulden and Jackson have shown that $H_c$ can
+be expressed in terms of the determinant and permanent of the adjacency
+matrix \cite{gouja:lagrmeth}. However, the formula of Goulden and
+Jackson determines neither $K_n$ nor $K_{n_1n_2}$ effectively. In this
+paper, using an algebraic method, we parametrize the adjacency matrix.
+The resulting formula also involves the determinant and permanent, but
+it can easily be applied to $K_n$ and $K_{n_1n_2}$. In addition, we
+eliminate the permanent from $H_c$ and show that $H_c$ can be
+represented by a determinantal function of multivariables, each variable
+with domain $\{0,1\}$. Furthermore, we show that $H_c$ can be written by
+number of spanning trees of subgraphs. Finally, we apply the formulas to
+a complete multigraph $K_{n_1\dots n_p}$.
+
+The conditions $a_{ij}=a_{ji}$, $i,j=1,\dots,n$, are not required in
+this paper. All formulas can be extended to a digraph simply by
+multiplying $H_c$ by 2.
+
+\section{Main Theorem}
+\label{s:mt}
+
+\begin{notation} For $p,q\in P$ and $n\in\omega$ we write
+$(q,n)\le(p,n)$ if $q\le p$ and $A_{q,n}=A_{p,n}$.
+\begin{verbatim}
+\begin{notation} For $p,q\in P$ and $n\in\omega$
+...
+\end{notation}
+\end{verbatim}
+\end{notation}
+
+Let $\mathbf{B}=(b_{ij})$ be an $n\times n$ matrix. Let $\mathbf{n}=\{1,
+\dots,n\}$. Using the properties of \eqref{multdef}, it is readily seen
+that
+
+\begin{lem}\label{lem-per}
+\begin{equation}
+\prod_{i\in\mathbf{n}}
+\biggl(\sum_{\,j\in\mathbf{n}}b_{ij}\hat x_i\biggr)
+=\biggl(\prod_{\,i\in\mathbf{n}}\hat x_i\biggr)\per \mathbf{B}
+\end{equation}
+where $\per \mathbf{B}$ is the permanent of $\mathbf{B}$.
+\end{lem}
+
+Let $\wh Y=\{\hat y_1,\dots,\hat y_n\}$. Define multiplication
+for the elements of $\wh Y$ by
+\begin{equation}
+\hat y_i\hat y_j+\hat y_j\hat y_i=0,\quad i,j=1,\dots,n.
+\end{equation}
+Then, it follows that
+\begin{lem}\label{lem-det}
+\begin{equation}\label{detprod}
+\prod_{i\in\mathbf{n}}
+\biggl(\sum_{\,j\in\mathbf{n}}b_{ij}\hat y_j\biggr)
+=\biggl(\prod_{\,i\in\mathbf{n}}\hat y_i\biggr)\det\mathbf{B}.
+\end{equation}
+\end{lem}
+
+Note that all basic properties of determinants are direct consequences
+of Lemma ~\ref{lem-det}. Write
+\begin{equation}\label{sum-bij}
+\sum_{j\in\mathbf{n}}b_{ij}\hat y_j=\sum_{j\in\mathbf{n}}b^{(\lambda)}
+_{ij}\hat y_j+(b_{ii}-\lambda_i)\hat y_i\hat y
+\end{equation}
+where
+\begin{equation}
+b^{(\lambda)}_{ii}=\lambda_i,\quad b^{(\lambda)}_{ij}=b_{ij},
+\quad i\not=j.
+\end{equation}
+Let $\mathbf{B}^{(\lambda)}=(b^{(\lambda)}_{ij})$. By \eqref{detprod}
+and \eqref{sum-bij}, it is
+straightforward to show the following
+result:
+\begin{thm}\label{thm-main}
+\begin{equation}\label{detB}
+\det\mathbf{B}=
+\sum^n_{l =0}\sum_{I_l \subseteq n}
+\prod_{i\in I_l}(b_{ii}-\lambda_i)
+\det\mathbf{B}^{(\lambda)}(I_l |I_l ),
+\end{equation}
+where $I_l =\{i_1,\dots,i_l \}$ and $\mathbf{B}^{(\lambda)}(I_l |I_l )$
+is the principal submatrix obtained from $\mathbf{B}^{(\lambda)}$
+by deleting its $i_1,\dots,i_l $ rows and columns.
+\end{thm}
+
+\begin{rem}
+Let $\mathbf{M}$ be an $n\times n$ matrix. The convention
+$\mathbf{M}(\mathbf{n}|\mathbf{n})=1$ has been used in \eqref{detB} and
+hereafter.
+\end{rem}
+
+Before proceeding with our discussion, we pause to note that
+\thmref{thm-main} yields immediately a fundamental formula which can be
+used to compute the coefficients of a characteristic polynomial
+\cite{mami:matrixth}:
+\begin{cor}\label{BI}
+Write $\det(\mathbf{B}-x\mathbf{I})=\sum^n_{l =0}(-1)
+^l b_l x^l $. Then
+\begin{equation}\label{bl-sum}
+b_l =\sum_{I_l \subseteq\mathbf{n}}\det\mathbf{B}(I_l |I_l ).
+\end{equation}
+\end{cor}
+Let
+\begin{equation}
+\mathbf{K}(t,t_1,\dots,t_n)
+=\begin{pmatrix} D_1t&-a_{12}t_2&\dots&-a_{1n}t_n\\
+-a_{21}t_1&D_2t&\dots&-a_{2n}t_n\\
+\hdotsfor[2]{4}\\
+-a_{n1}t_1&-a_{n2}t_2&\dots&D_nt\end{pmatrix},
+\end{equation}
+\begin{verbatim}
+\begin{pmatrix} D_1t&-a_{12}t_2&\dots&-a_{1n}t_n\\
+-a_{21}t_1&D_2t&\dots&-a_{2n}t_n\\
+\hdotsfor[2]{4}\\
+-a_{n1}t_1&-a_{n2}t_2&\dots&D_nt\end{pmatrix}
+\end{verbatim}
+where
+\begin{equation}
+D_i=\sum_{j\in\mathbf{n}}a_{ij}t_j,\quad i=1,\dots,n.
+\end{equation}
+
+Set
+\begin{equation*}
+D(t_1,\dots,t_n)=\frac{\delta}{\delta t}\eval{\det\mathbf{K}(t,t_1,\dots,t_n)
+}_{t=1}.
+\end{equation*}
+Then
+\begin{equation}\label{sum-Di}
+D(t_1,\dots,t_n)
+=\sum_{i\in\mathbf{n}}D_i\det\mathbf{K}(t=1,t_1,\dots,t_n; i|i),
+\end{equation}
+where $\mathbf{K}(t=1,t_1,\dots,t_n; i|i)$ is the $i$th principal
+submatrix of $\mathbf{K}(t=1,t_1,\dots,t_n)$.
+
+Theorem ~\ref{thm-main} leads to
+\begin{equation}\label{detK1}
+\det\mathbf{K}(t_1,t_1,\dots,t_n)
+=\sum_{I\in\mathbf{n}}(-1)^{\envert{I}}t^{n-\envert{I}}
+\prod_{i\in I}t_i\prod_{j\in I}(D_j+\lambda_jt_j)\det\mathbf{A}
+^{(\lambda t)}(\overline{I}|\overline I).
+\end{equation}
+Note that
+\begin{equation}\label{detK2}
+\det\mathbf{K}(t=1,t_1,\dots,t_n)=\sum_{I\in\mathbf{n}}(-1)^{\envert{I}}
+\prod_{i\in I}t_i\prod_{j\in I}(D_j+\lambda_jt_j)\det\mathbf{A}
+^{(\lambda)}(\overline{I}|\overline{I})=0.
+\end{equation}
+
+Let $t_i=\hat x_i,i=1,\dots,n$. Lemma ~\ref{lem-per} yields
+\begin{multline}
+\biggl(\sum_{\,i\in\mathbf{n}}a_{l _i}x_i\biggr)
+\det\mathbf{K}(t=1,x_1,\dots,x_n;l |l )\\
+=\biggl(\prod_{\,i\in\mathbf{n}}\hat x_i\biggr)
+\sum_{I\subseteq\mathbf{n}-\{l \}}
+(-1)^{\envert{I}}\per\mathbf{A}^{(\lambda)}(I|I)
+\det\mathbf{A}^{(\lambda)}
+(\overline I\cup\{l \}|\overline I\cup\{l \}).
+\label{sum-ali}
+\end{multline}
+\begin{verbatim}
+\begin{multline}
+\biggl(\sum_{\,i\in\mathbf{n}}a_{l _i}x_i\biggr)
+\det\mathbf{K}(t=1,x_1,\dots,x_n;l |l )\\
+=\biggl(\prod_{\,i\in\mathbf{n}}\hat x_i\biggr)
+\sum_{I\subseteq\mathbf{n}-\{l \}}
+(-1)^{\envert{I}}\per\mathbf{A}^{(\lambda)}(I|I)
+\det\mathbf{A}^{(\lambda)}
+(\overline I\cup\{l \}|\overline I\cup\{l \}).
+\label{sum-ali}
+\end{multline}
+\end{verbatim}
+
+By \eqref{H-cycles}, \eqref{detprod}, and \eqref{sum-bij}, we have
+\begin{prop}\label{prop:eg}
+\begin{equation}
+H_c=\frac1{2n}\sum^n_{l =0}(-1)^{l}
+D_{l},
+\end{equation}
+where
+\begin{equation}\label{delta-l}
+D_{l}=\eval[2]{\sum_{I_{l}\subseteq \mathbf{n}}
+D(t_1,\dots,t_n)}_{t_i=\left\{\begin{smallmatrix}
+0,& \text{if }i\in I_{l}\quad\\% \quad added for centering
+1,& \text{otherwise}\end{smallmatrix}\right.\;,\;\; i=1,\dots,n}.
+\end{equation}
+\end{prop}
+
+\section{Application}
+\label{lincomp}
+
+We consider here the applications of Theorems~\ref{th-info-ow-ow} and
+~\ref{th-weak-ske-owf} to a complete
+multipartite graph $K_{n_1\dots n_p}$. It can be shown that the
+number of spanning trees of $K_{n_1\dots n_p}$
+may be written
+\begin{equation}\label{e:st}
+T=n^{p-2}\prod^p_{i=1}
+(n-n_i)^{n_i-1}
+\end{equation}
+where
+\begin{equation}
+n=n_1+\dots+n_p.
+\end{equation}
+
+It follows from Theorems~\ref{th-info-ow-ow}
+and~\ref{th-weak-ske-owf} that
+\begin{equation}\label{e:barwq}
+\begin{split}
+H_c&=\frac1{2n}
+\sum^n_{{l}=0}(-1)^{l}(n-{l})^{p-2}
+\sum_{l _1+\dots+l _p=l}\prod^p_{i=1}
+\binom{n_i}{l _i}\\
+&\quad\cdot[(n-l )-(n_i-l _i)]^{n_i-l _i}\cdot
+\biggl[(n-l )^2-\sum^p_{j=1}(n_i-l _i)^2\biggr].\end{split}
+\end{equation}
+\begin{verbatim}
+... \binom{n_i}{l _i}\\
+\end{verbatim}
+and
+\begin{equation}\label{joe}
+\begin{split}
+H_c&=\frac12\sum^{n-1}_{l =0}
+(-1)^{l}(n-l )^{p-2}
+\sum_{l _1+\dots+l _p=l}
+\prod^p_{i=1}\binom{n_i}{l _i}\\
+&\quad\cdot[(n-l )-(n_i-l _i)]^{n_i-l _i}
+\left(1-\frac{l _p}{n_p}\right)
+[(n-l )-(n_p-l _p)].
+\end{split}
+\end{equation}
+
+The enumeration of $H_c$ in a $K_{n_1\dotsm n_p}$ graph can also be
+carried out by Theorem ~\ref{thm-H-param} or ~\ref{thm-asym}
+together with the algebraic method of \eqref{multdef}.
+Some elegant representations may be obtained. For example, $H_c$ in
+a $K_{n_1n_2n_3}$ graph may be written
+\begin{equation}\label{j:mark}
+\begin{split}
+H_c=&
+\frac{n_1!\,n_2!\,n_3!}
+{n_1+n_2+n_3}\sum_i\left[\binom{n_1}{i}
+\binom{n_2}{n_3-n_1+i}\binom{n_3}{n_3-n_2+i}\right.\\
+&+\left.\binom{n_1-1}{i}
+\binom{n_2-1}{n_3-n_1+i}
+\binom{n_3-1}{n_3-n_2+i}\right].\end{split}
+\end{equation}
+
+\section{Secret Key Exchanges}
+\label{SKE}
+
+Modern cryptography is fundamentally concerned with the problem of
+secure private communication. A Secret Key Exchange is a protocol
+where Alice and Bob, having no secret information in common to start,
+are able to agree on a common secret key, conversing over a public
+channel. The notion of a Secret Key Exchange protocol was first
+introduced in the seminal paper of Diffie and Hellman
+\cite{dihe:newdir}. \cite{dihe:newdir} presented a concrete
+implementation of a Secret Key Exchange protocol, dependent on a
+specific assumption (a variant on the discrete log), specially
+tailored to yield Secret Key Exchange. Secret Key Exchange is of
+course trivial if trapdoor permutations exist. However, there is no
+known implementation based on a weaker general assumption.
+
+The concept of an informationally one-way function was introduced
+in \cite{imlelu:oneway}. We give only an informal definition here:
+
+\begin{defn} A polynomial time
+computable function $f = \{f_k\}$ is informationally
+one-way if there is no probabilistic polynomial time algorithm which
+(with probability of the form $1 - k^{-e}$ for some $e > 0$)
+returns on input $y \in \{0,1\}^{k}$ a random element of $f^{-1}(y)$.
+\end{defn}
+In the non-uniform setting \cite{imlelu:oneway} show that these are not
+weaker than one-way functions:
+\begin{thm}[\cite{imlelu:oneway} (non-uniform)]
+\label{th-info-ow-ow}
+The existence of informationally one-way functions
+implies the existence of one-way functions.
+\end{thm}
+We will stick to the convention introduced above of saying
+``non-uniform'' before the theorem statement when the theorem
+makes use of non-uniformity. It should be understood that
+if nothing is said then the result holds for both the uniform and
+the non-uniform models.
+
+It now follows from \thmref{th-info-ow-ow} that
+
+\begin{thm}[non-uniform]\label{th-weak-ske-owf} Weak SKE
+implies the existence of a one-way function.
+\end{thm}
+
+More recently, the polynomial-time, interior point algorithms for linear
+programming have been extended to the case of convex quadratic programs
+\cite{moad:quadpro,ye:intalg}, certain linear complementarity problems
+\cite{komiyo:lincomp,miyoki:lincomp}, and the nonlinear complementarity
+problem \cite{komiyo:unipfunc}. The connection between these algorithms
+and the classical Newton method for nonlinear equations is well
+explained in \cite{komiyo:lincomp}.
+
+\section{Review}
+\label{computation}
+
+We begin our discussion with the following definition:
+
+\begin{defn}
+
+A function $H\colon \Re^n \to \Re^n$ is said to be
+\emph{B-differentiable} at the point $z$ if (i)~$H$ is Lipschitz
+continuous in a neighborhood of $z$, and (ii)~ there exists a positive
+homogeneous function $BH(z)\colon \Re^n \to \Re^n$, called the
+\emph{B-derivative} of $H$ at $z$, such that
+\[ \lim_{v \to 0} \frac{H(z+v) - H(z) - BH(z)v}{\enVert{v}} = 0. \]
+The function $H$ is \textit{B-differentiable in set $S$} if it is
+B-differentiable at every point in $S$. The B-derivative $BH(z)$ is said
+to be \textit{strong} if
+\[ \lim_{(v,v') \to (0,0)} \frac{H(z+v) - H(z+v') - BH(z)(v
+ -v')}{\enVert{v - v'}} = 0. \]
+\end{defn}
+
+
+\begin{lem}\label{limbog} There exists a smooth function $\psi_0(z)$
+defined for $\abs{z}>1-2a$ satisfying the following properties\textup{:}
+\begin{enumerate}
+\renewcommand{\labelenumi}{(\roman{enumi})}
+\item $\psi_0(z)$ is bounded above and below by positive constants
+$c_1\leq \psi_0(z)\leq c_2$.
+\item If $\abs{z}>1$, then $\psi_0(z)=1$.
+\item For all $z$ in the domain of $\psi_0$, $\Delta_0\ln \psi_0\geq 0$.
+\item If $1-2a<\abs{z}<1-a$, then $\Delta_0\ln \psi_0\geq
+c_3>0$.
+\end{enumerate}
+\end{lem}
+
+\begin{proof}
+We choose $\psi_0(z)$ to be a radial function depending only on $r=\abs{z}$.
+Let $h(r)\geq 0$ be a suitable smooth function satisfying $h(r)\geq c_3$
+for $1-2a<\abs{z}<1-a$, and $h(r)=0$ for $\abs{z}>1-\tfrac a2$. The radial
+Laplacian
+\[\Delta_0\ln\psi_0(r)=\left(\frac {d^2}{dr^2}+\frac
+1r\frac d{dr}\right)\ln\psi_0(r)\]
+has smooth coefficients for $r>1-2a$. Therefore, we may
+apply the existence and uniqueness theory for ordinary differential
+equations. Simply let $\ln \psi_0(r)$ be the solution of the differential
+equation
+\[\left(\frac{d^2}{dr^2}+\frac 1r\frac d{dr}\right)\ln \psi_0(r)=h(r)\]
+with initial conditions given by $\ln \psi_0(1)=0$ and
+$\ln\psi_0'(1)=0$.
+
+Next, let $D_\nu$ be a finite collection of pairwise disjoint disks,
+all of which are contained in the unit disk centered at the origin in
+$C$. We assume that $D_\nu=\{z\mid \abs{z-z_\nu}<\delta\}$. Suppose that
+$D_\nu(a)$ denotes the smaller concentric disk $D_\nu(a)=\{z\mid
+\abs{z-z_\nu}\leq (1-2a)\delta\}$. We define a smooth weight function
+$\Phi_0(z)$ for $z\in C-\bigcup_\nu D_\nu(a)$ by setting $\Phi_
+0(z)=1$ when $z\notin \bigcup_\nu D_\nu$ and $\Phi_
+0(z)=\psi_0((z-z_\nu)/\delta)$ when $z$ is an element of $D_\nu$. It
+follows from \lemref{limbog} that $\Phi_ 0$ satisfies the properties:
+\begin{enumerate}
+\renewcommand{\labelenumi}{(\roman{enumi})}
+\item \label{boundab}$\Phi_ 0(z)$ is bounded above and below by
+positive constants $c_1\leq \Phi_ 0(z)\leq c_2$.
+\item \label{d:over}$\Delta_0\ln\Phi_ 0\geq 0$ for all
+$z\in C-\bigcup_\nu D_\nu(a)$,
+the domain where the function $\Phi_ 0$ is defined.
+\item \label{d:ad}$\Delta_0\ln\Phi_ 0\geq c_3\delta^{-2}$
+when $(1-2a)\delta<\abs{z-z_\nu}<(1-a)\delta$.
+\end{enumerate}
+Let $A_\nu$ denote the annulus $A_\nu=\{(1-2a)\delta<\abs{z-z_\nu}<(1-a)
+\delta \}$, and set $A=\bigcup_\nu A_\nu$. The
+properties (\ref{d:over}) and (\ref{d:ad}) of $\Phi_ 0$
+may be summarized as $\Delta_0\ln \Phi_ 0\geq c_3\delta^{-2}\chi_A$,
+where $\chi _A$ is the characteristic function of $A$.
+\end{proof}
+
+Suppose that $\alpha$ is a nonnegative real constant. We apply
+Proposition~\ref{prop:eg} with $\Phi(z)=\Phi_ 0(z) e^{\alpha\abs{z}^2}$. If
+$u\in C^\infty_0(R^2-\bigcup_\nu D_\nu(a))$, assume that $\mathcal{D}$
+is a bounded domain containing the support of $u$ and $A\subset
+\mathcal{D}\subset R^2-\bigcup_\nu D_\nu(a)$. A calculation gives
+\[\int_{\mathcal{D}}\abs{\overline\partial u}^2\Phi_ 0(z) e^{\alpha\abs{z}^2}
+\geq c_4\alpha\int_{\mathcal{D}}\abs{u}^2\Phi_ 0e^{\alpha\abs{z}^2}
++c_5\delta^{-2}\int_ A\abs{u}^2\Phi_ 0e^{\alpha\abs{z}^2}.\]
+
+The boundedness, property (\ref{boundab}) of $\Phi_ 0$, then yields
+\[\int_{\mathcal{D}}\abs{\overline\partial u}^2e^{\alpha\abs{z}^2}\geq c_6\alpha
+\int_{\mathcal{D}}\abs{u}^2e^{\alpha\abs{z}^2}
++c_7\delta^{-2}\int_ A\abs{u}^2e^{\alpha\abs{z}^2}.\]
+
+Let $B(X)$ be the set of blocks of $\Lambda_{X}$
+and let $b(X) = \abs{B(X)}$. If $\phi \in Q_{X}$ then
+$\phi$ is constant on the blocks of $\Lambda_{X}$.
+\begin{equation}\label{far-d}
+ P_{X} = \{ \phi \in M \mid \Lambda_{\phi} = \Lambda_{X} \},
+\qquad
+Q_{X} = \{\phi \in M \mid \Lambda_{\phi} \geq \Lambda_{X} \}.
+\end{equation}
+If $\Lambda_{\phi} \geq \Lambda_{X}$ then
+$\Lambda_{\phi} = \Lambda_{Y}$ for some $Y \geq X$ so that
+\[ Q_{X} = \bigcup_{Y \geq X} P_{Y}. \]
+Thus by M\"obius inversion
+\[ \abs{P_{Y}}= \sum_{X\geq Y} \mu (Y,X)\abs{Q_{X}}.\]
+Thus there is a bijection from $Q_{X}$ to $W^{B(X)}$.
+In particular $\abs{Q_{X}} = w^{b(X)}$.
+
+Next note that $b(X)=\dim X$. We see this by choosing a
+basis for $X$ consisting of vectors $v^{k}$ defined by
+\[v^{k}_{i}=
+\begin{cases} 1 & \text{if $i \in \Lambda_{k}$},\\
+0 &\text{otherwise.} \end{cases}
+\]
+\begin{verbatim}
+\[v^{k}_{i}=
+\begin{cases} 1 & \text{if $i \in \Lambda_{k}$},\\
+0 &\text{otherwise.} \end{cases}
+\]
+\end{verbatim}
+
+\begin{lem}\label{p0201}
+Let $\A$ be an arrangement. Then
+\[ \chi (\A,t) = \sum_{\B \subseteq \A}
+(-1)^{\abs{\B}} t^{\dim T(\B)}. \]
+\end{lem}
+
+In order to compute $R''$ recall the definition
+of $S(X,Y)$ from \lemref{lem-per}. Since $H \in \B$,
+$\A_{H} \subseteq \B$. Thus if $T(\B) = Y$ then
+$\B \in S(H,Y)$. Let $L'' = L(\A'')$. Then
+\begin{equation}\label{E_SXgYy}
+\begin{split}
+R''&= \sum_{H\in \B \subseteq \A} (-1)^{\abs{\B}}
+t^{\dim T(\B)}\\
+&= \sum_{Y \in L''} \sum_{\B \in S(H,Y)}
+(-1)^{\abs{\B}}t^{\dim Y} \\
+&= -\sum_{Y \in L''} \sum_{\B \in S(H,Y)} (-1)^
+{\abs{\B - \A_{H}}} t^{\dim Y} \\
+&= -\sum_{Y \in L''} \mu (H,Y)t^{\dim Y} \\
+&= -\chi (\A '',t).
+\end{split}
+\end{equation}
+
+\begin{cor}\label{tripleA}
+Let $(\A,\A',\A'')$ be a triple of arrangements. Then
+\[ \pi (\A,t) = \pi (\A',t) + t \pi (\A'',t). \]
+\end{cor}
+
+\begin{defn}
+Let $(\A,\A',\A'')$ be a triple with respect to
+the hyperplane $H \in \A$. Call $H$ a \textit{separator}
+if $T(\A) \not\in L(\A')$.
+\end{defn}
+
+\begin{cor}\label{nsep}
+Let $(\A,\A',\A'')$ be a triple with respect to $H \in \A$.
+\begin{enumerate}
+\renewcommand{\labelenumi}{(\roman{enumi})}
+\item
+If $H$ is a separator then
+\[ \mu (\A) = - \mu (\A'') \]
+and hence
+\[ \abs{\mu (\A)} = \abs{ \mu (\A'')}. \]
+
+\item If $H$ is not a separator then
+\[\mu (\A) = \mu (\A') - \mu (\A'') \]
+and
+\[ \abs{\mu (\A)} = \abs{\mu (\A')} + \abs{\mu (\A'')}. \]
+\end{enumerate}
+\end{cor}
+
+\begin{proof}
+It follows from \thmref{th-info-ow-ow} that $\pi(\A,t)$
+has leading term
+\[(-1)^{r(\A)}\mu (\A)t^{r(\A)}.\]
+The conclusion
+follows by comparing coefficients of the leading
+terms on both sides of the equation in
+Corollary~\ref{tripleA}. If $H$ is a separator then
+$r(\A') < r(\A)$ and there is no contribution
+from $\pi (\A',t)$.
+\end{proof}
+
+The Poincar\'e polynomial of an arrangement
+will appear repeatedly
+in these notes. It will be shown to equal the
+Poincar\'e polynomial
+of the graded algebras which we are going to
+associate with $\A$. It is also the Poincar\'e
+polynomial of the complement $M(\A)$ for a
+complex arrangement. Here we prove
+that the Poincar\'e polynomial is the chamber
+counting function for a real arrangement. The
+complement $M(\A)$ is a disjoint union of chambers
+\[M(\A) = \bigcup_{C \in \Cham(\A)} C.\]
+The number
+of chambers is determined by the Poincar\'e
+polynomial as follows.
+
+\begin{thm}\label{th-realarr}
+Let $\A_{\mathbf{R}}$ be a real arrangement. Then
+\[ \abs{\Cham(\A_{\mathbf{R}})} = \pi (\A_{\mathbf{R}},1). \]
+\end{thm}
+
+\begin{proof}
+We check the properties required in Corollary~\ref{nsep}:
+(i) follows from $\pi (\Phi_{ l},t) = 1$, and (ii) is a
+consequence of Corollary~\ref{BI}.
+\end{proof}
+
+\begin{figure}
+\vspace{5cm}
+(figure intentionally left blank)
+\caption[]{$Q(\A_{1}) = xyz(x-z)(x+z)(y-z)(y+z)$}
+\end{figure}
+
+\begin{figure}
+\vspace{5cm}
+(figure intentionally left blank)
+\caption[]{$Q(\A_{2})= xyz(x+y+z)(x+y-z)(x-y+z)(x-y-z)$}
+\end{figure}
+
+
+\begin{thm}
+\label{T_first_the_int}
+Let $\phi$ be a protocol for a random pair $\XcY$.
+If one of $\st_\phi(x',y)$ and $\st_\phi(x,y')$ is a prefix of the other
+and $(x,y)\in\SXY$, then
+\[
+\langle \st_j(x',y)\rangle_{j=1}^\infty
+=\langle \st_j(x,y)\rangle_{j=1}^\infty
+=\langle \st_j(x,y')\rangle_{j=1}^\infty .
+\]
+\end{thm}
+\begin{proof}
+We show by induction on $i$ that
+\[
+\langle \st_j(x',y)\rangle_{j=1}^i
+=\langle \st_j(x,y)\rangle_{j=1}^i
+=\langle \st_j(x,y')\rangle_{j=1}^i.
+\]
+The induction hypothesis holds vacuously for $i=0$. Assume it holds for
+$i-1$, in particular
+$[\st_j(x',y)]_{j=1}^{i-1}=[\st_j(x,y')]_{j=1}^{i-1}$. Then one of
+$[\st_j(x',y)]_{j=i}^{\infty}$ and $[\st_j(x,y')]_{j=i}^{\infty}$ is a
+prefix of the other which implies that one of $\st_i(x',y)$ and
+$\st_i(x,y')$ is a prefix of the other. If the $i$th message is
+transmitted by $P_\X$ then, by the separate-transmissions property and
+the induction hypothesis, $\st_i(x,y)=\st_i(x,y')$, hence one of
+$\st_i(x,y)$ and $\st_i(x',y)$ is a prefix of the other. By the
+implicit-termination property, neither $\st_i(x,y)$ nor $\st_i(x',y)$
+can be a proper prefix of the other, hence they must be the same and
+$\st_i(x',y)=\st_i(x,y)=\st_i(x,y')$. If the $i$th message is
+transmitted by $\PY$ then, symmetrically, $\st_i(x,y)=\st_i(x',y)$ by
+the induction hypothesis and the separate-transmissions property, and,
+then, $\st_i(x,y)=\st_i(x,y')$ by the implicit-termination property,
+proving the induction step.
+\end{proof}
+
+If $\phi$ is a protocol for $(X,Y)$, and $(x,y)$, $(x',y)$ are distinct
+inputs in $\SXY$, then, by the correct-decision property,
+$\langle\st_j(x,y)\rangle_{j=1}^\infty\ne\langle
+\st_j(x',y)\rangle_{j=1}^\infty$.
+
+Equation~(\ref{E_SXgYy}) defined $\PY$'s ambiguity set $\SXgYy$
+to be the set of possible $X$ values when $Y=y$.
+The last corollary implies that for all $y\in\SY$,
+the multiset%
+\footnote{A multiset allows multiplicity of elements.
+Hence, $\{0,01,01\}$ is prefix free as a set, but not as a multiset.}
+of codewords $\{\st_\phi(x,y):x\in\SXgYy\}$ is prefix free.
+
+\section{One-Way Complexity}
+\label{S_Cp1}
+
+$\Cw1$, the one-way complexity of a random pair $\XcY$,
+is the number of bits $P_\X$ must transmit in the worst case
+when $\PY$ is not permitted to transmit any feedback messages.
+Starting with $\SXY$, the support set of $\XcY$, we define $\G$,
+the \textit{characteristic hypergraph} of $\XcY$, and show that
+\[
+\Cw1=\lceil\,\log\chi(\G)\rceil\ .
+\]
+
+Let $\XcY$ be a random pair. For each $y$ in $\SY$, the support set of
+$Y$, Equation~(\ref{E_SXgYy}) defined $\SXgYy$ to be the set of possible
+$x$ values when $Y=y$. The \textit{characteristic hypergraph} $\G$ of
+$\XcY$ has $\SX$ as its vertex set and the hyperedge $\SXgYy$ for each
+$y\in\SY$.
+
+
+We can now prove a continuity theorem.
+\begin{thm}\label{t:conl}
+Let $\Omega \subset\mathbf{R}^n$ be an open set, let
+$u\in BV(\Omega ;\mathbf{R}^m)$, and let
+\begin{equation}\label{quts}
+T^u_x=\left\{y\in\mathbf{R}^m:
+ y=\tilde u(x)+\left\langle \frac{Du}{\abs{Du}}(x),z
+\right\rangle \text{ for some }z\in\mathbf{R}^n\right\}
+\end{equation}
+for every $x\in\Omega \backslash S_u$. Let $f\colon \mathbf{R}^m\to
+\mathbf{R}^k$ be a Lipschitz continuous function such that $f(0)=0$, and
+let $v=f(u)\colon \Omega \to \mathbf{R}^k$. Then $v\in BV(\Omega
+;\mathbf{R}^k)$ and
+\begin{equation}
+Jv=\eval{(f(u^+)-f(u^-))\otimes \nu_u\cdot\,
+\mathcal{H}_{n-1}}_{S_u}.
+\end{equation}
+In addition, for $\abs{\wt{D}u}$-almost every $x\in\Omega $ the
+restriction of the function $f$ to $T^u_x$ is differentiable at $\tilde
+u(x)$ and
+\begin{equation}
+\wt{D}v=\nabla (\eval{f}_{T^u_x})(\tilde u)
+\frac{\wt{D}u}{\abs{\wt{D}u}}\cdot\abs{\wt{D}u}.\end{equation}
+\end{thm}
+
+Before proving the theorem, we state without proof three elementary
+remarks which will be useful in the sequel.
+\begin{rem}\label{r:omb}
+Let $\omega\colon \left]0,+\infty\right[\to \left]0,+\infty\right[$
+be a continuous function such that $\omega (t)\to 0$ as $t\to
+0$. Then
+\[\lim_{h\to 0^+}g(\omega(h))=L\Leftrightarrow\lim_{h\to
+0^+}g(h)=L\]
+for any function $g\colon \left]0,+\infty\right[\to \mathbf{R}$.
+\end{rem}
+\begin{rem}\label{r:dif}
+Let $g \colon \mathbf{R}^n\to \mathbf{R}$ be a Lipschitz
+continuous function and assume that
+\[L(z)=\lim_{h\to 0^+}\frac{g(hz)-g(0)}h\]
+exists for every $z\in\mathbf{Q}^n$ and that $L$ is a linear function of
+$z$. Then $g$ is differentiable at 0.
+\end{rem}
+\begin{rem}\label{r:dif0}
+Let $A \colon \mathbf{R}^n\to \mathbf{R}^m$ be a linear function, and
+let $f \colon \mathbf{R}^m\to \mathbf{R}$ be a function. Then the
+restriction of $f$ to the range of $A$ is differentiable at 0 if and
+only if $f(A)\colon \mathbf{R}^n\to \mathbf{R}$ is differentiable at 0
+and
+\[\nabla(\eval{f}_{\IM(A)})(0)A=\nabla (f(A))(0).\]
+\end{rem}
+
+\begin{proof}
+ We begin by showing that $v\in BV(\Omega;\mathbf{R}^k)$ and
+\begin{equation}\label{e:bomb}
+\abs{Dv}(B)\le K\abs{Du}(B)\qquad\forall B\in\mathbf{B}(\Omega ),
+\end{equation}
+where $K>0$ is the Lipschitz constant of $f$. By \eqref{sum-Di} and by
+the approximation result quoted in \secref{s:mt}, it is possible to find
+a sequence $(u_h)\subset C^1(\Omega ;\mathbf{R}^m)$ converging to $u$ in
+$L^1(\Omega ;\mathbf{R}^m)$ and such that
+\[\lim_{h\to +\infty}\int_\Omega \abs{\nabla u_h}\,dx=\abs{Du}(\Omega ).\]
+The functions $v_h=f(u_h)$ are locally Lipschitz continuous in $\Omega
+$, and the definition of differential implies that $\abs{\nabla v_h}\le
+K\abs{\nabla u_h}$ almost everywhere in $\Omega $. The lower semicontinuity
+of the total variation and \eqref{sum-Di} yield
+\begin{equation}
+\begin{split}
+\abs{Dv}(\Omega )\le\liminf_{h\to +\infty}\abs{Dv_h}(\Omega) &
+=\liminf_{h\to +\infty}\int_\Omega \abs{\nabla v_h}\,dx\\
+&\le K\liminf_{h\to +\infty}\int_\Omega
+\abs{\nabla u_h}\,dx=K\abs{Du}(\Omega).
+\end{split}\end{equation}
+Since $f(0)=0$, we have also
+\[\int_\Omega \abs{v}\,dx\le K\int_\Omega \abs{u}\,dx;\]
+therefore $u\in BV(\Omega ;\mathbf{R}^k)$. Repeating the same argument
+for every open set $A\subset\Omega $, we get \eqref{e:bomb} for every
+$B\in\mathbf{B}(\Omega)$, because $\abs{Dv}$, $\abs{Du}$ are Radon measures. To
+prove \lemref{limbog}, first we observe that
+\begin{equation}\label{e:SS}
+S_v\subset S_u,\qquad\tilde v(x)=f(\tilde u(x))\qquad \forall x\in\Omega
+\backslash S_u.\end{equation}
+In fact, for every $\varepsilon >0$ we have
+\[\{y\in B_\rho(x): \abs{v(y)-f(\tilde u(x))}>\varepsilon \}\subset \{y\in
+B_\rho(x): \abs{u(y)-\tilde u(x)}>\varepsilon /K\},\]
+hence
+\[\lim_{\rho\to 0^+}\frac{\abs{\{y\in B_\rho(x): \abs{v(y)-f(\tilde u(x))}>
+\varepsilon \}}}{\rho^n}=0\]
+whenever $x\in\Omega \backslash S_u$. By a similar argument, if $x\in
+S_u$ is a point such that there exists a triplet $(u^+,u^-,\nu_u)$
+satisfying \eqref{detK1}, \eqref{detK2}, then
+\[
+(v^+(x)-v^-(x))\otimes \nu_v=(f(u^+(x))-f(u^-(x)))\otimes\nu_u\quad
+\text{if }x\in S_v
+\]
+and $f(u^-(x))=f(u^+(x))$ if $x\in S_u\backslash S_v$. Hence, by (1.8)
+we get
+\begin{equation*}\begin{split}
+Jv(B)=\int_{B\cap S_v}(v^+-v^-)\otimes \nu_v\,d\mathcal{H}_{n-1}&=
+\int_{B\cap S_v}(f(u^+)-f(u^-))\otimes \nu_u\,d\mathcal{H}_{n-1}\\
+&=\int_{B\cap S_u}(f(u^+)-f(u^-))\otimes \nu_u\,d\mathcal{H}_{n-1}
+\end{split}\end{equation*}
+and \lemref{limbog} is proved.
+\end{proof}
+
+To prove \eqref{e:SS}, it is not restrictive to assume that $k=1$.
+Moreover, to simplify our notation, from now on we shall assume that
+$\Omega = \mathbf{R}^n$. The proof of \eqref{e:SS} is divided into two
+steps. In the first step we prove the statement in the one-dimensional
+case $(n=1)$, using \thmref{th-weak-ske-owf}. In the second step we
+achieve the general result using \thmref{t:conl}.
+
+\subsection*{Step 1}
+Assume that $n=1$. Since $S_u$ is at most countable, \eqref{sum-bij}
+yields that $\abs{\wt{D}v}(S_u\backslash S_v)=0$, so that
+\eqref{e:st} and \eqref{e:barwq} imply that $Dv=\wt{D}v+Jv$ is
+the Radon-Nikod\'ym decomposition of $Dv$ in absolutely continuous and
+singular part with respect to $\abs{\wt{D} u}$. By
+\thmref{th-weak-ske-owf}, we have
+\begin{equation*}
+\frac{\wt{D}v}{\abs{\wt{D}u}}(t)=\lim_{s\to t^+}
+\frac{Dv(\interval{\left[t,s\right[})}
+{\abs{\wt{D}u}(\interval{\left[t,s\right[})},\qquad
+\frac{\wt{D}u}{\abs{\wt{D}u}}(t)=\lim_{s\to t^+}
+\frac{Du(\interval{\left[t,s\right[})}
+{\abs{\wt{D}u}(\interval{\left[t,s\right[})}
+\end{equation*}
+$\abs{\wt{D}u}$-almost everywhere in $\mathbf{R}$. It is well known
+(see, for instance, \cite[2.5.16]{ste:sint}) that every one-dimensional
+function of bounded variation $w$ has a unique left continuous
+representative, i.e., a function $\hat w$ such that $\hat w=w$ almost
+everywhere and $\lim_{s\to t^-}\hat w(s)=\hat w(t)$ for every $t\in
+\mathbf{R}$. These conditions imply
+\begin{equation}
+\hat u(t)=Du(\interval{\left]-\infty,t\right[}),
+\qquad \hat v(t)=Dv(\interval{\left]-\infty,t\right[})\qquad
+\forall t\in\mathbf{R}
+\end{equation}
+and
+\begin{equation}\label{alimo}
+\hat v(t)=f(\hat u(t))\qquad\forall t\in\mathbf{R}.\end{equation}
+Let $t\in\mathbf{R}$ be such that
+$\abs{\wt{D}u}(\interval{\left[t,s\right[})>0$ for every $s>t$ and
+assume that the limits in \eqref{joe} exist. By \eqref{j:mark} and
+\eqref{far-d} we get
+\begin{equation*}\begin{split}
+\frac{\hat v(s)-\hat
+v(t)}{\abs{\wt{D}u}(\interval{\left[t,s\right[})}&=\frac {f(\hat
+u(s))-f(\hat u(t))}{\abs{\wt{D}u}(\interval{\left[t,s\right[})}\\
+&=\frac{f(\hat u(s))-f(\hat
+u(t)+\dfrac{\wt{D}u}{\abs{\wt{D}u}}(t)\abs{\wt{D}u
+}(\interval{\left[t,s\right[}))}%
+{\abs{\wt{D}u}(\interval{\left[t,s\right[})}\\
+&+\frac
+{f(\hat u(t)+\dfrac{\wt{D}u}{\abs{\wt{D}u}}(t)\abs{\wt{D}
+u}(\interval{\left[t,s\right[}))-f(\hat
+u(t))}{\abs{\wt{D}u}(\interval{\left[t,s\right[})}
+\end{split}\end{equation*}
+for every $s>t$. Using the Lipschitz condition on $f$ we find
+{\setlength{\multlinegap}{0pt}
+\begin{multline*}
+\left\lvert\frac{\hat v(s)-\hat
+v(t)}{\abs{\wt{D}u}(\interval{\left[t,s\right[})} -\frac{f(\hat
+u(t)+\dfrac{\wt{D}u}{\abs{\wt{D}u}}(t)
+\abs{\wt{D}u}(\interval{\left[t,s\right[}))-f(\hat
+u(t))}{\abs{\wt{D}u}(\interval{\left[t,s\right[})}\right\rvert\\
+\le K\left\lvert
+\frac{\hat u(s)-\hat u(t)}
+ {\abs{\wt{D}u}(\interval{\left[t,s\right[})}
+-\frac{\wt{D}u}{\abs{
+\wt{D}u}}(t)\right\rvert.\end{multline*}
+}% end of group with \multlinegap=0pt
+By \eqref{e:bomb}, the function $s\to
+\abs{\wt{D}u}(\interval{\left[t,s\right[})$ is continuous and
+converges to 0 as $s\downarrow t$. Therefore Remark~\ref{r:omb} and the
+previous inequality imply
+\[\frac{\wt{D}v}{\abs{\wt{D}u}}(t)=\lim_{h\to 0^+}
+\frac{f(\hat u(t)+h\dfrac{\wt{D}u}{\abs{\wt{D}u}}
+(t))-f(\hat u(t))}h\quad\abs{\wt{D}u}\text{-a.e. in }\mathbf{R}.\]
+By \eqref{joe}, $\hat u(x)=\tilde u(x)$ for every
+$x\in\mathbf{R}\backslash S_u$; moreover, applying the same argument to
+the functions $u'(t)=u(-t)$, $v'(t)=f(u'(t))=v(-t)$, we get
+\[\frac{\wt{D}v}{\abs{\wt{D}u}}(t)=\lim_{h\to 0}
+\frac{f(\tilde u(t)
++h\dfrac{\wt{D}u}{\abs{\wt{D}u}}(t))-f(\tilde u(t))}{h}
+\qquad\abs{\wt{D}u}\text{-a.e. in }\mathbf{R}\]
+and our statement is proved.
+
+\subsection*{Step 2}
+
+Let us consider now the general case $n>1$. Let $\nu\in \mathbf{R}^n$ be
+such that $\abs{\nu}=1$, and let $\pi_\nu=\{y\in\mathbf{R}^n: \langle
+y,\nu\rangle =0\}$. In the following, we shall identify $\mathbf{R}^n$
+with $\pi_\nu\times\mathbf{R}$, and we shall denote by $y$ the variable
+ranging in $\pi_\nu$ and by $t$ the variable ranging in $\mathbf{R}$. By
+the just proven one-dimensional result, and by \thmref{thm-main}, we get
+\[\lim_{h\to 0}\frac{f(\tilde u(y+t\nu)+h\dfrac{\wt{D}u_y}{\abs{
+\wt{D}u_y}}(t))-f(\tilde u(y+t\nu))}h=\frac{\wt{D}v_y}{\abs{
+\wt{D}u_y}}(t)\qquad\abs{\wt{D}u_y}\text{-a.e. in }\mathbf{R}\]
+for $\mathcal{H}_{n-1}$-almost every $y\in \pi_\nu$. We claim that
+\begin{equation}
+\frac{\langle \wt{D}u,\nu\rangle }{\abs{\langle \wt{D}u,\nu\rangle
+}}(y+t\nu)=\frac{\wt{D}u_y}
+{\abs{\wt{D}u_y}}(t)\qquad\abs{\wt{D}u_y}\text{-a.e. in }\mathbf{R}
+\end{equation}
+for $\mathcal{H}_{n-1}$-almost every $y\in\pi_\nu$. In fact, by
+\eqref{sum-ali} and \eqref{delta-l} we get
+\begin{multline*}
+\int_{\pi_\nu}\frac{\wt{D}u_y}{\abs{\wt{D}u_y}}\cdot\abs{\wt{D}u_y
+}\,d\mathcal{H}_{n-1}(y)=\int_{\pi_\nu}\wt{D}u_y\,d\mathcal{H}_{n-1}(y)\\
+=\langle \wt{D}u,\nu\rangle =\frac
+{\langle \wt{D}u,\nu\rangle }{\abs{\langle \wt{D}u,\nu\rangle}}\cdot
+\abs{\langle \wt{D}u,\nu\rangle }=\int_{\pi_\nu}\frac{
+\langle \wt{D}u,\nu\rangle }{\abs{\langle \wt{D}u,\nu\rangle }}
+(y+\cdot \nu)\cdot\abs{\wt{D}u_y}\,d\mathcal{H}_{n-1}(y)
+\end{multline*}
+and \eqref{far-d} follows from \eqref{sum-Di}. By the same argument it
+is possible to prove that
+\begin{equation}
+\frac{\langle \wt{D}v,\nu\rangle }{\abs{\langle \wt{D}u,\nu\rangle
+}}(y+t\nu)=\frac{\wt{D}v_y}{\abs{\wt{D}u_y}}(t)\qquad\abs{
+\wt{D}u_y}\text{-a.e. in }\mathbf{R}\end{equation}
+for $\mathcal{H}_{n-1}$-almost every $y\in \pi_\nu$. By \eqref{far-d}
+and \eqref{E_SXgYy} we get
+\[
+\lim_{h\to 0}\frac{f(\tilde u(y+t\nu)+h\dfrac{\langle \wt{D}
+u,\nu\rangle }{\abs{\langle \wt{D}u,\nu\rangle }}(y+t\nu))-f(\tilde
+u(y+t\nu))}{h}
+=\frac{\langle \wt{D}v,\nu\rangle }{\abs{\langle
+\wt{D}u,\nu\rangle }}(y+t\nu)\]
+for $\mathcal{H}_{n-1}$-almost every $y\in\pi_\nu$, and using again
+\eqref{detK1}, \eqref{detK2} we get
+\[
+\lim_{h\to 0}\frac{f(\tilde u(x)+h\dfrac{\langle
+\wt{D}u,\nu\rangle }{\abs{\langle \wt{D}u,\nu\rangle }}(x))-f(\tilde
+u(x))}{h}=\frac{\langle \wt{D}v,\nu\rangle }{\abs{\langle \wt{D}u,\nu
+\rangle }}(x)
+\]
+$\abs{\langle \wt{D}u,\nu\rangle}$-a.e. in $\mathbf{R}^n$.
+
+Since the function $\abs{\langle \wt{D}u,\nu\rangle }/\abs{\wt{D}u}$
+is strictly positive $\abs{\langle \wt{D}u,\nu\rangle }$-almost everywhere,
+we obtain also
+\begin{multline*}
+\lim_{h\to 0}\frac{f(\tilde u(x)+h\dfrac{\abs{\langle
+\wt{D}u,\nu\rangle }}{\abs{\wt{D}u}}(x)\dfrac{\langle \wt{D}
+u,\nu\rangle }{\abs{\langle \wt{D}u,\nu\rangle }}(x))-f(\tilde u(x))}{h}\\
+=\frac{\abs{\langle \wt{D}u,\nu\rangle }}{\abs{\wt{D}u}}(x)\frac
+{\langle \wt{D}v,\nu\rangle }{\abs{\langle
+\wt{D}u,\nu\rangle }}(x)
+\end{multline*}
+$\abs{\langle \wt{D}u,\nu\rangle }$-almost everywhere in $\mathbf{R}^n$.
+
+Finally, since
+\begin{align*}
+&\frac{\abs{\langle \wt{D}u,\nu\rangle }}{\abs{\wt{D}u}}
+\frac{\langle \wt{D}u,\nu\rangle }{\abs{\langle \wt{D}u,\nu\rangle}}
+=\frac{\langle \wt{D}u,\nu\rangle }{\abs{\wt{D}u}}
+=\left\langle \frac{\wt{D}u}{\abs{\wt{D}u}},\nu\right\rangle
+ \qquad\abs{\wt{D}u}\text{-a.e. in }\mathbf{R}^n\\
+&\frac{\abs{\langle \wt{D}u,\nu\rangle }}{\abs{\wt{D}u}}
+\frac{\langle \wt{D}v,\nu\rangle }{\abs{\langle \wt{D}u,\nu\rangle}}
+=\frac{\langle \wt{D}v,\nu\rangle }{\abs{\wt{D}u}}
+=\left\langle \frac{\wt{D}v}{\abs{\wt{D}u}},\nu\right\rangle
+ \qquad\abs{\wt{D}u}\text{-a.e. in }\mathbf{R}^n
+\end{align*}
+and since both sides of \eqref{alimo}
+are zero $\abs{\wt{D}u}$-almost everywhere
+on $\abs{\langle \wt{D}u,\nu\rangle }$-negligible sets, we conclude that
+\[
+\lim_{h\to 0}\frac{f\left(
+\tilde u(x)+h\left\langle \dfrac{\wt{D}
+u}{\abs{\wt{D}u}}(x),\nu\right\rangle \right)-f(\tilde u(x))}h
+=\left\langle \frac{\wt{D}v}{\abs{\wt{D}u}}(x),\nu\right\rangle,
+\]
+$\abs{\wt{D}u}$-a.e. in $\mathbf{R}^n$.
+Since $\nu$ is arbitrary, by Remarks \ref{r:dif} and~\ref{r:dif0}
+the restriction of $f$ to
+the affine space $T^u_x$ is differentiable at $\tilde u(x)$ for $\abs{\wt{D}
+u}$-almost every $x\in \mathbf{R}^n$ and \eqref{quts} holds.\qed
+
+It follows from \eqref{sum-Di}, \eqref{detK1}, and \eqref{detK2} that
+\begin{equation}\label{Dt}
+D(t_1,\dots,t_n)=\sum_{I\in\mathbf{n}}(-1)^{\abs{I}-1}\abs{I}
+\prod_{i\in I}t_i\prod_{j\in I}(D_j+\lambda_jt_j)\det\mathbf{A}^{(\lambda)}
+(\overline I|\overline I).
+\end{equation}
+Let $t_i=\hat x_i$, $i=1,\dots,n$. Lemma 1 leads to
+\begin{equation}\label{Dx}
+D(\hat x_1,\dots,\hat x_n)=\prod_{i\in\mathbf{n}}\hat x_i
+\sum_{I\in\mathbf{n}}(-1)^{\abs{I}-1}\abs{I}\per \mathbf{A}
+^{(\lambda)}(I|I)\det\mathbf{A}^{(\lambda)}(\overline I|\overline I).
+\end{equation}
+By \eqref{H-cycles}, \eqref{sum-Di}, and \eqref{Dx},
+we have the following result:
+\begin{thm}\label{thm-H-param}
+\begin{equation}\label{H-param}
+H_c=\frac{1}{2n}\sum^n_{l =1}l (-1)^{l -1}A_{l}
+^{(\lambda)},
+\end{equation}
+where
+\begin{equation}\label{A-l-lambda}
+A^{(\lambda)}_l =\sum_{I_l \subseteq\mathbf{n}}\per \mathbf{A}
+^{(\lambda)}(I_l |I_l )\det\mathbf{A}^{(\lambda)}
+(\overline I_{l}|\overline I_l ),\abs{I_{l}}=l .
+\end{equation}
+\end{thm}
+
+It is worth noting that $A_l ^{(\lambda)}$ of \eqref{A-l-lambda} is
+similar to the coefficients $b_l $ of the characteristic polynomial of
+\eqref{bl-sum}. It is well known in graph theory that the coefficients
+$b_l $ can be expressed as a sum over certain subgraphs. It is
+interesting to see whether $A_l $, $\lambda=0$, structural properties
+of a graph.
+
+We may call \eqref{H-param} a parametric representation of $H_c$. In
+computation, the parameter $\lambda_i$ plays very important roles. The
+choice of the parameter usually depends on the properties of the given
+graph. For a complete graph $K_n$, let $\lambda_i=1$, $i=1,\dots,n$.
+It follows from \eqref{A-l-lambda} that
+\begin{equation}\label{compl-gr}
+A^{(1)}_l =\begin{cases} n!,&\text{if }l =1\\
+0,&\text{otherwise}.\end{cases}
+\end{equation}
+By \eqref{H-param}
+\begin{equation}
+H_c=\frac 12(n-1)!.
+\end{equation}
+For a complete bipartite graph $K_{n_1n_2}$, let $\lambda_i=0$, $i=1,\dots,n$.
+By \eqref{A-l-lambda},
+\begin{equation}
+A_l =
+\begin{cases} -n_1!n_2!\delta_{n_1n_2},&\text{if }l =2\\
+0,&\text{otherwise }.\end{cases}
+\label{compl-bip-gr}
+\end{equation}
+Theorem ~\ref{thm-H-param}
+leads to
+\begin{equation}
+H_c=\frac1{n_1+n_2}n_1!n_2!\delta_{n_1n_2}.
+\end{equation}
+
+Now, we consider an asymmetrical approach. Theorem \ref{thm-main} leads to
+\begin{multline}
+\det\mathbf{K}(t=1,t_1,\dots,t_n;l |l )\\
+=\sum_{I\subseteq\mathbf{n}-\{l \}}
+(-1)^{\abs{I}}\prod_{i\in I}t_i\prod_{j\in I}
+(D_j+\lambda_jt_j)\det\mathbf{A}^{(\lambda)}
+(\overline I\cup\{l \}|\overline I\cup\{l \}).
+\end{multline}
+
+By \eqref{H-cycles} and \eqref{sum-ali} we have the following asymmetrical
+result:
+\begin{thm}\label{thm-asym}
+\begin{equation}
+H_c=\frac12\sum_{I\subseteq\mathbf{n}-\{l \}}
+(-1)^{\abs{I}}\per\mathbf{A}^{(\lambda)}(I|I)\det
+\mathbf{A}^{(\lambda)}
+(\overline I\cup\{l \}|\overline I\cup\{l \})
+\end{equation}
+which reduces to Goulden--Jackson's formula when $\lambda_i=0,i=1,\dots,n$
+\cite{mami:matrixth}.
+\end{thm}
+
+\section{Various font features of the \pkg{amsmath} package}
+\label{s:font}
+\subsection{Bold versions of special symbols}
+
+In the \pkg{amsmath} package \cn{boldsymbol} is used for getting
+individual bold math symbols and bold Greek letters---everything in
+math except for letters of the Latin alphabet,
+where you'd use \cn{mathbf}. For example,
+\begin{verbatim}
+A_\infty + \pi A_0 \sim
+\mathbf{A}_{\boldsymbol{\infty}} \boldsymbol{+}
+\boldsymbol{\pi} \mathbf{A}_{\boldsymbol{0}}
+\end{verbatim}
+looks like this:
+\[A_\infty + \pi A_0 \sim \mathbf{A}_{\boldsymbol{\infty}}
+\boldsymbol{+} \boldsymbol{\pi} \mathbf{A}_{\boldsymbol{0}}\]
+
+\subsection{``Poor man's bold''}
+If a bold version of a particular symbol doesn't exist in the
+available fonts,
+then \cn{boldsymbol} can't be used to make that symbol bold.
+At the present time, this means that
+\cn{boldsymbol} can't be used with symbols from
+the \fn{msam} and \fn{msbm} fonts, among others.
+In some cases, poor man's bold (\cn{pmb}) can be used instead
+of \cn{boldsymbol}:
+% Can't show example from msam or msbm because this document is
+% supposed to be TeXable even if the user doesn't have
+% AMSFonts. MJD 5-JUL-1990
+\[\frac{\partial x}{\partial y}
+\pmb{\bigg\vert}
+\frac{\partial y}{\partial z}\]
+\begin{verbatim}
+\[\frac{\partial x}{\partial y}
+\pmb{\bigg\vert}
+\frac{\partial y}{\partial z}\]
+\end{verbatim}
+So-called ``large operator'' symbols such as $\sum$ and $\prod$
+require an additional command, \cn{mathop},
+to produce proper spacing and limits when \cn{pmb} is used.
+For further details see \textit{The \TeX book}.
+\[\sum_{\substack{i<B\\\text{$i$ odd}}}
+\prod_\kappa \kappa F(r_i)\qquad
+\mathop{\pmb{\sum}}_{\substack{i<B\\\text{$i$ odd}}}
+\mathop{\pmb{\prod}}_\kappa \kappa(r_i)
+\]
+\begin{verbatim}
+\[\sum_{\substack{i<B\\\text{$i$ odd}}}
+\prod_\kappa \kappa F(r_i)\qquad
+\mathop{\pmb{\sum}}_{\substack{i<B\\\text{$i$ odd}}}
+\mathop{\pmb{\prod}}_\kappa \kappa(r_i)
+\]
+\end{verbatim}
+
+\section{Compound symbols and other features}
+\label{s:comp}
+\subsection{Multiple integral signs}
+
+\cn{iint}, \cn{iiint}, and \cn{iiiint} give multiple integral signs
+with the spacing between them nicely adjusted, in both text and
+display style. \cn{idotsint} gives two integral signs with dots
+between them.
+\begin{gather}
+\iint\limits_A f(x,y)\,dx\,dy\qquad\iiint\limits_A
+f(x,y,z)\,dx\,dy\,dz\\
+\iiiint\limits_A
+f(w,x,y,z)\,dw\,dx\,dy\,dz\qquad\idotsint\limits_A f(x_1,\dots,x_k)
+\end{gather}
+
+\subsection{Over and under arrows}
+
+Some extra over and under arrow operations are provided in
+the \pkg{amsmath} package. (Basic \LaTeX\ provides
+\cn{overrightarrow} and \cn{overleftarrow}).
+\begin{align*}
+\overrightarrow{\psi_\delta(t) E_t h}&
+=\underrightarrow{\psi_\delta(t) E_t h}\\
+\overleftarrow{\psi_\delta(t) E_t h}&
+=\underleftarrow{\psi_\delta(t) E_t h}\\
+\overleftrightarrow{\psi_\delta(t) E_t h}&
+=\underleftrightarrow{\psi_\delta(t) E_t h}
+\end{align*}
+\begin{verbatim}
+\begin{align*}
+\overrightarrow{\psi_\delta(t) E_t h}&
+=\underrightarrow{\psi_\delta(t) E_t h}\\
+\overleftarrow{\psi_\delta(t) E_t h}&
+=\underleftarrow{\psi_\delta(t) E_t h}\\
+\overleftrightarrow{\psi_\delta(t) E_t h}&
+=\underleftrightarrow{\psi_\delta(t) E_t h}
+\end{align*}
+\end{verbatim}
+These all scale properly in subscript sizes:
+\[\int_{\overrightarrow{AB}} ax\,dx\]
+\begin{verbatim}
+\[\int_{\overrightarrow{AB}} ax\,dx\]
+\end{verbatim}
+
+\subsection{Dots}
+
+Normally you need only type \cn{dots} for ellipsis dots in a
+math formula. The main exception is when the dots
+fall at the end of the formula; then you need to
+specify one of \cn{dotsc} (series dots, after a comma),
+\cn{dotsb} (binary dots, for binary relations or operators),
+\cn{dotsm} (multiplication dots), or \cn{dotsi} (dots after
+an integral). For example, the input
+\begin{verbatim}
+Then we have the series $A_1,A_2,\dotsc$,
+the regional sum $A_1+A_2+\dotsb$,
+the orthogonal product $A_1A_2\dotsm$,
+and the infinite integral
+\[\int_{A_1}\int_{A_2}\dotsi\].
+\end{verbatim}
+produces
+\begin{quotation}
+Then we have the series $A_1,A_2,\dotsc$,
+the regional sum $A_1+A_2+\dotsb$,
+the orthogonal product $A_1A_2\dotsm$,
+and the infinite integral
+\[\int_{A_1}\int_{A_2}\dotsi\]
+\end{quotation}
+
+\subsection{Accents in math}
+
+Double accents:
+\[\Hat{\Hat{H}}\quad\Check{\Check{C}}\quad
+\Tilde{\Tilde{T}}\quad\Acute{\Acute{A}}\quad
+\Grave{\Grave{G}}\quad\Dot{\Dot{D}}\quad
+\Ddot{\Ddot{D}}\quad\Breve{\Breve{B}}\quad
+\Bar{\Bar{B}}\quad\Vec{\Vec{V}}\]
+\begin{verbatim}
+\[\Hat{\Hat{H}}\quad\Check{\Check{C}}\quad
+\Tilde{\Tilde{T}}\quad\Acute{\Acute{A}}\quad
+\Grave{\Grave{G}}\quad\Dot{\Dot{D}}\quad
+\Ddot{\Ddot{D}}\quad\Breve{\Breve{B}}\quad
+\Bar{\Bar{B}}\quad\Vec{\Vec{V}}\]
+\end{verbatim}
+This double accent operation is complicated
+and tends to slow down the processing of a \LaTeX\ file.
+
+
+\subsection{Dot accents}
+\cn{dddot} and \cn{ddddot} are available to
+produce triple and quadruple dot accents
+in addition to the \cn{dot} and \cn{ddot} accents already available
+in \LaTeX:
+\[\dddot{Q}\qquad\ddddot{R}\]
+\begin{verbatim}
+\[\dddot{Q}\qquad\ddddot{R}\]
+\end{verbatim}
+
+\subsection{Roots}
+
+In the \pkg{amsmath} package \cn{leftroot} and \cn{uproot} allow you to adjust
+the position of the root index of a radical:
+\begin{verbatim}
+\sqrt[\leftroot{-2}\uproot{2}\beta]{k}
+\end{verbatim}
+gives good positioning of the $\beta$:
+\[\sqrt[\leftroot{-2}\uproot{2}\beta]{k}\]
+
+\subsection{Boxed formulas} The command \cn{boxed} puts a box around its
+argument, like \cn{fbox} except that the contents are in math mode:
+\begin{verbatim}
+\boxed{W_t-F\subseteq V(P_i)\subseteq W_t}
+\end{verbatim}
+\[\boxed{W_t-F\subseteq V(P_i)\subseteq W_t}.\]
+
+\subsection{Extensible arrows}
+\cn{xleftarrow} and \cn{xrightarrow} produce
+arrows that extend automatically to accommodate unusually wide
+subscripts or superscripts. The text of the subscript or superscript
+are given as an optional resp.\@ mandatory argument:
+Example:
+\[0 \xleftarrow[\zeta]{\alpha} F\times\triangle[n-1]
+ \xrightarrow{\partial_0\alpha(b)} E^{\partial_0b}\]
+\begin{verbatim}
+\[0 \xleftarrow[\zeta]{\alpha} F\times\triangle[n-1]
+ \xrightarrow{\partial_0\alpha(b)} E^{\partial_0b}\]
+\end{verbatim}
+
+\subsection{\cn{overset}, \cn{underset}, and \cn{sideset}}
+Examples:
+\[\overset{*}{X}\qquad\underset{*}{X}\qquad
+\overset{a}{\underset{b}{X}}\]
+\begin{verbatim}
+\[\overset{*}{X}\qquad\underset{*}{X}\qquad
+\overset{a}{\underset{b}{X}}\]
+\end{verbatim}
+
+The command \cn{sideset} is for a rather special
+purpose: putting symbols at the subscript and superscript
+corners of a large operator symbol such as $\sum$ or $\prod$,
+without affecting the placement of limits.
+Examples:
+\[\sideset{_*^*}{_*^*}\prod_k\qquad
+\sideset{}{'}\sum_{0\le i\le m} E_i\beta x
+\]
+\begin{verbatim}
+\[\sideset{_*^*}{_*^*}\prod_k\qquad
+\sideset{}{'}\sum_{0\le i\le m} E_i\beta x
+\]
+\end{verbatim}
+
+\subsection{The \cn{text} command}
+The main use of the command \cn{text} is for words or phrases in a
+display:
+\[\mathbf{y}=\mathbf{y}'\quad\text{if and only if}\quad
+y'_k=\delta_k y_{\tau(k)}\]
+\begin{verbatim}
+\[\mathbf{y}=\mathbf{y}'\quad\text{if and only if}\quad
+y'_k=\delta_k y_{\tau(k)}\]
+\end{verbatim}
+
+\subsection{Operator names}
+The more common math functions such as $\log$, $\sin$, and $\lim$
+have predefined control sequences: \verb=\log=, \verb=\sin=,
+\verb=\lim=.
+The \pkg{amsmath} package provides \cn{DeclareMathOperator} and
+\cn{DeclareMathOperator*}
+for producing new function names that will have the
+same typographical treatment.
+Examples:
+\[\norm{f}_\infty=
+\esssup_{x\in R^n}\abs{f(x)}\]
+\begin{verbatim}
+\[\norm{f}_\infty=
+\esssup_{x\in R^n}\abs{f(x)}\]
+\end{verbatim}
+\[\meas_1\{u\in R_+^1\colon f^*(u)>\alpha\}
+=\meas_n\{x\in R^n\colon \abs{f(x)}\geq\alpha\}
+\quad \forall\alpha>0.\]
+\begin{verbatim}
+\[\meas_1\{u\in R_+^1\colon f^*(u)>\alpha\}
+=\meas_n\{x\in R^n\colon \abs{f(x)}\geq\alpha\}
+\quad \forall\alpha>0.\]
+\end{verbatim}
+\cn{esssup} and \cn{meas} would be defined in the document preamble as
+\begin{verbatim}
+\DeclareMathOperator*{\esssup}{ess\,sup}
+\DeclareMathOperator{\meas}{meas}
+\end{verbatim}
+
+The following special operator names are predefined in the \pkg{amsmath}
+package: \cn{varlimsup}, \cn{varliminf}, \cn{varinjlim}, and
+\cn{varprojlim}. Here's what they look like in use:
+\begin{align}
+&\varlimsup_{n\rightarrow\infty}
+ \mathcal{Q}(u_n,u_n-u^{\#})\le0\\
+&\varliminf_{n\rightarrow\infty}
+ \left\lvert a_{n+1}\right\rvert/\left\lvert a_n\right\rvert=0\\
+&\varinjlim (m_i^\lambda\cdot)^*\le0\\
+&\varprojlim_{p\in S(A)}A_p\le0
+\end{align}
+\begin{verbatim}
+\begin{align}
+&\varlimsup_{n\rightarrow\infty}
+ \mathcal{Q}(u_n,u_n-u^{\#})\le0\\
+&\varliminf_{n\rightarrow\infty}
+ \left\lvert a_{n+1}\right\rvert/\left\lvert a_n\right\rvert=0\\
+&\varinjlim (m_i^\lambda\cdot)^*\le0\\
+&\varprojlim_{p\in S(A)}A_p\le0
+\end{align}
+\end{verbatim}
+
+\subsection{\cn{mod} and its relatives}
+The commands \cn{mod} and \cn{pod} are variants of
+\cn{pmod} preferred by some authors; \cn{mod} omits the parentheses,
+whereas \cn{pod} omits the `mod' and retains the parentheses.
+Examples:
+\begin{align}
+x&\equiv y+1\pmod{m^2}\\
+x&\equiv y+1\mod{m^2}\\
+x&\equiv y+1\pod{m^2}
+\end{align}
+\begin{verbatim}
+\begin{align}
+x&\equiv y+1\pmod{m^2}\\
+x&\equiv y+1\mod{m^2}\\
+x&\equiv y+1\pod{m^2}
+\end{align}
+\end{verbatim}
+
+\subsection{Fractions and related constructions}
+\label{fracs}
+
+The usual notation for binomials is similar to the fraction concept,
+so it has a similar command \cn{binom} with two arguments. Example:
+\begin{equation}
+\begin{split}
+\sum_{\gamma\in\Gamma_C} I_\gamma&
+=2^k-\binom{k}{1}2^{k-1}+\binom{k}{2}2^{k-2}\\
+&\quad+\dots+(-1)^l\binom{k}{l}2^{k-l}
++\dots+(-1)^k\\
+&=(2-1)^k=1
+\end{split}
+\end{equation}
+\begin{verbatim}
+\begin{equation}
+\begin{split}
+[\sum_{\gamma\in\Gamma_C} I_\gamma&
+=2^k-\binom{k}{1}2^{k-1}+\binom{k}{2}2^{k-2}\\
+&\quad+\dots+(-1)^l\binom{k}{l}2^{k-l}
++\dots+(-1)^k\\
+&=(2-1)^k=1
+\end{split}
+\end{equation}
+\end{verbatim}
+There are also abbreviations
+\begin{verbatim}
+\dfrac \dbinom
+\tfrac \tbinom
+\end{verbatim}
+for the commonly needed constructions
+\begin{verbatim}
+{\displaystyle\frac ... } {\displaystyle\binom ... }
+{\textstyle\frac ... } {\textstyle\binom ... }
+\end{verbatim}
+
+The generalized fraction command \cn{genfrac} provides full access to
+the six \TeX{} fraction primitives:
+\begin{align}
+\text{\cn{over}: }&\genfrac{}{}{}{}{n+1}{2}&
+\text{\cn{overwithdelims}: }&
+ \genfrac{\langle}{\rangle}{}{}{n+1}{2}\\
+\text{\cn{atop}: }&\genfrac{}{}{0pt}{}{n+1}{2}&
+\text{\cn{atopwithdelims}: }&
+ \genfrac{(}{)}{0pt}{}{n+1}{2}\\
+\text{\cn{above}: }&\genfrac{}{}{1pt}{}{n+1}{2}&
+\text{\cn{abovewithdelims}: }&
+ \genfrac{[}{]}{1pt}{}{n+1}{2}
+\end{align}
+\begin{verbatim}
+\text{\cn{over}: }&\genfrac{}{}{}{}{n+1}{2}&
+\text{\cn{overwithdelims}: }&
+ \genfrac{\langle}{\rangle}{}{}{n+1}{2}\\
+\text{\cn{atop}: }&\genfrac{}{}{0pt}{}{n+1}{2}&
+\text{\cn{atopwithdelims}: }&
+ \genfrac{(}{)}{0pt}{}{n+1}{2}\\
+\text{\cn{above}: }&\genfrac{}{}{1pt}{}{n+1}{2}&
+\text{\cn{abovewithdelims}: }&
+ \genfrac{[}{]}{1pt}{}{n+1}{2}
+\end{verbatim}
+
+\subsection{Continued fractions}
+The continued fraction
+\begin{equation}
+\cfrac{1}{\sqrt{2}+
+ \cfrac{1}{\sqrt{2}+
+ \cfrac{1}{\sqrt{2}+
+ \cfrac{1}{\sqrt{2}+
+ \cfrac{1}{\sqrt{2}+\dotsb
+}}}}}
+\end{equation}
+can be obtained by typing
+\begin{verbatim}
+\cfrac{1}{\sqrt{2}+
+ \cfrac{1}{\sqrt{2}+
+ \cfrac{1}{\sqrt{2}+
+ \cfrac{1}{\sqrt{2}+
+ \cfrac{1}{\sqrt{2}+\dotsb
+}}}}}
+\end{verbatim}
+Left or right placement of any of the numerators is accomplished by using
+\cn{cfrac[l]} or \cn{cfrac[r]} instead of \cn{cfrac}.
+
+\subsection{Smash}
+
+In \pkg{amsmath} there are optional arguments \verb"t" and \verb"b" for
+the plain \TeX\ command \cn{smash}, because sometimes it is advantageous
+to be able to `smash' only the top or only the bottom of something while
+retaining the natural depth or height. In the formula
+$X_j=(1/\sqrt{\smash[b]{\lambda_j}})X_j'$ \cn{smash}\verb=[b]= has been
+used to limit the size of the radical symbol.
+\begin{verbatim}
+$X_j=(1/\sqrt{\smash[b]{\lambda_j}})X_j'$
+\end{verbatim}
+Without the use of \cn{smash}\verb=[b]= the formula would have appeared
+thus: $X_j=(1/\sqrt{\lambda_j})X_j'$, with the radical extending to
+encompass the depth of the subscript $j$.
+
+\subsection{The `cases' environment}
+`Cases' constructions like the following can be produced using
+the \env{cases} environment.
+\begin{equation}
+P_{r-j}=
+ \begin{cases}
+ 0& \text{if $r-j$ is odd},\\
+ r!\,(-1)^{(r-j)/2}& \text{if $r-j$ is even}.
+ \end{cases}
+\end{equation}
+\begin{verbatim}
+\begin{equation} P_{r-j}=
+ \begin{cases}
+ 0& \text{if $r-j$ is odd},\\
+ r!\,(-1)^{(r-j)/2}& \text{if $r-j$ is even}.
+ \end{cases}
+\end{equation}
+\end{verbatim}
+Notice the use of \cn{text} and the embedded math.
+
+\subsection{Matrix}
+
+Here are samples of the matrix environments,
+\cn{matrix}, \cn{pmatrix}, \cn{bmatrix}, \cn{Bmatrix}, \cn{vmatrix}
+and \cn{Vmatrix}:
+\begin{equation}
+\begin{matrix}
+\vartheta& \varrho\\\varphi& \varpi
+\end{matrix}\quad
+\begin{pmatrix}
+\vartheta& \varrho\\\varphi& \varpi
+\end{pmatrix}\quad
+\begin{bmatrix}
+\vartheta& \varrho\\\varphi& \varpi
+\end{bmatrix}\quad
+\begin{Bmatrix}
+\vartheta& \varrho\\\varphi& \varpi
+\end{Bmatrix}\quad
+\begin{vmatrix}
+\vartheta& \varrho\\\varphi& \varpi
+\end{vmatrix}\quad
+\begin{Vmatrix}
+\vartheta& \varrho\\\varphi& \varpi
+\end{Vmatrix}
+\end{equation}
+%
+\begin{verbatim}
+\begin{matrix}
+\vartheta& \varrho\\\varphi& \varpi
+\end{matrix}\quad
+\begin{pmatrix}
+\vartheta& \varrho\\\varphi& \varpi
+\end{pmatrix}\quad
+\begin{bmatrix}
+\vartheta& \varrho\\\varphi& \varpi
+\end{bmatrix}\quad
+\begin{Bmatrix}
+\vartheta& \varrho\\\varphi& \varpi
+\end{Bmatrix}\quad
+\begin{vmatrix}
+\vartheta& \varrho\\\varphi& \varpi
+\end{vmatrix}\quad
+\begin{Vmatrix}
+\vartheta& \varrho\\\varphi& \varpi
+\end{Vmatrix}
+\end{verbatim}
+
+To produce a small matrix suitable for use in text, use the
+\env{smallmatrix} environment.
+\begin{verbatim}
+\begin{math}
+ \bigl( \begin{smallmatrix}
+ a&b\\ c&d
+ \end{smallmatrix} \bigr)
+\end{math}
+\end{verbatim}
+To show
+the effect of the matrix on the surrounding lines of
+a paragraph, we put it here: \begin{math}
+ \bigl( \begin{smallmatrix}
+ a&b\\ c&d
+ \end{smallmatrix} \bigr)
+\end{math}
+and follow it with enough text to ensure that there will
+be at least one full line below the matrix.
+
+\cn{hdotsfor}\verb"{"\textit{number}\verb"}" produces a row of dots in a matrix
+spanning the given number of columns:
+\[W(\Phi)= \begin{Vmatrix}
+\dfrac\varphi{(\varphi_1,\varepsilon_1)}&0&\dots&0\\
+\dfrac{\varphi k_{n2}}{(\varphi_2,\varepsilon_1)}&
+\dfrac\varphi{(\varphi_2,\varepsilon_2)}&\dots&0\\
+\hdotsfor{5}\\
+\dfrac{\varphi k_{n1}}{(\varphi_n,\varepsilon_1)}&
+\dfrac{\varphi k_{n2}}{(\varphi_n,\varepsilon_2)}&\dots&
+\dfrac{\varphi k_{n\,n-1}}{(\varphi_n,\varepsilon_{n-1})}&
+\dfrac{\varphi}{(\varphi_n,\varepsilon_n)}
+\end{Vmatrix}\]
+\begin{verbatim}
+\[W(\Phi)= \begin{Vmatrix}
+\dfrac\varphi{(\varphi_1,\varepsilon_1)}&0&\dots&0\\
+\dfrac{\varphi k_{n2}}{(\varphi_2,\varepsilon_1)}&
+\dfrac\varphi{(\varphi_2,\varepsilon_2)}&\dots&0\\
+\hdotsfor{5}\\
+\dfrac{\varphi k_{n1}}{(\varphi_n,\varepsilon_1)}&
+\dfrac{\varphi k_{n2}}{(\varphi_n,\varepsilon_2)}&\dots&
+\dfrac{\varphi k_{n\,n-1}}{(\varphi_n,\varepsilon_{n-1})}&
+\dfrac{\varphi}{(\varphi_n,\varepsilon_n)}
+\end{Vmatrix}\]
+\end{verbatim}
+The spacing of the dots can be varied through use of a square-bracket
+option, for example, \verb"\hdotsfor[1.5]{3}". The number in square brackets
+will be used as a multiplier; the normal value is 1.
+
+\subsection{The \cn{substack} command}
+
+The \cn{substack} command can be used to produce a multiline
+subscript or superscript:
+for example
+\begin{verbatim}
+\sum_{\substack{0\le i\le m\\ 0<j<n}} P(i,j)
+\end{verbatim}
+produces a two-line subscript underneath the sum:
+\begin{equation}
+\sum_{\substack{0\le i\le m\\ 0<j<n}} P(i,j)
+\end{equation}
+A slightly more generalized form is the \env{subarray} environment which
+allows you to specify that each line should be left-aligned instead of
+centered, as here:
+\begin{equation}
+\sum_{\begin{subarray}{l}
+ 0\le i\le m\\ 0<j<n
+ \end{subarray}}
+ P(i,j)
+\end{equation}
+\begin{verbatim}
+\sum_{\begin{subarray}{l}
+ 0\le i\le m\\ 0<j<n
+ \end{subarray}}
+ P(i,j)
+\end{verbatim}
+
+
+\subsection{Big-g-g delimiters}
+Here are some big delimiters, first in \cn{normalsize}:
+\[\biggl(\mathbf{E}_{y}
+ \int_0^{t_\varepsilon}L_{x,y^x(s)}\varphi(x)\,ds
+ \biggr)
+\]
+\begin{verbatim}
+\[\biggl(\mathbf{E}_{y}
+ \int_0^{t_\varepsilon}L_{x,y^x(s)}\varphi(x)\,ds
+ \biggr)
+\]
+\end{verbatim}
+and now in \cn{Large} size:
+{\Large
+\[\biggl(\mathbf{E}_{y}
+ \int_0^{t_\varepsilon}L_{x,y^x(s)}\varphi(x)\,ds
+ \biggr)
+\]}
+\begin{verbatim}
+{\Large
+\[\biggl(\mathbf{E}_{y}
+ \int_0^{t_\varepsilon}L_{x,y^x(s)}\varphi(x)\,ds
+ \biggr)
+\]}
+\end{verbatim}
+
+\newpage
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\makeatletter
+
+%% This turns on vertical rules at the right and left margins, to
+%% better illustrate the spacing for certain multiple-line equation
+%% structures.
+\def\@makecol{\ifvoid\footins \setbox\@outputbox\box\@cclv
+ \else\setbox\@outputbox
+ \vbox{\boxmaxdepth \maxdepth
+ \unvbox\@cclv\vskip\skip\footins\footnoterule\unvbox\footins}\fi
+ \xdef\@freelist{\@freelist\@midlist}\gdef\@midlist{}\@combinefloats
+ \setbox\@outputbox\hbox{\vrule width\marginrulewidth
+ \vbox to\@colht{\boxmaxdepth\maxdepth
+ \@texttop\dimen128=\dp\@outputbox\unvbox\@outputbox
+ \vskip-\dimen128\@textbottom}%
+ \vrule width\marginrulewidth}%
+ \global\maxdepth\@maxdepth}
+\newdimen\marginrulewidth
+\setlength{\marginrulewidth}{.1pt}
+\makeatother
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\appendix
+\section{Examples of multiple-line equation structures}
+\label{s:eq}
+
+\textbf{\large Note: Starting on this page, vertical rules are
+added at the margins so that the positioning of various display elements
+with respect to the margins can be seen more clearly.}
+
+\subsection{Split}
+The \env{split} environment is not an independent environment
+but should be used inside something else such as \env{equation}
+or \env{align}.
+
+If there is not enough room for it, the equation number for a
+\env{split} will be shifted to the previous line, when equation numbers are
+on the left; the number shifts down to the next line when numbers are on
+the right.
+\begin{equation}
+\begin{split}
+f_{h,\varepsilon}(x,y)
+&=\varepsilon\mathbf{E}_{x,y}\int_0^{t_\varepsilon}
+L_{x,y_\varepsilon(\varepsilon u)}\varphi(x)\,du\\
+&= h\int L_{x,z}\varphi(x)\rho_x(dz)\\
+&\quad+h\biggl[\frac{1}{t_\varepsilon}\biggl(\mathbf{E}_{y}
+ \int_0^{t_\varepsilon}L_{x,y^x(s)}\varphi(x)\,ds
+ -t_\varepsilon\int L_{x,z}\varphi(x)\rho_x(dz)\biggr)\\
+&\phantom{{=}+h\biggl[}+\frac{1}{t_\varepsilon}
+ \biggl(\mathbf{E}_{y}\int_0^{t_\varepsilon}L_{x,y^x(s)}
+ \varphi(x)\,ds -\mathbf{E}_{x,y}\int_0^{t_\varepsilon}
+ L_{x,y_\varepsilon(\varepsilon s)}
+ \varphi(x)\,ds\biggr)\biggr]\\
+&=h\wh{L}_x\varphi(x)+h\theta_\varepsilon(x,y),
+\end{split}
+\end{equation}
+Some text after to test the below-display spacing.
+
+\begin{verbatim}
+\begin{equation}
+\begin{split}
+f_{h,\varepsilon}(x,y)
+&=\varepsilon\mathbf{E}_{x,y}\int_0^{t_\varepsilon}
+L_{x,y_\varepsilon(\varepsilon u)}\varphi(x)\,du\\
+&= h\int L_{x,z}\varphi(x)\rho_x(dz)\\
+&\quad+h\biggl[\frac{1}{t_\varepsilon}\biggl(\mathbf{E}_{y}
+ \int_0^{t_\varepsilon}L_{x,y^x(s)}\varphi(x)\,ds
+ -t_\varepsilon\int L_{x,z}\varphi(x)\rho_x(dz)\biggr)\\
+&\phantom{{=}+h\biggl[}+\frac{1}{t_\varepsilon}
+ \biggl(\mathbf{E}_{y}\int_0^{t_\varepsilon}L_{x,y^x(s)}
+ \varphi(x)\,ds -\mathbf{E}_{x,y}\int_0^{t_\varepsilon}
+ L_{x,y_\varepsilon(\varepsilon s)}
+ \varphi(x)\,ds\biggr)\biggr]\\
+&=h\wh{L}_x\varphi(x)+h\theta_\varepsilon(x,y),
+\end{split}
+\end{equation}
+\end{verbatim}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newpage
+Unnumbered version:
+\begin{equation*}
+\begin{split}
+f_{h,\varepsilon}(x,y)
+&=\varepsilon\mathbf{E}_{x,y}\int_0^{t_\varepsilon}
+L_{x,y_\varepsilon(\varepsilon u)}\varphi(x)\,du\\
+&= h\int L_{x,z}\varphi(x)\rho_x(dz)\\
+&\quad+h\biggl[\frac{1}{t_\varepsilon}\biggl(\mathbf{E}_{y}
+ \int_0^{t_\varepsilon}L_{x,y^x(s)}\varphi(x)\,ds
+ -t_\varepsilon\int L_{x,z}\varphi(x)\rho_x(dz)\biggr)\\
+&\phantom{{=}+h\biggl[}+\frac{1}{t_\varepsilon}
+ \biggl(\mathbf{E}_{y}\int_0^{t_\varepsilon}L_{x,y^x(s)}
+ \varphi(x)\,ds -\mathbf{E}_{x,y}\int_0^{t_\varepsilon}
+ L_{x,y_\varepsilon(\varepsilon s)}
+ \varphi(x)\,ds\biggr)\biggr]\\
+&=h\wh{L}_x\varphi(x)+h\theta_\varepsilon(x,y),
+\end{split}
+\end{equation*}
+Some text after to test the below-display spacing.
+
+\begin{verbatim}
+\begin{equation*}
+\begin{split}
+f_{h,\varepsilon}(x,y)
+&=\varepsilon\mathbf{E}_{x,y}\int_0^{t_\varepsilon}
+L_{x,y_\varepsilon(\varepsilon u)}\varphi(x)\,du\\
+&= h\int L_{x,z}\varphi(x)\rho_x(dz)\\
+&\quad+h\biggl[\frac{1}{t_\varepsilon}\biggl(\mathbf{E}_{y}
+ \int_0^{t_\varepsilon}L_{x,y^x(s)}\varphi(x)\,ds
+ -t_\varepsilon\int L_{x,z}\varphi(x)\rho_x(dz)\biggr)\\
+&\phantom{{=}+h\biggl[}+\frac{1}{t_\varepsilon}
+ \biggl(\mathbf{E}_{y}\int_0^{t_\varepsilon}L_{x,y^x(s)}
+ \varphi(x)\,ds -\mathbf{E}_{x,y}\int_0^{t_\varepsilon}
+ L_{x,y_\varepsilon(\varepsilon s)}
+ \varphi(x)\,ds\biggr)\biggr]\\
+&=h\wh{L}_x\varphi(x)+h\theta_\varepsilon(x,y),
+\end{split}
+\end{equation*}
+\end{verbatim}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newpage
+If the option \env{centertags} is included in the options
+list of the \pkg{amsmath} package,
+the equation numbers for \env{split} environments will be
+centered vertically on the height
+of the \env{split}:
+{\makeatletter\ctagsplit@true
+\begin{equation}
+\begin{split}
+ \abs{I_2}&=\left\lvert \int_{0}^T \psi(t)\left\{u(a,t)-\int_{\gamma(t)}^a
+ \frac{d\theta}{k(\theta,t)}
+ \int_{a}^\theta c(\xi)u_t(\xi,t)\,d\xi\right\}dt\right\rvert\\
+&\le C_6\left\lvert \left\lvert f\int_\Omega\left\lvert \wt{S}^{-1,0}_{a,-}
+ W_2(\Omega,\Gamma_l)\right\rvert\right\rvert
+ \left\lvert \abs{u}\overset{\circ}\to W_2^{\wt{A}}
+ (\Omega;\Gamma_r,T)\right\rvert\right\rvert.
+\end{split}
+\end{equation}}%
+Some text after to test the below-display spacing.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newpage
+Use of \env{split} within \env{align}:
+{\delimiterfactor750
+\begin{align}
+\begin{split}\abs{I_1}
+ &=\left\lvert \int_\Omega gRu\,d\Omega\right\rvert\\
+&\le C_3\left[\int_\Omega\left(\int_{a}^x
+ g(\xi,t)\,d\xi\right)^2d\Omega\right]^{1/2}\\
+&\quad\times \left[\int_\Omega\left\{u^2_x+\frac{1}{k}
+ \left(\int_{a}^x cu_t\,d\xi\right)^2\right\}
+ c\Omega\right]^{1/2}\\
+&\le C_4\left\lvert \left\lvert f\left\lvert \wt{S}^{-1,0}_{a,-}
+ W_2(\Omega,\Gamma_l)\right\rvert\right\rvert
+ \left\lvert \abs{u}\overset{\circ}\to W_2^{\wt{A}}
+ (\Omega;\Gamma_r,T)\right\rvert\right\rvert.
+\end{split}\label{eq:A}\\
+\begin{split}\abs{I_2}&=\left\lvert \int_{0}^T \psi(t)\left\{u(a,t)
+ -\int_{\gamma(t)}^a\frac{d\theta}{k(\theta,t)}
+ \int_{a}^\theta c(\xi)u_t(\xi,t)\,d\xi\right\}dt\right\rvert\\
+&\le C_6\left\lvert \left\lvert f\int_\Omega
+ \left\lvert \wt{S}^{-1,0}_{a,-}
+ W_2(\Omega,\Gamma_l)\right\rvert\right\rvert
+ \left\lvert \abs{u}\overset{\circ}\to W_2^{\wt{A}}
+ (\Omega;\Gamma_r,T)\right\rvert\right\rvert.
+\end{split}
+\end{align}}%
+Some text after to test the below-display spacing.
+
+\begin{verbatim}
+\begin{align}
+\begin{split}\abs{I_1}
+ &=\left\lvert \int_\Omega gRu\,d\Omega\right\rvert\\
+&\le C_3\left[\int_\Omega\left(\int_{a}^x
+ g(\xi,t)\,d\xi\right)^2d\Omega\right]^{1/2}\\
+&\quad\times \left[\int_\Omega\left\{u^2_x+\frac{1}{k}
+ \left(\int_{a}^x cu_t\,d\xi\right)^2\right\}
+ c\Omega\right]^{1/2}\\
+&\le C_4\left\lvert \left\lvert f\left\lvert \wt{S}^{-1,0}_{a,-}
+ W_2(\Omega,\Gamma_l)\right\rvert\right\rvert
+ \left\lvert \abs{u}\overset{\circ}\to W_2^{\wt{A}}
+ (\Omega;\Gamma_r,T)\right\rvert\right\rvert.
+\end{split}\label{eq:A}\\
+\begin{split}\abs{I_2}&=\left\lvert \int_{0}^T \psi(t)\left\{u(a,t)
+ -\int_{\gamma(t)}^a\frac{d\theta}{k(\theta,t)}
+ \int_{a}^\theta c(\xi)u_t(\xi,t)\,d\xi\right\}dt\right\rvert\\
+&\le C_6\left\lvert \left\lvert f\int_\Omega
+ \left\lvert \wt{S}^{-1,0}_{a,-}
+ W_2(\Omega,\Gamma_l)\right\rvert\right\rvert
+ \left\lvert \abs{u}\overset{\circ}\to W_2^{\wt{A}}
+ (\Omega;\Gamma_r,T)\right\rvert\right\rvert.
+\end{split}
+\end{align}
+\end{verbatim}
+
+%%%%%%%%%%%%%%%%%%
+
+\newpage
+Unnumbered \env{align}, with a number on the second \env{split}:
+\begin{align*}
+\begin{split}
+ \abs{I_1}&=\left\lvert \int_\Omega gRu\,d\Omega\right\rvert\\
+ &\le C_3\left[\int_\Omega\left(\int_{a}^x
+ g(\xi,t)\,d\xi\right)^2d\Omega\right]^{1/2}\\
+&\phantom{=}\times \left[\int_\Omega\left\{u^2_x+\frac{1}{k}
+ \left(\int_{a}^x cu_t\,d\xi\right)^2\right\}
+ c\Omega\right]^{1/2}\\
+&\le C_4\left\lvert \left\lvert f\left\lvert \wt{S}^{-1,0}_{a,-}
+ W_2(\Omega,\Gamma_l)\right\rvert\right\rvert
+ \left\lvert \abs{u}\overset{\circ}\to W_2^{\wt{A}}
+ (\Omega;\Gamma_r,T)\right\rvert\right\rvert.
+\end{split}\\
+\begin{split}\abs{I_2}&=\left\lvert \int_{0}^T \psi(t)\left\{u(a,t)
+ -\int_{\gamma(t)}^a\frac{d\theta}{k(\theta,t)}
+ \int_{a}^\theta c(\xi)u_t(\xi,t)\,d\xi\right\}dt\right\rvert\\
+&\le C_6\left\lvert \left\lvert f\int_\Omega
+ \left\lvert \wt{S}^{-1,0}_{a,-}
+ W_2(\Omega,\Gamma_l)\right\rvert\right\rvert
+ \left\lvert \abs{u}\overset{\circ}\to W_2^{\wt{A}}
+ (\Omega;\Gamma_r,T)\right\rvert\right\rvert.
+\end{split}\tag{\theequation$'$}
+\end{align*}
+Some text after to test the below-display spacing.
+
+\begin{verbatim}
+\begin{align*}
+\begin{split}
+ \abs{I_1}&=\left\lvert \int_\Omega gRu\,d\Omega\right\rvert\\
+ &\le C_3\left[\int_\Omega\left(\int_{a}^x
+ g(\xi,t)\,d\xi\right)^2d\Omega\right]^{1/2}\\
+&\phantom{=}\times \left[\int_\Omega\left\{u^2_x+\frac{1}{k}
+ \left(\int_{a}^x cu_t\,d\xi\right)^2\right\}
+ c\Omega\right]^{1/2}\\
+&\le C_4\left\lvert \left\lvert f\left\lvert \wt{S}^{-1,0}_{a,-}
+ W_2(\Omega,\Gamma_l)\right\rvert\right\rvert
+ \left\lvert \abs{u}\overset{\circ}\to W_2^{\wt{A}}
+ (\Omega;\Gamma_r,T)\right\rvert\right\rvert.
+\end{split}\\
+\begin{split}
+ \abs{I_2}&=\left\lvert \int_{0}^T \psi(t)\left\{u(a,t)
+ -\int_{\gamma(t)}^a\frac{d\theta}{k(\theta,t)}
+ \int_{a}^\theta c(\xi)u_t(\xi,t)\,d\xi\right\}dt\right\rvert\\
+&\le C_6\left\lvert \left\lvert f\int_\Omega
+ \left\lvert \wt{S}^{-1,0}_{a,-}
+ W_2(\Omega,\Gamma_l)\right\rvert\right\rvert
+ \left\lvert \abs{u}\overset{\circ}\to W_2^{\wt{A}}
+ (\Omega;\Gamma_r,T)\right\rvert\right\rvert.
+\end{split}\tag{\theequation$'$}
+\end{align*}
+\end{verbatim}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newpage
+\subsection{Multline}
+Numbered version:
+\begin{multline}\label{eq:E}
+\int_a^b\biggl\{\int_a^b[f(x)^2g(y)^2+f(y)^2g(x)^2]
+ -2f(x)g(x)f(y)g(y)\,dx\biggr\}\,dy \\
+ =\int_a^b\biggl\{g(y)^2\int_a^bf^2+f(y)^2
+ \int_a^b g^2-2f(y)g(y)\int_a^b fg\biggr\}\,dy
+\end{multline}
+To test the use of \verb=\label= and
+\verb=\ref=, we refer to the number of this
+equation here: (\ref{eq:E}).
+
+\begin{verbatim}
+\begin{multline}\label{eq:E}
+\int_a^b\biggl\{\int_a^b[f(x)^2g(y)^2+f(y)^2g(x)^2]
+ -2f(x)g(x)f(y)g(y)\,dx\biggr\}\,dy \\
+ =\int_a^b\biggl\{g(y)^2\int_a^bf^2+f(y)^2
+ \int_a^b g^2-2f(y)g(y)\int_a^b fg\biggr\}\,dy
+\end{multline}
+\end{verbatim}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+Unnumbered version:
+\begin{multline*}
+\int_a^b\biggl\{\int_a^b[f(x)^2g(y)^2+f(y)^2g(x)^2]
+ -2f(x)g(x)f(y)g(y)\,dx\biggr\}\,dy \\
+ =\int_a^b\biggl\{g(y)^2\int_a^bf^2+f(y)^2
+ \int_a^b g^2-2f(y)g(y)\int_a^b fg\biggr\}\,dy
+\end{multline*}
+Some text after to test the below-display spacing.
+
+\begin{verbatim}
+\begin{multline*}
+\int_a^b\biggl\{\int_a^b[f(x)^2g(y)^2+f(y)^2g(x)^2]
+ -2f(x)g(x)f(y)g(y)\,dx\biggr\}\,dy \\
+ =\int_a^b\biggl\{g(y)^2\int_a^bf^2+f(y)^2
+ \int_a^b g^2-2f(y)g(y)\int_a^b fg\biggr\}\,dy
+\end{multline*}
+\end{verbatim}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\iffalse % bugfix needed, error message "Multiple \tag"
+ % [mjd,24-Jan-1995]
+\newpage
+And now an ``unnumbered'' version numbered with a literal tag:
+\begin{multline*}\tag*{[a]}
+\int_a^b\biggl\{\int_a^b[f(x)^2g(y)^2+f(y)^2g(x)^2]
+ -2f(x)g(x)f(y)g(y)\,dx\biggr\}\,dy \\
+ =\int_a^b\biggl\{g(y)^2\int_a^bf^2+f(y)^2
+ \int_a^b g^2-2f(y)g(y)\int_a^b fg\biggr\}\,dy
+\end{multline*}
+Some text after to test the below-display spacing.
+
+\begin{verbatim}
+\begin{multline*}\tag*{[a]}
+\int_a^b\biggl\{\int_a^b[f(x)^2g(y)^2+f(y)^2g(x)^2]
+ -2f(x)g(x)f(y)g(y)\,dx\biggr\}\,dy \\
+ =\int_a^b\biggl\{g(y)^2\int_a^bf^2+f(y)^2
+ \int_a^b g^2-2f(y)g(y)\int_a^b fg\biggr\}\,dy
+\end{multline*}
+\end{verbatim}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+The same display with \verb=\multlinegap= set to zero.
+Notice that the space on the left in
+the first line does not change, because of the equation number, while
+the second line is pushed over to the right margin.
+{\setlength{\multlinegap}{0pt}
+\begin{multline*}\tag*{[a]}
+\int_a^b\biggl\{\int_a^b[f(x)^2g(y)^2+f(y)^2g(x)^2]
+ -2f(x)g(x)f(y)g(y)\,dx\biggr\}\,dy \\
+ =\int_a^b\biggl\{g(y)^2\int_a^bf^2+f(y)^2
+ \int_a^b g^2-2f(y)g(y)\int_a^b fg\biggr\}\,dy
+\end{multline*}}%
+Some text after to test the below-display spacing.
+
+\begin{verbatim}
+{\setlength{\multlinegap}{0pt}
+\begin{multline*}\tag*{[a]}
+\int_a^b\biggl\{\int_a^b[f(x)^2g(y)^2+f(y)^2g(x)^2]
+ -2f(x)g(x)f(y)g(y)\,dx\biggr\}\,dy \\
+ =\int_a^b\biggl\{g(y)^2\int_a^bf^2+f(y)^2
+ \int_a^b g^2-2f(y)g(y)\int_a^b fg\biggr\}\,dy
+\end{multline*}}
+\end{verbatim}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\fi % matches \iffalse above [mjd,24-Jan-1995]
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newpage
+\subsection{Gather}
+Numbered version with \verb;\notag; on the second line:
+\begin{gather}
+D(a,r)\equiv\{z\in\mathbf{C}\colon \abs{z-a}<r\},\\
+\seg(a,r)\equiv\{z\in\mathbf{C}\colon
+\Im z= \Im a,\ \abs{z-a}<r\},\notag\\
+c(e,\theta,r)\equiv\{(x,y)\in\mathbf{C}
+\colon \abs{x-e}<y\tan\theta,\ 0<y<r\},\\
+C(E,\theta,r)\equiv\bigcup_{e\in E}c(e,\theta,r).
+\end{gather}
+\begin{verbatim}
+\begin{gather}
+D(a,r)\equiv\{z\in\mathbf{C}\colon \abs{z-a}<r\},\\
+\seg(a,r)\equiv\{z\in\mathbf{C}\colon
+\Im z= \Im a,\ \abs{z-a}<r\},\notag\\
+c(e,\theta,r)\equiv\{(x,y)\in\mathbf{C}
+\colon \abs{x-e}<y\tan\theta,\ 0<y<r\},\\
+C(E,\theta,r)\equiv\bigcup_{e\in E}c(e,\theta,r).
+\end{gather}
+\end{verbatim}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+Unnumbered version.
+\begin{gather*}
+D(a,r)\equiv\{z\in\mathbf{C}\colon \abs{z-a}<r\},\\
+\seg (a,r)\equiv\{z\in\mathbf{C}\colon
+\Im z= \Im a,\ \abs{z-a}<r\},\\
+c(e,\theta,r)\equiv\{(x,y)\in\mathbf{C}
+ \colon \abs{x-e}<y\tan\theta,\ 0<y<r\},\\
+C(E,\theta,r)\equiv\bigcup_{e\in E}c(e,\theta,r).
+\end{gather*}
+Some text after to test the below-display spacing.
+\begin{verbatim}
+\begin{gather*}
+D(a,r)\equiv\{z\in\mathbf{C}\colon \abs{z-a}<r\},\\
+\seg (a,r)\equiv\{z\in\mathbf{C}\colon
+\Im z= \Im a,\ \abs{z-a}<r\},\\
+c(e,\theta,r)\equiv\{(x,y)\in\mathbf{C}
+ \colon \abs{x-e}<y\tan\theta,\ 0<y<r\},\\
+C(E,\theta,r)\equiv\bigcup_{e\in E}c(e,\theta,r).
+\end{gather*}
+\end{verbatim}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newpage
+\subsection{Align}
+Numbered version:
+\begin{align}
+\gamma_x(t)&=(\cos tu+\sin tx,v),\\
+\gamma_y(t)&=(u,\cos tv+\sin ty),\\
+\gamma_z(t)&=\left(\cos tu+\frac\alpha\beta\sin tv,
+ -\frac\beta\alpha\sin tu+\cos tv\right).
+\end{align}
+Some text after to test the below-display spacing.
+
+\begin{verbatim}
+\begin{align}
+\gamma_x(t)&=(\cos tu+\sin tx,v),\\
+\gamma_y(t)&=(u,\cos tv+\sin ty),\\
+\gamma_z(t)&=\left(\cos tu+\frac\alpha\beta\sin tv,
+ -\frac\beta\alpha\sin tu+\cos tv\right).
+\end{align}
+\end{verbatim}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+Unnumbered version:
+\begin{align*}
+\gamma_x(t)&=(\cos tu+\sin tx,v),\\
+\gamma_y(t)&=(u,\cos tv+\sin ty),\\
+\gamma_z(t)&=\left(\cos tu+\frac\alpha\beta\sin tv,
+ -\frac\beta\alpha\sin tu+\cos tv\right).
+\end{align*}
+Some text after to test the below-display spacing.
+
+\begin{verbatim}
+\begin{align*}
+\gamma_x(t)&=(\cos tu+\sin tx,v),\\
+\gamma_y(t)&=(u,\cos tv+\sin ty),\\
+\gamma_z(t)&=\left(\cos tu+\frac\alpha\beta\sin tv,
+ -\frac\beta\alpha\sin tu+\cos tv\right).
+\end{align*}
+\end{verbatim}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+A variation:
+\begin{align}
+x& =y && \text {by (\ref{eq:C})}\\
+x'& = y' && \text {by (\ref{eq:D})}\\
+x+x' & = y+y' && \text {by Axiom 1.}
+\end{align}
+Some text after to test the below-display spacing.
+
+\begin{verbatim}
+\begin{align}
+x& =y && \text {by (\ref{eq:C})}\\
+x'& = y' && \text {by (\ref{eq:D})}\\
+x+x' & = y+y' && \text {by Axiom 1.}
+\end{align}
+\end{verbatim}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newpage
+\subsection{Align and split within gather}
+When using the \env{align} environment within the \env{gather}
+environment, one or the other, or both, should be unnumbered (using the
+\verb"*" form); numbering both the outer and inner environment would
+cause a conflict.
+
+Automatically numbered \env{gather} with \env{split} and \env{align*}:
+\begin{gather}
+\begin{split} \varphi(x,z)
+&=z-\gamma_{10}x-\gamma_{mn}x^mz^n\\
+&=z-Mr^{-1}x-Mr^{-(m+n)}x^mz^n
+\end{split}\\[6pt]
+\begin{align*}
+\zeta^0 &=(\xi^0)^2,\\
+\zeta^1 &=\xi^0\xi^1,\\
+\zeta^2 &=(\xi^1)^2,
+\end{align*}
+\end{gather}
+Here the \env{split} environment gets a number from the outer
+\env{gather} environment; numbers for individual lines of the
+\env{align*} are suppressed because of the star.
+
+\begin{verbatim}
+\begin{gather}
+\begin{split} \varphi(x,z)
+&=z-\gamma_{10}x-\gamma_{mn}x^mz^n\\
+&=z-Mr^{-1}x-Mr^{-(m+n)}x^mz^n
+\end{split}\\[6pt]
+\begin{align*}
+\zeta^0 &=(\xi^0)^2,\\
+\zeta^1 &=\xi^0\xi^1,\\
+\zeta^2 &=(\xi^1)^2,
+\end{align*}
+\end{gather}
+\end{verbatim}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+The \verb"*"-ed form of \env{gather} with the non-\verb"*"-ed form of
+\env{align}.
+\begin{gather*}
+\begin{split} \varphi(x,z)
+&=z-\gamma_{10}x-\gamma_{mn}x^mz^n\\
+&=z-Mr^{-1}x-Mr^{-(m+n)}x^mz^n
+\end{split}\\[6pt]
+\begin{align} \zeta^0&=(\xi^0)^2,\\
+\zeta^1 &=\xi^0\xi^1,\\
+\zeta^2 &=(\xi^1)^2,
+\end{align}
+\end{gather*}
+Some text after to test the below-display spacing.
+
+\begin{verbatim}
+\begin{gather*}
+\begin{split} \varphi(x,z)
+&=z-\gamma_{10}x-\gamma_{mn}x^mz^n\\
+&=z-Mr^{-1}x-Mr^{-(m+n)}x^mz^n
+\end{split}\\[6pt]
+\begin{align} \zeta^0&=(\xi^0)^2,\\
+\zeta^1 &=\xi^0\xi^1,\\
+\zeta^2 &=(\xi^1)^2,
+\end{align}
+\end{gather*}
+\end{verbatim}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newpage
+\subsection{Alignat}
+Numbered version:
+\begin{alignat}{3}
+V_i & =v_i - q_i v_j, & \qquad X_i & = x_i - q_i x_j,
+ & \qquad U_i & = u_i,
+ \qquad \text{for $i\ne j$;}\label{eq:B}\\
+V_j & = v_j, & \qquad X_j & = x_j,
+ & \qquad U_j & u_j + \sum_{i\ne j} q_i u_i.
+\end{alignat}
+Some text after to test the below-display spacing.
+
+\begin{verbatim}
+\begin{alignat}{3}
+V_i & =v_i - q_i v_j, & \qquad X_i & = x_i - q_i x_j,
+ & \qquad U_i & = u_i,
+ \qquad \text{for $i\ne j$;}\label{eq:B}\\
+V_j & = v_j, & \qquad X_j & = x_j,
+ & \qquad U_j & u_j + \sum_{i\ne j} q_i u_i.
+\end{alignat}
+\end{verbatim}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+Unnumbered version:
+\begin{alignat*}3
+V_i & =v_i - q_i v_j, & \qquad X_i & = x_i - q_i x_j,
+ & \qquad U_i & = u_i,
+ \qquad \text{for $i\ne j$;} \\
+V_j & = v_j, & \qquad X_j & = x_j,
+ & \qquad U_j & u_j + \sum_{i\ne j} q_i u_i.
+\end{alignat*}
+Some text after to test the below-display spacing.
+
+\begin{verbatim}
+\begin{alignat*}3
+V_i & =v_i - q_i v_j, & \qquad X_i & = x_i - q_i x_j,
+ & \qquad U_i & = u_i,
+ \qquad \text{for $i\ne j$;} \\
+V_j & = v_j, & \qquad X_j & = x_j,
+ & \qquad U_j & u_j + \sum_{i\ne j} q_i u_i.
+\end{alignat*}
+\end{verbatim}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newpage
+The most common use for \env{alignat} is for things like
+\begin{alignat}{2}
+x& =y && \qquad \text {by (\ref{eq:A})}\label{eq:C}\\
+x'& = y' && \qquad \text {by (\ref{eq:B})}\label{eq:D}\\
+x+x' & = y+y' && \qquad \text {by Axiom 1.}
+\end{alignat}
+Some text after to test the below-display spacing.
+
+\begin{verbatim}
+\begin{alignat}{2}
+x& =y && \qquad \text {by (\ref{eq:A})}\label{eq:C}\\
+x'& = y' && \qquad \text {by (\ref{eq:B})}\label{eq:D}\\
+x+x' & = y+y' && \qquad \text {by Axiom 1.}
+\end{alignat}
+\end{verbatim}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\newpage
+\setlength{\marginrulewidth}{0pt}
+
+\begin{thebibliography}{10}
+
+\bibitem{dihe:newdir}
+W.~Diffie and E.~Hellman, \emph{New directions in cryptography}, IEEE
+Transactions on Information Theory \textbf{22} (1976), no.~5, 644--654.
+
+\bibitem{fre:cichon}
+D.~H. Fremlin, \emph{Cichon's diagram}, 1983/1984, presented at the
+S{\'e}minaire Initiation {\`a} l'Analyse, G. Choquet, M. Rogalski, J.
+Saint Raymond, at the Universit{\'e} Pierre et Marie Curie, Paris, 23e
+ann{\'e}e.
+
+\bibitem{gouja:lagrmeth}
+I.~P. Goulden and D.~M. Jackson, \emph{The enumeration of directed
+closed {E}uler trails and directed {H}amiltonian circuits by
+{L}angrangian methods}, European J. Combin. \textbf{2} (1981), 131--212.
+
+\bibitem{hapa:graphenum}
+F.~Harary and E.~M. Palmer, \emph{Graphical enumeration}, Academic
+Press, 1973.
+
+\bibitem{imlelu:oneway}
+R.~Impagliazzo, L.~Levin, and M.~Luby, \emph{Pseudo-random generation
+from one-way functions}, Proc. 21st STOC (1989), ACM, New York,
+pp.~12--24.
+
+\bibitem{komiyo:unipfunc}
+M.~Kojima, S.~Mizuno, and A.~Yoshise, \emph{A new continuation method
+for complementarity problems with uniform p-functions}, Tech. Report
+B-194, Tokyo Inst. of Technology, Tokyo, 1987, Dept. of Information
+Sciences.
+
+\bibitem{komiyo:lincomp}
+\bysame, \emph{A polynomial-time algorithm for a class of linear
+complementarity problems}, Tech. Report B-193, Tokyo Inst. of
+Technology, Tokyo, 1987, Dept. of Information Sciences.
+
+\bibitem{liuchow:formalsum}
+C.~J. Liu and Yutze Chow, \emph{On operator and formal sum methods for
+graph enumeration problems}, SIAM J. Algorithms Discrete Methods
+\textbf{5} (1984), 384--438.
+
+\bibitem{mami:matrixth}
+M.~Marcus and H.~Minc, \emph{A survey of matrix theory and matrix
+inequalities}, Complementary Series in Math. \textbf{14} (1964), 21--48.
+
+\bibitem{miyoki:lincomp}
+S.~Mizuno, A.~Yoshise, and T.~Kikuchi, \emph{Practical polynomial time
+algorithms for linear complementarity problems}, Tech. Report~13, Tokyo
+Inst. of Technology, Tokyo, April 1988, Dept. of Industrial Engineering
+and Management.
+
+\bibitem{moad:quadpro}
+R.~D. Monteiro and I.~Adler, \emph{Interior path following primal-dual
+algorithms, part {II}: Quadratic programming}, August 1987, Working
+paper, Dept. of Industrial Engineering and Operations Research.
+
+\bibitem{ste:sint}
+E.~M. Stein, \emph{Singular integrals and differentiability properties
+of functions}, Princeton Univ. Press, Princeton, N.J., 1970.
+
+\bibitem{ye:intalg}
+Y.~Ye, \emph{Interior algorithms for linear, quadratic and linearly
+constrained convex programming}, Ph.D. thesis, Stanford Univ., Palo
+Alto, Calif., July 1987, Dept. of Engineering--Economic Systems,
+unpublished.
+
+\end{thebibliography}
+
+\end{document}
+\endinput
diff --git a/macros/latex/contrib/psnfssx/lucidabr/lucida-oneline-samples.tex b/macros/latex/contrib/psnfssx/lucidabr/lucida-oneline-samples.tex
new file mode 100644
index 0000000000..6dcb682a89
--- /dev/null
+++ b/macros/latex/contrib/psnfssx/lucidabr/lucida-oneline-samples.tex
@@ -0,0 +1,86 @@
+% lucida-oneline-samples.tex v1.0, 28 November 2005.
+% Copyright 2005 TeX Users Group.
+%
+% Unrestricted permission is granted to copy, modify, and/or extract
+% portions of this file.
+%
+% This is a documentation file for the lucidabr package, which creates
+% one-line samples of each font for use on the TUG Lucida web pages,
+% http://tug.org/lucida.
+%
+% (R) Lucida is a trademark of Bigelow \& Holmes Inc.\ registered in the
+% U.S. Patent \& Trademark Office and other jurisdictions.
+
+\documentclass{article}
+\usepackage{lucidabr}
+\usepackage[T1]{fontenc}
+\pagestyle{empty}
+\setlength\parindent{0pt}
+\newcommand*\smalldemo[3]{% #1=shortname, #2=font name, #3=font decl.
+ \par
+ {\fontsize{18}{21.5}#3%
+ \hbox{\hbox to 8pc{\hfil ABC\kern.5em xyz}\kern1.25em #2}%
+ \par
+ }%
+}
+\begin{document}
+
+\smalldemo{lbr}{LucidaBright}{\rmfamily}
+\smalldemo{lbi}{LucidaBright-Italic}{\itshape}
+\smalldemo{lbsl}{LucidaBright-Oblique}{\slshape}
+\smalldemo{lbd}{LucidaBright-Demi}{\bfseries}
+\smalldemo{lbdi}{LucidaBright-DemiItalic}{\bfseries\itshape}
+
+\vspace{\baselineskip}
+
+\smalldemo{lbrsc}{LucidaBrightSmallcaps}{\scshape}
+\smalldemo{lbdsc}{LucidaBrightSmallcaps-Demi}{\scshape\bfseries}
+
+\vspace{\baselineskip}
+
+\smalldemo{lstr}{LucidaSans-Typewriter}{\ttfamily}
+\smalldemo{lsto}{LucidaSans-TypewriterOblique}{\ttfamily\slshape}
+\smalldemo{lstb}{LucidaSans-TypewriterBold}{\ttfamily\bfseries}
+\smalldemo{lstbo}{LucidaSans-TypewriterBoldOblique}{\ttfamily\bfseries\slshape}
+
+
+\newpage
+
+\smalldemo{lsr}{LucidaSans}{\sffamily}
+\smalldemo{lsi}{LucidaSans-Italic}{\sffamily\itshape}
+\smalldemo{lsd}{LucidaSans-Demi}{\sffamily\bfseries}
+\smalldemo{lsdi}{LucidaSans-DemiItalic}{\sffamily\bfseries\itshape}
+\smalldemo{lsb}{LucidaSans-Bold}{\sffamily\fontseries{ub}\selectfont}
+\smalldemo{lsbi}{LucidaSans-BoldItalic}{\sffamily\itshape\fontseries{ub}\selectfont}
+
+\vspace{\baselineskip}
+
+\smalldemo{lbtr}{LucidaTypewriter}{\fontfamily{hlct}\selectfont}
+\smalldemo{lbto}{LucidaTypewriterOblique}{\fontfamily{hlct}\selectfont\slshape}
+\smalldemo{lbtb}{LucidaTypewriterBold}{\fontfamily{hlct}\selectfont\bfseries}
+\smalldemo{lbtbo}{LucidaTypewriterBoldOblique}{\fontfamily{hlct}\selectfont\bfseries\slshape}
+
+\vspace{\baselineskip}
+
+\smalldemo{lfr}{LucidaFax}{\fontfamily{hlx}\selectfont}
+\smalldemo{lfi}{LucidaFax-Italic}{\fontfamily{hlx}\selectfont\itshape}
+\smalldemo{lfd}{LucidaFax-Demi}{\fontfamily{hlx}\selectfont\bfseries}
+\smalldemo{lfdi}{LucidaFax-DemiItalic}{\fontfamily{hlx}\selectfont\bfseries\itshape}
+
+\vspace{\baselineskip}
+
+\smalldemo{lbl}{LucidaBlackletter}{\fontfamily{hlcf}\selectfont}
+\smalldemo{lbc}{LucidaCalligraphy-Italic}{\fontfamily{hlce}\selectfont}
+\smalldemo{lbh}{LucidaHandwriting-Italic}{\fontfamily{hlcw}\selectfont}
+
+\vspace{\baselineskip}
+
+\smalldemo{lbkr}{LucidaCasual}{\fontfamily{hlcn}\selectfont}
+\smalldemo{lbki}{LucidaCasual-Italic}{\fontfamily{hlcn}\selectfont\itshape}
+
+
+\newpage
+
+{\fontsize{44}{44}\fontseries{bf}\sffamily Lucida and \TeX}
+
+\end{document}
diff --git a/macros/latex/contrib/psnfssx/lucidabr/lucida-sample.pdf b/macros/latex/contrib/psnfssx/lucidabr/lucida-sample.pdf
new file mode 100644
index 0000000000..afed7e1c5b
--- /dev/null
+++ b/macros/latex/contrib/psnfssx/lucidabr/lucida-sample.pdf
Binary files differ
diff --git a/macros/latex/contrib/psnfssx/lucidabr/lucida-sample.tex b/macros/latex/contrib/psnfssx/lucidabr/lucida-sample.tex
new file mode 100644
index 0000000000..ec6911ade0
--- /dev/null
+++ b/macros/latex/contrib/psnfssx/lucidabr/lucida-sample.tex
@@ -0,0 +1,303 @@
+% Copyright 2005, 2006 TeX Users Group.
+%
+% Copying and distribution of this file, with or without modification,
+% are permitted in any medium, without royalty.
+
+\documentclass[11pt]{article}
+
+% we have to change the font encoding for Lucida.
+\usepackage[T1]{fontenc}
+\usepackage{textcomp} % to get the right copyright, etc.
+
+% use Lucida fonts for both text and math.
+\usepackage[altbullet]{lucidabr} % get larger bullet
+\DeclareEncodingSubset{TS1}{hlh}{1} % including \oldstylenums
+
+% other features we'll use.
+\usepackage{framed}
+\reversemarginpar
+\addtolength\marginparwidth{20pt}
+
+% live url's if pdf.
+\usepackage{ifpdf}
+\ifpdf
+ \usepackage[breaklinks,colorlinks,linkcolor=black,citecolor=black,
+ pagecolor=black,urlcolor=black]{hyperref}
+\else
+ \usepackage{url}
+\fi
+
+\newcommand*\pkg[1]{\textsf{#1}}
+\newcommand*\opt[1]{\texttt{#1}}
+\newcommand*\cs[1]{\texttt{\char`\\#1}}
+
+\pagestyle{headings}
+
+\newcommand\demotext{%
+ For \textsterling 45, almost anything can
+ be found floating in fields.
+% !`THE DAZED BROWN FOX QUICKLY GAVE 12345--67890 JUMPS!
+ --- ?`But aren't Kafka's Schlo\ss{} and
+ \AE sop's \OE uvres often na\"\i ve vis-\`a-vis the d\ae monic
+ ph\oe nix's official r\^ole in fluffy souffl\'es?}
+
+\newcommand*\demotextsc{\textsc{Sphinx of black quartz, judge my vow}.}
+
+\newcommand*\demotextosf{\oldstylenums{0123456789}.}
+
+\newcommand*\raggedmarginpar[1]{\marginpar{\raggedright\hspace{0pt}#1}}
+
+\newcommand*\demo[2]{%
+ \par\leavevmode\raggedmarginpar{#1}%
+ \begin{minipage}[t]{\linewidth}%
+ \normalfont#2\demotext
+ \end{minipage}%
+}
+
+\newcommand*\demosc[2]{%
+ \par\leavevmode\raggedmarginpar{#1}{\normalfont#2\demotext
+ \newline\demotextsc\par}%
+}
+\newcommand*\demoscosf[2]{%
+ \par\leavevmode\raggedmarginpar{#1}{\normalfont#2\demotext
+ \newline\demotextsc\space\demotextosf\par}%
+}
+\newcommand*\demoosf[2]{%
+ \par\leavevmode\raggedmarginpar{#1}{\normalfont#2\demotext
+ \newline\space\demotextosf\par}%
+}
+
+
+\title{Using the Lucida fonts with \LaTeX}
+\author{\TeX\ Users Group\\[2pt]\url{http://tug.org/lucida}}
+\begin{document}
+\maketitle
+
+
+\section{Introduction}
+
+{\def\thefootnote{}
+% article.cls uses 1.8em for the footnote indent.
+\footnotetext{\kern-1.8em \textregistered\ Lucida is a trademark of
+Bigelow \& Holmes Inc.\ registered in the U.S. Patent \& Trademark
+Office and other jurisdictions.}
+}
+
+This document contains examples of the Lucida fonts available through
+TUG. They are divided into two sets, \textit{basic} and
+\textit{complete}, as displayed in the following sections.
+
+For more information about Lucida and \TeX, and an order form for the
+fonts, please see \url{http://tug.org/lucida}.
+
+
+\section{\LaTeX\ macro support for Lucida}
+
+The Lucida support primarily consists of two packages: \pkg{lucidabr}
+and \pkg{lucbmath}. The former changes both running text and math to use
+Lucida, whereas the latter only changes the math font setup in case you
+want to use a different text font with the Lucida math fonts.
+
+You may already have the macro packages installed as they are part of
+most \TeX{} distributions---try running the example below.
+
+If it complains that \texttt{lucidabr.sty} is not found, you must
+install the package; it's available on CTAN in
+\url{http://www.ctan.org/tex-archive/macros/latex/contrib/psnfssx/lucidabr},
+and (of course) also included in the TUG distribution when you order the
+fonts.
+
+\subsection{Basic example}
+
+The packages do \emph{not} support \LaTeX's (and \TeX's) default
+encoding (OT1). Supported encodings are T1, LY1, and TS1 (partial).
+What this means is that you have to use the \pkg{fontenc} package to
+switch the default.
+
+Here's a small example:
+
+\begin{verbatim}
+\documentclass{article}
+\usepackage[T1]{fontenc}
+\usepackage{textcomp}
+\usepackage{lucidabr}
+\begin{document}
+Here's some text. And here's some math:
+\[
+ \phi(x)=\int_{-\infty}^{x} e^{-x^{2}/2}
+\]
+Euro and copyright symbols are available:
+\texteuro \textcopyright \textbullet.
+\end{document}
+\end{verbatim}
+This results in the following output:
+\begin{framed}
+Here's some text. And here's some math:
+\[
+ \phi(x)=\int_{-\infty}^{x} e^{-x^{2}/2}
+\]
+Euro, copyright, and bullet symbols are available:
+\texteuro \textcopyright \textbullet.
+\end{framed}
+
+\subsection{More details}
+
+If the example runs ok, but produces no output, try refreshing the
+``filename database'' (e.g., run \texttt{mktexlsr}). Also, of course,
+you must actually purchase the fonts! (All the metrics and support
+files are on CTAN, but not the \texttt{.pfb} files containing the actual
+outlines.)
+
+It's best to load the \pkg{textcomp} package with \pkg{lucidabr}, or
+some symbols, notably \cs{textcopyright}, will be synthesized instead of
+coming from the fonts. We don't load \pkg{textcomp} automatically,
+since loading such fundamental packages behind the scenes can cause
+hard-to-debug trouble.
+
+Furthermore, the default \cs{textbullet} is quite small; the more normal
+one above is generated by specifying the \opt{altbullet} option when
+loading \pkg{lucidabr}.
+
+By default, oldstyle figures from the \pkg{textcomp} package, accessed
+with the \verb|\oldstylenums| command, are disabled for the Lucida fonts
+since they do not exist in all shapes. In order for \verb|\oldstylenums|
+to work, you must add the line
+\begin{verbatim}
+\DeclareEncodingSubset{TS1}{hlh}{1}
+\end{verbatim}
+to your preamble \emph{after} loading the \pkg{textcomp} package. The
+font family \texttt{hlhj} provides the oldstyle figures by default but
+there exists no bold italic version of these figures and the italic
+versions are only available if you buy the complete font set.
+
+Now, let's take a more systematic look at the fonts.
+
+
+\section{The \textsf{basic} font set}
+
+The basic set of fonts contains all the math fonts (shown in the
+accompanying \texttt{lucida-amsmath} document), a set of text fonts with
+accompanying small caps, and a monospaced font for code examples. The
+idea is that this is sufficient for mathematical papers and typical text
+usage.
+
+The roman text font is Lucida Bright. It comes with small caps and
+oldstyle figures only in the upright shapes:
+
+\begin{quote}
+\demoscosf{LucidaBright}{}
+
+\demo{LucidaBright-Italic}{\itshape}
+
+\demo{LucidaBright-Oblique}{\slshape}
+
+\demoscosf{LucidaBright-Demi}{\bfseries}
+
+\demo{LucidaBright-DemiItalic}{\bfseries\itshape}
+\end{quote}
+
+\noindent The basic set also contains Lucida Sans Typewriter in various
+shapes and series:
+\begin{quote}
+\demo{LucidaSans-Typewriter}{\ttfamily\raggedright}
+
+\demo{LucidaSans-Typewriter Oblique}{\ttfamily\slshape\raggedright}
+
+\demo{LucidaSans-Typewriter Bold}{\ttfamily\bfseries\raggedright}
+
+\demo{LucidaSans-Typewriter BoldOblique}
+ {\ttfamily\bfseries\slshape\raggedright}
+\end{quote}
+
+\section{The \textsf{complete} font set}
+
+The complete font set includes (naturally) all the basic fonts, and
+assorted other text font variations, starting with the full sans serif
+variant, Lucida Sans:
+\begin{quote}
+\demo{LucidaSans}{\sffamily}
+
+\demo{LucidaSans-Italic}{\sffamily\itshape}
+
+\demo{LucidaSans-Demi}{\sffamily\bfseries}
+
+\demo{LucidaSans-DemiItalic}
+ {\sffamily\bfseries\itshape}
+\end{quote}
+
+LucidaSans also exists in an ultra bold version, which you have to select
+manually with \verb|\fontseries{ub}\selectfont|.
+\begin{quote}
+\demo{LucidaSans-Bold}{\sffamily\fontseries{ub}\selectfont}
+
+\demo{LucidaSans-BoldItalic}
+ {\sffamily\itshape\fontseries{ub}\selectfont}
+\end{quote}
+
+
+A second, seriffed, typewriter font is included as well. By default the
+\pkg{lucidabr} package chooses Lucida Sans Typewriter for typewriter but
+you can change that by giving the option \opt{seriftt}, as in:\\
+\verb|\usepackage[seriftt]{lucidabr}|
+
+\begin{quote}
+\demo{Lucida Typewriter}{\fontfamily{hlct}\selectfont\raggedright}
+
+\demo{Lucida Typewriter Oblique}
+ {\fontfamily{hlct}\selectfont\slshape\raggedright}
+
+\demo{Lucida Typewriter Bold}{\fontfamily{hlct}\selectfont\bfseries\raggedright}
+
+\demo{Lucida Typewriter BoldOblique}
+ {\fontfamily{hlct}\selectfont\slshape\bfseries\raggedright}
+\end{quote}
+
+Lucida Fax is a complete text font. By giving the option \opt{fax} to
+\pkg{lucidabr} this becomes the default roman font. There are no small
+caps or oldstyle figures for this font.
+\begin{quote}
+\demo{LucidaFax}{\fontfamily{hlx}\selectfont}
+
+\demo{LucidaFax-Italic}
+ {\fontfamily{hlx}\selectfont\itshape}
+
+\demo{LucidaFax-Bold}{\fontfamily{hlx}\selectfont\bfseries}
+
+\demo{LucidaFax-BoldItalic}
+ {\fontfamily{hlx}\selectfont\itshape\bfseries}
+\end{quote}
+
+Lucida Casual exists in two versions only: medium upright and
+medium italic. You can still make it the default text font by giving the
+option \opt{casual} to \pkg{lucidabr}.
+\begin{quote}
+\demo{LucidaCasual}{\fontfamily{hlcn}\selectfont}
+
+\demo{LucidaCasual-Italic}
+ {\fontfamily{hlcn}\selectfont\itshape}
+\end{quote}
+
+
+Finally, three more esoteric fonts are included. Lucida Calligraphy
+contains italic oldstyle figures, which are used if available when
+selecting \verb|\oldstylenums| for Lucida Bright. If you choose the
+option \opt{calligraphic} for \pkg{lucidabr}, Lucida Calligraphy will be
+the default roman font. A similar option \opt{handwriting} makes Lucida
+Handwriting the default roman font.
+
+\begin{quote}
+\demo{LucidaCalligraphy-Italic}
+ {\fontfamily{hlce}\selectfont}
+
+\demo{LucidaHandwriting-Italic}
+ {\fontfamily{hlcw}\selectfont}
+
+\demo{Lucida Blackletter}
+ {\fontfamily{hlcf}\selectfont}
+\end{quote}
+
+This is all the Lucida fonts available with \TeX\ support. For more
+information about Lucida and \TeX, and an order form for the fonts,
+please see \url{http://tug.org/lucida}, and thanks.
+
+\end{document}
diff --git a/macros/latex/contrib/psnfssx/lucidabr/lucidabr.dtx b/macros/latex/contrib/psnfssx/lucidabr/lucidabr.dtx
new file mode 100644
index 0000000000..c74ab27abb
--- /dev/null
+++ b/macros/latex/contrib/psnfssx/lucidabr/lucidabr.dtx
@@ -0,0 +1,1323 @@
+% \iffalse
+% lucidabr.dtx - principal LaTeX support for the Lucida typeface family.
+%% Copyright 1995, 1996 Sebastian Rahtz
+%% Copyright 1997, 1998 Sebastian Rahtz, David Carlisle
+%% Copyright 2005 TeX Users Group
+%%
+%% This file is part of the lucidabr package.
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2003/12/01 or later.
+%%
+%% This work has the LPPL maintenance status "maintained".
+%%
+%% The Current Maintainer of this work is the TeX Users Group
+%% (http://tug.org/lucida).
+%%
+%% The list of all files belonging to the lucidabr package is
+%% given in the file `manifest.txt'.
+%%
+%% 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.
+%%
+%<*dtx>
+ \ProvidesFile{lucidabr.dtx}
+%</dtx>
+%<package>\NeedsTeXFormat{LaTeX2e}
+%<lucidabright>\ProvidesPackage{lucidabr}
+%<lucidbrb>\ProvidesPackage{lucidbrb}
+%<lucidbry>\ProvidesPackage{lucidbry}
+%<lucbmath&!lucidabright&!luctim>\ProvidesPackage{lucbmath}
+%<lucmtime>\ProvidesPackage{lucmtime}
+%<luctime>\ProvidesPackage{luctime}
+%<lucmin>\ProvidesPackage{lucmin}
+%<lucid>\ProvidesPackage{lucid}
+%<lucfont>\ProvidesFile{lucfont.tex}
+%<driver>\ProvidesFile{lucida.drv}
+% \fi
+% \ProvidesFile{lucidabr.dtx}
+ [2005/11/29 v4.3 %
+%<lucidabright> Lucida Bright +
+%<lucidbrb> Lucida Bright (Compatibility, KB Names)
+%<lucidbry> Lucida Bright (Compatibility, Y&Y Names)
+%<lucbmath> Lucida New Math + Lucida Expert
+%<luctime> + Adobe Times
+%<lucmtime> + Monotype Times
+%<lucmin> + Minion
+%<lucfont> Lucida Bright text font test
+ (SPQR/DPC/TUG)]
+% \iffalse
+%<*driver>
+\documentclass{ltxdoc}
+\usepackage[set]{longtable}% `set' in case an old copy of the package
+\begin{document}
+\DocInput{lucidabr.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{2079}
+%
+% \GetFileInfo{lucidabr.dtx}
+%
+% \title{The \textsf{lucidabr} package\thanks{This file
+% has version number \fileversion, last
+% revised \filedate.\newline
+% \textregistered\ Lucida is a trademark of Bigelow \& Holmes Inc.\
+% registered in the U.S. Patent \& Trademark Office and other jurisdictions.}}
+% \author{Sebastian Rahtz, David Carlisle,
+% \\\TeX\ Users Group (\texttt{lucida@tug.org})}
+% \date{\filedate}
+%
+% \changes{v4.06}{1997/09/01}
+% {Remove use of double quote hex convention}
+% \changes{v4.10}{1998/01/19}
+% {(Lutz Haseloff) missing brace in provides package for lucbmath}
+% \changes{v4.11}{2005/11/25}
+% {(Karl Berry) documentation update for TUG distribution}
+%
+% \maketitle
+%
+% \section{Introduction}
+% This file contains \LaTeXe\ package files needed to use
+% Lucida Bright fonts, and \texttt{.fd} files for the fonts as named
+% with the Berry naming scheme. It is accompanied on CTAN by the metric
+% and other support files. The actual outline fonts need to be
+% purchased from the \TeX\ Users Group (\texttt{http://tug.org/lucida})
+% or another source.
+%
+% TUG is now the maintainer of this \texttt{lucidabr} \LaTeX\ support
+% package (many thanks to Morten H\o gholm), which is separate from the
+% \texttt{lucida} package containing the basic font metric files (many
+% thanks to Walter Schmidt).
+%
+% The \texttt{lucida-sample.tex} file in the distribution describes
+% basic usage of the fonts and this package, and gives examples of all
+% the fonts.
+%
+% The Lucida Bright font families:
+%
+% Note that the `demi bold' Lucida fonts are classed as `b' (bold)
+% in \LaTeX. The only `bold' font in the Lucida collection is
+% the bold sans serif font, which is classed as `ub' (ultra bold).
+%
+% \begin{longtable}{llll}
+% \multicolumn{2}{c}{Font File Name}&
+% \multicolumn{1}{c}{Font Name}
+% &\multicolumn{1}{c}{\LaTeX}\\
+% Standard & Original & & \\
+% \hline\hline
+% \endhead
+% hlxb8a & lfd & LucidaFax-Demi & hlx/b/n\\
+% hlxbi8a & lfdi & LucidaFax-DemiItalic & hlx/b/it\\
+% hlxr8a & lfr & LucidaFax & hlx/m/n\\
+% hlxri8a & lfi & LucidaFax-Italic & hlx/m/it\\[5pt]
+%
+% hlhb8a & lbd & LucidaBright-Demi & hlh/b/n\\
+% hlhbi8a & lbdi & LucidaBright-DemiItalic & hlh/b/it\\
+% hlhr8a & lbr & LucidaBright & hlh/m/n\\
+% hlhri8a & lbi & LucidaBright-Italic & hlh/m/it\\
+% hlhro8a & lbsl & LucidaBrightSlanted & hlh/m/sl\\
+% hlhrc8a & lbrsc & LucidaBrightSmallcaps & hlh/m/sc\\
+% hlhbc8a & lbdsc & LucidaBrightSmallcaps-Demi & hlh/b/sc\\[5pt]
+%
+% hlsbi8a & lsdi & LucidaSans-DemiItalic & hls/b/it\\
+% hlsb8a & lsd & LucidaSans-Demi & hls/b/n\\
+% hlsri8a & lsi & LucidaSans-Italic & hls/m/it\\
+% hlsr8a & lsr & LucidaSans & hls/m/n\\
+% hlsu8a & lsb & LucidaSans-Bold & hls/ub/n\\
+% hlsui8a & lsbi & LucidaSans-BoldItalic & hls/ub/it\\[5pt]
+%
+% hlcrf8a & lbl & LucidaBlackletter & hlcf/m/n\\[5pt]
+%
+% hlcriw8a & lbh & LucidaHandwriting-Italic & hlcw/m/n\\[5pt]
+%
+% hlcrie8a & lbc & LucidaCalligraphy-Italic & hlce/m/it\\[5pt]
+%
+% hlcrn8a & lbkr & LucidaCasual & hlcn/m/n\\*
+% hlcrin8a & lbki & LucidaCasual-Italic & hlcn/m/it\\[5pt]
+%
+% hlsrt8a & lstr & LucidaSans-Typewriter & hlst/m/n\\
+% hlsrot8a & lsto & LucidaSans-TypewriterOblique & hlst/m/sl\\
+% hlsbot8a & lstbo & LucidaSans-TypewriterBoldOblique & hlst/b/sl\\
+% hlsbt8a & lstb & LucidaSans-TypewriterBold & hlst/b/n\\[5pt]
+%
+% hlcrt8a & lbtr & LucidaTypewriter & hlct/m/n\\
+% hlcbt8a & lbtb & LucidaTypewriterBold & hlct/b/n\\
+% hlcrot8a & lbto & LucidaTypewriterOblique & hlct/m/sl\\
+% hlcbot8a & lbtbo & LucidaTypewriterBoldOblique & hlct/b/sl\\[5pt]
+%
+% hlcra & lbma & LucidaNewMath-Arrows & hlcm/m/n\\
+% hlcba & lbmad & LucidaNewMath-Arrows-Demi & hlcm/b/n\\
+% hlcrv & lbme & LucidaNewMath-Extension & hlcv/m/n\\
+% hlcry & lbms & LucidaNewMath-Symbol & hlcy/m/n\\
+% hlcdy & lbmsd & LucidaNewMath-Symbol-Demi & hlcy/b/n\\
+% hlcrim & lbmi & LucidaNewMath-Italic & hlcm/m/itx\\
+% hlcrima & lbmo & LucidaNewMath-AltItalic & hlcm/m/it\\
+% hlcdim & lbmdi & LucidaNewMath-DemiItalic & hlcm/b/itx\\
+% hlcdima & lbmdo & LucidaNewMath-AltDemiItalic & hlcm/b/it\\
+% hlcrm & lbmr & LucidaNewMath-Roman & hlcm/m/n\\
+% hlcdm & lbmd & LucidaNewMath-Demibold & hlcm/b/n\\
+% \hline
+% \end{longtable}
+%
+% \StopEventually{}
+%
+% \section{Packages}
+%
+%
+% \subsection{Lucmtime Package}
+% Adobe Times with Lucida Math.
+% \begin{macrocode}
+%<*luctime>
+\def\rmdefault{ptm}
+\def\sfdefault{cmss}
+\def\ttdefault{cmtt}
+\def\Mathdefault{ptmluc}
+\DeclareSymbolFont{letters}{OML}{ptmluc}{m}{it}
+\DeclareSymbolFont{operators}{OT1}{ptm}{m}{n}
+\SetSymbolFont{letters}{normal}{OML}{ptmluc}{m}{it}
+\SetSymbolFont{letters}{bold}{OML}{ptmluc}{b}{it}
+\SetSymbolFont{operators}{bold}{OT1}{ptm}{b}{n}
+\SetSymbolFont{operators}{normal}{OT1}{ptm}{m}{n}
+%</luctime>
+% \end{macrocode}
+% Monotype Times with Lucida Math.
+% \begin{macrocode}
+%<*lucmtime>
+\def\rmdefault{mntx}
+\def\sfdefault{cmss}
+\def\ttdefault{cmtt}
+\def\Mathdefault{mntluc}
+\DeclareSymbolFont{letters}{OML}{mntluc}{m}{it}
+\DeclareSymbolFont{operators}{OT1}{mntx}{m}{n}
+\SetSymbolFont{letters}{normal}{OML}{mntluc}{m}{it}
+\SetSymbolFont{letters}{bold}{OML}{mntluc}{b}{it}
+\SetSymbolFont{operators}{bold}{OT1}{mntx}{b}{n}
+\SetSymbolFont{operators}{normal}{OT1}{mntx}{m}{n}
+%</lucmtime>
+% \end{macrocode}
+%
+% \subsection{Lucmin Package}
+% Adobe Minion with Lucida Math.
+% \begin{macrocode}
+%<*lucmin>
+\def\rmdefault{zmn}
+\def\sfdefault{zmy}
+\def\ttdefault{hlct}
+\renewcommand{\bfdefault}{b}
+\def\Mathdefault{zmnluc}
+\DeclareSymbolFont{letters}{OML}{zmnluc}{m}{it}
+\DeclareSymbolFont{operators}{OT1}{zmn}{m}{n}
+\SetSymbolFont{letters}{normal}{OML}{zmnluc}{m}{it}
+\SetSymbolFont{letters}{bold}{OML}{zmnluc}{b}{it}
+\SetSymbolFont{operators}{bold}{OT1}{zmn}{b}{n}
+\SetSymbolFont{operators}{normal}{OT1}{zmn}{m}{n}
+%</lucmin>
+% \end{macrocode}
+%
+% \subsection{Lucidbrb and lucidbry Packages}
+% Compatibility with earlier releases.
+% \changes{v4.10}{1998/01/19}
+% {(Berthold Horn) add option handling to compatibility packages}
+% \begin{macrocode}
+%<*lucidbrb>
+\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{lucidabr}}
+\ProcessOptions
+\RequirePackage[expert,vargreek]{lucidabr}
+%</lucidbrb>
+%<*lucidbry>
+\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{lucidabr}}
+\ProcessOptions
+\RequirePackage[LY1]{fontenc}
+\RequirePackage[expert,vargreek]{lucidabr}
+%</lucidbry>
+% \end{macrocode}
+%
+% \subsection{Lucidbr and lucbmath Packages}
+% Set text and math with Lucida Bright fonts.
+% (Lucbmath package only sets the math fonts.)
+% \begin{macrocode}
+%<*lucidabright|lucbmath>
+\newif\iflucida@expert
+\DeclareOption{expert}{\lucida@experttrue}
+\DeclareOption{noexpert}{\lucida@expertfalse}
+% \end{macrocode}
+% Set up the variant text and math sizes which Y\&Y
+% suggest for Lucida. The figures for these two
+% options actually come from Frank Mittelbach (oh great one).
+%
+% The default is to scale, but two options allow you to
+% revert to normal behaviour, or get even smaller.
+% \begin{macrocode}
+\DeclareOption{nolucidascale}{%
+ \def\DeclareLucidaFontShape#1#2#3#4#5#6{%
+ \DeclareFontShape{#1}{#2}{#3}{#4}{<->#5}{#6}}}
+\DeclareOption{lucidascale}{%
+ \def\DeclareLucidaFontShape#1#2#3#4#5#6{%
+ \DeclareFontShape{#1}{#2}{#3}{#4}{%
+ <-5.5>s*[1.04]#5%
+ <5.5-6.5>s*[1.02]#5%
+ <6.5-7.5>s*[.99]#5%
+ <7.5-8.5>s*[.97]#5%
+ <8.5-9.5>s*[.96]#5%
+ <9.5-10.5>s*[.95]#5%
+ <10.5-11.5>s*[.94]#5%
+ <11.5-13>s*[.93]#5%
+ <13-15.5>s*[.92]#5%
+ <15.5-18.5>s*[.91]#5%
+ <18.5-22.5>s*[.9]#5%
+ <22.5->s*[.89]#5%
+ }{#6}}}
+\DeclareOption{lucidasmallscale}{%
+ \def\DeclareLucidaFontShape#1#2#3#4#5#6{%
+ \DeclareFontShape{#1}{#2}{#3}{#4}{%
+ <-5.5>s*[.98]#5%
+ <5.5-6.5>s*[.96]#5%
+ <6.5-7.5>s*[.94]#5%
+ <7.5-8.5>s*[.92]#5%
+ <8.5-9.5>s*[.91]#5%
+ <9.5-10.5>s*[.9]#5%
+ <10.5-11.5>s*[.89]#5%
+ <11.5-13>s*[.88]#5%
+ <13-15.5>s*[.87]#5%
+ <15.5-18.5>s*[.86]#5%
+ <18.5-22.5>s*[.85]#5%
+ <22.5->s*[.84]#5%
+ }{#6}}}
+% \end{macrocode}
+%
+% Choose style of letters. Italic3 is not really italic at all,
+% more a roman font with math spacing. Italic2 is not really
+% slanted but a different style of italic, so use an `itx' shape.
+% \begin{macrocode}
+\DeclareOption{mathitalic1}{\def\letters@shape{it}}
+\DeclareOption{mathitalic2}{\def\letters@shape{itx}}
+\DeclareOption{mathitalic3}{\def\letters@shape{n}}
+% \end{macrocode}
+%
+% Choose between slanted and upright lowercase Greek.
+% \begin{macrocode}
+\DeclareOption{slantedgreek}{\def\lcgreek@alphabet{letters}}
+\DeclareOption{uprightgreek}{\def\lcgreek@alphabet{mathupright}}
+% \end{macrocode}
+%
+% Enable use of |\upalpha| and |\varGamma|.
+% \begin{macrocode}
+\DeclareOption{vargreek}{\let\upalpha\relax\let\varGamma\relax}
+% \end{macrocode}
+%
+% Stop the AMS symbol names being declared.
+% \begin{macrocode}
+\DeclareOption{noamssymbols}{\let\blacksquare\endinput}
+% \end{macrocode}
+%
+% Set up the text encoding used in the operators font.
+% \changes{v4.05}{1997/04/17}
+% {use \cs{edef} not \cs{let} to get rid of \cs{long}. psnfss/2441}
+% \begin{macrocode}
+\edef\operator@encoding{\encodingdefault}
+\DeclareOption{OT1}{\def\operator@encoding{OT1}}
+\DeclareOption{T1}{\def\operator@encoding{T1}}
+\DeclareOption{LY1}{\def\operator@encoding{LY1}}
+% \end{macrocode}
+%
+% Set up the text encodings (not in the \textsf{lucmath} package).
+% \begin{macrocode}
+%<*lucidabright>
+\renewcommand{\rmdefault}{hlh}
+\renewcommand{\sfdefault}{hls}
+\renewcommand{\ttdefault}{hlst}
+\renewcommand{\bfdefault}{b}
+\DeclareOption{seriftt}{\def\ttdefault{hlct}}
+\DeclareOption{fax}{\def\rmdefault{hlx}}
+\DeclareOption{casual}{\def\rmdefault{hlcn}}
+\DeclareOption{calligraphic}{%
+ \normalfont
+ \DeclareFontShape\encodingdefault\rmdefault{m}{it}%
+ {<->ssub*hlce/m/it}{}}
+\DeclareOption{handwriting}{%
+ \normalfont
+ \DeclareFontShape\encodingdefault\rmdefault{m}{it}%
+ {<->ssub*hlcw/m/it}{}%
+ \DeclareFontShape\encodingdefault\rmdefault{b}{it}%
+ {<->ssub*hlcw/m/it}{}}
+% \end{macrocode}
+% The bullet in the lucida text fonts is rather small.
+% Some people may prefer this option, to use a larger one
+% from the math fonts.
+% \changes{v4.10}{1998/01/19}
+% {(Berthold Horn) add altbullet option for larger bullet}
+% \begin{macrocode}
+\DeclareOption{altbullet}{%
+ \normalfont
+ \DeclareTextCommand
+ \textbullet\encodingdefault{\UseTextSymbol{OMS}\textbullet}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</lucidabright>
+% \end{macrocode}
+%
+% \changes{v4.04}{1997/03/12}
+% {Add font tracing options copied from mathtime}
+%
+% This package makes a lot of redefinitions. The warnings can be rather
+% annoying so some package options control whether the information
+% is printed to the terminal or log file. More control can be obtained
+% by loading the \textsf{tracefnt} package.
+%
+% Just show font errors; Warning and info to the log file.
+% The default for this package.
+% \begin{macrocode}
+\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}}}
+% \end{macrocode}
+%
+% The normal \LaTeX\ default, Font Info to the log file and Font
+% Warning to the terminal.
+% \begin{macrocode}
+\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}}}
+% \end{macrocode}
+%
+% On some machines writing all the log info may slow things down
+% so extra option not to log font changes at all.
+% \begin{macrocode}
+\DeclareOption{nofontinfo}{%
+ \let\@font@info\@gobble
+ \let\@font@warning\@gobble}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\ExecuteOptions{noexpert,lucidascale,slantedgreek,mathitalic1,errorshow}
+\ProcessOptions
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</lucidabright|lucbmath>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*lucbmath>
+% \end{macrocode}
+% New encoding scheme for Math Arrows font
+% \begin{macrocode}
+ \DeclareFontEncoding{LMR}{}{}
+ \DeclareFontSubstitution{LMR}{hlcm}{m}{n}
+%<!luctim> \DeclareSymbolFont{letters}{OML}{hlcm}{m}{\letters@shape}
+\iflucida@expert
+ \DeclareSymbolFont{mathupright}{OML}{hlcm}{m}{n}
+\fi
+ \DeclareSymbolFont{symbols}{OMS}{hlcy}{m}{n}
+ \DeclareSymbolFont{largesymbols}{OMX}{hlcv}{m}{n}
+% \end{macrocode}
+% The new Expert set for bold math
+% \begin{macrocode}
+\iflucida@expert
+%<!luctim> \SetSymbolFont{letters}{bold}{OML}{hlcm}{b}{\letters@shape}
+ \SetSymbolFont{mathupright}{bold}{OML}{hlcm}{b}{n}
+ \SetSymbolFont{symbols}{bold}{OMS}{hlcy}{b}{n}
+\fi
+% \end{macrocode}
+%
+% \begin{macrocode}
+% \DeclareSymbolFont{italics}{\encodingdefault}{\rmdefault}{m}{it}
+ \DeclareSymbolFont{arrows}{LMR}{hlcm}{m}{n}
+\iflucida@expert
+% \DeclareSymbolFont{boldarrows}{LMR}{hlcm}{b}{n}
+ \SetSymbolFont{arrows}{bold}{LMR}{hlcm}{b}{n}
+\fi
+%</lucbmath>
+%<*lucbmath>
+%<*!luctim>
+\DeclareSymbolFont{operators}{\operator@encoding}{\rmdefault}{m}{n}
+\SetSymbolFont{operators}{bold}{\operator@encoding}{\rmdefault}{b}{n}
+\SetSymbolFont{operators}{normal}{\operator@encoding}{\rmdefault}{m}{n}
+% \end{macrocode}
+%
+% Explicitly redeclare all the alphabets just in case, but differentiate
+% between pure Lucida, and the Times mixture, since those have genuine
+% OT1 mimics.
+% \begin{macrocode}
+\DeclareMathAlphabet\mathbf \operator@encoding{\rmdefault}{b}{n}
+\DeclareMathAlphabet\mathrm \operator@encoding{\rmdefault}{m}{n}
+\DeclareMathAlphabet\mathsf \operator@encoding{\sfdefault}{m}{n}
+\DeclareMathAlphabet\mathit \operator@encoding{\rmdefault}{m}{it}
+\DeclareMathAlphabet\mathtt \operator@encoding{\ttdefault}{m}{n}
+\DeclareMathAlphabet\mathfrak\operator@encoding{hlcf}{m}{n}
+\SetMathAlphabet{\mathbf}{bold}{\operator@encoding}{\rmdefault}{b}{n}
+\SetMathAlphabet{\mathsf}{bold}{\operator@encoding}{\sfdefault}{b}{n}
+\SetMathAlphabet{\mathrm}{bold}{\operator@encoding}{\rmdefault}{b}{n}
+\SetMathAlphabet{\mathit}{bold}{\operator@encoding}{\rmdefault}{b}{it}
+\SetMathAlphabet{\mathtt}{bold}{\operator@encoding}{\ttdefault}{b}{n}
+%</!luctim>
+%<*luctim>
+\DeclareMathAlphabet {\mathbf}{OT1}{\Mathdefault}{b}{n}
+\DeclareMathAlphabet {\mathrm}{OT1}{\Mathdefault}{m}{n}
+\DeclareMathAlphabet {\mathsf}{OT1}{\sfdefault}{m}{n}
+\DeclareMathAlphabet {\mathit}{OT1}{\Mathdefault}{m}{it}
+\DeclareMathAlphabet {\mathtt}{OT1}{\ttdefault}{m}{n}
+\SetMathAlphabet{\mathbf}{bold}{OT1}{\Mathdefault}{b}{n}
+\SetMathAlphabet{\mathsf}{bold}{OT1}{\sfdefault}{b}{n}
+\SetMathAlphabet{\mathrm}{bold}{OT1}{\Mathdefault}{b}{n}
+\SetMathAlphabet{\mathit}{bold}{OT1}{\Mathdefault}{b}{it}
+\SetMathAlphabet{\mathtt}{bold}{OT1}{\ttdefault}{b}{n}
+%</luctim>
+\DeclareSymbolFontAlphabet{\mathbb}{arrows}
+\DeclareSymbolFontAlphabet{\mathscr}{symbols}
+\iflucida@expert
+ \DeclareSymbolFontAlphabet{\mathup}{mathupright}
+\fi
+ \DeclareMathAccent\vec {\mathord}{letters}{126}
+% \end{macrocode}
+%
+% Symbols taken from the operators font. Need to be careful
+% here as different encodings may have been used.
+%
+% First check that the AMS have not been redefining |\colon|.
+% If it does not have this original plain \TeX\ definition,
+% don't redefine it below.
+% \changes{v4.07}{1997/10/11}
+% {Clear \cs{@tempb}}
+% \begin{macrocode}
+\let\@tempb\@undefined
+\DeclareMathSymbol{\@tempb}{\mathpunct}{operators}{58}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\@tempa{T1}
+\ifx\operator@encoding\@tempa
+ \DeclareMathSymbol{!}{\mathclose}{operators}{33}
+ \DeclareMathSymbol{:}{\mathrel}{operators}{58}
+ \DeclareMathSymbol{;}{\mathpunct}{operators}{59}
+ \DeclareMathSymbol{?}{\mathclose}{operators}{63}
+ \ifx\colon\@tempb
+ \DeclareMathSymbol{\colon}{\mathpunct}{operators}{58}
+ \fi
+ \DeclareMathAccent{\acute}{\mathalpha}{operators}{1}
+ \DeclareMathAccent{\grave}{\mathalpha}{operators}{0}
+ \DeclareMathAccent{\ddot}{\mathalpha}{operators}{4}
+ \DeclareMathAccent{\tilde}{\mathalpha}{operators}{3}
+ \DeclareMathAccent{\bar}{\mathalpha}{operators}{9}
+ \DeclareMathAccent{\breve}{\mathalpha}{operators}{8}
+ \DeclareMathAccent{\check}{\mathalpha}{operators}{7}
+ \DeclareMathAccent{\hat}{\mathalpha}{operators}{2}
+ \DeclareMathAccent{\dot}{\mathalpha}{operators}{10}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\else
+\def\@tempa{OT1}
+\ifx\operator@encoding\@tempa
+ \DeclareMathSymbol{!}{\mathclose}{operators}{33}
+ \DeclareMathSymbol{:}{\mathrel}{operators}{58}
+ \DeclareMathSymbol{;}{\mathpunct}{operators}{59}
+ \DeclareMathSymbol{?}{\mathclose}{operators}{63}
+ \ifx\colon\@tempb
+ \DeclareMathSymbol{\colon}{\mathpunct}{operators}{58}
+ \fi
+ \DeclareMathAccent{\acute}{\mathalpha}{operators}{19}
+ \DeclareMathAccent{\grave}{\mathalpha}{operators}{18}
+ \DeclareMathAccent{\ddot}{\mathalpha}{operators}{127}
+ \DeclareMathAccent{\tilde}{\mathalpha}{operators}{126}
+ \DeclareMathAccent{\bar}{\mathalpha}{operators}{22}
+ \DeclareMathAccent{\breve}{\mathalpha}{operators}{21}
+ \DeclareMathAccent{\check}{\mathalpha}{operators}{20}
+ \DeclareMathAccent{\hat}{\mathalpha}{operators}{94}
+ \DeclareMathAccent{\dot}{\mathalpha}{operators}{95}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\else
+\def\@tempa{LY1}
+\ifx\operator@encoding\@tempa
+ \DeclareMathSymbol{!}{\mathclose}{operators}{33}
+ \DeclareMathSymbol{:}{\mathrel}{operators}{58}
+ \DeclareMathSymbol{;}{\mathpunct}{operators}{59}
+ \DeclareMathSymbol{?}{\mathclose}{operators}{63}
+ \ifx\colon\@tempb
+ \DeclareMathSymbol{\colon}{\mathpunct}{operators}{58}
+ \fi
+ \DeclareMathAccent{\acute}{\mathalpha}{operators}{19}
+ \DeclareMathAccent{\grave}{\mathalpha}{operators}{18}
+ \DeclareMathAccent{\ddot}{\mathalpha}{operators}{127}
+ \DeclareMathAccent{\tilde}{\mathalpha}{operators}{126}
+ \DeclareMathAccent{\bar}{\mathalpha}{operators}{22}
+ \DeclareMathAccent{\breve}{\mathalpha}{operators}{21}
+ \DeclareMathAccent{\check}{\mathalpha}{operators}{20}
+ \DeclareMathAccent{\hat}{\mathalpha}{operators}{94}
+ \DeclareMathAccent{\vec}{\mathord}{letters}{126}
+ \DeclareMathAccent{\dot}{\mathalpha}{operators}{5}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\else
+ \PackageWarningNoLine{lucidabr}
+ {Unknown Operator Encoding!\MessageBreak
+ Math accents may be wrong: assuming OT1 positions}
+\fi\fi\fi
+% \end{macrocode}
+%
+%
+% This section derives mostly from Berthold Horn's files
+% |lcdmacro.tex| and |amssymblb.tex|
+% \copyright 1991, 1992 Y\&Y. All Rights Reserved
+% Original from Version 1.2, 1992 June 14; updated \emph{ad hoc}.
+% \begin{macrocode}
+\@ifpackageloaded{amsmath}{%
+% \end{macrocode}
+% (From M J Downes): it's possible the factors 1.5, 2, 2.5, 3, 3.5
+% should be adjusted
+% for Lucida fonts. But that has to be determined by looking at
+% printed tests which I cannot do at the moment. [mjd,24-Jun-1993]
+% \begin{macrocode}
+ \def\biggg{\bBigg@\thr@@}
+ \def\Biggg{\bBigg@{3.5}}
+}{%
+ \def\big#1{{\hbox{$\left#1\vbox to8.20\p@{}\right.\n@space$}}}
+ \def\Big#1{{\hbox{$\left#1\vbox to10.80\p@{}\right.\n@space$}}}
+ \def\bigg#1{{\hbox{$\left#1\vbox to13.42\p@{}\right.\n@space$}}}
+ \def\Bigg#1{{\hbox{$\left#1\vbox to16.03\p@{}\right.\n@space$}}}
+ \def\biggg#1{{\hbox{$\left#1\vbox to17.72\p@{}\right.\n@space$}}}
+ \def\Biggg#1{{\hbox{$\left#1\vbox to21.25\p@{}\right.\n@space$}}}
+ \def\n@space{\nulldelimiterspace\z@ \m@th}
+}
+% \end{macrocode}
+% Define some extra large sizes --- always done using extensible parts
+% \begin{macrocode}
+\def\bigggl{\mathopen\biggg}
+\def\bigggr{\mathclose\biggg}
+\def\Bigggl{\mathopen\Biggg}
+\def\Bigggr{\mathclose\Biggg}
+% \end{macrocode}
+% Following is only really needed if the roman text font is not
+% LucidaBright.
+% Draw the small sizes of `[' and `]' from math italic instead of
+% roman font
+% \begin{macrocode}
+\DeclareMathSymbol{[}{\mathopen} {letters}{134}
+\DeclareMathDelimiter{[}{letters}{134}{largesymbols}{2}
+\DeclareMathSymbol{]}{\mathclose}{letters}{135}
+\DeclareMathDelimiter{]}{letters}{135}{largesymbols}{3}
+% \end{macrocode}
+% Draw the small sizes of `(' and `)' from math italic instead
+% of roman font
+% \begin{macrocode}
+\DeclareMathSymbol{(}{\mathopen} {letters}{132}
+\DeclareMathDelimiter{(}{letters}{132}{largesymbols}{0}
+\DeclareMathSymbol{)}{\mathclose}{letters}{133}
+\DeclareMathDelimiter{)}{letters}{133}{largesymbols}{1}
+% \end{macrocode}
+% Draw `=' and `+' from symbol font instead of roman
+% \begin{macrocode}
+\DeclareMathSymbol{=}{\mathrel} {symbols}{131}
+\DeclareMathSymbol{+}{\mathbin} {symbols}{130}
+% \end{macrocode}
+% Draw small `/' from math italic instead of roman font
+% \begin{macrocode}
+\DeclareMathSymbol{/}{\mathord} {letters}{61}
+\DeclareMathDelimiter{/}{letters}{61}{largesymbols}{14}
+% \end{macrocode}
+% Make open face brackets accessible, i.e. [[ and ]]
+% \begin{macrocode}
+\DeclareMathDelimiter{\ldbrack}
+ {\mathopen}{letters}{130}{largesymbols}{130}
+\DeclareMathDelimiter{\rdbrack}
+ {\mathclose}{letters}{131}{largesymbols}{131}
+% \end{macrocode}
+% Provide access to surface integral signs
+% (linked from text to display size)
+% \begin{macrocode}
+\DeclareMathSymbol{\surfintop}{\mathop}{largesymbols}{144}
+\def\surfint{\surfintop\nolimits}
+% \end{macrocode}
+% Make medium size integrals available (NOT linked to display size)
+% \begin{macrocode}
+\DeclareMathSymbol{\midintop}{\mathop}{largesymbols}{146}
+\def\midint{\midintop\nolimits}
+\DeclareMathSymbol{\midointop}{\mathop}{largesymbols}{147}
+\def\midoint{\midointop\nolimits}
+\DeclareMathSymbol{\midsurfintop}{\mathop}{largesymbols}{148}
+\def\midsurfint{\midsurfintop\nolimits}
+% \end{macrocode}
+% Extensible integral
+% (use with |\bigg|, |\Bigg|, |\biggg|, |\Biggg| etc)
+% \begin{macrocode}
+\DeclareMathDelimiter{\largeint}
+ {\mathop}{largesymbols}{90}{largesymbols}{149}
+% \end{macrocode}
+% To close up gaps in special math characters constructed from pieces
+% \begin{macrocode}
+\def\joinrel{\mathrel{\mkern-4mu}} % \def\joinrel{\mathrel{\mkern-3mu}}
+% \end{macrocode}
+% The |\mkern-2.5mu| undoes the bogus `italic correction'
+% after joiners in LBMA
+% \begin{macrocode}
+\DeclareMathSymbol{\relbar@}{\mathord}{arrows}{45}
+\def\relbar{\mathrel{\smash\relbar@}\mathrel{\mkern-2.5mu}}
+% \end{macrocode}
+% \changes{v4.04}{1997/03/12}
+% {Relbar is hex 3D not 2D}
+% \begin{macrocode}
+\DeclareMathSymbol{\Relbar@}{\mathrel}{arrows}{61}
+\def\Relbar{\Relbar@\mathrel{\mkern-2.5mu}}
+% \end{macrocode}
+% The |\mkern4mu| undoes the overhang at the ends of the joiners
+% (and more)
+% \begin{macrocode}
+\def\longleftarrow{\leftarrow\relbar\mathrel{\mkern4mu}}
+\def\longrightarrow{\mathrel{\mkern4mu}\relbar\rightarrow}
+\def\Longleftarrow{\Leftarrow\Relbar\mathrel{\mkern4mu}}
+\def\Longrightarrow{\mathrel{\mkern4mu}\Relbar\Rightarrow}
+% \end{macrocode}
+%
+% If \textsf{amsmath} is loaded, need to redefine the arrow fill commands
+% as the relative spacing around |\relbar| and |\rightarrow| is not what
+% the AMS code expects.
+% \changes{v4.04}{1997/03/12}
+% {Modify AMS arrowfill commands}
+% \begin{macrocode}
+\AtBeginDocument{%
+ \@ifpackageloaded{amsmath}{%
+ \def\rightarrowfill@#1{%
+ \m@th\setboxz@h{$#1\relbar$}\ht\z@\z@
+ $#1\mkern4.5mu\mathrel{\copy\z@}%
+ \kern-\wd\z@
+ \cleaders\hbox{$#1\mkern-2mu\box\z@\mkern-2mu$}\hfill%
+ \mkern-4.5mu %
+ \rightarrow$}%
+ \def\leftarrowfill@#1{%
+ \m@th\setboxz@h{$#1\relbar$}\ht\z@\z@
+ $#1\leftarrow
+ \mkern-4.5mu %
+ \cleaders\hbox{$#1\mkern-2mu\copy\z@\mkern-2mu$}\hfill
+ \kern-\wd\z@
+ \mathrel{\box\z@}\mkern4.5mu$}
+ \def\leftrightarrowfill@#1{\m@th\setboxz@h{$#1\relbar$}\ht\z@\z@
+ $#1\leftarrow
+ \mkern-12mu %
+ \cleaders\hbox{$#1\mkern-2mu\box\z@\mkern-2mu$}\hfill
+ \rightarrow$}}%
+ {}}
+% \end{macrocode}
+%
+% Some characters that need construction in CM exist complete in math
+% italic or math symbol font.
+% \begin{macrocode}
+\let\bowtie\undefined
+\let\models\undefined
+\let\doteq\undefined
+\let\cong\undefined
+\let\angle\undefined
+\DeclareMathSymbol{\bowtie}{\mathrel}{letters}{246}
+\DeclareMathSymbol{\models}{\mathrel}{symbols}{238}
+\DeclareMathSymbol{\doteq}{\mathrel}{symbols}{201}
+\DeclareMathSymbol{\cong}{\mathrel}{symbols}{155}
+\DeclareMathSymbol{\angle}{\mathord}{symbols}{139}
+% \end{macrocode}
+% These need undefining so that we can redeclare them.
+% \begin{macrocode}
+\let\Box\undefined
+\let\Diamond\undefined
+\let\leadsto\undefined
+\let\neq\undefined
+\let\hookleftarrow\undefined
+\let\hookrightarrow\undefined
+\let\mapsto\undefined
+\let\notin\undefined
+\let\rightleftharpoons\undefined
+% \end{macrocode}
+% Other characters may be found in LucidaNewMath-Arrows
+% (more negated later).
+% \begin{macrocode}
+\DeclareMathSymbol{\neq}{\mathrel}{arrows}{148}
+\DeclareMathSymbol{\rightleftharpoons}{\mathrel}{arrows}{122}
+\DeclareMathSymbol{\leftrightharpoons}{\mathrel}{arrows}{121}
+\DeclareMathSymbol{\hookleftarrow}{\mathrel}{arrows}{60}
+\DeclareMathSymbol{\hookrightarrow}{\mathrel}{arrows}{62}
+\DeclareMathSymbol{\mapsto}{\mathrel}{arrows}{44}
+\def\longmapsto{\mapstochar\longrightarrow}
+% \end{macrocode}
+% Special \LaTeX\ character definitions
+% (originally from \LaTeX\ symbol font)
+% \begin{macrocode}
+\let\Join\undefined
+\let\rhd\undefined
+\let\lhd\undefined
+\let\unrhd\undefined
+\let\unlhd\undefined
+\DeclareMathSymbol{\Join}{\mathrel}{letters}{246}
+\DeclareMathSymbol{\rhd}{\mathrel}{letters}{46}
+\DeclareMathSymbol{\lhd}{\mathrel}{letters}{47}
+\DeclareMathSymbol{\unlhd}{\mathrel}{symbols}{244}
+\DeclareMathSymbol{\unrhd}{\mathrel}{symbols}{245}
+\DeclareMathSymbol{\Box}{\mathord}{arrows}{2}
+\DeclareMathSymbol{\Diamond}{\mathord}{arrows}{8}
+\DeclareMathSymbol{\leadsto}{\mathrel}{arrows}{142}
+\DeclareMathSymbol{\leadsfrom}{\mathrel}{arrows}{141}
+\def\mathstrut{\vphantom{f}}
+% \end{macrocode}
+% In n-th root, don't want the `n' to come too close to the radical
+% \begin{macrocode}
+\def\r@@t#1#2{\setbox\z@\hbox{$\m@th#1\sqrt{#2}$}%
+ \dimen@\ht\z@ \advance\dimen@-\dp\z@
+ \mkern5mu\raise.6\dimen@\copy\rootbox \mkern-7.5mu\box\z@}
+% \end{macrocode}
+% Here are some extra definitions of mathematical symbols and operators:
+% \begin{macrocode}
+\DeclareMathSymbol{\defineequal}{\mathrel}{symbols}{214}
+%\let\notleq\nleq
+%\let\notgeq\ngeq
+\DeclareMathSymbol{\notequiv}{\mathrel}{arrows}{149}
+%\let\notprec\nprec
+%\let\notsucc\nsucc
+\DeclareMathSymbol{\notapprox}{\mathrel}{arrows}{152}
+%\let\notpreceq\npreceq
+%\let\notsucceq\nsucceq
+\DeclareMathSymbol{\notasymp}{\mathrel}{arrows}{243}
+\DeclareMathSymbol{\notsubset}{\mathrel}{arrows}{198}
+\DeclareMathSymbol{\notsupset}{\mathrel}{arrows}{199}
+\DeclareMathSymbol{\notsim}{\mathrel}{arrows}{150}
+\DeclareMathSymbol{\notsubseteq}{\mathrel}{arrows}{200}
+\DeclareMathSymbol{\notsupseteq}{\mathrel}{arrows}{201}
+\DeclareMathSymbol{\notsimeq}{\mathrel}{arrows}{151}
+\DeclareMathSymbol{\notsqsubseteq}{\mathrel}{arrows}{212}
+\DeclareMathSymbol{\notsqsupseteq}{\mathrel}{arrows}{213}
+\DeclareMathSymbol{\notcong}{\mathrel}{arrows}{153}
+\DeclareMathSymbol{\notin}{\mathrel}{arrows}{29}
+\DeclareMathSymbol{\notni}{\mathrel}{arrows}{31}
+%\let\notvdash\nvdash
+%\let\notmodels\nvDash
+%\let\notparallelparallel
+%\let\noteq\neq
+%\let\notless\nless
+%\let\notgreater\ngtr
+%\let\notmid\nmid
+\let\Bbb\mathbb
+% \end{macrocode}
+% Normal \LaTeX\ draws upper case (upright) Greek from cmr10 ---
+% when using the Cork encoding, that isn't there.
+% \begin{macrocode}
+\iflucida@expert
+% \end{macrocode}
+% If we have the LucidaBright Expert set, we'll draw them from the
+% upright math font. That way we can get bold math to work on upright
+% upper case Greek.
+%
+% Why doesn't this work?
+%\begin{verbatim}
+% \documentclass{article}
+% \usepackage{lucidabr}
+% $\mathbf{\Sigma}$
+% \end{document}
+%\end{verbatim}
+% The answer lies in the meaning of |\mathbf|; as fntguide.tex says,
+% it is for alphabetic switching. The straight lucida style says
+%\begin{verbatim}
+% \DeclareMathSymbol{\Sigma}{\mathalpha}{largesymbols}{'326}
+%\end{verbatim}
+% and the |\mathalpha| signifies that the |\Sigma| can change with the
+% alphabet; so this in fact looks for |\char'326| in the ``mathbf''
+% alphabet when we ask for that. That is defined with
+%\begin{verbatim}
+% \SetMathAlphabet{\mathbf}{bold}{\operator@encoding}{\rmdefault}{b}{n}
+%\end{verbatim}
+% ie normal text Lucida bold. It all works in CMR because the text fonts
+% have Greek, which is why the symbols are defined as \mathalpha; in
+% addition, the alphabets like |\mathbf| \emph{explicitly} ask for OT1:
+%\begin{verbatim}
+%\DeclareMathAlphabet {\mathbf}{OT1}{cmr}{bx}{n}
+%\end{verbatim}
+% so it works in T1 encoding too.
+%
+% When we get the symbols from other fonts in Lucida, we should no
+% longer classify the fonts as |\mathalpha|, since the mechanism
+% doesn't function. So we use |\mathord| instead, and you
+% only get bold Greek if you change |\mathversion|.
+% At least it's consistent.
+%
+% If, however, we are using the Times mixture, we can keep
+% |\mathalpha|, as we have the right font layouts around.
+% \begin{macrocode}
+%<*!luctim>
+ \DeclareMathSymbol{\Gamma}{\mathord}{mathupright}{0}
+ \DeclareMathSymbol{\Delta}{\mathord}{mathupright}{1}
+ \DeclareMathSymbol{\Theta}{\mathord}{mathupright}{2}
+ \DeclareMathSymbol{\Lambda}{\mathord}{mathupright}{3}
+ \DeclareMathSymbol{\Xi}{\mathord}{mathupright}{4}
+ \DeclareMathSymbol{\Pi}{\mathord}{mathupright}{5}
+ \DeclareMathSymbol{\Sigma}{\mathord}{mathupright}{6}
+ \DeclareMathSymbol{\Upsilon}{\mathord}{mathupright}{7}
+ \DeclareMathSymbol{\Phi}{\mathord}{mathupright}{8}
+ \DeclareMathSymbol{\Psi}{\mathord}{mathupright}{9}
+ \DeclareMathSymbol{\Omega}{\mathord}{mathupright}{10}
+\else
+% \end{macrocode}
+% It's in the extension font (largesymbols)
+% \begin{macrocode}
+ \DeclareMathSymbol{\Gamma}{\mathord}{largesymbols}{'320}
+ \DeclareMathSymbol{\Delta}{\mathord}{largesymbols}{'321}
+ \DeclareMathSymbol{\Theta}{\mathord}{largesymbols}{'322}
+ \DeclareMathSymbol{\Lambda}{\mathord}{largesymbols}{'323}
+ \DeclareMathSymbol{\Xi}{\mathord}{largesymbols}{'324}
+ \DeclareMathSymbol{\Pi}{\mathord}{largesymbols}{'325}
+ \DeclareMathSymbol{\Sigma}{\mathord}{largesymbols}{'326}
+ \DeclareMathSymbol{\Upsilon}{\mathord}{largesymbols}{'327}
+ \DeclareMathSymbol{\Phi}{\mathord}{largesymbols}{'330}
+ \DeclareMathSymbol{\Psi}{\mathord}{largesymbols}{'331}
+ \DeclareMathSymbol{\Omega}{\mathord}{largesymbols}{'332}
+\fi
+%</!luctim>
+%<*luctim>
+ \DeclareMathSymbol{\Gamma}{\mathalpha}{mathupright}{0}
+ \DeclareMathSymbol{\Delta}{\mathalpha}{mathupright}{1}
+ \DeclareMathSymbol{\Theta}{\mathalpha}{mathupright}{2}
+ \DeclareMathSymbol{\Lambda}{\mathalpha}{mathupright}{3}
+ \DeclareMathSymbol{\Xi}{\mathalpha}{mathupright}{4}
+ \DeclareMathSymbol{\Pi}{\mathalpha}{mathupright}{5}
+ \DeclareMathSymbol{\Sigma}{\mathalpha}{mathupright}{6}
+ \DeclareMathSymbol{\Upsilon}{\mathalpha}{mathupright}{7}
+ \DeclareMathSymbol{\Phi}{\mathalpha}{mathupright}{8}
+ \DeclareMathSymbol{\Psi}{\mathalpha}{mathupright}{9}
+ \DeclareMathSymbol{\Omega}{\mathalpha}{mathupright}{10}
+\else
+% \end{macrocode}
+% It's in the extension font (largesymbols)
+% \begin{macrocode}
+ \DeclareMathSymbol{\Gamma}{\mathord}{largesymbols}{'320}
+ \DeclareMathSymbol{\Delta}{\mathord}{largesymbols}{'321}
+ \DeclareMathSymbol{\Theta}{\mathord}{largesymbols}{'322}
+ \DeclareMathSymbol{\Lambda}{\mathord}{largesymbols}{'323}
+ \DeclareMathSymbol{\Xi}{\mathord}{largesymbols}{'324}
+ \DeclareMathSymbol{\Pi}{\mathord}{largesymbols}{'325}
+ \DeclareMathSymbol{\Sigma}{\mathord}{largesymbols}{'326}
+ \DeclareMathSymbol{\Upsilon}{\mathord}{largesymbols}{'327}
+ \DeclareMathSymbol{\Phi}{\mathord}{largesymbols}{'330}
+ \DeclareMathSymbol{\Psi}{\mathord}{largesymbols}{'331}
+ \DeclareMathSymbol{\Omega}{\mathord}{largesymbols}{'332}
+\fi
+%</luctim>
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareMathSymbol{\alpha}{\mathord}{\lcgreek@alphabet}{11}
+\DeclareMathSymbol{\beta}{\mathord}{\lcgreek@alphabet}{12}
+\DeclareMathSymbol{\gamma}{\mathord}{\lcgreek@alphabet}{13}
+\DeclareMathSymbol{\delta}{\mathord}{\lcgreek@alphabet}{14}
+\DeclareMathSymbol{\epsilon}{\mathord}{\lcgreek@alphabet}{15}
+\DeclareMathSymbol{\zeta}{\mathord}{\lcgreek@alphabet}{16}
+\DeclareMathSymbol{\eta}{\mathord}{\lcgreek@alphabet}{17}
+\DeclareMathSymbol{\theta}{\mathord}{\lcgreek@alphabet}{18}
+\DeclareMathSymbol{\iota}{\mathord}{\lcgreek@alphabet}{19}
+\DeclareMathSymbol{\kappa}{\mathord}{\lcgreek@alphabet}{20}
+\DeclareMathSymbol{\lambda}{\mathord}{\lcgreek@alphabet}{21}
+\DeclareMathSymbol{\mu}{\mathord}{\lcgreek@alphabet}{22}
+\DeclareMathSymbol{\nu}{\mathord}{\lcgreek@alphabet}{23}
+\DeclareMathSymbol{\xi}{\mathord}{\lcgreek@alphabet}{24}
+\DeclareMathSymbol{\pi}{\mathord}{\lcgreek@alphabet}{25}
+\DeclareMathSymbol{\rho}{\mathord}{\lcgreek@alphabet}{26}
+\DeclareMathSymbol{\sigma}{\mathord}{\lcgreek@alphabet}{27}
+\DeclareMathSymbol{\tau}{\mathord}{\lcgreek@alphabet}{28}
+\DeclareMathSymbol{\upsilon}{\mathord}{\lcgreek@alphabet}{29}
+\DeclareMathSymbol{\phi}{\mathord}{\lcgreek@alphabet}{30}
+\DeclareMathSymbol{\chi}{\mathord}{\lcgreek@alphabet}{31}
+\DeclareMathSymbol{\psi}{\mathord}{\lcgreek@alphabet}{32}
+\DeclareMathSymbol{\omega}{\mathord}{\lcgreek@alphabet}{33}
+\DeclareMathSymbol{\varepsilon}{\mathord}{\lcgreek@alphabet}{34}
+\DeclareMathSymbol{\vartheta}{\mathord}{\lcgreek@alphabet}{35}
+\DeclareMathSymbol{\varpi}{\mathord}{\lcgreek@alphabet}{36}
+\DeclareMathSymbol{\varrho}{\mathord}{\lcgreek@alphabet}{37}
+\DeclareMathSymbol{\varsigma}{\mathord}{\lcgreek@alphabet}{38}
+\DeclareMathSymbol{\varphi}{\mathord}{\lcgreek@alphabet}{39}
+% \end{macrocode}
+%
+% `Individual' Upright lowercase Greek (not currently activated).
+% \begin{macrocode}
+%<*upalpha>
+\ifx\upalpha\relax
+ \DeclareMathSymbol{\upalpha}{\mathord}{mathupright}{11}
+ \DeclareMathSymbol{\upbeta}{\mathord}{mathupright}{12}
+ \DeclareMathSymbol{\upgamma}{\mathord}{mathupright}{13}
+ \DeclareMathSymbol{\updelta}{\mathord}{mathupright}{14}
+ \DeclareMathSymbol{\upepsilon}{\mathord}{mathupright}{15}
+ \DeclareMathSymbol{\upzeta}{\mathord}{mathupright}{16}
+ \DeclareMathSymbol{\upeta}{\mathord}{mathupright}{17}
+ \DeclareMathSymbol{\uptheta}{\mathord}{mathupright}{18}
+ \DeclareMathSymbol{\upiota}{\mathord}{mathupright}{19}
+ \DeclareMathSymbol{\upkappa}{\mathord}{mathupright}{20}
+ \DeclareMathSymbol{\uplambda}{\mathord}{mathupright}{21}
+ \DeclareMathSymbol{\upmu}{\mathord}{mathupright}{22}
+ \DeclareMathSymbol{\upnu}{\mathord}{mathupright}{23}
+ \DeclareMathSymbol{\upxi}{\mathord}{mathupright}{24}
+ \DeclareMathSymbol{\uppi}{\mathord}{mathupright}{25}
+ \DeclareMathSymbol{\uprho}{\mathord}{mathupright}{26}
+ \DeclareMathSymbol{\upsigma}{\mathord}{mathupright}{27}
+ \DeclareMathSymbol{\uptau}{\mathord}{mathupright}{28}
+ \DeclareMathSymbol{\upupsilon}{\mathord}{mathupright}{29}
+ \DeclareMathSymbol{\upphi}{\mathord}{mathupright}{30}
+ \DeclareMathSymbol{\upchi}{\mathord}{mathupright}{31}
+ \DeclareMathSymbol{\uppsi}{\mathord}{mathupright}{32}
+ \DeclareMathSymbol{\upomega}{\mathord}{mathupright}{33}
+ \DeclareMathSymbol{\upvarepsilon}{\mathord}{mathupright}{34}
+\fi
+%</upalpha>
+% \end{macrocode}
+% Slanted upright Greek.
+% \begin{macrocode}
+%<*varGamma>
+\ifx\varGamma\relax
+ \DeclareMathSymbol{\varGamma}{\mathord}{letters}{0}
+ \DeclareMathSymbol{\varDelta}{\mathord}{letters}{1}
+ \DeclareMathSymbol{\varTheta}{\mathord}{letters}{2}
+ \DeclareMathSymbol{\varLambda}{\mathord}{letters}{3}
+ \DeclareMathSymbol{\varXi}{\mathord}{letters}{4}
+ \DeclareMathSymbol{\varPi}{\mathord}{letters}{5}
+ \DeclareMathSymbol{\varSigma}{\mathord}{letters}{6}
+ \DeclareMathSymbol{\varUpsilon}{\mathord}{letters}{7}
+ \DeclareMathSymbol{\varPhi}{\mathord}{letters}{8}
+ \DeclareMathSymbol{\varPsi}{\mathord}{letters}{9}
+ \DeclareMathSymbol{\varOmega}{\mathord}{letters}{10}
+\fi
+%</varGamma>
+% \end{macrocode}
+% Definitions for math symbols and operators
+% (normally found in the AMS symbol fonts)
+% using LucidaNewMath fonts
+% MSAM* equivalents:
+%
+% Stop here if noamssymbols option given.
+% \begin{macrocode}
+\ifx\blacksquare\endinput\endinput\fi
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareMathSymbol{\boxdot}{\mathbin}{symbols}{237}
+\DeclareMathSymbol{\boxplus}{\mathbin}{symbols}{234}
+\DeclareMathSymbol{\boxtimes}{\mathbin}{symbols}{236}
+\DeclareMathSymbol{\square}{\mathord}{arrows}{2}
+\DeclareMathSymbol{\blacksquare}{\mathord}{arrows}{3}
+\DeclareMathSymbol{\centerdot}{\mathbin}{arrows}{225}
+\DeclareMathSymbol{\lozenge}{\mathord}{arrows}{8}
+\DeclareMathSymbol{\blacklozenge}{\mathord}{arrows}{9}
+\DeclareMathSymbol{\circlearrowright}{\mathrel}{arrows}{140}
+\DeclareMathSymbol{\circlearrowleft}{\mathrel}{arrows}{139}
+\DeclareMathSymbol{\rightleftharpoons}{\mathrel}{arrows}{122}
+\DeclareMathSymbol{\leftrightharpoons}{\mathrel}{arrows}{121}
+\DeclareMathSymbol{\boxminus}{\mathbin}{symbols}{235}
+\DeclareMathSymbol{\Vdash}{\mathrel}{symbols}{240}
+\DeclareMathSymbol{\Vvdash}{\mathrel}{letters}{211}
+\DeclareMathSymbol{\vDash}{\mathrel}{symbols}{238}
+\DeclareMathSymbol{\twoheadrightarrow}{\mathrel}{arrows}{37}
+\DeclareMathSymbol{\twoheadleftarrow}{\mathrel}{arrows}{35}
+\DeclareMathSymbol{\leftleftarrows}{\mathrel}{arrows}{113}
+\DeclareMathSymbol{\rightrightarrows}{\mathrel}{arrows}{115}
+\DeclareMathSymbol{\upuparrows}{\mathrel}{arrows}{114}
+\DeclareMathSymbol{\downdownarrows}{\mathrel}{arrows}{116}
+\DeclareMathSymbol{\upharpoonright}{\mathrel}{arrows}{117}
+\DeclareMathSymbol{\downharpoonright}{\mathrel}{arrows}{119}
+\DeclareMathSymbol{\upharpoonleft}{\mathrel}{arrows}{118}
+\DeclareMathSymbol{\downharpoonleft}{\mathrel}{arrows}{120}
+\DeclareMathSymbol{\rightarrowtail}{\mathrel}{arrows}{41}
+\DeclareMathSymbol{\leftarrowtail}{\mathrel}{arrows}{40}
+\DeclareMathSymbol{\leftrightarrows}{\mathrel}{arrows}{110}
+\DeclareMathSymbol{\rightleftarrows}{\mathrel}{arrows}{109}
+\DeclareMathSymbol{\Lsh}{\mathrel}{arrows}{123}
+\DeclareMathSymbol{\Rsh}{\mathrel}{arrows}{125}
+\DeclareMathSymbol{\rightsquigarrow}{\mathrel}{arrows}{142}
+\DeclareMathSymbol{\leftsquigarrow}{\mathrel}{arrows}{141}
+\DeclareMathSymbol{\leftrightsquigarrow}{\mathrel}{arrows}{145}
+\DeclareMathSymbol{\looparrowleft}{\mathrel}{arrows}{63}
+\DeclareMathSymbol{\looparrowright}{\mathrel}{arrows}{64}
+\DeclareMathSymbol{\circeq}{\mathrel}{symbols}{208}
+\DeclareMathSymbol{\succsim}{\mathrel}{symbols}{225}
+\DeclareMathSymbol{\gtrsim}{\mathrel}{symbols}{221}
+\DeclareMathSymbol{\gtrapprox}{\mathrel}{letters}{219}
+\DeclareMathSymbol{\multimap}{\mathrel}{letters}{199}
+\DeclareMathSymbol{\image}{\mathrel}{letters}{198}
+\DeclareMathSymbol{\original}{\mathrel}{letters}{197}
+\DeclareMathSymbol{\therefore}{\mathrel}{symbols}{144}
+\DeclareMathSymbol{\because}{\mathrel}{symbols}{145}
+\DeclareMathSymbol{\doteqdot}{\mathrel}{symbols}{202}
+\DeclareMathSymbol{\triangleq}{\mathrel}{symbols}{213}
+\DeclareMathSymbol{\precsim}{\mathrel}{symbols}{224}
+\DeclareMathSymbol{\lesssim}{\mathrel}{symbols}{220}
+\DeclareMathSymbol{\lessapprox}{\mathrel}{letters}{218}
+\DeclareMathSymbol{\eqslantless}{\mathrel}{letters}{226}
+\DeclareMathSymbol{\eqslantgtr}{\mathrel}{letters}{227}
+\DeclareMathSymbol{\curlyeqprec}{\mathrel}{letters}{230}
+\DeclareMathSymbol{\curlyeqsucc}{\mathrel}{letters}{231}
+\DeclareMathSymbol{\preccurlyeq}{\mathrel}{letters}{228}
+\DeclareMathSymbol{\leqq}{\mathrel}{symbols}{218}
+\DeclareMathSymbol{\leqslant}{\mathrel}{letters}{224}
+\DeclareMathSymbol{\lessgtr}{\mathrel}{symbols}{222}
+\DeclareMathSymbol{\backprime}{\mathord}{letters}{200}
+\DeclareMathSymbol{\axisshort}{\mathord}{arrows}{57}
+\DeclareMathSymbol{\risingdotseq}{\mathrel}{symbols}{204}
+\DeclareMathSymbol{\fallingdotseq}{\mathrel}{symbols}{203}
+\DeclareMathSymbol{\succcurlyeq}{\mathrel}{letters}{229}
+\DeclareMathSymbol{\geqq}{\mathrel}{symbols}{219}
+\DeclareMathSymbol{\geqslant}{\mathrel}{letters}{225}
+\DeclareMathSymbol{\gtrless}{\mathrel}{symbols}{223}
+\let\sqsubset\undefined
+\let\sqsupset\undefined
+\DeclareMathSymbol{\sqsubset}{\mathrel}{symbols}{228}
+\DeclareMathSymbol{\sqsupset}{\mathrel}{symbols}{229}
+\DeclareMathSymbol{\vartriangleright}{\mathrel}{letters}{46}
+\DeclareMathSymbol{\vartriangleleft}{\mathrel}{letters}{47}
+\DeclareMathSymbol{\trianglerighteq}{\mathrel}{symbols}{245}
+\DeclareMathSymbol{\trianglelefteq}{\mathrel}{symbols}{244}
+\DeclareMathSymbol{\bigstar}{\mathord}{arrows}{171}
+\DeclareMathSymbol{\between}{\mathrel}{letters}{242}
+\DeclareMathSymbol{\blacktriangledown}{\mathord}{arrows}{7}
+\DeclareMathSymbol{\blacktriangleright}{\mathrel}{letters}{241}
+\DeclareMathSymbol{\blacktriangleleft}{\mathrel}{letters}{240}
+\DeclareMathSymbol{\arrowaxisright}{\mathord}{arrows}{55}
+\DeclareMathSymbol{\arrowaxisleft}{\mathord}{arrows}{54}
+\DeclareMathSymbol{\vartriangle}{\mathrel}{arrows}{4}
+\DeclareMathSymbol{\blacktriangle}{\mathord}{arrows}{5}
+\DeclareMathSymbol{\triangledown}{\mathord}{arrows}{6}
+\DeclareMathSymbol{\eqcirc}{\mathrel}{symbols}{207}
+\DeclareMathSymbol{\lesseqgtr}{\mathrel}{letters}{232}
+\DeclareMathSymbol{\gtreqless}{\mathrel}{letters}{233}
+\DeclareMathSymbol{\lesseqqgtr}{\mathrel}{letters}{234}
+\DeclareMathSymbol{\gtreqqless}{\mathrel}{letters}{235}
+\DeclareMathSymbol{\Rrightarrow}{\mathrel}{arrows}{108}
+\DeclareMathSymbol{\Lleftarrow}{\mathrel}{arrows}{106}
+\DeclareMathSymbol{\veebar}{\mathbin}{letters}{210}
+\DeclareMathSymbol{\barwedge}{\mathbin}{symbols}{246}
+\DeclareMathSymbol{\angle}{\mathord}{symbols}{139}
+\DeclareMathSymbol{\measuredangle}{\mathord}{symbols}{140}
+\DeclareMathSymbol{\sphericalangle}{\mathord}{symbols}{141}
+\DeclareMathSymbol{\varpropto}{\mathrel}{symbols}{47} % ?
+\DeclareMathSymbol{\smallsmile}{\mathrel}{letters}{94} % ?
+\DeclareMathSymbol{\smallfrown}{\mathrel}{letters}{95} % ?
+\DeclareMathSymbol{\Subset}{\mathrel}{symbols}{248}
+\DeclareMathSymbol{\Supset}{\mathrel}{symbols}{249}
+\DeclareMathSymbol{\Cup}{\mathbin}{symbols}{250}
+\DeclareMathSymbol{\Cap}{\mathbin}{symbols}{251}
+\DeclareMathSymbol{\curlywedge}{\mathbin}{symbols}{132}
+\DeclareMathSymbol{\curlyvee}{\mathbin}{symbols}{133}
+\DeclareMathSymbol{\leftthreetimes}{\mathbin}{letters}{208}
+\DeclareMathSymbol{\rightthreetimes}{\mathbin}{letters}{209}
+\DeclareMathSymbol{\subseteqq}{\mathrel}{letters}{238}
+\DeclareMathSymbol{\supseteqq}{\mathrel}{letters}{239}
+\DeclareMathSymbol{\bumpeq}{\mathrel}{symbols}{200}
+\DeclareMathSymbol{\Bumpeq}{\mathrel}{symbols}{199}
+\DeclareMathSymbol{\lll}{\mathrel}{letters}{222}
+\DeclareMathSymbol{\ggg}{\mathrel}{letters}{223}
+\DeclareMathSymbol{\circledS}{\mathord}{letters}{202}
+\DeclareMathSymbol{\pitchfork}{\mathrel}{letters}{243}
+\DeclareMathSymbol{\dotplus}{\mathbin}{symbols}{137}
+\DeclareMathSymbol{\backsim}{\mathrel}{letters}{248}
+\DeclareMathSymbol{\backsimeq}{\mathrel}{letters}{249}
+\DeclareMathSymbol{\complement}{\mathord}{letters}{148}
+\DeclareMathSymbol{\intercal}{\mathbin}{letters}{217}
+\DeclareMathSymbol{\circledcirc}{\mathbin}{symbols}{230}
+\DeclareMathSymbol{\circledast}{\mathbin}{symbols}{231}
+\DeclareMathSymbol{\circleddash}{\mathbin}{letters}{204}
+% \end{macrocode}
+% MSBM* equivalents
+% \begin{macrocode}
+\DeclareMathSymbol{\lvertneqq}{\mathrel}{arrows}{222}
+\DeclareMathSymbol{\gvertneqq}{\mathrel}{arrows}{223}
+\DeclareMathSymbol{\nleq}{\mathrel}{arrows}{156}
+\DeclareMathSymbol{\ngeq}{\mathrel}{arrows}{157}
+\DeclareMathSymbol{\nless}{\mathrel}{arrows}{154}
+\DeclareMathSymbol{\ngtr}{\mathrel}{arrows}{155}
+\DeclareMathSymbol{\nprec}{\mathrel}{arrows}{229}
+\DeclareMathSymbol{\nsucc}{\mathrel}{arrows}{230}
+\DeclareMathSymbol{\lneqq}{\mathrel}{arrows}{220}
+\DeclareMathSymbol{\gneqq}{\mathrel}{arrows}{221}
+\DeclareMathSymbol{\nleqslant}{\mathrel}{arrows}{214}
+\DeclareMathSymbol{\ngeqslant}{\mathrel}{arrows}{215}
+\DeclareMathSymbol{\lneq}{\mathrel}{arrows}{218}
+\DeclareMathSymbol{\gneq}{\mathrel}{arrows}{219}
+\DeclareMathSymbol{\npreceq}{\mathrel}{arrows}{231}
+\DeclareMathSymbol{\nsucceq}{\mathrel}{arrows}{232}
+\DeclareMathSymbol{\precnsim}{\mathrel}{arrows}{235}
+\DeclareMathSymbol{\succnsim}{\mathrel}{arrows}{236}
+\DeclareMathSymbol{\lnsim}{\mathrel}{arrows}{224}
+\DeclareMathSymbol{\gnsim}{\mathrel}{arrows}{226}
+\DeclareMathSymbol{\nleqq}{\mathrel}{arrows}{216}
+\DeclareMathSymbol{\ngeqq}{\mathrel}{arrows}{217}
+\DeclareMathSymbol{\precneqq}{\mathrel}{arrows}{233}
+\DeclareMathSymbol{\succneqq}{\mathrel}{arrows}{234}
+\DeclareMathSymbol{\precnapprox}{\mathrel}{arrows}{237}
+\DeclareMathSymbol{\succnapprox}{\mathrel}{arrows}{238}
+\DeclareMathSymbol{\lnapprox}{\mathrel}{arrows}{227}
+\DeclareMathSymbol{\gnapprox}{\mathrel}{arrows}{228}
+\DeclareMathSymbol{\nsim}{\mathrel}{arrows}{150}
+\DeclareMathSymbol{\ncong}{\mathrel}{arrows}{153}
+\DeclareMathSymbol{\diagup}{\mathrel}{arrows}{11}
+\DeclareMathSymbol{\diagdown}{\mathrel}{arrows}{12}
+\DeclareMathSymbol{\varsubsetneq}{\mathrel}{arrows}{208}
+\DeclareMathSymbol{\varsupsetneq}{\mathrel}{arrows}{209}
+\DeclareMathSymbol{\nsubseteqq}{\mathrel}{arrows}{202}
+\DeclareMathSymbol{\nsupseteqq}{\mathrel}{arrows}{203}
+\DeclareMathSymbol{\subsetneqq}{\mathrel}{arrows}{206}
+\DeclareMathSymbol{\supsetneqq}{\mathrel}{arrows}{207}
+\DeclareMathSymbol{\varsubsetneqq}{\mathrel}{arrows}{210}
+\DeclareMathSymbol{\varsupsetneqq}{\mathrel}{arrows}{211}
+\DeclareMathSymbol{\subsetneq}{\mathrel}{arrows}{204}
+\DeclareMathSymbol{\supsetneq}{\mathrel}{arrows}{205}
+\DeclareMathSymbol{\nsubseteq}{\mathrel}{arrows}{200}
+\DeclareMathSymbol{\nsupseteq}{\mathrel}{arrows}{201}
+\DeclareMathSymbol{\nparallel}{\mathrel}{arrows}{247}
+\DeclareMathSymbol{\nmid}{\mathrel}{arrows}{246}
+\DeclareMathSymbol{\nshortmid}{\mathrel}{arrows}{244}
+\DeclareMathSymbol{\nshortparallel}{\mathrel}{arrows}{245}
+\DeclareMathSymbol{\nvdash}{\mathrel}{arrows}{248}
+\DeclareMathSymbol{\nVdash}{\mathrel}{arrows}{250}
+\DeclareMathSymbol{\nvDash}{\mathrel}{arrows}{249}
+\DeclareMathSymbol{\nVDash}{\mathrel}{arrows}{251}
+\DeclareMathSymbol{\ntrianglerighteq}{\mathrel}{arrows}{242}
+\DeclareMathSymbol{\ntrianglelefteq}{\mathrel}{arrows}{241}
+\DeclareMathSymbol{\ntriangleleft}{\mathrel}{arrows}{239}
+\DeclareMathSymbol{\ntriangleright}{\mathrel}{arrows}{240}
+\DeclareMathSymbol{\nleftarrow}{\mathrel}{arrows}{50}
+\DeclareMathSymbol{\nrightarrow}{\mathrel}{arrows}{51}
+\DeclareMathSymbol{\nLeftarrow}{\mathrel}{arrows}{102}
+\DeclareMathSymbol{\nRightarrow}{\mathrel}{arrows}{104}
+\DeclareMathSymbol{\nLeftrightarrow}{\mathrel}{arrows}{103}
+\DeclareMathSymbol{\nleftrightarrow}{\mathrel}{arrows}{52}
+\DeclareMathSymbol{\divideontimes}{\mathbin}{letters}{247}
+\DeclareMathSymbol{\varnothing}{\mathord}{letters}{156}
+\DeclareMathSymbol{\nexists}{\mathord}{arrows}{32}
+\DeclareMathSymbol{\Finv}{\mathord}{letters}{144}
+\DeclareMathSymbol{\Game}{\mathord}{letters}{145}
+\let\mho\undefined
+\DeclareMathSymbol{\mho}{\mathord}{letters}{146}
+\DeclareMathSymbol{\simeq}{\mathrel}{symbols}{39}
+\DeclareMathSymbol{\eqsim}{\mathrel}{symbols}{153}
+\DeclareMathSymbol{\beth}{\mathord}{letters}{149}
+\DeclareMathSymbol{\gimel}{\mathord}{letters}{150}
+\DeclareMathSymbol{\daleth}{\mathord}{letters}{151}
+\DeclareMathSymbol{\lessdot}{\mathrel}{letters}{220}
+\DeclareMathSymbol{\gtrdot}{\mathrel}{letters}{221}
+\DeclareMathSymbol{\ltimes}{\mathbin}{letters}{206}
+\DeclareMathSymbol{\rtimes}{\mathbin}{letters}{207}
+\DeclareMathSymbol{\shortmid}{\mathrel}{letters}{244}
+\DeclareMathSymbol{\shortparallel}{\mathrel}{letters}{245}
+\DeclareMathSymbol{\smallsetminus}{\mathbin}{letters}{216} %?
+\DeclareMathSymbol{\thicksim}{\mathrel}{symbols}{24} %?
+\DeclareMathSymbol{\thickapprox}{\mathrel}{symbols}{25} %?
+\DeclareMathSymbol{\approxeq}{\mathrel}{symbols}{157}
+\DeclareMathSymbol{\succapprox}{\mathrel}{letters}{237}
+\DeclareMathSymbol{\precapprox}{\mathrel}{letters}{236}
+\DeclareMathSymbol{\curvearrowleft}{\mathrel}{arrows}{135}
+\DeclareMathSymbol{\curvearrowright}{\mathrel}{arrows}{136}
+\DeclareMathSymbol{\digamma}{\mathord}{letters}{70} %?
+\DeclareMathSymbol{\varkappa}{\mathord}{letters}{155}
+\DeclareMathSymbol{\Bbbk}{\mathord}{arrows}{107}
+\DeclareMathSymbol{\hslash}{\mathord}{letters}{157}
+\DeclareMathSymbol{\hbar}{\mathord}{arrows}{27}
+\DeclareMathSymbol{\backepsilon}{\mathrel}{letters}{251} %?
+\DeclareMathSymbol{\dashrightarrow}{\mathord}{arrows}{58}
+\DeclareMathSymbol{\dashleftarrow}{\mathord}{arrows}{56}
+\DeclareMathSymbol{\dashuparrow}{\mathord}{arrows}{57}
+\DeclareMathSymbol{\dashdownarrow}{\mathord}{arrows}{59}
+% \end{macrocode}
+% \changes{v4.10}{1998/01/19}
+% {(Patrick Daly) Fix codes in corner delimiters}
+% \begin{macrocode}
+\DeclareMathDelimiter\ulcorner{\mathopen}{arrows}{91}{arrows}{91}
+\DeclareMathDelimiter\urcorner{\mathclose}{arrows}{92}{arrows}{92}
+\DeclareMathDelimiter\llcorner{\mathopen}{arrows}{93}{arrows}{93}
+\DeclareMathDelimiter\lrcorner{\mathclose}{arrows}{94}{arrows}{94}
+\edef\checkmark{\noexpand\mathhexbox{\hexnumber@\symarrows}AC}
+\edef\circledR{\noexpand\mathhexbox{\hexnumber@\symletters}C9}
+\edef\maltese{\noexpand\mathhexbox{\hexnumber@\symletters}CB}
+% \end{macrocode}
+% Changes to default for |\Leftrightarrow|. I (SPQR) don't like 22C, so:
+% \begin{macrocode}
+\let\Leftrightarrow\undefined
+\DeclareMathSymbol{\Leftrightarrow}{\mathrel}{arrows}{97}
+% \end{macrocode}
+%
+% Override AMS logo, just to ensure we don't use any CM fonts!
+% (Not done in this version.)
+%\begin{verbatim}
+%\def\AmS{{\protect\AmSfont
+% A\kern-.1667em\lower.5ex\hbox{M}\kern-.125emS}}
+%<lucidabright|lucbmath>%\def\AmSfont{\usefont{OMS}{hlcy}{m}{n}}
+%\end{verbatim}
+%
+% \begin{macrocode}
+%</lucbmath>
+% \end{macrocode}
+%
+% \subsection{Lucfont test file}
+% A test file for the Lucida fonts.
+% \begin{macrocode}
+%<*lucfont>
+\documentclass{article}
+%<T1>\usepackage[T1]{fontenc}
+%<LY1>\usepackage[LY1]{fontenc}
+\begin{document}
+\title{All the Lucida text fonts}
+\author{prepared by Sebastian Rahtz}
+\date{February 19th 1995}
+\maketitle
+\def\test#1#2#3#4#5{%
+ \item[#1/#2/#3]#4 (#5):
+ {\fontfamily{#1}\fontseries{#2}\fontshape{#3}\selectfont
+ Animadversion for a giraffe costs \pounds123. Wa\ss\ ist
+ das f\"ur ein Klopf?
+ We are often na{\"\i}ve vis-\`{a}-vis
+the d{\ae}monic ph{\oe}nix's official r\^{o}le in fluffy souffl\'{e}s}
+}
+
+\begin{description}
+\test{hlx}{b}{it}{hlxdi8t}{LucidaFax-DemiItalic}
+\test{hlx}{b}{n}{hlxd8t}{LucidaFax-Demi}
+\test{hlx}{m}{it}{hlxrir8t}{LucidaFax-Italic}
+\test{hlx}{m}{n}{hlxr8t}{LucidaFax}
+
+\test{hlh}{b}{it}{hlcdib8t}{LucidaBright-DemiItalic}
+\test{hlh}{b}{n}{hlcdb8t}{LucidaBright-Demi}
+\test{hlh}{m}{it}{hlcrib8t}{LucidaBright-Italic}
+\test{hlh}{m}{n}{hlcrb8t}{LucidaBright}
+
+\test{hlce}{m}{it}{hlcrie8t}{LucidaCalligraphy-Italic}
+
+\test{hlcf}{m}{n}{hlcrf8t}{LucidaBlackletter}
+
+\test{hlcn}{m}{it}{hlcrin8t}{LucidaCasual-Italic}
+\test{hlcn}{m}{n}{hlcrn8t}{LucidaCasual}
+
+\test{hlst}{b}{n}{hlsbt8t}{LucidaSans-TypewriterBold}
+\test{hlst}{b}{sl}{hlsbot8t}{LucidaSans-TypewriterBoldOblique}
+
+\test{hls}{ub}{it}{hlsbi8t}{LucidaSans-BoldItalic}
+\test{hls}{ub}{n}{hlsb8t}{LucidaSans-Bold}
+\test{hls}{b}{it}{hlsdi8t}{LucidaSans-DemiItalic}
+\test{hls}{b}{n}{hlsd8t}{LucidaSans-Demi}
+\test{hls}{m}{it}{hlsri8t}{LucidaSans-Italic}
+\test{hls}{m}{n}{hlsr8t}{LucidaSans}
+
+\test{hlct}{b}{n}{hlcbt8t}{LucidaTypewriterBold}
+\test{hlct}{b}{sl}{hlcbot8t}{LucidaTypewriterOblique}
+\test{hlcw}{m}{it}{hlcriw8t}{LucidaHandwriting-Italic}
+
+\end{description}
+\end{document}
+%</lucfont>
+% \end{macrocode}
+% \Finale
diff --git a/macros/latex/contrib/psnfssx/lucidabr/lucidabr.fdd b/macros/latex/contrib/psnfssx/lucidabr/lucidabr.fdd
new file mode 100644
index 0000000000..68da3d3bcc
--- /dev/null
+++ b/macros/latex/contrib/psnfssx/lucidabr/lucidabr.fdd
@@ -0,0 +1,316 @@
+% \iffalse
+% lucidabr.fdd - generate math-related .fd files for Lucida.
+%%
+%% Copyright 1995, 1996 Sebastian Rahtz
+%% Copyright 1997 Sebastian Rahtz, David Carlisle
+%% Copyright 2005 TeX Users Group
+%%
+%% This file is part of the lucidabr package.
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2003/12/01 or later.
+%%
+%% This work has the LPPL maintenance status "maintained".
+%%
+%% The Current Maintainer of this work is the TeX Users Group;
+%% (http://tug.org/lucida).
+%%
+%% The list of all files belonging to the lucidabr package is
+%% given in the file `manifest.txt'.
+%%
+%% 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.
+%%
+%<*dtx>
+ \ProvidesFile{lucidabr.fdd}
+%</dtx>
+%<LY1hlh>\ProvidesFile{ly1hlh.fd}
+%<LY1hls>\ProvidesFile{ly1hls.fd}
+%<LY1hlst>\ProvidesFile{ly1hlst.fd}
+%<LY1hlct>\ProvidesFile{ly1hlct.fd}
+%<LY1hlx>\ProvidesFile{ly1hlx.fd}
+%<LY1hlce>\ProvidesFile{ly1hlce.fd}
+%<LY1hlcw>\ProvidesFile{ly1hlcw.fd}
+%<LY1hlcf>\ProvidesFile{ly1hlcf.fd}
+%<LY1hlcn>\ProvidesFile{ly1hcn.fd}
+%<OMLhlcm>\ProvidesFile{omlhlcm.fd}
+%<OMShlcy>\ProvidesFile{omshlcy.fd}
+%<OMXhlcv>\ProvidesFile{omxhlcv.fd}
+%<LMRhlcm>\ProvidesFile{lmrhlcm.fd}
+%<OMLhlh>\ProvidesFile{omlhlh.fd}
+%<OMShlh>\ProvidesFile{omshlh.fd}
+%<driver>\ProvidesFile{lucidayy.drv}
+% \fi
+% \ProvidesFile{lucidabr.fdd}
+ [2005/11/28 v4.3 %
+%<LY1hlh> Lucida Bright
+%<LY1hls> Lucida Bright Sans
+%<LY1hlst> Lucida Bright Sans Typewriter
+%<LY1hlct> Lucida Bright Typewriter
+%<LY1hlx> Lucida Fax
+%<LY1hlce> Lucida Calligraphy
+%<LY1hlcw> Lucida Handwriting
+%<LY1hlcf> Lucida Black Letter
+%<LY1hlcn> Lucida Casual
+%<OMLhlcm> Lucida New Math Italic
+%<OMShlcy> Lucida New Math Symbols
+%<OMXhlcv> Lucida New Math Extension
+%<LMRhlcm> Lucida New Math Arrows
+%<OMLhlh> Lucida Bright
+%<OMShlh> Lucida Bright
+%<yy> (Y&Y Names)
+ (SPQR/DPC/TUG)]
+% \iffalse
+%<*driver>
+\documentclass{ltxdoc}
+\DocInput{lucidabr.fdd}
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{140}
+%
+% \GetFileInfo{lucida.dtx}
+%
+% \begin{document}
+% \title{The \textsf{lucidabr} fd files\thanks{This file
+% has version number \fileversion, last
+% revised \filedate.}}
+% \author{Sebastian Rahtz, David Carlisle}
+% \date{\filedate}
+%
+% \maketitle
+%
+% \StopEventually{}
+%
+% \section{Text Font description files}
+%
+%
+% \begin{macrocode}
+\providecommand\DeclareLucidaFontShape[6]{%
+ \DeclareFontShape{#1}{#2}{#3}{#4}{<->#5}{#6}}
+% \end{macrocode}
+%
+% \subsection{Lucida Bright font description files}
+% \begin{macrocode}
+%<*LY1hlh>
+\DeclareFontFamily{LY1}{hlh}{}
+\DeclareLucidaFontShape{LY1}{hlh}{m}{n}{lbr}{}
+\DeclareLucidaFontShape{LY1}{hlh}{m}{it}{lbi}{}
+\DeclareLucidaFontShape{LY1}{hlh}{m}{sl}{lbsl}{}
+\DeclareLucidaFontShape{LY1}{hlh}{m}{sc}{lbrsc}{}
+\DeclareLucidaFontShape{LY1}{hlh}{b}{n}{lbd}{}
+\DeclareLucidaFontShape{LY1}{hlh}{b}{it}{lbdi}{}
+\DeclareLucidaFontShape{LY1}{hlh}{b}{sc}{lbdsc}{}
+\DeclareFontShape{LY1}{hlh}{b} {sl}{<->ssub * hlh/b/it}{}
+\DeclareFontShape{LY1}{hlh}{bx}{n} {<->ssub * hlh/b/n}{}
+\DeclareFontShape{LY1}{hlh}{bx}{it}{<->ssub * hlh/b/it}{}
+\DeclareFontShape{LY1}{hlh}{bx}{sl}{<->ssub * hlh/b/it}{}
+\DeclareFontShape{LY1}{hlh}{bx}{sc}{<->ssub * hlh/b/sc}{}
+%</LY1hlh>
+% \end{macrocode}
+%
+% \subsection{Lucida Sans font description files}
+% \begin{macrocode}
+%<*LY1hls>
+\DeclareFontFamily{LY1}{hls}{}
+\DeclareLucidaFontShape{LY1}{hls}{m}{n}{lsr}{}
+\DeclareLucidaFontShape{LY1}{hls}{m}{it}{lsi}{}
+\DeclareLucidaFontShape{LY1}{hls}{b}{n}{lsd}{}
+\DeclareLucidaFontShape{LY1}{hls}{b}{it}{lsdi}{}
+\DeclareLucidaFontShape{LY1}{hls}{ub}{n}{lsb}{}
+\DeclareLucidaFontShape{LY1}{hls}{ub}{it}{lsbi}{}
+\DeclareFontShape{LY1}{hls}{m}{sl}{<->ssub * hls/m/it}{}
+\DeclareFontShape{LY1}{hls}{m}{sc}{<->ssub * hls/m/n}{}
+\DeclareFontShape{LY1}{hls}{b}{sc}{<->ssub * hls/m/sc}{}
+\DeclareFontShape{LY1}{hls}{bx}{sc}{<->ssub * hls/b/sc}{}
+\DeclareFontShape{LY1}{hls}{b}{sl}{<->ssub * hls/b/it}{}
+\DeclareFontShape{LY1}{hls}{bx}{n}{<->ssub * hls/ub/n}{}
+\DeclareFontShape{LY1}{hls}{bx}{it}{<->ssub * hls/ub/it}{}
+\DeclareFontShape{LY1}{hls}{bx}{sl}{<->ssub * hls/ub/it}{}
+%</LY1hls>
+% \end{macrocode}
+%
+% \subsection{Lucida Bright Typewriter font description files}
+% \begin{macrocode}
+%<*LY1hlst>
+\DeclareFontFamily{LY1}{hlst}{\hyphenchar \font\m@ne}%
+\DeclareLucidaFontShape{LY1}{hlst}{m}{n}{lstr}{}
+\DeclareFontShape{LY1}{hlst}{m}{sc}{<->ssub * hlst/m/n}{}
+\DeclareLucidaFontShape{LY1}{hlst}{m}{it}{lsto}{}
+\DeclareFontShape{LY1}{hlst}{m}{sl}{<->ssub * hlst/m/it}{}
+\DeclareLucidaFontShape{LY1}{hlst}{b}{n}{lstb}{}
+\DeclareLucidaFontShape{LY1}{hlst}{b}{it}{lstbo}{}
+\DeclareFontShape{LY1}{hlst}{b}{sc} {<->ssub * hlst/m/sc}{}
+\DeclareFontShape{LY1}{hlst}{b}{sl} {<->ssub * hlst/b/it}{}
+\DeclareFontShape{LY1}{hlst}{m}{sl} {<->ssub * hlst/m/it}{}
+\DeclareFontShape{LY1}{hlst}{bx}{n} {<->ssub * hlst/b/n}{}
+\DeclareFontShape{LY1}{hlst}{bx}{it}{<->ssub * hlst/b/it}{}
+\DeclareFontShape{LY1}{hlst}{bx}{sc}{<->ssub * hlst/b/sc}{}
+\DeclareFontShape{LY1}{hlst}{bx}{sl}{<->ssub * hlst/m/sl}{}
+%</LY1hlst>
+% \end{macrocode}
+% \subsection{Lucida Bright Serif Typewriter font description files}
+% \begin{macrocode}
+%<*LY1hlct>
+\DeclareFontFamily{LY1}{hlct}{\hyphenchar \font\m@ne}%
+\DeclareLucidaFontShape{LY1}{hlct}{m}{n}{lbtr}{}
+\DeclareFontShape{LY1}{hlct}{m}{sc}{<->ssub * hlct/m/n}{}
+\DeclareLucidaFontShape{LY1}{hlct}{m}{it}{lbto}{}
+\DeclareFontShape{LY1}{hlct}{m}{sl}{<->ssub * hlct/m/it}{}
+\DeclareLucidaFontShape{LY1}{hlct}{b}{n}{lbtb}{}
+\DeclareLucidaFontShape{LY1}{hlct}{b}{it}{lbtbo}{}
+\DeclareFontShape{LY1}{hlct}{b}{sc}{<->ssub * hlct/m/sc}{}
+\DeclareFontShape{LY1}{hlct}{b}{sl}{<->ssub * hlct/b/it}{}
+\DeclareFontShape{LY1}{hlct}{m}{sl}{<->ssub * hlct/m/it}{}
+\DeclareFontShape{LY1}{hlct}{bx}{n}{<->ssub * hlct/b/n}{}
+\DeclareFontShape{LY1}{hlct}{bx}{it}{<->ssub * hlct/b/it}{}
+\DeclareFontShape{LY1}{hlct}{bx}{sc}{<->ssub * hlct/b/sc}{}
+\DeclareFontShape{LY1}{hlct}{bx}{sl}{<->ssub * hlct/m/sl}{}
+%</LY1hlct>
+% \end{macrocode}
+%
+% \subsection{Lucida Fax font description files}
+% \begin{macrocode}
+%<*LY1hlx>
+\DeclareFontFamily{LY1}{hlx}{}
+\DeclareLucidaFontShape{LY1}{hlx}{m}{n}{lfr}{}
+\DeclareLucidaFontShape{LY1}{hlx}{b}{n}{lfd}{}
+\DeclareLucidaFontShape{LY1}{hlx}{m}{it}{lfi}{}
+\DeclareLucidaFontShape{LY1}{hlx}{b}{it}{lfdi}{}
+%</LY1hlx>
+% \end{macrocode}
+%
+% \subsection{Lucida Calligraphic font description files}
+% \begin{macrocode}
+%<*LY1hlce>
+\DeclareFontFamily{LY1}{hlce}{}
+\DeclareLucidaFontShape{LY1}{hlce}{m}{it}{lbc}{}
+\DeclareFontShape{LY1}{hlce}{m}{n}{<-> ssub * hlce/m/it}{}
+\DeclareFontShape{LY1}{hlce}{b}{n}{<-> ssub * hlce/m/it}{}
+\DeclareFontShape{LY1}{hlce}{b}{it}{<-> ssub * hlce/m/it}{}
+%</LY1hlce>
+% \end{macrocode}
+%
+% \subsection{Lucida Handwriting font description files}
+% \begin{macrocode}
+%<*LY1hlcw>
+\DeclareFontFamily{LY1}{hlcw}{}
+\DeclareLucidaFontShape{LY1}{hlcw}{m}{it}{lbh}{}
+\DeclareFontShape{LY1}{hlcw}{m}{n}{<-> ssub * hlcw/m/it}{}
+\DeclareFontShape{LY1}{hlcw}{b}{n}{<-> ssub * hlcw/m/it}{}
+\DeclareFontShape{LY1}{hlcw}{b}{it}{<-> ssub * hlcw/m/it}{}
+%</LY1hlcw>
+% \end{macrocode}
+%
+% \subsection{Lucida Black Letter font description files}
+% \begin{macrocode}
+%<*LY1hlcf>
+\DeclareFontFamily{LY1}{hlcf}{}
+\DeclareLucidaFontShape{LY1}{hlcf}{m}{n}{lbl}{}
+\DeclareFontShape{LY1}{hlcf}{m}{it}{<-> ssub * hlcf/m/n}{}
+\DeclareFontShape{LY1}{hlcf}{b}{n}{<-> ssub * hlcf/m/n}{}
+\DeclareFontShape{LY1}{hlcf}{b}{it}{<-> ssub * hlcf/m/n}{}
+%</LY1hlcf>
+% \end{macrocode}
+%
+% \subsection{Lucida Casual font description files}
+% \begin{macrocode}
+%<*LY1hlcn>
+\DeclareFontFamily{LY1}{hlcn}{}
+\DeclareLucidaFontShape{LY1}{hlcn}{m}{n}{lbkr}{}
+\DeclareFontShape{LY1}{hlcn}{m}{b}{<-> ssub * hlcn/m/n}{}
+\DeclareLucidaFontShape{LY1}{hlcn}{m}{it}{lbki}{}
+\DeclareFontShape{LY1}{hlcn}{b}{it}{<-> ssub * hlcn/m/it}{}
+%</LY1hlcn>
+% \end{macrocode}
+%
+% \section{Maths fonts font description files}
+%
+% \subsection{Lucida Math Italics font description files}
+% \begin{macrocode}
+%<*OMLhlcm>
+\DeclareFontFamily{OML}{hlcm}{\skewchar\font=127}
+%<yy>\DeclareLucidaFontShape{OML}{hlcm}{m}{n}{lbmr}{}
+%<kb>\DeclareLucidaFontShape{OML}{hlcm}{m}{n}{hlcrm}{}
+%<yy>\DeclareLucidaFontShape{OML}{hlcm}{b}{n}{lbmd}{}
+%<kb>\DeclareLucidaFontShape{OML}{hlcm}{b}{n}{hlcdm}{}
+%<yy>\DeclareLucidaFontShape{OML}{hlcm}{m}{it}{lbmo}{}
+%<kb>\DeclareLucidaFontShape{OML}{hlcm}{m}{it}{hlcrima}{}
+%<yy>\DeclareLucidaFontShape{OML}{hlcm}{b}{it}{lbmdo}{}
+%<kb>\DeclareLucidaFontShape{OML}{hlcm}{b}{it}{hlcdima}{}
+%<yy>\DeclareLucidaFontShape{OML}{hlcm}{m}{itx}{lbmi}{}
+%<kb>\DeclareLucidaFontShape{OML}{hlcm}{m}{itx}{hlcrim}{}
+%<yy>\DeclareLucidaFontShape{OML}{hlcm}{b}{itx}{lbmdi}{}
+%<kb>\DeclareLucidaFontShape{OML}{hlcm}{b}{itx}{hlcdim}{}
+%</OMLhlcm>
+% \end{macrocode}
+%
+% \subsection{Lucida Math Italics font description files}
+% \begin{macrocode}
+%<*OMLhlh>
+\DeclareFontFamily{OML}{hlh}{}
+\DeclareFontShape{OML}{hlh}{m}{n} {<-> ssub * hlcm/m/n}{}
+\DeclareFontShape{OML}{hlh}{m}{it} {<-> ssub * hlcm/m/n}{}
+\DeclareFontShape{OML}{hlh}{m}{sl} {<-> ssub * hlcm/m/n}{}
+\DeclareFontShape{OML}{hlh}{m}{sc} {<-> ssub * hlcm/m/n}{}
+\DeclareFontShape{OML}{hlh}{bx}{n} {<-> ssub * hlcm/b/n}{}
+\DeclareFontShape{OML}{hlh}{bx}{it} {<-> ssub * hlcm/b/n}{}
+\DeclareFontShape{OML}{hlh}{bx}{sl} {<-> ssub * hlcm/b/n}{}
+\DeclareFontShape{OML}{hlh}{bx}{sc} {<-> ssub * hlcm/b/n}{}
+%</OMLhlh>
+% \end{macrocode}
+%
+% \subsection{Lucida Math Symbols font description files}
+% \begin{macrocode}
+%<*OMShlh>
+\DeclareFontFamily{OMS}{hlh}{\skewchar\font=48}
+\DeclareFontShape{OMS}{hlh}{m}{n} {<-> ssub * hlcy/m/n}{}
+\DeclareFontShape{OMS}{hlh}{m}{it} {<-> ssub * hlcy/m/n}{}
+\DeclareFontShape{OMS}{hlh}{m}{sl} {<-> ssub * hlcy/m/n}{}
+\DeclareFontShape{OMS}{hlh}{m}{sc} {<-> ssub * hlcy/m/n}{}
+\DeclareFontShape{OMS}{hlh}{bx}{n} {<-> ssub * hlcy/b/n}{}
+\DeclareFontShape{OMS}{hlh}{bx}{it} {<-> ssub * hlcy/b/n}{}
+\DeclareFontShape{OMS}{hlh}{bx}{sl} {<-> ssub * hlcy/b/n}{}
+\DeclareFontShape{OMS}{hlh}{bx}{sc} {<-> ssub * hlcy/b/n}{}
+%</OMShlh>
+% \end{macrocode}
+%
+% \subsection{LucidaNewMath-Symbols font description files}
+% \begin{macrocode}
+%<*OMShlcy>
+\DeclareFontFamily{OMS}{hlcy}{\skewchar\font=48}
+%<yy>\DeclareLucidaFontShape{OMS}{hlcy}{m}{n}{lbms}{}
+%<kb>\DeclareLucidaFontShape{OMS}{hlcy}{m}{n}{hlcry}{}
+%<yy>\DeclareLucidaFontShape{OMS}{hlcy}{b}{n}{lbmsd}{}
+%<kb>\DeclareLucidaFontShape{OMS}{hlcy}{b}{n}{hlcdy}{}
+%</OMShlcy>
+% \end{macrocode}
+%
+% \subsection{LucidaNewMath-Extension font description files}
+% \begin{macrocode}
+%<*OMXhlcv>
+\DeclareFontFamily{OMX}{hlcv}{}
+%<yy>\DeclareLucidaFontShape{OMX}{hlcv}{m}{n}{lbme}{}
+%<kb>\DeclareLucidaFontShape{OMX}{hlcv}{m}{n}{hlcrv}{}
+%</OMXhlcv>
+% \end{macrocode}
+%
+% \subsection{LucidaNewMath-Arrows font description files}
+% \begin{macrocode}
+%<*LMRhlcm>
+\DeclareFontFamily{LMR}{hlcm}{}
+%<yy>\DeclareLucidaFontShape{LMR}{hlcm}{m}{n}{lbma}{}
+%<kb>\DeclareLucidaFontShape{LMR}{hlcm}{m}{n}{hlcra}{}
+%<yy>\DeclareLucidaFontShape{LMR}{hlcm}{b}{n}{lbmad}{}
+%<kb>\DeclareLucidaFontShape{LMR}{hlcm}{b}{n}{hlcda}{}
+%</LMRhlcm>
+% \end{macrocode}
+%
+% \Finale
diff --git a/macros/latex/contrib/psnfssx/lucidabr/lucidabr.ins b/macros/latex/contrib/psnfssx/lucidabr/lucidabr.ins
new file mode 100644
index 0000000000..47a37831bd
--- /dev/null
+++ b/macros/latex/contrib/psnfssx/lucidabr/lucidabr.ins
@@ -0,0 +1,75 @@
+% lucidabr.ins
+%% Generate fast loadable files and documentation driver files from the
+%% doc files in this package when run through LaTeX or TeX.
+%%
+%% Copyright 1995, 1996 Sebastian Rahtz
+%% Copyright 1997 Sebastian Rahtz, David Carlisle
+%% Copyright 2005 TeX Users Group
+%%
+%% This file is part of the lucidabr package.
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2003/12/01 or later.
+%%
+%% This work has the LPPL maintenance status "maintained".
+%%
+%% The Current Maintainer of this work is the TeX Users Group
+%% (http://tug.org/lucida).
+%%
+%% The list of all files belonging to the lucidabr package is
+%% given in the file `manifest.txt'.
+%%
+%% 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.
+%%
+\def\batchfile{lucidabr.ins}
+\input docstrip
+
+\keepsilent
+\askforoverwritefalse
+
+\preamble
+\endpreamble
+
+
+% the style files.
+\generate{%
+ \file{lucidabr.sty}{\from{lucidabr.dtx}{lucidabright,upalpha,varGamma,lucbmath}}
+ \file{lucidbrb.sty}{\from{lucidabr.dtx}{lucidbrb}}
+ \file{lucidbry.sty}{\from{lucidabr.dtx}{lucidbry}}
+ \file{luctime.sty}{\from{lucidabr.dtx}{luctime,lucbmath,luctim}}
+ \file{lucmtime.sty}{\from{lucidabr.dtx}{lucmtime,lucbmath,luctim}}
+ \file{lucmin.sty}{\from{lucidabr.dtx}{lucmin,lucbmath,luctim}}
+ \file{lucbmath.sty}{\from{lucidabr.dtx}{lucbmath}}
+ \file{lucfont.tex}{\from{lucidabr.dtx}{T1,lucfont}}}
+
+
+% the math-related fd files. The text fd files are generated through
+% fontinst, and are part of the (separate) lucida package, not the
+% present (lucidabr) package.
+%
+\generate{%
+ \file{omlhlcm.fd}{\from{lucidabr.fdd}{lucidascale,OMLhlcm,kb}}
+ \file{omshlcy.fd}{\from{lucidabr.fdd}{lucidascale,OMShlcy,kb}}
+ \file{omxhlcv.fd}{\from{lucidabr.fdd}{lucidascale,OMXhlcv,kb}}
+ \file{lmrhlcm.fd}{\from{lucidabr.fdd}{lucidascale,LMRhlcm,kb}}}
+
+\generate{%
+ \file{omlhlh.fd}{\from{lucidabr.fdd}{OMLhlh,kb}}
+ \file{omshlh.fd}{\from{lucidabr.fdd}{OMShlh,kb}}}
+
+\Msg{***************************************************************}
+\Msg{*}
+\Msg{* \space To finish the installation you have to copy the files }
+\Msg{* \space *.sty and *.fd into a directory searched by TeX}
+\Msg{* \space (TDS directory: texmf/tex/latex/lucidabr/).}
+\Msg{*}
+\Msg{***************************************************************}
+
+\endinput
diff --git a/macros/latex/contrib/psnfssx/lucidabr/lucidabr.pdf b/macros/latex/contrib/psnfssx/lucidabr/lucidabr.pdf
new file mode 100644
index 0000000000..7f3b1b2297
--- /dev/null
+++ b/macros/latex/contrib/psnfssx/lucidabr/lucidabr.pdf
Binary files differ
diff --git a/macros/latex/contrib/psnfssx/lucidabr/manifest.txt b/macros/latex/contrib/psnfssx/lucidabr/manifest.txt
new file mode 100644
index 0000000000..29214a9931
--- /dev/null
+++ b/macros/latex/contrib/psnfssx/lucidabr/manifest.txt
@@ -0,0 +1,16 @@
+Files covered by the LPPL:
+lucidabr.dtx
+lucidar.fdd
+lucida.ins
+(and derivatives)
+
+Files with all-permissive licenses:
+Makefile
+README
+README.TUG
+lucida-amsmath.tex
+lucida-oneline-samples.tex
+lucida-sample.tex
+manifest.txt :)
+(and derivatives)
+
diff --git a/macros/latex/contrib/psnfssx/ly1 b/macros/latex/contrib/psnfssx/ly1
new file mode 120000
index 0000000000..6e96a91e39
--- /dev/null
+++ b/macros/latex/contrib/psnfssx/ly1
@@ -0,0 +1 @@
+../../../../fonts/psfonts/ly1 \ No newline at end of file
diff --git a/macros/latex/contrib/psnfssx/mathtime/mathtime.dtx b/macros/latex/contrib/psnfssx/mathtime/mathtime.dtx
new file mode 100644
index 0000000000..53adb58060
--- /dev/null
+++ b/macros/latex/contrib/psnfssx/mathtime/mathtime.dtx
@@ -0,0 +1,1187 @@
+%
+% \iffalse
+%% Copyright 1996 1997 Frank Mittelbach and David Carlisle.
+%%
+%% Development of this package was commissioned by Y&Y Inc.
+%% http://www.yandy.com
+%% This package may be distributed under the terms of the LaTeX Project Public
+%% License, as described in lppl.txt in the base LaTeX distribution.
+%% Either version 1.0 or, at your option, any later version.
+%%
+%
+%
+%<*dtx>
+ \ProvidesFile{mathtime.dtx}
+%</dtx>
+%<package>\NeedsTeXFormat{LaTeX2e}[1995/01/01]
+%<mathtime>\ProvidesPackage{mathtime}
+%<mathpi>\ProvidesPackage{mathpi}
+%<driver>\ProvidesFile{mathtime.drv}
+% \fi
+% \ProvidesFile{mathtime.dtx}
+ [1999/03/29 v1.1%
+%<mathtime> mathtime
+%<mathpi> mathpi
+ font support (FMi/DPC)]
+%
+% \iffalse
+%<*driver>
+\documentclass{ltxdoc}
+%\usepackage{mathtime}
+\DocInput{mathtime.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{853}
+%
+% \GetFileInfo{mathtime.dtx}
+% \begin{document}
+% \title{The \textsf{mathtime} and \textsf{mathpi} packages\thanks
+% {This file has version number \fileversion,
+% last revised \filedate.}\ \thanks{Development of
+% this package was commissioned by Y\&Y.}}
+%
+% \date{\filedate}
+% \author{Frank Mittelbach with support by David Carlisle}
+% \maketitle
+%
+% \section{The mathtime package}
+%
+% The mathtime package contains the code to support the Math Time fonts.
+%
+% \subsection{Usage and options}
+%
+% To load support for the Math Time fonts add the following
+% declaration to the preamble of your \LaTeX{} document:
+% \begin{quote}
+% \verb=\usepackage[=\meta{options}\verb=]{mathtime}=
+% \end{quote}
+% This package supports several options:
+% \begin{description}
+% \item[nobold] default.
+%
+% \item[cmbold] use cm bold fonts (not recommended, the bold fonts
+% will then be encoded differently to the normal weight ones, and
+% no account of this will be taken).
+%
+% \item[mtbold] This provides bold and heavy math versions coming
+% with the Math Time Plus fonts.
+%
+% \item[heavybold] Also requires the Math Time Plus font set, just
+% define bold math version (not heavy) but use the heavy fonts where
+% available.
+%
+% In all cases the user level command |\heavymath| is defined to be
+% |\boldmath| if the heavy math version is not defined.
+%
+% \item[slantedgreek] Make the lowercase greek letters slanted
+% (by default).
+% Note that the uppercase greek letters are always upright.
+%
+% \item[uprightgreek] Make the lowercase greek letters upright.
+%
+% \item[subscriptcorrection]
+% Redefine |_| so that it automatically adds negative kerns in
+% subscripts if they start with either
+% \texttt{j}, \texttt{p}, or \texttt{f}.
+% This option might generate problems if other packages are
+% loaded as well.
+%
+% The subscript correction also be be turned on and off within the
+% document using the commands:\\
+% |\enablesubscriptcorrection| and
+% |\disablesubscriptcorrection|.
+%
+% \item[nosubscriptcorrection]
+% Disable the the subscript correction (default).
+%
+% \item[cmcal]
+% This option uses the Computer Modern calligraphic alphabet
+% for |\mathcal| --- a bad choice, but what do you do if nothing else
+% is at your disposal. We make this the default as we know that it is
+% always around.
+%
+% \item[lucidacal] This options sets up |\mathcal| to load the Lucida
+% calligraphic font as a math alphabet. It also defines |\mathbcal| to
+% always refer to the bold series of this alphabet.
+%
+% \item[lucidascr] Like \texttt{lucidacal} but puts the font into
+% |\mathscr|. This might be useful if for some reason |\mathcal|
+% already contains some special calligraphic alphabet.
+%
+% \item[mtplusscr] This options sets up |\mathscr| to load the Math Time
+% Plus script font as a math alphabet. It also defines |\mathbscr| to
+% always refer to the bold series of this alphabet.
+%
+% \item[mtpluscal] Like \texttt{mtplusscr} but puts the font into the
+% |\mathcal| alphabet.
+%
+% \item[noTS1]
+% The use of the mathtime fonts with text fonts encoded in the
+% standard OT1 or T1 encodings leaves a few symbols (section and
+% paragraph marks, and dagger symbols) undefined.
+% By default the TS1 `text companion encoding' will be used to access
+% these symbols, but this option suppresses that.
+% If the LY1 option (below) is used this option
+% will be implied and dagger etc will be drawn from the operators font.
+%
+% \item[OT1] Use OT1 encoing for the operators font. This is the
+% normal behaviour, but in this package the default behaviour is to
+% use the default text encoding for the operators font.
+%
+% \item[T1] Use T1 encoding for the operators font.
+%
+% \item[LY1] Use LY1 (Y\&Y's `locally' defined texnansi encoding)
+% In the operators font. This option implies the noTS1 option.
+% Dagger etc will be drawn from the operators font in this case.
+%
+% \end{description}
+%
+% Not all options can be used together, e.g., one can at most select one
+% of the options setting up |\mathcal|, if both options are given
+% \texttt{mtpluscal} will win over \texttt{luciadcal} and in case of
+% |\mathscr|,
+% \texttt{lucidascr} will be the winner over \texttt{mtplusscr}.
+%
+% This package makes a lot of font re-assignments. Normally these
+% generate warning messages on the terminal, however getting so many
+% messages would be distracting, so a further three options control the
+% font tracing. Even more control may be obtained by loading the
+% \textsf{tracefnt} package.
+%
+% \begin{description}
+% \item[errorshow] Only show font \emph{errors} on the terminal.
+% Warnings are just sent to the log file. This is the default
+% for this package.
+%
+% \item[warningshow] Show font warnings on the terminal. This
+% corresponds to the usual \LaTeX\ behaviour.
+%
+% \item[nofontinfo] Suppress all font warnings, even from the log file.
+% \end{description}
+%
+%
+%
+% \subsection{Text fonts}
+% The package sets up Times, Helvetica, and Courier as the default
+% text fonts (selected through |\textrm|, |\textsf|, and |\texttt|)
+% unless the text fonts have been explicitly set, e.g., by loading a
+% package like \texttt{newcent} before loading the \texttt{mathtime}
+% package.
+% More exactly the package checks if |\rmdefault| refers to \texttt{cmr}
+% and in that case changes all three defaults.
+%
+% To support a few symbols not available in the Math Time fonts (but
+% normally available with \LaTeX) the \texttt{mathtime} package has to
+% load the the symbol companion font for Times (i.e., the TS1 encoded
+% font).
+% To preserve space we do not load the corresponding package
+% (\texttt{texcomp}) but only declare those characters we do need.
+% If you do want all symbols from this font available in your text load
+% the \texttt{textcomp} package in the preamble. Conversely you
+% may suppress the declaration of these symbols from the TS1 encoded
+% fonts by use of the \texttt{nots1} package option, in which case
+% the default definitions refering to the standard \TeX\ encodings
+% and hence possibly the Computer Modern fonts will be used.
+%
+% \subsection{Provided math alphabets}
+%
+% The package provides be default the five standard math alphabets
+% |\mathrm|, |\mathbf|, |\mathit|, |\mathsf| and |\mathtt| pointing
+% to the document text fonts, the first three to the roman font
+% in normal, bold, and italic, the others to the sans serif and the
+% typewriter font.
+%
+% The |\mathcal| and |\mathbcal| defaults to the Computer Modern
+% calligraphic alphabet but can be modified with options as decribed
+% above.
+%
+% Script alphabets with |\mathscr| and |\mathbscr| are only available
+% if explicitly selected by an option.
+%
+% Alternatively one can select other fonts for |\mathscr| and
+% |\mathcal|, for example, by loading the \texttt{mathpi} package
+% described below.
+% An alternative (although not blending very well) would be the
+% the Euler Script fonts from the AMS font collection which can be
+% loaded as either |\mathcal| or |\mathscr| using the \texttt{eucal}
+% package.
+%
+% A Fraktur alphabet (|\mathfrak|) can be loaded with the
+% \texttt{mathpi} fonts (a good match) or by loading the \texttt{eufrak}
+% package from the AMS font collection.
+%
+%
+% \subsection{Additional or changed symbols}
+%
+% The Math Time fonts contain a small number of additional symbols which
+% are made available by the \texttt{mathtime} package.
+% See the general documentation of the Math Time fonts.
+%
+% \subsection{Font sizes}
+%
+% \LaTeX{} is set up in a way that the user normally uses commands
+% that hide font sizes rather than specifying font sizes explicitly,
+% e.g., instead of |\fontsize{17pt}{19pt}|\allowbreak|\selectfont|
+% a command like |\LARGE| is used (which does in fact a bit more than
+% just setting the font size).
+%
+% It is the task of a document class and not that task of a support
+% package like this one to decide about the absolute sizes used in a
+% document.
+% The task of a package like \texttt{mathtime} is to provide sensible
+% values for math sizes given some text size.
+%
+% The default ratio for script fonts is 0.76
+% and for scriptscript fonts 0.6.
+%
+%
+% \section{The mathpi package}
+%
+% The mathpi package provides support for the Adobe math pi fonts by
+% declaring a number of math alphabets. It can be used independly of the
+% mathtime package. At least one option has to be given, otherwise
+% loading this package will have no effect.
+% \begin{description}
+% \item[mathfrak] Defines |\mathfrak| to refer to the fraktur alphabet
+% from the Math Pi Two font.
+% \item[mathscr] Defines |\mathscr| to refer to the script alphabet
+% from the Math Pi Two font. This needs the font especially encoded,
+% see \texttt{mtfonts.fdd} for details.
+% \item[mathcal] Defines the script alphabet under the math alphabet
+% command usually used for a calligraphic font, otherwise like
+% \texttt{mathscr}.
+% \item[mathbb] Defines |\mathbb| to refer to the blackboard bold math
+% alphabet from Math Pi Six.
+% \end{description}
+%
+%
+% \StopEventually{}
+%
+%
+%
+% \section{The implementation of mathtime}
+%
+% \changes{v0.2}{1996/12/12}
+% {nobold cmbold mtbold and heavybold options}
+% \changes{v0.3}{1996/12/17}
+% {nobold cmbold mtbold and heavybold options}
+% \changes{v0.7}{1997/01/10}
+% {Add font tracing control options}
+% \changes{v0.9}{1997/01/16}
+% {First public release}
+% \changes{v1.0a}{1997/02/14}
+% {First ctan release}
+% \changes{v1.0d}{1997/09/01}
+% {Remove use of double quote hex convention}
+%
+% \subsection{Options}
+%
+% We start with declaring the options. For the (un)slanted greek we need
+% store the shape information in a macro. For the various bold options
+% we use |\boldmath| as a marker since this needs redefinition anyway.
+% \begin{macrocode}
+%<*mathtime>
+\newcommand\greekshape{}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareOption{slantedgreek}{\renewcommand\greekshape{it}}
+\DeclareOption{uprightgreek}{\renewcommand\greekshape{n}}
+\DeclareOption{nobold}{\let\boldmath=u}
+\DeclareOption{cmbold}{\let\boldmath=c}
+\DeclareOption{mtbold}{\let\boldmath=m}
+\DeclareOption{heavybold}{\let\boldmath=h}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\newcommand\enablesubscriptcorrection {\catcode`\_=12\relax}
+\newcommand\disablesubscriptcorrection{\catcode`\_=8\relax}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareOption{nosubscriptcorrection}{\disablesubscriptcorrection}
+\DeclareOption{subscriptcorrection} {\enablesubscriptcorrection}
+% \end{macrocode}
+%
+% We signal that we want Lucida calligraphic by defining |\mathcal|
+% to be the letter |l|. In a similar fashion we handle |\mathscr|.
+% \begin{macrocode}
+\DeclareOption{cmcal} {\let\mathcal=c}
+\DeclareOption{lucidacal}{\let\mathcal=l}
+\DeclareOption{mtplusscr}{\let\mathscr=s}
+\DeclareOption{mtpluscal}{\let\mathcal=s}
+\DeclareOption{lucidascr}{\let\mathscr=l}
+% \end{macrocode}
+%
+%
+% The use of the mathtime fonts with text fonts encoded in the standard
+% OT1 or T1 encodings leaves a few symbols (section and paragraph marks,
+% and dagger symbols) undefined. By default the TS1 `text companion
+% encoding' will be used to access these symbols, but this option
+% suppresses that. (Leaving you to define these symbols yourself
+% some other way, or to accept the default definitions, from
+% Computer Modern.)
+% \changes{v0.9b}{1997/01/31}
+% {option name change nots1 noTS1}
+% \begin{macrocode}
+\DeclareOption{noTS1} {\let\symtextcomp\relax}
+% \end{macrocode}
+%
+% The next few options control the encoding used for the `operators'
+% font. When using Computer Modern Math fonts an OT1 font must be used
+% even if an alternative encoding, such as T1, is used for the text
+% fonts. This is due to the fact that the default math setup assumes
+% that certain symbols (such as uppercase Greek) are available from the
+% text font used for the operators symbol font. With this package
+% this restriction is not needed as all symbols are accessed from the
+% mathtime fonts.
+% \changes{v0.9b}{1997/01/31}
+% {New options for operator font encoding}
+% By default use the current text encoding.
+% \begin{macrocode}
+\let\operator@encoding\encodingdefault
+% \end{macrocode}
+%
+% Use OT1 encoded `operators' fonts.
+% \begin{macrocode}
+\DeclareOption{OT1}{\def\operator@encoding{OT1}}
+% \end{macrocode}
+%
+% Use T1 encoded `operators' fonts.
+% \begin{macrocode}
+\DeclareOption{T1}{\def\operator@encoding{T1}}
+% \end{macrocode}
+%
+% Use LY1 (The local `texnansi' encoding used by the Y\&Y \TeX\ system)
+% encoded `operators' fonts. This option implies the `noTS1' option
+% as the LY1 encoding includes the dagger and other symbols.
+% \begin{macrocode}
+\DeclareOption{LY1}{\def\operator@encoding{LY1}\ExecuteOptions{noTS1}}
+% \end{macrocode}
+%
+% This package makes a lot of redefinitions. The warnings can be rather
+% annoying so some package options control whether the information
+% is printed to the terminal or log file. More control can be obtained
+% by loading the \textsf{tracefnt} package.
+%
+% Just show font errors; Warning and info to the log file.
+% The default for this package.
+% \begin{macrocode}
+\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}}}
+% \end{macrocode}
+%
+% The normal \LaTeX\ default, Font Info to the log file and Font
+% Warning to the terminal.
+% \begin{macrocode}
+\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}}}
+% \end{macrocode}
+%
+% On some machines writing all the log info may slow things down
+% so extra option not to log font changes at all.
+% \begin{macrocode}
+\DeclareOption{nofontinfo}{%
+ \let\@font@info\@gobble
+ \let\@font@warning\@gobble}
+% \end{macrocode}
+%
+% The defaults:
+% \begin{macrocode}
+\ExecuteOptions{%
+ slantedgreek,nobold,nosubscriptcorrection,cmcal,errorshow}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\ProcessOptions
+% \end{macrocode}
+%
+% If the text font default for roman is CMR we switch to Times,
+% otherwise we assume that the user has already added a package
+% selecting the text font faces.
+% \begin{macrocode}
+\edef\@tempa{\rmdefault}
+\def\@tempb {cmr}
+\ifx\@tempa\@tempb
+ \renewcommand*\sfdefault{phv}
+ \renewcommand*\rmdefault{ptm}
+ \renewcommand*\ttdefault{pcr}
+ \renewcommand*\bfdefault{b}
+\fi
+% \end{macrocode}
+%
+% \subsection{Math Font Declarations}
+%
+% As the Math Time fonts unfortunately do come with their private
+% encoding we need to make those encodings known to \LaTeX.
+% \begin{macrocode}
+\DeclareFontEncoding{MY1}{}{}
+\DeclareFontEncoding{MY2}{}{}
+\DeclareFontEncoding{MY3}{}{}
+\DeclareFontSubstitution{MY1}{mtt}{m}{it}
+\DeclareFontSubstitution{MY2}{mtt}{m}{n}
+\DeclareFontSubstitution{MY3}{mtt}{m}{n}
+% \end{macrocode}
+%
+% Not clear if we should use |\rmdefault| or fix the operator symbol
+% font to Times --- probably the latter.
+%
+% The main four symbol fonts are already declared in the \LaTeX{}
+% format. Thus we don't need to declare them but simply change he
+% relevant slots in the normal and bold math version.
+%
+% \changes{v0.9b}{1997/01/31}
+% {Dont force OT1 encoding for operators}
+% \begin{macrocode}
+%\DeclareSymbolFont{operators} {\operator@encoding}{\rmdefault}{m}{n}
+%\DeclareSymbolFont{letters} {MY1}{mtt}{m}{it}
+%\DeclareSymbolFont{symbols} {MY2}{mtt}{m}{n}
+%\DeclareSymbolFont{largesymbols}{MY3}{mtt}{m}{n}
+% \end{macrocode}
+%
+% The normal weight fonts are availble by default.
+% \begin{macrocode}
+\SetSymbolFont{operators} {normal}{\operator@encoding}{ptm}{m}{n}
+\SetSymbolFont{letters} {normal}{MY1}{mtt}{m}{it}
+\SetSymbolFont{symbols} {normal}{MY2}{mtt}{m}{n}
+\SetSymbolFont{largesymbols}{normal}{MY3}{mtt}{m}{n}
+% \end{macrocode}
+%
+% If the |cmbold| package option is specified then the
+% Computer Modern Bold math fonts will be used (as is the
+% normal \LaTeX\ default). The mathtime fonts are \emph{differently}
+% encoded, and so the use of this option may produce some incorrect
+% characters (with no warning). However it may be useful if the
+% `mathtime plus' bold fonts are not available, and a few bold
+% symbols are needed for special circumstances. (However CM bold
+% is not much bolder than mathtime normal weight, and is not really
+% visually compatible).
+% \begin{macrocode}
+\ifx\boldmath c
+ \SetSymbolFont{operators} {bold}{\operator@encoding}{cmr}{bx}{n}
+ \SetSymbolFont{letters} {bold}{OML}{cmm}{b}{it}
+ \SetSymbolFont{symbols} {bold}{OMS}{cmsy}{b}{n}
+ \SetSymbolFont{largesymbols}{bold}{MY3}{mtt}{m}{n}
+\PackageWarningNoLine{mathtime}
+ {The use of the `cmbold' option will result\MessageBreak
+ in incorrect characters in some circumstances\MessageBreak
+ without any warning as the Math Time fonts and the\MessageBreak
+ Computer Modern fonts have incompatible encodings.\MessageBreak
+ Please use this option with care!\@gobble}
+% \end{macrocode}
+%
+% \begin{macrocode}
+ \renewcommand\boldmath{\@nomath\boldmath\mathversion{bold}}
+ \let\heavymath\boldmath
+\fi
+% \end{macrocode}
+%
+% This is the default behaviour for this package, |\boldmath| is
+% not available. As it is no longer available save some space
+% by removing it from the internal list of math versions.
+% (Then waste most of the saving on the text of an error message.)
+% \begin{macrocode}
+\ifx\boldmath u
+ \let\@tempa\version@elt
+ \def\version@elt#1{%
+ \ifx\mv@bold#1\else\noexpand\version@elt\noexpand#1\fi}
+ \edef\version@list{\version@list}
+ \let\version@elt\@tempa
+ \let\mv@bold\@undefined
+ \renewcommand\boldmath{\PackageError{mathtime}%
+ {Bold math is not supported}%
+ {Use cmbold or mtbold options}}
+ \let\heavymath\boldmath
+\fi
+% \end{macrocode}
+%
+% If the bold (and heavy) mathtime fonts are available then they
+% can be assigned to the appropriate math versions by specifying the
+% |mtbold| package option.
+% \begin{macrocode}
+\ifx\boldmath m
+ \SetSymbolFont{operators}{bold}{\operator@encoding}{\rmdefault}{b}{n}
+ \SetSymbolFont{letters} {bold}{MY1}{mtt}{b}{\greekshape}
+ \SetSymbolFont{symbols} {bold}{MY2}{mtt}{b}{n}
+ \SetSymbolFont{largesymbols}{bold}{MY3}{mtt}{b}{n}
+% \end{macrocode}
+%
+% \begin{macrocode}
+ \DeclareMathVersion{heavy}
+ \SetSymbolFont{operators}{heavy}{\operator@encoding}{\rmdefault}{b}{n}
+ \SetSymbolFont{letters} {heavy}{MY1}{mtt}{ub}{\greekshape}
+ \SetSymbolFont{symbols} {heavy}{MY2}{mtt}{ub}{n}
+ \SetSymbolFont{largesymbols}{heavy}{MY3}{mtt}{ub}{n}
+% \end{macrocode}
+%
+% \changes{v0.9a}{1997/01/17}
+% {Redeclare colon etc to the symbols font}
+% As the bold font is available, use these symbols from
+% the symbols font rather than operators, so they are made
+% bold by |\boldmath|.
+% \begin{macrocode}
+ \DeclareMathSymbol{:}{\mathrel}{symbols}{86}
+ \DeclareMathSymbol{!}{\mathclose}{symbols}{87}
+ \DeclareMathSymbol{[}{\mathopen}{symbols}{84}
+ \DeclareMathSymbol{]}{\mathclose}{symbols}{85}
+% \end{macrocode}
+%
+% \begin{macrocode}
+ \renewcommand\boldmath{\@nomath\boldmath\mathversion{bold}}
+ \newcommand\heavymath{\@nomath\heavymath\mathversion{heavy}}
+\fi
+% \end{macrocode}
+%
+% Alternatively, you may specify the |heavybold| option, which
+% instead of having a `heavy' math version, places the heavy
+% fonts in the `bold' math version, to get greater visual
+% contrast.
+% \begin{macrocode}
+\ifx\boldmath h
+ \SetSymbolFont{operators}{bold}{\operator@encoding}{\rmdefault}{b}{n}
+ \SetSymbolFont{letters} {bold}{MY1}{mtt}{ub}{\greekshape}
+ \SetSymbolFont{symbols} {bold}{MY2}{mtt}{ub}{n}
+ \SetSymbolFont{largesymbols}{bold}{MY3}{mtt}{ub}{n}
+% \end{macrocode}
+%
+% As above, use these symbols from
+% the symbols font rather than operators, so they are made
+% bold by |\boldmath|.
+% \begin{macrocode}
+ \DeclareMathSymbol{:}{\mathrel}{symbols}{86}
+ \DeclareMathSymbol{!}{\mathclose}{symbols}{87}
+ \DeclareMathSymbol{[}{\mathopen}{symbols}{84}
+ \DeclareMathSymbol{]}{\mathclose}{symbols}{85}
+% \end{macrocode}
+%
+% \begin{macrocode}
+ \renewcommand\boldmath{\@nomath\boldmath\mathversion{bold}}
+ \let\heavymath\boldmath
+\fi
+% \end{macrocode}
+%
+%
+% \subsection{Math alphabet declarations}
+%
+% The standard alphabets first.
+%
+% We don't have to declare |\mathrm| as \LaTeX{} declares it as
+% a math symbol alphabet pointing to ``operators'' symbol font.
+% But if we redeclare it it will then use the text fonts which might
+% not be Times.
+%
+% As standard \LaTeX{} provides a couple of alphabets we better change
+% them all \ldots
+% \begin{macrocode}
+\SetMathAlphabet{\mathrm}{normal}{\encodingdefault}{\rmdefault}{m}{n}
+\SetMathAlphabet{\mathbf}{normal}{\encodingdefault}{\rmdefault}{b}{n}
+\SetMathAlphabet{\mathit}{normal}{\encodingdefault}{\rmdefault}{m}{it}
+\SetMathAlphabet{\mathsf}{normal}{\encodingdefault}{\sfdefault}{m}{n}
+\SetMathAlphabet{\mathtt}{normal}{\encodingdefault}{\ttdefault}{m}{n}
+% \end{macrocode}
+%
+% If a bold or heavy version exists add appropriate values.
+% Right now |\mathbf| is the same in all versions.
+% \begin{macrocode}
+\ifx\mv@bold\@undefined
+\else
+ \SetMathAlphabet{\mathrm}{bold} {\encodingdefault}{\rmdefault}{b}{n}
+ \SetMathAlphabet{\mathbf}{bold} {\encodingdefault}{\rmdefault}{b}{n}
+ \SetMathAlphabet{\mathit}{bold} {\encodingdefault}{\rmdefault}{b}{it}
+ \SetMathAlphabet{\mathsf}{bold} {\encodingdefault}{\sfdefault}{b}{n}
+% \end{macrocode}
+% If the typewriter is Computer Modern the next declaration will revert
+% to normal (with a warning) but such is life.
+% \begin{macrocode}
+ \SetMathAlphabet{\mathtt}{bold} {\encodingdefault}{\ttdefault}{b}{n}
+\fi
+% \end{macrocode}
+%
+% \begin{macrocode}
+\ifx\mv@heavy\@undefined
+\else
+ \SetMathAlphabet{\mathrm}{heavy}{\encodingdefault}{\rmdefault}{b}{n}
+ \SetMathAlphabet{\mathbf}{heavy}{\encodingdefault}{\rmdefault}{b}{n}
+ \SetMathAlphabet{\mathit}{heavy}{\encodingdefault}{\rmdefault}{b}{it}
+ \SetMathAlphabet{\mathsf}{heavy}{\encodingdefault}{\sfdefault}{b}{n}
+ \SetMathAlphabet{\mathtt}{heavy}{\encodingdefault}{\ttdefault}{b}{n}
+\fi
+% \end{macrocode}
+%
+% \subsubsection{Script alphabets}
+%
+% If the \texttt{mtplusscr} option was selected
+% we make |\mathscr| point to Spivak's script font.
+%
+% Declaring the bold version first takes care of bold and heavy
+% version.
+% So far this doesn't allow for alternatives but I think the best
+% solution here would be to provide input ligatures \texttt{*A}
+% etc.\ in the font itself. However as \TeX{} doesn't handle math
+% accents correctly in that case that idea might not be so good after
+% all.
+% Perhaps defining a |\variant| command might be better, e.g.,
+% |\mathscr{\variant A}| --- we'll see.
+% \changes{v1.0b}{1997/02/24}
+% {clear existing definitions of \cs{mathscr} and \cs{mathcal}}
+% \begin{macrocode}
+\ifx\mathscr s
+ \let\mathscr\relax
+ \DeclareMathAlphabet\mathscr{U} {mtms}{b}{n}
+ \SetMathAlphabet \mathscr{normal}{U}{mtms}{m}{n}
+% \end{macrocode}
+%
+% The |\mathbscr| is bold in all versions.
+% \begin{macrocode}
+ \DeclareMathAlphabet\mathbscr{U}{mtms}{b}{n}
+\fi
+% \end{macrocode}
+%
+% If \texttt{lucidascr} was selected we put the Lucida calligraphic
+% font in |\mathscr|:
+% \begin{macrocode}
+\ifx\mathscr l
+ \let\mathscr\relax
+ \DeclareMathAlphabet{\mathscr} {OMS}{lby}{b}{n}
+ \SetMathAlphabet {\mathscr}{normal} {OMS}{lby}{m}{n}
+% \end{macrocode}
+% |\mathbscr| will be bold in all math versions.
+% \begin{macrocode}
+ \DeclareMathAlphabet{\mathbscr} {OMS}{lby}{b}{n}
+\fi
+% \end{macrocode}
+%
+% \subsubsection{Calligraphic alphabets}
+%
+% If the \texttt{lucidacal} option was selected we set up |\mathcal|.
+% \begin{macrocode}
+\ifx\mathcal l
+ \let\mathcal\relax
+ \DeclareMathAlphabet{\mathcal} {OMS}{lby}{b}{n}
+ \SetMathAlphabet {\mathcal}{normal} {OMS}{lby}{m}{n}
+% \end{macrocode}
+% |\mathbcal| will be bold in all math versions.
+% \begin{macrocode}
+ \DeclareMathAlphabet{\mathbcal} {OMS}{lby}{b}{n}
+\fi
+% \end{macrocode}
+%
+% The code below refers to the \texttt{mtpluscal} option:
+% \begin{macrocode}
+\ifx\mathcal s
+ \let\mathcal\relax
+ \DeclareMathAlphabet\mathcal{U} {mtms}{b}{n}
+ \SetMathAlphabet \mathcal{normal}{U}{mtms}{m}{n}
+% \end{macrocode}
+%
+% The |\mathbcal| is bold in all versions.
+% \begin{macrocode}
+ \DeclareMathAlphabet\mathbcal{U}{mtms}{b}{n}
+\fi
+% \end{macrocode}
+% The code below will be used if no calligraphic option has been
+% selected. We need to redeclare that alphabet as by default it points
+% to the symbols alphabet that in case of the Math Time fonts simply
+% doesn't contain a math alphabet any longer.
+% \begin{macrocode}
+\ifx\mathcal c
+ \let\mathcal\relax
+ \DeclareMathAlphabet\mathcal{OMS} {cmsy}{b}{n}
+ \SetMathAlphabet \mathcal{normal}{OMS}{cmsy}{m}{n}
+% \end{macrocode}
+%
+% The |\mathbcal| is bold in all versions.
+% \begin{macrocode}
+ \DeclareMathAlphabet\mathbcal{OMS} {cmsy}{b}{n}
+
+\fi
+% \end{macrocode}
+%
+% \subsection{Math Symbol Declarations}
+%
+% In MathT\i me, italic upper case Greek found in math italic font
+% and we don't make them changable with the font.
+% \begin{macrocode}
+\DeclareMathSymbol\Gamma {\mathord}{letters}{48}
+\DeclareMathSymbol\Delta {\mathord}{letters}{49}
+\DeclareMathSymbol\Theta {\mathord}{letters}{50}
+\DeclareMathSymbol\Lambda {\mathord}{letters}{51}
+\DeclareMathSymbol\Xi {\mathord}{letters}{52}
+\DeclareMathSymbol\Pi {\mathord}{letters}{53}
+\DeclareMathSymbol\Sigma {\mathord}{letters}{54}
+\DeclareMathSymbol\Upsilon{\mathord}{letters}{55}
+\DeclareMathSymbol\Phi {\mathord}{letters}{56}
+\DeclareMathSymbol\Psi {\mathord}{letters}{57}
+\DeclareMathSymbol\Omega {\mathord}{letters}{127}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareMathSymbol\varGamma {\mathord}{letters}{0}
+\DeclareMathSymbol\varDelta {\mathord}{letters}{1}
+\DeclareMathSymbol\varTheta {\mathord}{letters}{2}
+\DeclareMathSymbol\varLambda {\mathord}{letters}{3}
+\DeclareMathSymbol\varXi {\mathord}{letters}{4}
+\DeclareMathSymbol\varPi {\mathord}{letters}{5}
+\DeclareMathSymbol\varSigma {\mathord}{letters}{6}
+\DeclareMathSymbol\varUpsilon {\mathord}{letters}{7}
+\DeclareMathSymbol\varPhi {\mathord}{letters}{8}
+\DeclareMathSymbol\varPsi {\mathord}{letters}{9}
+\DeclareMathSymbol\varOmega {\mathord}{letters}{10}
+% \end{macrocode}
+% The next setting all need to be checked for correctness
+% (with a test file).
+% Those settings where I think the \LaTeX{} defaults are the same, are
+% commented out.
+%
+% \begin{macrocode}
+\DeclareMathSymbol{(}{\mathopen}{letters}{46} % was 028
+\DeclareMathSymbol{)}{\mathclose}{letters}{47} % was 029
+% \end{macrocode}
+%
+% Not sure this version of |\DeclareMathDelimiter| is documented or
+% used anywhere, but like |\DeclareMathSymbol| it can take
+% a character token (and one less argument).
+% \changes{v0.2}{1996/12/12}{use \cs{DeclareMathDelimiter}}
+% \begin{macrocode}
+\DeclareMathDelimiter{(}{letters}{46}{largesymbols}{0}
+\DeclareMathDelimiter{)}{letters}{47}{largesymbols}{1}
+% \end{macrocode}
+%
+% \begin{macrocode}
+%\DeclareMathSymbol{.}{\mathord}{letters}{58}
+%\DeclareMathSymbol{,}{\mathpunct}{letters}{59}
+%\DeclareMathSymbol{\ldotp}{\mathpunct}{letters}{58}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareMathSymbol{\triangleleft}{\mathbin}{symbols}{71} % was 12F
+\DeclareMathSymbol{\triangleright}{\mathbin}{symbols}{70} % was 12E
+% \end{macrocode}
+%
+% \changes{v0.9c}{1997/02/07}
+% {Add \cs{varkappa}}
+% \begin{macrocode}
+\DeclareMathSymbol{\comp}{\mathbin}{symbols}{66} % new?
+\DeclareMathSymbol{\setdif}{\mathbin}{symbols}{88} % new
+\DeclareMathSymbol{\cupprod}{\mathbin}{symbols}{89} % new
+\DeclareMathSymbol{\capprod}{\mathbin}{symbols}{90} % new
+\DeclareMathSymbol{+}{\mathbin}{symbols}{67} % was 02B
+\DeclareMathSymbol{=}{\mathrel}{symbols}{68} % was 03D
+\let\Relbar\@undefined
+\DeclareMathSymbol{\Relbar}{\mathrel}{symbols}{72} % was a macro
+\DeclareMathSymbol{;}{\mathpunct}{symbols}{73} % was 13B
+\DeclareMathSymbol{\varkappa}{\mathord}{letters}{126} % new (AMS)
+% \end{macrocode}
+%
+% We make all accents |\mathord|; as they are placed in strange
+% positions it is really not feasible to support changing them.
+% \begin{macrocode}
+\DeclareMathAccent{\vec}{\mathord}{symbols}{69}
+\DeclareMathAccent{\grave}{\mathord}{symbols}{74}
+\DeclareMathAccent{\acute}{\mathord}{symbols}{75}
+\DeclareMathAccent{\check}{\mathord}{symbols}{76}
+\DeclareMathAccent{\breve}{\mathord}{symbols}{77}
+\DeclareMathAccent{\bar}{\mathord}{symbols}{78}
+\DeclareMathAccent{\hat}{\mathord}{symbols}{79}
+\DeclareMathAccent{\dot}{\mathord}{symbols}{80}
+\DeclareMathAccent{\tilde}{\mathord}{symbols}{81}
+\DeclareMathAccent{\ddot}{\mathord}{symbols}{82}
+\DeclareMathAccent{\widebar}{\mathord}{symbols}{83} % new
+% \end{macrocode}
+%
+% Next two are the same as in standard \LaTeX{}.
+% \begin{macrocode}
+%\DeclareMathAccent{\widetilde}{\mathord}{largesymbols}{101}
+%\DeclareMathAccent{\widehat}{\mathord}{largesymbols}{98}
+% \end{macrocode}
+%
+% \subsection{AMS double accent commands}
+%
+% Unfortunately the AMS double accent commands such as |\Hat|
+% assume that the math accents come from an `OT1' encoded
+% font in the `operators' math symbol font. To use
+% these commands with mathtime you may need to place code
+% such as the following into a package file and load that after
+% loading the \textsf{amsmath} package. This section is commented out
+% here as it would not work without several other sections of
+% \textsf{amsmath}, and a future release of the AMS package may anyway
+% remove some of these encoding assumptions.
+%
+%\begin{verbatim}
+% \def\@math@ccent#1#2#3{%
+% \RIfM@
+% \xdef\thefam@{\ifnum\mathgroup=\m@ne1\else\the\mathgroup\fi}%
+% \accentdimen@\z@
+% \setboxz@h{\unbracefonts@$\m@th\mathgroup\thefam@\relax#3$}%
+% \ifdim\accentdimen@=\z@\DN@{#2{#3}}%
+% \setbox\@ne\hbox{\unbracefonts@
+% $\m@th\mathgroup\thefam@\relax#3\theskewchar@$}
+% \setbox\tw@\hbox{$\m@th\ifnum\skewcharcount@=\m@ne\else
+% \mathchar\skewcharcount@\fi$}%
+% \global\accentdimen@\wd\@ne\global\advance\accentdimen@-\wdz@
+% \global\advance\accentdimen@-\wd\tw@
+% \global\multiply\accentdimen@\tw@
+% \dimentomu@\global\advance\accentmu@\@ne
+% \else\DN@{{#2{#3\mkern\accentmu@ mu}%
+% \mkern-\accentmu@ mu}{}}\fi
+% \next@
+% \else
+% \nonmatherr@#1%
+% \fi}
+%
+%
+% \def\Hat{\@math@ccent\Hat\hat}
+% \def\Dot{\@math@ccent\Dot\dot}
+% \def\Check{\@math@ccent\Check\check}
+% \def\Tilde{\@math@ccent\Tilde\tilde}
+% \def\Acute{\@math@ccent\Acute\acute}
+% \def\Grave{\@math@ccent\Grave\grave}
+% \def\Dot{\@math@ccent\Dot\dot}
+% \def\Ddot{\@math@ccent\Ddot\ddot}
+% \def\Breve{\@math@ccent\Breve\breve}
+% \def\Bar{\@math@ccent\Bar\bar}
+% \def\Vec{\@math@ccent\Vec\vec}
+%\end{verbatim}
+%
+% \subsection{Math font sizes}
+%
+% Math Time, like most other type 1 fonts uses the same font at all
+% sizes. For such fonts the default ratios (.7 and .5) produce
+% unreadably small superscripts.
+% \begin{macrocode}
+\def\defaultscriptratio{.76}
+\def\defaultscriptscriptratio{.6}
+% \end{macrocode}
+%
+% These default ratios are not used for any sizes that have been
+% explicitly declared, so redeclare the sizes used by the standard
+% classes. At least for the lower sizes this is important as we don't
+% want to end up with a 5pt font being reduced even further.
+%
+% The table below might need some further tweaking. I selected the
+% numbers partly on a few visual tests (but not many) and partly on the
+% idea that resusing sizes is better than introducing many new
+% ones. Even with Type~1 fonts many people will produce pk versions of
+% the fonts in their document (using gftopk, for example).
+%
+% \begin{macrocode}
+\DeclareMathSizes{5} {6} {6} {6}
+\DeclareMathSizes{6} {6} {6} {6}
+\DeclareMathSizes{7} {6.8} {6} {6}
+\DeclareMathSizes{8} {8} {6.8}{6}
+\DeclareMathSizes{9} {9} {7.6}{6}
+\DeclareMathSizes{10} {10} {7.6}{6}
+\DeclareMathSizes{10.95}{10.95}{7.6}{6}
+\DeclareMathSizes{12} {12} {9} {7}
+\DeclareMathSizes{14.4} {14.4} {10} {8}
+\DeclareMathSizes{17.28}{17.28}{12} {9}
+\DeclareMathSizes{20.74}{20.74}{14.4}{10}
+\DeclareMathSizes{24.88}{24.88}{17.28}{12}
+% \end{macrocode}
+%
+%
+% \subsection{Strange Commands}
+% |\vdots| and |\ddots| take their ``dots'' from the math fonts.
+% In fact this is something that should be corrected in base format
+% of \LaTeX{} as well.
+%
+% \begin{macrocode}
+\newcommand\hb@xmdot{\hbox{$\m@th.$}}
+\def\vdots{\vbox{\baselineskip4\p@ \lineskiplimit\z@
+ \kern6\p@\hb@xmdot\hb@xmdot\hb@xmdot}}
+\def\ddots{\mathinner{\mkern1mu\raise7\p@\vbox{\kern7\p@
+ \hb@xmdot}\mkern2mu
+ \raise4\p@\hb@xmdot\mkern2mu\raise\p@\hb@xmdot\mkern1mu}}
+% \end{macrocode}
+%
+% |\angle| needs a thicker horizontal rule (what a mess).
+%
+% \begin{macrocode}
+\def\angle{{\vbox{\ialign{$\m@th\scriptstyle##$\crcr
+ \not\mathrel{\mkern14mu}\crcr
+ \noalign{\nointerlineskip}%
+ \mkern2.5mu%
+ \leaders\hrule\@height.48\p@\hfill\mkern2.5mu\crcr}}}}
+% \end{macrocode}
+%
+% Awful many tokens are wasted to define to lower horizontal bar in
+% |\hbar|. The definition below uses \={} from the symbol font to
+% avoid problems with different text encodings in the operators
+% font.
+% \changes{v0.2}{1996/12/12}{save a few tokens here}
+% \changes{v0.9b}{1997/01/31}
+% {New \cs{hbar} getting bar from symbol font not operators}
+% \changes{v1.0e}{1997/10/10}{Make \cs{hbar} robust}
+% \begin{macrocode}
+\DeclareRobustCommand\hbar{{%
+ \dimen@.12em%
+ \dimen@ii.1em%
+ \def\@tempa##1##2{{%
+ \lower##1\dimen@\rlap{\kern##1\dimen@ii\the##2\tw@\char78}}}%
+ \mathchoice\@tempa\@ne\textfont
+ \@tempa\@ne\textfont
+ \@tempa\defaultscriptratio\scriptfont
+ \@tempa\defaultscriptscriptratio\scriptscriptfont
+ h}}
+% \end{macrocode}
+%
+% Redefine |\@fnsymbol| to use |\mathsection| and |\mathparagraph|
+% (Should be done in base \LaTeX\ as well).
+% \changes{v1.0c}{1997/03/14}
+% {Make footnote symbols work with other encodings}
+% \begin{macrocode}
+\def\@fnsymbol#1{\ensuremath{\ifcase#1\or *\or \dagger\or \ddagger\or
+ \mathsection\or \mathparagraph\or \|\or **\or \dagger\dagger
+ \or \ddagger\ddagger \else\@ctrerr\fi}}
+% \end{macrocode}
+%
+% Wasting a full symbol font just to have |\dagger| and friends. Here
+% we pay part of the price for fact that the math time fonts have their
+% own encoding incompatible with the CM fonts.
+%
+% If the |noTS1| option is used, this whole section is skipped unless
+% LY1 or T1 encodings are being used, in which case the symbols can be
+% accessed from the operators font.
+% \begin{macrocode}
+\ifx\symtextcomp\relax
+ \def\@tempa{LY1}
+ \ifx\operator@encoding\@tempa
+ \DeclareMathSymbol\dagger {\mathbin}{operators}{134}
+ \DeclareMathSymbol\ddagger{\mathbin}{operators}{135}
+ \DeclareMathSymbol\mathsection{\mathord}{operators}{'247}
+ \DeclareMathSymbol\mathparagraph{\mathord}{operators}{'266}
+ \DeclareMathSymbol\mathsterling{\mathord}{operators}{163}
+ \let\mathunderscore\@undefined
+ \DeclareMathSymbol\mathunderscore{\mathord}{operators}{95}
+ \fi
+% \end{macrocode}
+% If we have T1 encoded operators but are nt using TS1 can at least
+% get pounds sign and underscore, but not dagger etc.
+% \begin{macrocode}
+ \def\@tempa{T1}
+ \ifx\operator@encoding\@tempa
+ \DeclareMathSymbol\mathsterling{\mathord}{operators}{191}
+ \let\mathunderscore\@undefined
+ \DeclareMathSymbol\mathunderscore{\mathord}{operators}{95}
+ \fi
+% \end{macrocode}
+%
+% \begin{macrocode}
+\else
+ \DeclareFontEncoding{TS1}{}{}
+ \DeclareSymbolFont{textcomp}{TS1}{ptm}{m}{n}
+ \ifx\mv@bold\@undefined
+ \else
+ \SetSymbolFont {textcomp}{bold}{TS1}{ptm}{b}{n}
+ \fi
+% \end{macrocode}
+%
+% \begin{macrocode}
+ \ifx\mv@heavy\@undefined
+ \else
+ \SetSymbolFont {textcomp}{heavy}{TS1}{ptm}{b}{n}
+ \fi
+% \end{macrocode}
+%
+% \begin{macrocode}
+ \DeclareMathSymbol\dagger {\mathbin}{textcomp}{'204}
+ \DeclareMathSymbol\ddagger{\mathbin}{textcomp}{'205}
+% \end{macrocode}
+%
+% The math versions for \textsection{} and \textparagraph{}
+% are also not in the symbol fonts so we pick them up as well.
+% \begin{macrocode}
+ \DeclareMathSymbol\mathsection{\mathord}{textcomp}{'247}
+ \DeclareMathSymbol\mathparagraph{\mathord}{textcomp}{'266}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\fi
+% \end{macrocode}
+%
+% \subsection{Encoding Specific Text Commands}
+%
+% Some encoding specific commands default to the OML or OMS encoding.
+% As these encodings are not used with this package, we need to change
+% the defaults.
+%
+% These ones used to default to OML
+% \begin{macrocode}
+\DeclareTextSymbolDefault{\textless}{MY1}
+\DeclareTextSymbolDefault{\textgreater}{MY1}
+\DeclareTextAccentDefault{\t}{MY2}
+% \end{macrocode}
+%
+% Important is to not only set the default the default but also declare
+% the symbols itself. If this is forgotten calling the command will
+% generate a loop. Or to quote David:
+% \begin{quote}
+% [hmm, otherwise you waste an hour or two staring at |\tracingall|
+% output trying to work out what the heck is happening:-]
+% \end{quote}
+%
+% \begin{macrocode}
+\DeclareTextSymbol{\textless}{MY1}{`\<}
+\DeclareTextSymbol{\textgreater}{MY1}{`\>}
+\DeclareTextAccent{\t}{MY2}{65}
+% \end{macrocode}
+%
+% These ones used to default to OMS
+% \begin{macrocode}
+\DeclareTextSymbolDefault{\textasteriskcentered}{MY2}
+\DeclareTextSymbolDefault{\textbackslash}{MY2}
+\DeclareTextSymbolDefault{\textbar}{MY2}
+\DeclareTextSymbolDefault{\textbraceleft}{MY2}
+\DeclareTextSymbolDefault{\textbraceright}{MY2}
+\DeclareTextSymbolDefault{\textbullet}{MY2}
+\DeclareTextSymbolDefault{\textperiodcentered}{MY2}
+\DeclareTextAccentDefault{\textcircled}{MY2}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareTextSymbol{\textasteriskcentered}{MY2}{3}
+\DeclareTextSymbol{\textbackslash}{MY2}{110}
+\DeclareTextSymbol{\textbar}{MY2}{106}
+\DeclareTextSymbol{\textbraceleft}{MY2}{102}
+\DeclareTextSymbol{\textbraceright}{MY2}{103}
+\DeclareTextSymbol{\textbullet}{MY2}{15}
+\DeclareTextSymbol{\textperiodcentered}{MY2}{1}
+\DeclareTextCommand{\textcircled}{MY2}[1]{{%
+ \ooalign{%
+ \hfil \raise .07ex\hbox {\upshape#1}\hfil \crcr
+ \char13}}}
+% \end{macrocode}
+%
+% These also normally default to OMS, but are not available
+% in MY1 or MY2, so get them from the TS1 encoded font.
+% \begin{macrocode}
+\ifx\symtextcomp\relax
+\else
+ \DeclareTextSymbolDefault{\textsection}{TS1}
+ \DeclareTextSymbolDefault{\textparagraph}{TS1}
+% \end{macrocode}
+%
+% \begin{macrocode}
+ \DeclareTextSymbol{\textsection}{TS1}{'247}
+ \DeclareTextSymbol{\textparagraph}{TS1}{'266}
+\fi
+% \end{macrocode}
+%
+%
+% \subsection{Subscript correction}
+%
+% We provide a definition for |_| as active character. This definition
+% in itself is not changing \LaTeX's behaviour as by default |_| has
+% catcode 8, i.e., subscript character. Only if we change this catcode
+% or if we change the |\mathcode| of |_| \TeX{} is going to look at it.
+% \begin{macrocode}
+\begingroup
+ \catcode`\_=13
+ \gdef_#1{\sb{\test@sb#1}}
+\endgroup
+% \end{macrocode}
+%
+% The |\test@sb| gets passed the argument of a subscript and tests with
+% |\@ifnextchar| if the first non-space token is a \texttt{p}.
+% If not it will look at |\@let@token| (set by |\@ifnextchar|) to see
+% if it is perhaps \texttt{j} or \texttt{f}. In each case it will add
+% a negative kern.
+%
+% Note that this test will fail if an old \LaTeX{} is used as the old
+% definition of |\@ifnextchar| does not use |\@let@token| but
+% |\@tempa|.
+% However, the worst that would happen is that the kern is not
+% inserted. I tried to trap this by requesting a \LaTeX{} not older
+% than 1995/01/01.
+% \begin{macrocode}
+\def\test@sb{%
+ \@ifnextchar p%
+ {\mkern\m@ne mu}%
+ {\ifx\@let@token j%
+ \mkern-\tw@ mu%
+ \else
+ \ifx\@let@token f%
+ \mkern-\tw@ mu%
+ \fi
+ \fi}}
+% \end{macrocode}
+%
+% Finally we set the |\mathcode| of |_| to ``active''. However, as long
+% as its |\catcode| is not changed this |\mathcode| is never looked at,
+% in other words we can now turn the feature on and off by changing the
+% |\catcode| to |12| (that is done in the option section above).
+% \begin{macrocode}
+\mathcode`\_=\string"8000
+% \end{macrocode}
+%
+%
+%
+% \begin{macrocode}
+%</mathtime>
+% \end{macrocode}
+%
+%
+%
+%
+% \section{Math Pi}
+%
+% This package consist only of options declaring math alphabets:
+% \begin{macrocode}
+%<*mathpi>
+\DeclareOption{mathfrak}{%
+ \DeclareMathAlphabet\mathfrak{U}{mh2}{m}{n}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareOption{mathcal}{%
+ \DeclareMathAlphabet\mathcal{U}{mh2scr}{m}{n}}
+\DeclareOption{mathscr}{%
+ \DeclareMathAlphabet\mathscr{U}{mh2scr}{m}{n}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\DeclareOption{mathbb}{%
+ \DeclareMathAlphabet\mathbb{U}{mh6}{m}{n}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\ProcessOptions
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</mathpi>
+% \end{macrocode}
+%
+% \subsection{Unused Declarations}
+% The following declarations may be extracted from this source
+% file, but they are not used in the \textsf{mathpi} package
+% as equivalent code is called in the options section.
+% \begin{macrocode}
+%<*mpifrak>
+\DeclareMathAlphabet\mathfrak{U}{mh2}{m}{n}
+%</mpifrak>
+%
+%<*mpiscr>
+\DeclareMathAlphabet\mathscr{U}{mh2scr}{m}{n}
+%</mpiscr>
+%
+%<*mpibb>
+\DeclareMathAlphabet\mathbb{U}{mh6}{m}{n}
+%</mpibb>
+% \end{macrocode}
+%
+% \Finale
+%
+
diff --git a/macros/latex/contrib/psnfssx/mathtime/mathtime.ins b/macros/latex/contrib/psnfssx/mathtime/mathtime.ins
new file mode 100644
index 0000000000..58d40f939e
--- /dev/null
+++ b/macros/latex/contrib/psnfssx/mathtime/mathtime.ins
@@ -0,0 +1,84 @@
+%% Copyright 1996 1997 Frank Mittelbach David Carlisle
+%%
+%% Development of this package was commissioned by Y&Y Inc.
+%% http://www.yandy.com
+
+\def\batchfile{mathtime.ins}
+\input docstrip.tex
+\preamble
+\endpreamble
+
+\def\writefd#1{\lowercase{\generateFile{#1}{f}}}
+\def\mtplus{mtplus}
+
+
+%%%% IMPORTANT NOTE %%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%
+% If your LaTeX is older than 1996/12/01 then uncomment this
+% line to write the file names as `mixed case' if you are
+% using a case sensitive system such as UNIX.
+%
+%\def\writefd#1{\generateFile{#1}{f}}
+%
+%%%% IMPORTANT NOTE %%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%
+% If you have the `basic' MathTime font set, and *not*
+% the extended MathTime Plus (or MathTime Complete) set
+% then you should uncomment this line so that LaTeX does
+% not attempt to access bold math fonts, or the new MTSYN
+% font.
+%
+%\def\mtplus{}
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+\keepsilent
+
+\Msg{*** Generating .fd files using Mathtime fonts ***}
+
+\writefd{MY1mtt.fd}{\from{mtfonts.fdd}{MY1mtt,\mtplus}}
+
+\writefd{MY2mtt.fd}{\from{mtfonts.fdd}{MY2mtt,\mtplus}}
+
+\writefd{MY3mtt.fd}{\from{mtfonts.fdd}{MY3mtt,\mtplus}}
+
+% mathtime plus script
+
+\writefd{Umtms.fd}{\from{mtfonts.fdd}{Umtms}}
+
+% Adobe Math Pi Two for Fraktur and Script alphabets
+
+\writefd{Umh2.fd}{\from{mtfonts.fdd}{Umh2}}
+
+\writefd{Umh2scr.fd}{\from{mtfonts.fdd}{Umh2Scr}}
+
+% Adobe Math Pi Six for Blackboard Bold alphabet
+
+\writefd{Umh6.fd}{\from{mtfonts.fdd}{Umh6}}
+
+% Lucida New Math Symbol for Calligraphy alphabet
+
+\writefd{OMSlby.fd}{\from{mtfonts.fdd}{lucidascale,OMSlby}}
+
+
+\Msg{*** Generating packages for Mathtime fonts ***}
+
+\generateFile{mathpi.sty}{f}{\from{mathtime.dtx}{package,mathpi}}
+
+\generateFile{mathtime.sty}{f}{\from{mathtime.dtx}{package,mathtime}}
+
+
+\Msg{*** Generating Encoding file for Math Pi Two font ***}
+
+\postamble
+\endpostamble
+% the encoding file to reencode the Pi Two font
+
+\generateFile{mh2scr.enc}{f}{\from{mtfonts.fdd}{mh2screnc}}
+
+
diff --git a/macros/latex/contrib/psnfssx/mathtime/mathtime.txt b/macros/latex/contrib/psnfssx/mathtime/mathtime.txt
new file mode 100644
index 0000000000..087b3008e9
--- /dev/null
+++ b/macros/latex/contrib/psnfssx/mathtime/mathtime.txt
@@ -0,0 +1,74 @@
+%% Copyright 1996 1997 Frank Mittelbach David Carlisle
+%%
+%% Development of this package was commissioned by Y&Y Inc.
+%% http://www.yandy.com
+
+
+ The `mathtime' package for accessing MathTime fonts
+ ===================================================
+ Frank Mittelbach David Carlisle
+
+
+This package enables the use of MathTime (including MathTime Plus)
+fonts in LaTeX documents.
+
+The basic usage is simply to add \usepackage{mathtime} to your
+document preamble, however there are several options to control the
+behaviour, as described in the documentation.
+
+Installation
+============
+ (Please note instructions differ depending on whether
+ or not the MathTime Plus font set is available, and on
+ the age of your LaTeX.)
+
+1)
+If you are using a Case Sensitive file system (such as UNIX)
+and your LaTeX is older then the release of 1996/12/01 then edit the
+file mathtime.ins to uncomment the line that is marked by the first
+ %%%% IMPORTANT NOTE %%%%%.
+This will cause `fd' files to be written in the old style (MY1mtt.fd)
+rather than the new style (my1mtt.fd). On DOS or other case insensitive
+systems this step may be omitted as MY1mtt.fd and my1mtt.fd refer to
+the same file.
+
+2)
+If you have the basic MathTime font set, but not the bold math fonts
+and other fonts that make up the MathTime Plus (or MathTime Complete)
+font sets, then you should edit mathtime.ins to uncomment the line
+marked by the second
+ %%%% IMPORTANT NOTE %%%%%.
+This will cause the fd files written by the installation process
+to refer to the more restricted set of fonts that you have available.
+
+3)
+The documented source of the packages is the file mathtime.dtx.
+The sources of the `font descriptor files' that make the external
+font files known to LaTeX are in the file mtfonts.fdd.
+
+To generate the package files and font descriptor files you should
+run:
+
+latex mathtime.ins
+
+An identical mathtime.sty will be produced however you may have
+edited mathtime.ins, but the `fd' files will be modified to match
+your local installation, as documented above.
+
+In addition to mathtime.sty, a package mathpi.sty will also be produced
+making available math fonts from the Adobe Math Pi font set.
+These .sty files and all the .fd files that are produced should be
+placed in a directory on TeX's input path.
+
+A PostScript header file, mh2scr.enc will also be produced
+this will need to be included by your dvi driver if you are using the
+Adobe Math Pi 2 font.
+
+Further documentation on the packages may be obtained by running LaTeX
+on the document sources, typically by a command such as
+
+latex mathtime.dtx
+
+
+
+
diff --git a/macros/latex/contrib/psnfssx/mathtime/mtfonts.fdd b/macros/latex/contrib/psnfssx/mathtime/mtfonts.fdd
new file mode 100644
index 0000000000..b4916754a6
--- /dev/null
+++ b/macros/latex/contrib/psnfssx/mathtime/mtfonts.fdd
@@ -0,0 +1,260 @@
+%
+% \iffalse
+%% Copyright 1996 1997 Frank Mittelbach and David Carlisle.
+%%
+%% Development of this package was commissioned by Y&Y Inc.
+%% http://www.yandy.com
+%
+%
+%<*dtx>
+ \ProvidesFile{mtfonts.fdd}
+%</dtx>
+%<*!mh2screnc>
+%<MY1mtt>\ProvidesFile{my1mtt.fd}
+%<MY2mtt>\ProvidesFile{my2mtt.fd}
+%<MY3mtt>\ProvidesFile{my3mtt.fd}
+%<Umtms>\ProvidesFile{umtms.fd}
+%<Umh2>\ProvidesFile{umh2.fd}
+%<Umh2Scr>\ProvidesFile{umh2scr.fd}
+%<Umh6>\ProvidesFile{umh6.fd}
+%<OMSlby>\ProvidesFile{omslby.fd}
+%<driver>\ProvidesFile{bm.drv}
+% \fi
+% \ProvidesFile{mtfonts.fdd}
+ [2001/05/30 v1.0c
+%<MY1mtt> Mathtime Encoding 1
+%<MY2mtt> Mathtime Encoding 2
+%<MY3mtt> Mathtime Encoding 3
+%<Umtms> Mathtime Plus Script (Unknown encoding)
+%<Umh2> Adobe Math Pi 2 (Unknown encoding)
+%<Umh2Scr> Adobe Math Pi 2 Script (Unknown encoding)
+%<Umh6> Adobe Math Pi 6 (Unknown encoding)
+%<OMSlby> Lucida New Math Symbols
+ (FMi)]
+% \iffalse
+%</!mh2screnc>
+%
+%<*driver>
+\documentclass{ltxdoc}
+\usepackage{bm}
+\DocInput{mtfonts.fdd}
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{525}
+%
+% \GetFileInfo{mtfonts.fdd}
+% \begin{document}
+% \title{The \textsf{mathtime} Font Descriptor files\thanks{This file
+% has version number \fileversion, last
+% revised \filedate.}}
+%
+% \date{\filedate}
+% \author{Frank Mittelbach}
+% \maketitle
+%
+% \section{The Implementation}
+%
+% \subsection{Math Pi 2}
+% needed for Adobe Math Pi 2 and 6, lbms, lbmsd (Calligraphic)
+% Note: LaTeX 2e needs the TFMs for these even if you don't use them...
+%
+% \begin{macrocode}
+%<*Umh2>
+\DeclareFontFamily{U}{mh2}{}
+\DeclareFontShape{U}{mh2}{m}{n}{<->s * [0.95]mh2}{}
+%</Umh2>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*Umh2Scr>
+\DeclareFontFamily{U}{mh2scr}{}
+\DeclareFontShape{U}{mh2scr}{m}{n}{<->s * [0.95]mh2scr}{}
+%</Umh2Scr>
+% \end{macrocode}
+%
+% The following section is a PostScript header file which may
+% be used to reencdode the script alphabet in the Math Pi 2 font
+% into the `normal' positions for the roman alphabet.
+% \begin{macrocode}
+%<*mh2screnc>
+ %
+ % Encoding file to reencode MathematicalPi-Two font by Adobe so that
+ % its script alphabet is in a sensible position
+ % and thus can be used with \DeclareMathAlphabet
+ %
+ % Usage:
+ %
+ % generate tfm
+ %
+ % afm2tfm mh2_____ -T mh2scr.enc mh2scr
+ %
+ % add mapping line to dvips config file:
+ %
+ % mh2 MathematicalPi-Two <mh2_____.pfa
+ % mh2scr MathematicalPi-Two "mh2scrEncoding ReEncodeFont" <mh2scr.enc <mh2_____.pfa
+ %
+ %
+ %
+/mh2scrEncoding [
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+ %'10x
+ /space /H5101 /H5102 /H5103 /H5104 /H5105 /H5106 /H5107
+ /H5108 /H5109 /H5110 /H5111 /H5112 /H5113 /H5114 /H5115
+ /H5116 /H5117 /H5118 /H5119 /H5120 /H5121 /H5122 /H5123
+ /H5124 /H5125 /H5126 /.notdef /.notdef /.notdef /.notdef /.notdef
+ %
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+ %'20
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+ %'30
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+] def
+
+%</mh2screnc>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*Umh6>
+\DeclareFontFamily{U}{mh6}{}
+\DeclareFontShape{U}{mh6}{m}{n}{<->s * [0.95]mh6}{}
+%</Umh6>
+% \end{macrocode}
+%
+% \subsection{LucidaNewMath-Symbols font description files}
+%
+% Following controls size of lbms, lbmsd when used for Calligraphic:
+% \begin{macrocode}
+%<*lucidascale>
+\@ifundefined{LucidaScale}{\def\LucidaScale{0.9}}{}
+%</lucidascale>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*OMSlby>
+\DeclareFontFamily{OMS}{lby}{\skewchar\font48}
+\DeclareFontShape{OMS}{lby}{m}{n}{<->s * [\LucidaScale]lbms}{}
+\DeclareFontShape{OMS}{lby}{b}{n}{<->s * [\LucidaScale]lbmsd}{}
+%</OMSlby>
+% \end{macrocode}
+%
+% \subsection{Math Time font description files}
+%
+% The Math Time fonts are similar in encoding to the Computer Modern set
+% of math fonts. Unfortunately, there are some important differences which
+% make integration of the fonts in a standard setup painful and error prone.
+%
+% To ease the integration we have allocated official encoding names so that
+% (at least on the \LaTeX{} level the encoding difference is transparent)
+%
+% The |MY1| encoding is in most respects the same as the |OML| encoding, for
+% the differences see the font description by Spivak.
+%
+% \begin{macrocode}
+%<*MY1mtt>
+\DeclareFontFamily{MY1}{mtt}{\skewchar\font45}
+\DeclareFontShape{MY1}{mtt}{m}{it}{<->mtmi}{}
+%</MY1mtt>
+% \end{macrocode}
+%
+% Similarily, the |MY2| encoding corresponds to the |OMS| encoding
+% except for a small number of slots.
+%
+% In fact their are two variants of this encoding, the |MTSY| font
+% in the base mathtime set and a slightly extended version in the
+% mathtime plus set. Within \LaTeX\ ignore this difference but
+% give the user the option of installing an my2mtt.fd file
+% calling on either version.
+% \begin{macrocode}
+%<*MY2mtt>
+\DeclareFontFamily{MY2}{mtt}{}
+%<!mtplus>\DeclareFontShape{MY2}{mtt}{m}{n}{<->mtsy}{}
+%</MY2mtt>
+% \end{macrocode}
+%
+% The ``extension symbol'' font has the same encoding as the Computer
+% Modern \texttt{cmex} font, except that it contains one additional symbol
+% (the radical which is originally located in the symbol font. There is a good
+% reason for the radical not being put into the symbol font as it has a large
+% decender and makes it impossible to use the font with programs other than
+% \TeX{}. However, it has the nasty side-effect that we have to define
+% another encoding just for this reason.
+% \begin{macrocode}
+%<*MY3mtt>
+\DeclareFontFamily{MY3}{mtt}{}
+\DeclareFontShape{MY3}{mtt}{m}{n}{<->mtex}{}
+%</MY3mtt>
+% \end{macrocode}
+%
+% \subsection{Math Time Plus font description files}
+%
+% We call the font variant that contains upright lowercase letters
+% ``normal'' which is some sort of abuse, but then the whole font layout
+% is rather percuiliar
+% \begin{macrocode}
+%<*MY1mtt&mtplus>
+\DeclareFontShape{MY1}{mtt}{b}{it}{<->mtmib}{}
+\DeclareFontShape{MY1}{mtt}{ub}{it}{<->mtmih}{}
+\DeclareFontShape{MY1}{mtt}{b}{n} {<->mtmub}{}
+\DeclareFontShape{MY1}{mtt}{ub}{n}{<->mtmuh}{}
+%</MY1mtt&mtplus>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*MY2mtt&mtplus>
+\DeclareFontShape{MY2}{mtt}{m}{n}{<->mtsyn}{}
+\DeclareFontShape{MY2}{mtt}{b}{n}{<->mtsyb}{}
+\DeclareFontShape{MY2}{mtt}{ub}{n}{<->mtsyh}{}
+%</MY2mtt&mtplus>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*MY3mtt&mtplus>
+\DeclareFontShape{MY3}{mtt}{b}{n}{<->mtexb}{}
+\DeclareFontShape{MY3}{mtt}{ub}{n}{<->mtexh}{}
+%</MY3mtt&mtplus>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*Umtms>
+\DeclareFontFamily{U}{mtms}{\skewchar\font42}
+\DeclareFontShape{U}{mtms}{m}{n}{<->mtms}{}
+\DeclareFontShape{U}{mtms}{b}{n}{<->mtmsb}{}
+%</Umtms>
+% \end{macrocode}
+%
+% \begin{macrocode}
+%<*LAptm>
+\DeclareFontFamily{LA}{ptm}{}
+\DeclareFontShape{LA}{ptm}{m}{n}{<->tir}{}
+\DeclareFontShape{LA}{ptm}{b}{n}{<->tir}{}
+%</LAptm>
+% \end{macrocode}
+%
+% \Finale
+%
diff --git a/macros/latex/contrib/psnfssx/tmmath/tmmaths.dtx b/macros/latex/contrib/psnfssx/tmmath/tmmaths.dtx
new file mode 100644
index 0000000000..9a05621735
--- /dev/null
+++ b/macros/latex/contrib/psnfssx/tmmath/tmmaths.dtx
@@ -0,0 +1,366 @@
+%\CheckSum{305}
+%
+% \iffalse
+%
+% File `tmmaths.dtx'
+% Copyright (c) 1999--2003 Walter Schmidt
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of the files tmmaths.dtx, tmmaths.ins and
+% tmmaths.txt.
+%
+% \fi
+%
+% \iffalse
+%
+%<*driver>
+\ProvidesFile{tmmaths.dtx}
+%</driver>
+%<tmmaths>\ProvidesPackage{tmmaths}
+ [2004/01/19 v2.4 (WaS/MicroPress)]
+%
+%<*driver>
+\documentclass[11pt]{ltxdoc}
+\RequirePackage{url}
+\CodelineNumbered
+\OnlyDescription
+\parindent1em
+\leftmargini=2em
+\leftmarginii=2em
+\leftmarginiii=2em
+\leftmarginiv=2em
+\leftmargin\leftmargini
+\labelwidth\leftmargin \advance\labelwidth by -\labelsep
+\begin{document}
+ \DocInput{tmmaths.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \DeleteShortVerb{\|}
+% \MakeShortVerb{\+}
+%
+% \GetFileInfo{tmmaths.dtx}
+% \title{The \LaTeX{} macro package \texttt{tmmaths}}
+% \author{Walter Schmidt\thanks{\texttt{w.a.schmidt@gmx.net}}}
+% \date{\fileversion{} -- \filedate}
+% \maketitle
+%
+%
+%
+% \section{The TM-Math font set}
+%
+% MicroPress' TM-Math font set extends the Adobe Times typefaces:
+% \begin{itemize}
+% \item Additional text and text companion symbols make the
+% full OT1 and T1 character sets and a subset of the
+% text companion symbols available, including the Euro sign.
+% With \LaTeX, the enhanced Times typefaces are provided
+% as a font family named \texttt{tmr}.
+% \item Several math fonts, matching the `Times' style, are provided
+% to support all of \TeX's math typesetting capabilites and fully
+% replace the default Computer Modern fonts.
+% \end{itemize}
+%
+%
+% \section{The package \texttt{tmmaths}}
+% Loading the package \texttt{tmmaths}
+% \begin{verse}
+% +\usepackage{tmmaths}+
+% \end{verse}
+% makes \LaTeX{} use the Times and TM-Math fonts:
+% The default roman text font family (+\rmdefault+) is changed to \texttt{tmr},
+% i.e.\ enhanced Adobe Times, and the math fonts are changed to TM-Math.
+% Notice that the +\mathsf+ and +\mathtt+ alphabets remains unchanged, i.e.,
+% CM Sans Serif and CM Typewriter.
+%
+% \subsection{Font encoding}
+% The package does \emph{not} change the default output font
+% encoding from OT1. It is, however, recommended to switch to
+% the extended T1 and TS1 encodings,
+% so as to provide access all glyphs.
+% This is enabled by the following additional commands:
+% \begin{verse}
+% +\usepackage[T1]{fontenc}+\\
+% +\usepackage{textcomp}+
+% \end{verse}
+%
+% \subsection{The \texttt{slantedGreek} option}
+% When the macro package is loaded using the option \texttt{[slantedGreek]},
+% uppercase Greek letters in math will, by default, be slanted.
+%
+% \subsection{Upright Greek}
+% A full upright Greek alphabet is made available.
+% The macros +\upalpha+, +\upbeta+ \dots\ +\upGamma+, +\upDelta+ etc.\
+% always produce upright Greek letters, regardless of the \texttt{slantedGreek} option.
+%
+% \subsection{Bold italic letters in formulas}
+% The \texttt{tmmaths} package provides a {\bfseries\itshape bold italic}
+% math alphabet +\mathbold+. It includes both Latin and Greek.
+% (Do not mix this up with +\mathbf+, which implements
+% the {\bfseries bold upright} text font for use in math!)
+%
+% \subsection{Using the AMS math symbol fonts}
+% The TM-Math font set includes matching AMS symbol fonts, too.
+% \LaTeX{} will use these, if the package \texttt{amssymb}
+% is loaded in conjunction with \texttt{tmmaths}. The sequence of loading does
+% not matter.
+%
+% \subsection{Changes over \texttt{tmmath.sty}}
+% As compared with MicroPress' original \texttt{tmmath.sty}, this package
+% provides a numbe of improvements:
+% \begin{itemize}
+% \item the option \texttt{slantedGreek}
+% \item support for a full upright Greek alphabet, without loading
+% any additional package
+% \item AMS symbols can be used by just loading the package \texttt{amssymb};
+% no extra packages are needed, and the sequence of of loading does not matter.
+% \end{itemize}
+%
+%
+% \section{Availability and support}
+% The latest versions of these packages can be obtained from the directory
+% \path{macros/latex/contrib/psnfssx/tmmath} of any CTAN host.
+%
+% \noindent
+% The TM-Math fonts are provided by
+% \begin{verse}
+% MicroPress, Inc.\\
+% 6830~Harrow~Street\\
+% Forest Hills NY 11375\\
+% USA\\
+% \texttt{<http://www.micropress-inc.com>}.
+% \end{verse}
+%
+%
+% \StopEventually{\par\vfill\noindent{\small
+% Adobe is a trademark of Adobe Systems Incorporated.
+% Times is a registered trademark of Linotype-Hell AG and/or
+% its subsidiaries. Times New Roman is a trademark of The
+% Monotype Corporation.
+% TM-Math is a trademark of \mbox{MicroPress},~Inc.
+% \par}}
+%
+%
+%
+% \section{The package code}
+%
+% \subsection{The options}
+% The option for slanted uppercase Greek:
+% \begin{macrocode}
+%<*tmmaths>
+\newif\iftmmath@slantedGreek
+\DeclareOption{slantedGreek}{\tmmath@slantedGreektrue}
+\ProcessOptions\relax
+% \end{macrocode}
+%
+% \subsection{Setting up the text fonts}
+% The package \texttt{tmmaths} switches the default roman text font
+% family to \texttt{tmr} and provides an improved Aring, at least
+% with OT1 encoding:
+% \begin{macrocode}
+\renewcommand*\rmdefault{tmr}
+\def\tmmath@Aring
+{%
+ \leavevmode
+ \setbox0\hbox{h}%
+ \dimen@\ht0 %
+ \advance\dimen@-1ex%
+ {\ooalign{\hfil\raise.65\dimen@\hbox{\r{}}\hfil\crcr A}}%
+}%
+\DeclareTextCompositeCommand{\r}{OT1}{A}{\tmmath@Aring}%
+\normalfont
+% \end{macrocode}
+%
+% \subsection{Setting up the math fonts}
+% The definitions of the standard symbol fonts are straightforward:
+% \begin{macrocode}
+\DeclareSymbolFont{operators}{OT1}{tmr}{m}{n}%
+\SetSymbolFont{operators}{bold}{OT1}{tmr}{bx}{n}%
+\DeclareSymbolFont{letters}{OML}{tmm}{m}{it}%
+\DeclareSymbolFont{symbols}{OMS}{tmsy}{m}{n}%
+\DeclareSymbolFont{largesymbols}{OMX}{tmex}{m}{n}%
+\SetSymbolFont{letters}{bold}{OML}{tmm}{b}{it}%
+\SetSymbolFont{symbols}{bold}{OMS}{tmsy}{b}{n}%
+\DeclareMathAlphabet{\mathbf}{OT1}{tmr}{bx}{n}%
+\DeclareMathAlphabet{\mathit}{OT1}{tmr}{m}{it}%
+\SetMathAlphabet\mathit{bold}{OT1}{tmr}{bx}{it}%
+\DeclareMathAlphabet{\mathbold}{OML}{tmm}{b}{it}
+% \end{macrocode}
+%
+% \subsection{Lowercase Greek}
+% Make +\mathbold+ act on lowercase Greek, too:
+% \begin{macrocode}
+\DeclareMathSymbol{\alpha}{\mathalpha}{letters}{11}
+\DeclareMathSymbol{\beta}{\mathalpha}{letters}{12}
+\DeclareMathSymbol{\gamma}{\mathalpha}{letters}{13}
+\DeclareMathSymbol{\delta}{\mathalpha}{letters}{14}
+\DeclareMathSymbol{\epsilon}{\mathalpha}{letters}{15}
+\DeclareMathSymbol{\zeta}{\mathalpha}{letters}{16}
+\DeclareMathSymbol{\eta}{\mathalpha}{letters}{17}
+\DeclareMathSymbol{\theta}{\mathalpha}{letters}{18}
+\DeclareMathSymbol{\iota}{\mathalpha}{letters}{19}
+\DeclareMathSymbol{\kappa}{\mathalpha}{letters}{20}
+\DeclareMathSymbol{\lambda}{\mathalpha}{letters}{21}
+\DeclareMathSymbol{\mu}{\mathalpha}{letters}{22}
+\DeclareMathSymbol{\nu}{\mathalpha}{letters}{23}
+\DeclareMathSymbol{\xi}{\mathalpha}{letters}{24}
+\DeclareMathSymbol{\pi}{\mathalpha}{letters}{25}
+\DeclareMathSymbol{\rho}{\mathalpha}{letters}{26}
+\DeclareMathSymbol{\sigma}{\mathalpha}{letters}{27}
+\DeclareMathSymbol{\tau}{\mathalpha}{letters}{28}
+\DeclareMathSymbol{\upsilon}{\mathalpha}{letters}{29}
+\DeclareMathSymbol{\phi}{\mathalpha}{letters}{30}
+\DeclareMathSymbol{\chi}{\mathalpha}{letters}{31}
+\DeclareMathSymbol{\psi}{\mathalpha}{letters}{32}
+\DeclareMathSymbol{\omega}{\mathalpha}{letters}{33}
+\DeclareMathSymbol{\varepsilon}{\mathalpha}{letters}{34}
+\DeclareMathSymbol{\vartheta}{\mathalpha}{letters}{35}
+\DeclareMathSymbol{\varpi}{\mathalpha}{letters}{36}
+\DeclareMathSymbol{\varphi}{\mathalpha}{letters}{39}
+\DeclareMathSymbol{\varrho}{\mathalpha}{letters}{37}
+\DeclareMathSymbol{\varsigma}{\mathalpha}{letters}{38}
+% \end{macrocode}
+% The uppercase Greek letters are redefined, if the option
+% \texttt{slantedGreeek} has been selected:
+% \begin{macrocode}
+\iftmmath@slantedGreek
+ \DeclareMathSymbol{\Gamma}{\mathalpha}{letters}{0}
+ \DeclareMathSymbol{\Delta}{\mathalpha}{letters}{1}
+ \DeclareMathSymbol{\Theta}{\mathalpha}{letters}{2}
+ \DeclareMathSymbol{\Lambda}{\mathalpha}{letters}{3}
+ \DeclareMathSymbol{\Xi}{\mathalpha}{letters}{4}
+ \DeclareMathSymbol{\Pi}{\mathalpha}{letters}{5}
+ \DeclareMathSymbol{\Sigma}{\mathalpha}{letters}{6}
+ \DeclareMathSymbol{\Upsilon}{\mathalpha}{letters}{7}
+ \DeclareMathSymbol{\Phi}{\mathalpha}{letters}{8}
+ \DeclareMathSymbol{\Psi}{\mathalpha}{letters}{9}
+ \DeclareMathSymbol{\Omega}{\mathalpha}{letters}{10}
+\fi
+% \end{macrocode}
+%
+% \subsection{Upright Greek}
+% Uppercase upright Greek is taken from the `operators' font:
+% \begin{macrocode}
+\DeclareMathSymbol{\upGamma} {\mathord}{operators}{"00}
+\DeclareMathSymbol{\upDelta} {\mathord}{operators}{"01}
+\DeclareMathSymbol{\upTheta} {\mathord}{operators}{"02}
+\DeclareMathSymbol{\upLambda} {\mathord}{operators}{"03}
+\DeclareMathSymbol{\upXi} {\mathord}{operators}{"04}
+\DeclareMathSymbol{\upPi} {\mathord}{operators}{"05}
+\DeclareMathSymbol{\upSigma} {\mathord}{operators}{"06}
+\DeclareMathSymbol{\upUpsilon}{\mathord}{operators}{"07}
+\DeclareMathSymbol{\upPhi} {\mathord}{operators}{"08}
+\DeclareMathSymbol{\upPsi} {\mathord}{operators}{"09}
+\DeclareMathSymbol{\upOmega} {\mathord}{operators}{"0A}
+% \end{macrocode}
+% The lowercase upright Greek letters are -- unfortunately -- not in the `letters'
+% font, so we need to set up a particular math alphabet for them:
+% \begin{macrocode}
+\DeclareFontFamily{U}{tmrmex}{}
+\DeclareFontShape{U}{tmrmex}{m}{n}{<->tmrm10ex}{}
+\DeclareFontShape{U}{tmrmex}{b}{n}{<->tmrb10ex}{}
+\DeclareSymbolFont{upright}{U}{tmrmex}{m}{n}%
+\SetSymbolFont{upright}{bold}{U}{tmrmex}{b}{n}
+\DeclareMathSymbol{\upalpha}{\mathord}{upright}{211}
+\DeclareMathSymbol{\upbeta}{\mathord}{upright}{212}
+\DeclareMathSymbol{\upgamma}{\mathord}{upright}{213}
+\DeclareMathSymbol{\updelta}{\mathord}{upright}{214}
+\DeclareMathSymbol{\upepsilon}{\mathord}{upright}{215}
+\DeclareMathSymbol{\upzeta}{\mathord}{upright}{216}
+\DeclareMathSymbol{\upeta}{\mathord}{upright}{217}
+\DeclareMathSymbol{\uptheta}{\mathord}{upright}{218}
+\DeclareMathSymbol{\upiota}{\mathord}{upright}{219}
+\DeclareMathSymbol{\upkappa}{\mathord}{upright}{220}
+\DeclareMathSymbol{\uplambda}{\mathord}{upright}{221}
+\DeclareMathSymbol{\upmu}{\mathord}{upright}{222}
+\DeclareMathSymbol{\upnu}{\mathord}{upright}{223}
+\DeclareMathSymbol{\upxi}{\mathord}{upright}{224}
+\DeclareMathSymbol{\uppi}{\mathord}{upright}{225}
+\DeclareMathSymbol{\uprho}{\mathord}{upright}{226}
+\DeclareMathSymbol{\upsigma}{\mathord}{upright}{227}
+\DeclareMathSymbol{\uptau}{\mathord}{upright}{228}
+\DeclareMathSymbol{\upupsilon}{\mathord}{upright}{229}
+\DeclareMathSymbol{\upphi}{\mathord}{upright}{230}
+\DeclareMathSymbol{\upchi}{\mathord}{upright}{231}
+\DeclareMathSymbol{\uppsi}{\mathord}{upright}{232}
+\DeclareMathSymbol{\upomega}{\mathord}{upright}{233}
+\DeclareMathSymbol{\upvarepsilon}{\mathord}{upright}{234}
+\DeclareMathSymbol{\upvartheta}{\mathord}{upright}{235}
+\DeclareMathSymbol{\upvarpi}{\mathord}{upright}{236}
+\DeclareMathSymbol{\upvarphi}{\mathord}{upright}{239}
+\DeclareMathSymbol{\upvarrho}{\mathord}{upright}{237}
+\DeclareMathSymbol{\upvarsigma}{\mathord}{upright}{238}
+% \end{macrocode}
+%
+% \subsubsection{Miscellaneous symbols}
+% The TM-Math fonts provide a ready-made +\hbar+:
+% \begin{macrocode}
+\DeclareMathSymbol{\hbar}{\mathord}{letters}{"80}%
+% \end{macrocode}
+%
+% \subsection{Using the AMS packages and fonts}
+% The following code is deferred until +\begin{document}+:
+% \begin{macrocode}
+\AtBeginDocument{%
+% \end{macrocode}
+% Fix multiple integrals from \texttt{amsmath} for use with TM-Math fonts:
+% \begin{macrocode}
+ \@ifpackageloaded{amsmath}{%
+ \def\intkern@{\mkern-3mu\mathchoice{\mkern-1.5mu}{}{}{}}%
+ }{}
+% \end{macrocode}
+% AMS symbols should be taken from the TM fonts:
+% \begin{macrocode}
+ \DeclareFontFamily{U}{msa}{}
+ \DeclareFontShape{U}{msa}{m}{n}{<->tmam10}{}
+ \DeclareFontFamily{U}{msb}{}
+ \DeclareFontShape{U}{msb}{m}{n}{<->tmbm10}{}
+}
+%</tmmaths>
+% \end{macrocode}
+%
+%
+% \section*{DocStrip modules in the source file \texttt{tmmaths.dtx}}
+% \begin{quote}
+% \begin{tabular}{ll}
+% module: & contents:\\[0.5ex]
+% +tmmaths+ & file \texttt{tmmaths.sty}\\
+% +driver+ & driver for documentation \\
+% \end{tabular}
+% \end{quote}
+%
+%
+% \Finale
+%
+%
+% \iffalse
+% The next line of code prevents DocStrip from adding the
+% character table to the modules:
+\endinput
+% \fi
+%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+
diff --git a/macros/latex/contrib/psnfssx/tmmath/tmmaths.ins b/macros/latex/contrib/psnfssx/tmmath/tmmaths.ins
new file mode 100644
index 0000000000..26c03a3ae3
--- /dev/null
+++ b/macros/latex/contrib/psnfssx/tmmath/tmmaths.ins
@@ -0,0 +1,6 @@
+% file tmmaths.ins 2003-12-10
+\input docstrip
+
+\generate{\file{tmmaths.sty}{\from{tmmaths.dtx}{tmmaths}}}
+
+\endbatchfile
diff --git a/macros/latex/contrib/psnfssx/tmmath/tmmaths.txt b/macros/latex/contrib/psnfssx/tmmath/tmmaths.txt
new file mode 100644
index 0000000000..d75414dd32
--- /dev/null
+++ b/macros/latex/contrib/psnfssx/tmmath/tmmaths.txt
@@ -0,0 +1,100 @@
+============================================================
+ The LaTeX macro package tmmaths.sty
+ version 2.4 as of 2004-01-19
+============================================================
+ Walter Schmidt
+ w.a.schmidt@gmx.net
+
+
+The purpose of this macro package is to use MicroPress
+TM-Math fonts with LaTeX. It constitutes an alternative to
+the package tmmath.sty which is shipped with the fonts.
+
+The basic usage is simply to add \usepackage{tmmaths} to
+your document preamble; however, there are several options
+to control the behaviour, as described in the documentation.
+
+
+Prerequisites
+=============
+You need the TM-Math fonts, which are provided by
+MicroPress, Inc, see <http://www.micropress-inc.com/fonts> .
+This includes the Type1 fonts as well as the metrics, .vf
+and .fd files.
+
+A free bitmapped (demo) version of the fonts is available
+from CTAN:
+
+ fonts/micropress/tmmath/
+
+Note that the demo version does not include the AMS symbols!
+
+
+Installing the macro packages
+=============================
+The documented source of the package is the file
+tmmaths.dtx.
+
+To generate the package file you should run:
+
+ latex tmmaths.ins
+
+The resulting file tmmaths.sty must then be moved to a
+directory where LaTeX will find it. In a TDS-compliant TeX
+system, such as teTeX or VTeX/Free, we recommend the
+directory texmf/tex/latex/tmmath or ../psnfssx.
+
+Documentation on the package is obtained by running LaTeX
+on the package source file:
+
+ latex tmmaths.dtx
+
+
+News
+====
+2004-01-10 (2.4)
+ A full upright Greek math alphabet is made available.
+ Minor fixes.
+ The package tmmathm.sty is no longer provided. Its code
+ was a clumsy hack, and I doubt that anyone has ever
+ actually used it.
+
+2001-10-09 (v2.1)
+ a fixed definition of \r A for OT1 encoding,
+ should no longer clash with amsmath.sty
+
+2001-06-24 (v2.0)
+ additional package tmmathm.sty;
+ fixed AMS multiple integrals (again...);
+ adopted MicroPress' definition of Aring for OT1;
+
+2001-02-12 (v1.2a)
+ added support for the TM-AMS fonts
+
+2000-04-15 (v1.2)
+ updated for use with TM-Math fonts v1.2
+
+1999-08-30 (v1.0)
+ bug with multiple integrals from amsmath package fixed
+
+
+Notes
+=====
+This collection is made up from the following files:
+
+ tmmaths.dtx
+ tmmaths.ins
+ tmmaths.txt
+
+It may be may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either
+version 1.2 of this license or (at your option) any later
+version. The latest version of this license is in
+http://www.latex-project.org/lppl.txt and version 1.2 or
+later is part of all distributions of LaTeX version
+1999/12/01 or later.
+
+TM-Math is a trademark of MicroPress, Inc.
+
+-- finis
+