diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/psnfssx |
Initial commit
Diffstat (limited to 'macros/latex/contrib/psnfssx')
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 Binary files differnew file mode 100644 index 0000000000..3ed7cd1f88 --- /dev/null +++ b/macros/latex/contrib/psnfssx/lucidabr/lucida-amsmath.pdf 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 Binary files differnew file mode 100644 index 0000000000..afed7e1c5b --- /dev/null +++ b/macros/latex/contrib/psnfssx/lucidabr/lucida-sample.pdf 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 Binary files differnew file mode 100644 index 0000000000..7f3b1b2297 --- /dev/null +++ b/macros/latex/contrib/psnfssx/lucidabr/lucidabr.pdf 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 + |