Вы находитесь на странице: 1из 40

MyrladPro Support for L

A
T
E
X
Sebastlan Schubert
v. z://z
Contents
+ Overview z
z Interference with other packages z
Options
AdditionaI mathversions sans and sansboId
Figure seIection and boId math symboIs
6 AdditionaI symboIs, font weights and shapes 6
) Language support )
8 Searching for gures or for words containing Iigatures in PDF documents )
p NFSS cIassication 8
+o Version history 8
++ 7he main styIe Ie p
++.+ Optlons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p
++.z Font declaratlons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . +6
++. Font selectlon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . +p
++.( Greek letters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . +p
++. pdfT
E
X to-unlcode support . . . . . . . . . . . . . . . . . . . . . . . . . . z+
++.6 Superlor and lnferlor gures . . . . . . . . . . . . . . . . . . . . . . . . . . z
++.) Addltlonal symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . z6
++.8 |ntegral symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . z6
++.p Logos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . z8
++.+oAMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . z8
+z Support for character protrusion zp
:
+ Font denition Ies z
1 Overview
The MyrladPro package provldes support for the Myrlad Pro font famlly from Adobe.
You can use these fonts ln a L
A
T
E
X document by addlng the command
\usepackage{MyriadPro}
to the preamble. Thls wlll change only the sans serlf text font. For most cases, lf you
want to use MyrladPro as your maln font, add
\renewcommand{\familydefault}{\sfdefault}
toyour preamble. |f youwant toad[ust themalnmathfont toMyrladProas well, usethe
optlon math as explalned ln Sectlon . Wlth the optlon sansmath, MyrladPro denes a
sans and sansbold mathverslon, whlch use MyrladPro and MdSymbol, lndependently
of the default math font. Thls allows the usage of a complete MyrladPro setup conslst-
lng of text and math to be used ln only a part of the document. Load MyrladPro wlth
sansmath after all other font packages (see Sectlon )!
AcknowIedgements
MyrladPro ls heavlly based on the MlnlonPro package by Achlm Blumensath, Andreas
Buhmann and Mlchael Zedler.
z Interference with other packages
The MyrladPro package loads the followlng packages: textcomp, amsmath, fontaxes
and mdsymbol. Do not load mdsymbol manually. |f you want to pass optlons
to the other packages, you can elther put the correspondlng \usepackage com-
mand before the \usepackage{MyriadPro} or you can lnclude the optlons ln
the \documentclass command. The MyrladPro package ls not compatlble wlth
amssymb and amsfonts. Please see also the correspondlng sectlon ln the mdsymbol
documentatlon.
The MyrladPro package lncludes support les for the mlcrotype package (verslon :.
or hlgher), consult the packages documentatlon for further detalls.
There ls also a sllght lncompatlblllty wlth the dcolumn package whlch expects all
gures to have the same wldth. |f you want to use thls package you elther have to
speclfy the mathtabular optlon (thls ls the brute force solutlon, not recommended), or
you can use the \figureversion{tabular}command to swltch to tabular gures
ln front of every table (much better, but also more work). |n addltlon, dcolumn sets
gures ln math mode, hence the cholce of math gures (see Sectlon ) determlnes lf
text or llnlng gures are used.
z
Options
Font seIection
The followlng optlons speclfy whlch verslon of the fonts you want to use. The default
settlngs are marked wlth an asterlsk*.
smallfamlly* use only regular and bold face by default
medfamlly use semlbold face ln addltlon to smallfamlly
|n addltlon, the llght and black welght can be used for text lf the respectlve font ls
lnstalled (see Sectlon 6).
The package also provldes a way to only change the text fonts or only the math
fonts. |n addltlon, also addltlonal font verslons for sans serlf math can be dened.
onlytext* only change the sans serlf text font, not the default math fonts
onlymath only change the default math fonts, not the sans serlf text font
math change the default math fonts
sansmath provlde mathverslon sans and sansbold and change
\mathsf to use MyrladPro. The other maln math fonts are
not modled. Thls can be used to only use MyrladPros math
ln a part of the document (see Sectlon ).
Figure seIection
MyrladPro oers four dlerent gure verslons. A detalled descrlptlon ls glven ln Sec-
tlon . The default verslon can be selected by the followlng optlons:
textosf use text gures ln text mode
mathosf use text gures ln math mode
osf* use text gures ln text and math mode
textlf use llnlng gures ln text mode
mathlf use llnlng gures ln math mode
lf use llnlng gures ln text and math mode
mathtabular use tabular gures ln math mode
CaIIigraphic fonts
These optlons speclfy whlch font ls used by the \mathcal command.
cmsy* take the calllgraphlc symbols from Computer Modern: ABC
abx use the calllgraphlc symbols provlded by mathabx: ABCabc
(Thls font contalns also lowercase letters, but lt ls not qulte
nlshed.)
crswash[=option] use the swash letters from CronosPro: . option can be
elther noptsmall, optsmall, noptmed or optmed uslng (no)
optlcal welghts, small or medlum famlly conguratlon (see
CronosPro documentatlon). Flrst one ls default.

BIackboard boId Ietters


You can also select dlerent fonts for the \mathbb command.
amsbb* use the AMS blackboard font: NZQRC
fourlerbb use the Fourler blackboard font: NZQRC
lucldabb use the (commerclal) Luclda Math blackboard font
Greek Ietters
The followlng optlons speclfy whether you want to use uprlght or ltallc Greek letters ln
math mode.
mlxedgreek* uppercase Greek ls uprlght, lowercase Greek ls ltallc
ltallcgreek all Greek letters are ltallc
frenchmath all Greek letters and the uppercase Poman letters are uprlght
Uprlght andltallc Greek letters arealsodlrectlyaccesslblevlathecommands \upgamma,
\itgamma, \upGamma, \itGamma, etc.
MisceIIaneous options
scale=factor scale the font slze by <factor>
loosequotes The quote slgns of MyrladPro are set rather tlght. Thls can
lead to undeslrable spaclng for apostrophes. The loosequotes
optlon sllghtly lncreases the slde bearlngs of quotes.
Thls optlon requlres pdfT
E
X :. and mlcrotype z.. Beware
that thls optlon prevents hyphenatlon of words contalnlng
apostrophes. Such words wlll requlre expllclt hyphenatlon
commands \-.
footnotegures use speclal gures for footnote marks, l.e.,
example lnstead of example
6,9
.
Thls optlon can only be used lf the footnote marks conslst
solely of gures. Note that lf you use one of the KOMA-Scrlpt
classes, customlzatlon of the footnotes vla \deffootnote
before loadlng thls package wlll be overwrltten.
AdditionaI mathversions sans and sansboId
Wlth the optlon sansmath, thls package denes the addltlonal mathverslons sans and
sansbold. They allow the usage of MyrladPro ln math completely lndependent of the
maln math font. Also slngle lnput character symbols (e.g. +, -, (, )) adapt to the
math verslon except when used wlth a dellmlter slze lncreaslng command llke \big(.
:
As a workaround, use the correspondlng full command lnstead (\big\lparen) (see
mdsymbol documentatlon).
:
Any help to solve thls problem ls hlghly welcome!

Example: You want to use MyrladPro ln table envlronments lndependently of the maln
text and math fonts. Load MyrladPro wlth the sansmath optlon after all other font pack-
ages to dene the addltlonal math verslons wlthout modlfylng the maln math font.
Then use lt ln the followlng way:
\begin{table}
\sffamily
\mathversion{sans}
...
\end{table}
Figure seIection and boId math symboIs
MyrladPro oers four dlerent gure verslons. One can choose between text gures
(lowercase gures) and lining gures (uppercase gures) and one can choose between
proportional gures (gures wlth dlerent wldths) and tabular gures (all gures have
the same wldth, useful malnly for tables).
text gures llnlng gures
proportlonal :z6;p 023456/89
tabular o+z(6)8p 0l23456789
The \figureversion command can be used to swltch between dlerent gure ver-
slons. Posslble parameters are:
text, osf text gures
llnlng, lf llnlng gures
tabular, tab tabular gures
proportlonal, prop proportlonal gures
|f you use the sansmath optlon, note that the \figureversion command does
not check whether a sans mathverslon ls actlve. Swltchlng to proportlonal or tab-
ular gures always changes the mathverslon to normal or tabular, respectlvely. |f
you want sans serlf math, swltch to mathverslon sans or sanstabular after the call of
\figureversion:
\mathversion{sans} % sans serif math
...
\figureversion{tabular} % switches to tabular figures in text
% and to mathversion tabular
\mathversion{sanstabular} % switch to sanstabular manually
...
Usually lt ls deslrable to set most text wlth proportlonal gures and to use tabular g-
ures only ln tables and llsts. Unfortunately most L
A
T
E
X document classes do not support

fonts wlth several gure verslons. Use the package tabgures that patches some com-
mon document classes and packages (the standard L
A
T
E
X classes, KOMA-Scrlpt, memolr,
and amsmath) to use tabular gures at some places.
|n addltlon to the \mathsf command, whlch produces bold symbols of Poman let-
ters ln math, MyrladPro oers the command \boldsymbol. |t prlnts bold verslons of
Poman, Greek and other math symbols.
Example:
\boldsymbol{A} \boldsymbol{+} \boldsymbol{\beta} =
\boldsymbol{\mathcal{E}} \boldsymbol{\wedge}
\boldsymbol{\mathrm{H}} produces A + = H.
AdditionaI symboIs, font weights and shapes
TheMyrladPropackageprovldes all symbols fromthemdsymbol package. Addltlonally,
the followlng math symbols are avallable:
0 \slashedzero \varkappa \varbeta
\backepsilon \varbackepsilon \hbar
\imath \jmath \eth
k \Bbbk
Some of the alternatlve characters above resemble the normal character because Myrl-
adPro oers no respectlve glyph. They are dened for compatlblllty reasons.
Small and slanted fractlons are fractlons wlth a helght matchlng the fonts body slze.
These are useful for typesettlng, e.g., cos(

:
x +

:
y) or :: lltres of red wlne and can be
accessed vla
\smallfrac{numerator}{denominator}

s

:.
\slantfrac{numerator}{denominator} s :.
Note that only gures can be used for numerator and denominator. For compatabll-
lty reasons wlth other packages, both commands are dened only lf MyrladPro ls used
wlth math support elther for normal or sans math. Wlth the sansmath optlon, Myrlad
Pro gures are only shown lf a sans mathverslon ls actlve.
|f the spaclng of the numbers relatlve to the slash ln the slantfrac command ls not
rlght, modlfy the lengths MdSlantfracSpacingBeforeSlash and
MdSlantfracSpacingAfterSlash vla for example
\setlength{\MdSlantfracSpacingBeforeSlash}{-0.15em}
\setlength{\MdSlantfracSpacingAfterSlash}{-0.14em}
wlth the modled lengths. Thls can be done elther ln the preamble of the document
or ln the MyriadPro.cfg le. |f the default value ln MyriadPro.cfg does not t
well, wrlte me an emall wlth better values and your font verslon of Myrlad Pro and | wlll
lncorporate them.
6
|f lnstalled, the light and black welght can be accessed by elther
\fontseries{l}\selectfont
or
\fontseries{ub}\selectfont
for text only. |n case of the medfamlly optlon, L
A
T
E
X commands llke \textbf use
Myrlads semiboId welght. Myrlads bold can be used wlth
\fontseries{eb}\selectfont
/ Language support
The followlng encodlngs are supported:
Latln OT:, T:, TS:, LY:, T
Cyrllllc TzA, TzB, TzC, Xz, OTz
Greek LGP (to be used wlth babel, lncludlng polutonlkogreek),
LG| (|bycus transllteratlon scheme)
|n order to typeset Greek text wlth the |bycus transllteratlon scheme, speclfy
\usepackage[ibycus,otherlanguages]{babel}
ln the preamble and consult the documentatlon glven ln ibycus-babel.pdf on
CTAN. \setgreekfontsize ls not supported.
Searching for gures or for words containing Iigatures
in PDF documents
Searchlng for gures or for words contalnlng llgatures ln PDF documents may not be
posslble dependlng on the way the PDF le was created. The followlng table glves an
overvlew of whlch glyphs may cause problems.
font verslon program problems
+.ooo Ghostscrlpt, LF/TOsF, non-standard llgatures
pre-:. pdfT
E
X
+.oo+, Ghostscrlpt, LF/OsF/TOsF, llgatures
z.ooo pre-:. pdfT
E
X
+.oox Dlstlller, dvlpdfmx LF/TOsF
+.oox pdfT
E
X :. ok
z.ooo Dlstlller, dvlpdfmx, ok
pdfT
E
X :.
;
To make gures and llgatures searchable when uslng pdfT
E
X :., you need to enable
glyph-to-unlcode translatlon and load the default mapplng table:
\input glyphtounicode
\pdfgentounicode=1
See the pdfT
E
X manual for detalls.
p NFSS cIassication
Parentheslsed comblnatlons are provlded vla substltutlons.
encodlng famlly serles shape
OT:, T:, TS:, LY:,
T
MyrladPro-OsF,
MyrladPro-LF,
MyrladPro-TOsF,
MyrladPro-TLF
m, b (sb, bx), eb, ub n, lt (sl)
LGP, LG|, TzA, TzB,
TzC, Xz, OTz
MyrladPro-OsF,
MyrladPro-LF,
MyrladPro-TOsF,
MyrladPro-TLF
m, b (sb, bx), eb, ub n, lt (sl)
OML MyrladPro-TOsF m, b (sb, bx), eb, ub n, lt
U MyrladPro-Extra m, b (sb, bx), eb, ub n, lt (sl)
1 Version history
Verslon .:: Flrst verslon
Verslon .:a: Flxed onlytext optlon
Verslon .:b:
Correctlon of mathfrak denltlon
Correct mathverslon sanstabular and sansboldtabular
Verslon .:c: Use down-case mdsymbol
Verslon .:d: sansmath does not need onlytext
Verslon .z:
Correct smallfrac and slantfrac wlth sansmath
Make the spaclng ln slantfrac customlzable
Verslon .: Add support for Llght and Black welght
Verslon .: Flx
z
footnotegures optlon wlth KOMA classes
Verslon .: Modlfy by default only the sans serlf text font, use the math optlon to also
ad[ust the maln math font
z
based on http://tex.stackexchange.com/a/54954/11605

11 7he main styIe Ie


11.1 Options
Set the default optlons. The glven package optlons are taken lnto account after
\ProcessKeyvalOptions below.
+ style
z \newif\if@My@Text@
\newif\if@My@Math@
( \newif\if@My@Sans@Math@
\newif\if@My@Math@Symbols@
6 \@My@Text@true
) \@My@Math@false
8 \@My@Sans@Math@false
p \@My@Math@Symbols@false
+o \RequirePackage{kvoptions}
++ \SetupKeyvalOptions{
+z family = My,
+ prefix = My@
+( }
+ \DeclareVoidOption{onlytext}{\@My@Text@true\@My@Math@false}
+6 \DeclareVoidOption{onlymath}{\@My@Text@false\@My@Math@true}
+) \DeclareVoidOption{math}{\@My@Math@true}
+8 \DeclareVoidOption{sansmath}{\@My@Sans@Math@true}
Font sets
The package MyrladPro-FontDef adapts the font denltlons to the requested font set
(see sectlon :). So we slmply pass on the relevant optlons lncludlng the font scale
factor, only MyrladPro lntegrals are handled here ln MyrladPro.
+p \DeclareStringOption[1.]{scale}
zo \newcommand\My@myriadint@opticals{-NoOpticals}
z+ \newcommand\My@myriadint@bold{-Bold}
zz \newcommand\My@mdsym@regular{regular}
z \newcommand\My@mdsym@bold{bold}
z( \DeclareVoidOption{noopticals}{%
z \def\My@myriadint@opticals{-NoOpticals}%
z6 \PassOptionsToPackage{noopticals}{MyriadPro-FontDef}}
z) \DeclareVoidOption{smallfamily}{%
z8 \def\My@myriadint@bold{-Bold}%
zp \PassOptionsToPackage{smallfamily}{MyriadPro-FontDef}}
o \DeclareVoidOption{medfamily}{%
+ \def\My@myriadint@bold{-Semibold}%
z \def\My@mdsym@regular{autoregular}%
\def\My@mdsym@bold{autosemibold}%
( \PassOptionsToPackage{medfamily}{MyriadPro-FontDef}}
%\DeclareVoidOption{fullfamily}{%
6 % \def\My@myriadint@bold{-Semibold}%
) % \PassOptionsToPackage{fullfamily}{MyriadPro-FontDef}}
p
8 \DeclareVoidOption{normalsize}{%
p \PassOptionsToPackage{normalsize}{MyriadPro-FontDef}}
Figure styIe
(o \newcommand\My@Text@Fig{OsF}
(+ \newcommand\My@Math@Fig{OsF}
(z \newcommand\My@Text@Family{MyriadPro-\My@Text@Fig}
( \newcommand\My@Math@Family{MyriadPro-\My@Math@Fig}
(( \newcommand\My@Math@TFamily{MyriadPro-T\My@Math@Fig}
( \newcommand\My@Math@LetterShape{it}
(6 \newcommand\Cr@Math@Family{CronosPro-\My@Math@Fig}
() \newcommand\Cr@Math@TFamily{CronosPro-T\My@Math@Fig}
(8 \DeclareVoidOption{textosf}{\def\My@Text@Fig{OsF}}
(p \DeclareVoidOption{textlf}{\def\My@Text@Fig{LF}}
o \DeclareVoidOption{mathosf}{\def\My@Math@Fig{OsF}}
+ \DeclareVoidOption{mathlf}{\def\My@Math@Fig{LF}}
z \DeclareVoidOption{osf}{\setkeys{My}{textosf,mathosf}}
\DeclareVoidOption{lf}{\setkeys{My}{textlf,mathlf}}
( \DeclareVoidOption{mathtabular}{\let\My@Math@Family\My@Math@TFamily}
CaIIigraphic fonts
These hooks are executed once the math verslons have been set up.
\RequirePackage{fltpoint}
6 \fpDecimalSign{.}
) \newcommand*{\My@calc@scale}[2]{\fpMul{#1}{#2}{\My@scale}}
8 \newcommand*{\My@calc@bsize}[2]{\fpDiv{#1}{#2}{\My@scale}}
p \newcommand\My@load@cal{}
6o \newcommand\My@load@sans@cal{}
6+ \newcommand\My@load@cal@both{}
6z \newcommand\My@load@bb{}
6 \newcommand\My@load@sans@bb{}
6( \newcommand\My@load@bb@both{}
6 \newcommand\My@load@frak{}
66 \newcommand\My@load@sans@frak{}
6) \newcommand\My@load@frak@both{}
68 \newcommand*\my@if@boldtabular@math[1]{%
6p \@ifundefined{mv@boldtabular}{}{#1}%
)o }
Calllgraphlc fonts from Computer Modern:
)+ \DeclareVoidOption{cmsy}{%
)z \def\My@load@cal@both{%
) \My@calc@scale{\mdcmsy@scale}{0.99}
)( \My@calc@bsize{\mdcmsy@scalea}{6.}
) \My@calc@bsize{\mdcmsy@scaleb}{7.}
)6 \My@calc@bsize{\mdcmsy@scalec}{8.}
)) \My@calc@bsize{\mdcmsy@scaled}{9.}
)8 \My@calc@bsize{\mdcmsy@scalee}{10.}
:
)p \DeclareFontFamily{OMS}{mdcmsy}{\skewchar\font48 }
8o \DeclareFontShape{OMS}{mdcmsy}{m}{n}{%
8+ < -\mdcmsy@scalea>s*[\mdcmsy@scale] cmsy5
8z <\mdcmsy@scalea-\mdcmsy@scaleb>s*[\mdcmsy@scale] cmsy6
8 <\mdcmsy@scaleb-\mdcmsy@scalec>s*[\mdcmsy@scale] cmsy7
8( <\mdcmsy@scalec-\mdcmsy@scaled>s*[\mdcmsy@scale] cmsy8
8 <\mdcmsy@scaled-\mdcmsy@scalee>s*[\mdcmsy@scale] cmsy9
86 <\mdcmsy@scalee- >s*[\mdcmsy@scale] cmsy10
8) }{}
88 \DeclareFontShape{OMS}{mdcmsy}{b}{n}{%
8p < -\mdcmsy@scaleb>s*[\mdcmsy@scale] cmbsy5
po <\mdcmsy@scaleb-\mdcmsy@scalee>s*[\mdcmsy@scale] cmbsy7
p+ <\mdcmsy@scalee- >s*[\mdcmsy@scale] cmbsy10
pz }{}
p }
p( \def\My@load@cal{%
p \DeclareMathAlphabet{\mathcal}{OMS}{mdcmsy}{m}{n}%
p6 \SetMathAlphabet{\mathcal}{bold}{OMS}{mdcmsy}{b}{n}%
p) \SetMathAlphabet{\mathcal}{boldtabular}{OMS}{mdcmsy}{b}{n}%
p8 }%
pp \def\My@load@sans@cal{%
+oo \@ifundefined{mathcal}{%
+o+ \DeclareMathAlphabet{\mathcal}{OMS}{mdcmsy}{m}{n}}
+oz \SetMathAlphabet{\mathcal}{sans}{OMS}{mdcmsy}{m}{n}%
+o \SetMathAlphabet{\mathcal}{sansbold}{OMS}{mdcmsy}{b}{n}%
+o( \SetMathAlphabet{\mathcal}{sanstabular}{OMS}{mdcmsy}{m}{n}%
+o \SetMathAlphabet{\mathcal}{sansboldtabular}{OMS}{mdcmsy}{b}{n}%
+o6 }%
+o) }
+o8 \DeclareVoidOption{abx}{%
+op \def\My@load@cal@both{
++o \My@calc@scale{\mdmathc@scale}{0.99}
+++ \DeclareFontFamily{OT1}{mdmathc}{}%
++z \DeclareFontShape{OT1}{mdmathc}{m}{n}{ <->s*[\mdmathc@scale] mathc10 }{}%
++ }
++( \def\My@load@cal{%
++ \DeclareMathAlphabet\mathcal{OT1}{mdmathc}{m}{n}%
++6 }%
++) \def\My@load@sans@cal{%
++8 \@ifundefined{mathcal}{%
++p \DeclareMathAlphabet{\mathcal}{OT1}{mdmathc}{m}{n}}%
+zo \SetMathAlphabet{\mathcal}{sans}{OT1}{mdmathc}{m}{n}%
+z+ \SetMathAlphabet{\mathcal}{sansbold}{OT1}{mdmathc}{m}{n}%
+zz }%
+z }
+z( \DeclareStringOption[false]{crswash}[noptsmall]
::
BIackboard boId and fraktur fonts
We have to undene \mathfrak and \mathbb before redenlng them, because they
mlght be dened ln such a way that \DeclareMathAlphabet does not recognlze
themas math alphabets and refuses to overwrlte thelr denltlons (e.g., package eufrak
uses \newcommand{\mathfrak}{\EuFrak}).
+z \DeclareVoidOption{amsbb}{
+z6 \def\My@load@bb@both{
+z) \My@calc@scale{\mdmsb@scale}{1.}
+z8 \My@calc@bsize{\mdmsb@scalea}{6.}
+zp \My@calc@bsize{\mdmsb@scaleb}{7.}
+o \My@calc@bsize{\mdmsb@scalec}{8.}
++ \My@calc@bsize{\mdmsb@scaled}{9.}
+z \My@calc@bsize{\mdmsb@scalee}{10.}
+ \DeclareFontFamily{U}{mdmsb}{}
+( \DeclareFontShape{U}{mdmsb}{m}{n}{%
+ < -\mdmsb@scalea>s*[\mdmsb@scale] msbm5%
+6 <\mdmsb@scalea-\mdmsb@scaleb>s*[\mdmsb@scale] msbm6%
+) <\mdmsb@scaleb-\mdmsb@scalec>s*[\mdmsb@scale] msbm7%
+8 <\mdmsb@scalec-\mdmsb@scaled>s*[\mdmsb@scale] msbm8%
+p <\mdmsb@scaled-\mdmsb@scalee>s*[\mdmsb@scale] msbm9%
+(o <\mdmsb@scalee- >s*[\mdmsb@scale] msbm10%
+(+ }{}
+(z }
+( \def\My@load@bb{%
+(( \let\mathbb\@undefined%
+( \let\Bbbk\@undefined%
+(6 \DeclareMathAlphabet\mathbb{U}{mdmsb}{m}{n}%
+() \newcommand\Bbbk{\mathbb{\mathchar"717C}}}
+(8 \def\My@load@sans@bb{%
+(p \ifundef{\mathbb}{%
+o \DeclareMathAlphabet\mathbb{U}{mdmsb}{m}{n}}{}%
++ \SetMathAlphabet{\mathbb}{sans}{U}{mdmsb}{m}{n}%
+z \SetMathAlphabet{\mathbb}{sansbold}{U}{mdmsb}{m}{n}%
+ \SetMathAlphabet{\mathbb}{sanstabular}{U}{mdmsb}{m}{n}%
+( \SetMathAlphabet{\mathbb}{sansboldtabular}{U}{mdmsb}{m}{n}%
+ \mdsy@renewcommand{Bbbk}{\mathbb{\mathchar"717C}}}
+6 }
+) \DeclareVoidOption{lucidabb}{
+8 \def\My@load@bb@both{
+p \My@calc@scale{\mdhlcm@scale}{0.96}
+6o \DeclareFontFamily{U}{mdhlcm}{}
+6+ \DeclareFontShape{U}{mdhlcm}{m}{n}{ <->s*[\mdhlcm@scale] hlcra }{}
+6z }
+6 \def\My@load@bb{
+6( \let\mathbb\@undefined
+6 \let\Bbbk\@undefined
+66 \DeclareMathAlphabet\mathbb{U}{mdhlcm}{m}{n}
+6) \newcommand\Bbbk{\mathbb{k}}}
:z
+68 \def\My@load@sans@bb{
+6p \ifundef{\mathbb}{%
+)o \DeclareMathAlphabet\mathbb{U}{mdhlcm}{m}{n}}{}%
+)+ \SetMathAlphabet{\mathbb}{sans}{U}{mdhlcm}{m}{n}%
+)z \SetMathAlphabet{\mathbb}{sansbold}{U}{mdhlcm}{m}{n}%
+) \SetMathAlphabet{\mathbb}{sanstabular}{U}{mdhlcm}{m}{n}%
+)( \SetMathAlphabet{\mathbb}{sansboldtabular}{U}{mdhlcm}{m}{n}%
+) \mdsy@renewcommand{Bbbk}{\mathbb{k}}}
+)6 }
+)) \DeclareVoidOption{fourierbb}{
+)8 \def\My@load@bb@both{
+)p \My@calc@scale{\mdfutm@scale}{0.99}
+8o \DeclareFontFamily{U}{mdfutm}{}
+8+ \DeclareFontShape{U}{mdfutm}{m}{n}{ <->s*[\mdfutm@scale] four-
ier-bb }{}
+8z }
+8 \def\My@load@bb{
+8( \let\mathbb\@undefined
+8 \let\Bbbk\@undefined
+86 \DeclareMathAlphabet\mathbb{U}{mdfutm}{m}{n}
+8) \newcommand\Bbbk{\mathbb{k}}}
+88 \def\My@load@sans@bb{
+8p \ifundef{\mathbb}{%
+po \DeclareMathAlphabet\mathbb{U}{mdfutm}{m}{n}}{}%
+p+ \SetMathAlphabet{\mathbb}{sans}{U}{mdfutm}{m}{n}%
+pz \SetMathAlphabet{\mathbb}{sansbold}{U}{mdfutm}{m}{n}%
+p \SetMathAlphabet{\mathbb}{sanstabular}{U}{mdfutm}{m}{n}%
+p( \SetMathAlphabet{\mathbb}{sansboldtabular}{U}{mdfutm}{m}{n}%
+p \mdsy@renewcommand{Bbbk}{\mathbb{k}}}
+p6 }
Fracture fonts
+p) \def\My@load@frak@both{%
+p8 \My@calc@scale{\mdeuf@scale}{1.}
+pp \My@calc@bsize{\mdeuf@scalea}{6.}
zoo \My@calc@bsize{\mdeuf@scaleb}{7.}
zo+ \My@calc@bsize{\mdeuf@scalec}{8.}
zoz \My@calc@bsize{\mdeuf@scaled}{9.}
zo \My@calc@bsize{\mdeuf@scalee}{10.}
zo( \DeclareFontFamily{U}{mdeuf}{}
zo \DeclareFontShape{U}{mdeuf}{m}{n}{
zo6 < -\mdeuf@scaleb>s*[\mdeuf@scale] eufm5
zo) <\mdeuf@scaleb-\mdeuf@scalee>s*[\mdeuf@scale] eufm7
zo8 <\mdeuf@scalee- >s*[\mdeuf@scale] eufm10
zop }{}
z+o \DeclareFontShape{U}{mdeuf}{b}{n}{
z++ < -\mdeuf@scaleb>s*[\mdeuf@scale] eufb5
z+z <\mdeuf@scaleb-\mdeuf@scalee>s*[\mdeuf@scale] eufb7
z+ <\mdeuf@scalee- >s*[\mdeuf@scale] eufb10
z+( }{}
:
z+ }
z+6 \def\My@load@frak{%
z+) \DeclareMathAlphabet{\mathfrak}{U}{mdeuf}{m}{n}
z+8 \SetMathAlphabet{\mathfrak}{bold}{U}{mdeuf}{b}{n}
z+p \SetMathAlphabet{\mathfrak}{boldtabular}{U}{mdeuf}{b}{n}
zzo \DeclareRobustCommand{\Re}{\mathfrak{R}}
zz+ \DeclareRobustCommand{\Im}{\mathfrak{I}}
zzz }
zz \def\My@load@sans@frak{%
zz( \ifundef{\mathfrak}{%
zz \DeclareMathAlphabet{\mathfrak}{U}{mdeuf}{m}{n}%
zz6 \SetMathAlphabet{\mathfrak}{bold}{U}{mdeuf}{b}{n}%
zz) \my@if@boldtabular@math{\SetMathAlphabet{\mathfrak}{boldtabular}{U}{mdeuf}{b}{n}}%
zz8 }{}
zzp \@ifpackageloaded{eufrak}{%
zo \SetMathAlphabet{\EuFrak}{sans}{U}{mdeuf}{m}{n}%
z+ \SetMathAlphabet{\EuFrak}{sansbold}{U}{mdeuf}{b}{n}%
zz \SetMathAlphabet{\EuFrak}{sanstabular}{U}{mdeuf}{m}{n}%
z \SetMathAlphabet{\EuFrak}{sansboldtabular}{U}{mdeuf}{b}{n}%
z( }{%
z \SetMathAlphabet{\mathfrak}{sans}{U}{mdeuf}{m}{n}%
z6 \SetMathAlphabet{\mathfrak}{sansbold}{U}{mdeuf}{b}{n}%
z) \SetMathAlphabet{\mathfrak}{sanstabular}{U}{mdeuf}{m}{n}%
z8 \SetMathAlphabet{\mathfrak}{sansboldtabular}{U}{mdeuf}{b}{n}%
zp }
z(o \mdsy@DeclareRobustCommand{Re}{\mathfrak{R}}
z(+ \mdsy@DeclareRobustCommand{Im}{\mathfrak{I}}
z(z }
Greek Ietters
\My@greek@Upright, \My@greek@Mixed, and \My@greek@Italic are dened
below ln sectlon ::. before \My@load@greek ls executed.
z( \newcommand\My@load@greek{\My@greek@Mixed}
z(( \def\My@greek@upper{up}%
z( \def\My@greek@lower{it}%
z(6 \DeclareVoidOption{frenchmath}{%
z() \def\My@greek@upper{up}%
z(8 \def\My@greek@lower{up}%
z(p \def\My@Math@LetterShape{n}%
zo }
z+ \DeclareVoidOption{mixedgreek}{%
zz \def\My@greek@upper{up}%
z \def\My@greek@lower{it}%
z( }
z \DeclareVoidOption{italicgreek}{%
z6 \def\My@greek@upper{it}%
z) \def\My@greek@lower{it}%
z8 }
:
IntegraIs
zp \newcommand\My@load@integrals{}
z6o \DeclareVoidOption{myriadint}{\def\My@load@integrals{\My@Decl@Myriad@Ints}}
MisceIIaneous options
Footnote gures, extra spaclng for the apostrophe.
z6+ \DeclareVoidOption{footnotefigures}{%
z6z \def\@makefnmark{%
z6 \begingroup
z6( \normalfont
z6 \fontfamily{MyriadPro-Extra}\fontencoding{U}\selectfont
z66 \@thefnmark
z6) \endgroup}%
z68 \@ifundefined{KOMAClassName}{}{\deffootnote[1em]{1.5em}{1em}{%
z6p \fontfamily{MyriadPro-Extra}\fontencoding{U}\selectfont\thefootnotemark}}}
z)o \newcommand\My@Quote@Spacing{}
z)+ \DeclareVoidOption{loosequotes}{%
z)z \def\My@Quote@Spacing{\My@Quote@Spacing@Loose}}
DefauIts
z) \setkeys{My}{amsbb}
z)( \setkeys{My}{cmsy}
z) \ProcessKeyvalOptions{My}\relax
z)6 \if@My@Math@
z)) \@My@Math@Symbols@true
z)8 \fi
z)p \if@My@Sans@Math@
z8o \@My@Math@Symbols@true
z8+ \fi
z8z \RequirePackage{ifthen}
z8 \ifthenelse{\equal{\My@crswash}{false}}{}{%
z8( \def\My@load@cal@both{
z8 \My@calc@scale{\Cr@scale}{1.08}
z86 \ifthenelse{\equal{\My@crswash}{noptsmall}}{%
z8) \RequirePackage{CronosPro-FontDef}}{}
z88 \ifthenelse{\equal{\My@crswash}{optsmall}}{%
z8p \RequirePackage[opticals]{CronosPro-FontDef}}{}
zpo \ifthenelse{\equal{\My@crswash}{noptmed}}{%
zp+ \RequirePackage[medfamily]{CronosPro-FontDef}}{}
zpz \ifthenelse{\equal{\My@crswash}{optmed}}{%
zp \RequirePackage[opticals,medfamily]{CronosPro-FontDef}}{}}
zp( \def\My@load@cal{
zp \DeclareMathAlphabet\mathcal {T1}{\Cr@Math@Family} {m}{sw}
zp6 \SetMathAlphabet\mathcal{bold} {T1}{\Cr@Math@Family} {b}{sw}
zp) \SetMathAlphabet\mathcal{tabular} {T1}{\Cr@Math@TFamily}{m}{sw}
zp8 \SetMathAlphabet\mathcal{boldtabular}{T1}{\Cr@Math@TFamily}{b}{sw}}
zpp \def\My@load@sans@cal{
:
oo \@ifundefined{mathcal}{%
o+ \DeclareMathAlphabet\mathcal {T1}{\Cr@Math@Family}{m}{sw}}
oz \SetMathAlphabet\mathcal{sans} {T1}{\Cr@Math@Family}{m}{sw}
o \SetMathAlphabet\mathcal{sansbold} {T1}{\Cr@Math@Family}{b}{sw}
o( \SetMathAlphabet\mathcal{sanstabular} {T1}{\Cr@Math@Family}{m}{sw}
o \SetMathAlphabet\mathcal{sansboldtabular}{T1}{\Cr@Math@Family}{b}{sw}}}
11.z Font decIarations
o6 \RequirePackage{MyriadPro-FontDef}
o) \@ifpackageloaded{textcomp}{}{\RequirePackage{textcomp}}
o8
op \if@My@Math@
+o \DeclareMathVersion{tabular}
++ \DeclareMathVersion{boldtabular}
+z \RequirePackage[normalweight=\My@mdsym@regular,boldweight=\My@mdsym@bold,scale=\My@scale]{mdsymbol}[2012/01/07]
+ \else
+( \if@My@Sans@Math@
+ \RequirePackage[normalweight=\My@mdsym@regular,boldweight=\My@mdsym@bold,scale=\My@scale,onlysansmath]{mdsymbol}[2012/01/07]
+6 \fi
+) \fi
By default, we use b for the bold serles. |f MyriadPro-Semibold ls not avallable thls
mlght lnternally be mapped to MyriadPro-Bold (see MyrladPro-FontDef).
+8 \if@My@Text@
+p \edef\sfdefault{\My@Text@Family}
zo \let\ibycusdefault\My@Text@Family
|f a recent verlon of mlcrotype ls loaded then we lmplement an optlon to lncrease the
slde bearlngs of all quote glyphs.
z+ \def\My@Quote@Spacing@Loose{%
zz \@ifpackageloaded{microtype}{}{\RequirePackage[kerning=true]{microtype}}
z \@ifundefined{SetExtraKerning}{}{
z( \let\My@Set@Quote@Spacing\SetExtraKerning}
z % \SetExtraKerning
z6 % [ unit = 1em ]
z) % { encoding = {OT1,T1,LGR,U,OT2,T2A,T2B,T2C,T5,X2,LY1},
z8 % family = {MyriadPro-OsF,MyriadPro-LF,MyriadPro-TOsF,MyriadPro-
TLF},
zp % shape = n }
o % { \textquotedblleft = {30,30}, \textquotedblright = {30,30},
+ % \textquoteleft = {30,30}, \textquoteright = {30,30} }}
z }
\newcommand*\My@Set@Quote@Spacing[3][]{}
( \My@Quote@Spacing
\My@Set@Quote@Spacing
6 [ unit = 1em ]
) { encoding = {OT1,T1,LGR,U,OT2,T2A,T2B,T2C,T5,X2,LY1},
8 family = {MyriadPro-OsF,MyriadPro-LF,MyriadPro-TOsF,MyriadPro-
TLF},
p shape = {n,it} }
:6
(o { \textquotedblleft = {30,30}, \textquotedblright = {30,30},
(+ \textquoteleft = {30,30}, \textquoteright = {30,30} }
(z \fi
Math fonts
Pedene the standard math verslons normal and bold.
( \if@My@Math@
(( \DeclareSymbolFont{operators} {T1} {\My@Math@Family}{m} {n}
( \DeclareSymbolFont{letters} {OML}{MyriadPro-TOsF} {m} {\My@Math@LetterShape}
(6 \SetSymbolFont{operators}{bold}{T1} {\My@Math@Family}{b}{n}
() \SetSymbolFont{letters} {bold}{OML}{MyriadPro-TOsF} {b}{\My@Math@LetterShape}
(8 \DeclareMathAlphabet\mathbf {T1} {\My@Math@Family}{b}{n}
(p \DeclareMathAlphabet\mathsf {T1} {\My@Math@Family}{m} {n}
o \SetMathAlphabet\mathsf {bold}{T1} {\My@Math@Family}{b}{n}
+ \DeclareMathAlphabet\mathit {T1} {\My@Math@Family}{m} {it}
z \SetMathAlphabet\mathit {bold}{T1} {\My@Math@Family}{b}{it}
Extra math verslons tabular and boldtabular, whlch use tabular gures lnstead
of proportlonal ones. These math verslons can be useful ln tables (cf. sectlon z).
\SetSymbolFont{operators}{tabular} {T1} {\My@Math@TFamily}{m}{n}
( \SetSymbolFont{letters} {tabular} {OML}{MyriadPro-TOsF} {m}{\My@Math@LetterShape}
\SetMathAlphabet\mathit {tabular} {T1} {\My@Math@TFamily}{m}{it}
6
) \SetSymbolFont{operators}{boldtabular}{T1} {\My@Math@TFamily}{b}{n}
8 \SetSymbolFont{letters} {boldtabular}{OML}{MyriadPro-TOsF} {b}{\My@Math@LetterShape}
p \SetMathAlphabet\mathit {boldtabular}{T1} {\My@Math@TFamily}{b}{it}
Execute the hooks set up above to load the varlous math alphabets.
6o \My@load@bb@both
6+ \My@load@bb
6z \My@load@frak@both
6 \My@load@frak
6( \My@load@cal@both
6 \My@load@cal
66 \fi
Setup for sans serlf math: set mathsf, create two newmath verslons for sans serlf math
and load correct swash letters.
6) \if@My@Sans@Math@
68
6p \newcommand\IfSymbolFont[3]{\@ifundefined{sym#1}{#3}{#2}}
)o
)+ \DeclareMathAlphabet\mathsf {T1}{\My@Math@Family} {m}{n}
)z \SetMathAlphabet\mathsf{bold} {T1}{\My@Math@Family} {b}{n}
) \SetMathAlphabet\mathsf{sansbold} {T1}{\My@Math@Family} {b}{n}
)( \SetMathAlphabet\mathsf{sanstabular} {T1}{\My@Math@TFamily}{m}{n}
) \SetMathAlphabet\mathsf{sansboldtabular}{T1}{\My@Math@TFamily}{b}{n}
)6
)) \SetMathAlphabet\mathit{sans} {T1}{\My@Math@Family} {m}{it}
)8 \SetMathAlphabet\mathit{sansbold} {T1}{\My@Math@Family} {b}{it}
:;
)p \SetMathAlphabet\mathit{sanstabular} {T1}{\My@Math@TFamily}{m}{it}
8o \SetMathAlphabet\mathit{sansboldtabular}{T1}{\My@Math@TFamily}{b}{it}
8+
8z \SetMathAlphabet\mathbf{sans} {T1}{\My@Math@Family} {b}{n}
8 \SetMathAlphabet\mathbf{sanstabular}{T1}{\My@Math@TFamily}{b}{n}
8(
8 \IfSymbolFont{operators}{%
86 \SetSymbolFont{operators}{sans}{T1}{\My@Math@Family}{m}{n}
8) }{%
88 \DeclareSymbolFont{operators} {T1}{\My@Math@Family}{m}{n}
8p }
po \SetSymbolFont{operators}{sansbold} {T1}{\My@Math@Family} {b}{n}
p+ \SetSymbolFont{operators}{sanstabular} {T1}{\My@Math@TFamily}{m}{n}%
pz \SetSymbolFont{operators}{sansboldtabular}{T1}{\My@Math@TFamily}{b}{n}%
p
p( \IfSymbolFont{letters}{%
p \SetSymbolFont{letters}{sans}{OML}{MyriadPro-OsF}{m}{\My@Math@LetterShape}
p6 }{%
p) \DeclareSymbolFont{letters} {OML}{MyriadPro-OsF}{m}{\My@Math@LetterShape}
p8 }
pp \SetSymbolFont{letters}{sansbold} {OML}{MyriadPro-OsF} {b}{\My@Math@LetterShape}
(oo \SetSymbolFont{letters}{sanstabular} {OML}{MyriadPro-TOsF}{m}{\My@Math@LetterShape}
(o+ \SetSymbolFont{letters}{sansboldtabular}{OML}{MyriadPro-TOsF}{b}{\My@Math@LetterShape}
(oz
(o \My@load@cal@both
(o( \My@load@sans@cal
(o \My@load@bb@both
(o6 \My@load@sans@bb
(o) \My@load@frak@both
(o8 \My@load@sans@frak
Declare command to prlnt a bold symbol of any math symbol. Code ls taken from
amsbsy to locally swltch mathverslon.
(op \mdsy@DeclareRobustCommandArg{boldsymbol}{1}{%
(+o \begingroup
(++ \let\@nomath\@gobble \mathversion{sansbold}%
(+z \math@atom{#1}{%
(+ \mathchoice%
(+( {\hbox{$\m@th\displaystyle#1$}}%
(+ {\hbox{$\m@th\textstyle#1$}}%
(+6 {\hbox{$\m@th\scriptstyle#1$}}%
(+) {\hbox{$\m@th\scriptscriptstyle#1$}}}%
(+8 \endgroup}
(+p \fi
The accents are dened for math and/or sansmath.
(zo \if@My@Math@Symbols@
(z+ \mdsy@DeclareMathAccent{grave} {\mathalpha}{operators}{0}
(zz \mdsy@DeclareMathAccent{acute} {\mathalpha}{operators}{1}
(z \mdsy@DeclareMathAccent{hat} {\mathalpha}{operators}{2}
(z( \mdsy@DeclareMathAccent{tilde} {\mathalpha}{operators}{3}
:
(z \mdsy@DeclareMathAccent{ddot} {\mathalpha}{operators}{4}
(z6 \mdsy@DeclareMathAccent{mathring}{\mathalpha}{operators}{6}
(z) \mdsy@DeclareMathAccent{check} {\mathalpha}{operators}{7}
(z8 \mdsy@DeclareMathAccent{breve} {\mathalpha}{operators}{8}
(zp \mdsy@DeclareMathAccent{bar} {\mathalpha}{operators}{9}
(o \mdsy@DeclareMathAccent{dot} {\mathalpha}{operators}{10}
(+ \fi
11. Font seIection
The font selectlon commands such as \figureversionare provldedby the package
fontaxes.
(z \RequirePackage{fontaxes}[2005/05/04]
We dene an addltlonal short hand for compatlbllltys sake.
( \let\oldstylenums\textfigures
11. Greek Ietters
We provlde math-mode commands for each Greek letter, both ltallc and uprlght. Fur-
thermore, there are three commands to select the default verslon of the letters (all up-
rlght, all ltallc, or capltals uprlght and lowercase ltallc).
(( \if@My@Math@Symbols@
( % \begin{macrocode}
(6 \if@My@Sans@Math@
() \newcommand\My@greek@letter@[2]{
(8 \ifcsdef{#1}{%
(p \csletcs{#1@old}{#1}%
((o }{%
((+ \csletcs{#1@old}{#2#1}%
((z }%
(( \csletcs{sans#1}{#2#1}%
((( \csundef{#1}%
(( \csdef{#1}{\ifmathversionsans{\csname sans#1\endcsname}{\csname#1@old\endcsname}}%
((6 }%
(() \else
((8 \newcommand\My@greek@letter@[2]{%
((p \csletcs{#1}{#2#1}
(o }
(+ \fi
(z \newcommand*\My@greek@letter[3]{%
( \mdsy@DeclareMathSymbol{it#1}{\mathord}{letters}{#2}%
(( \mdsy@DeclareMathSymbol{up#1}{\mathord}{letters}{#3}%
( \edef\@tempa{\@car#1\@nil}%
(6 \ifnum\uccode\@tempa=\@tempa%
() \My@greek@letter@{#1}{\My@greek@upper}%
(8 \else%
(p \My@greek@letter@{#1}{\My@greek@lower}%
:p
(6o \fi%
(6+ }
We can now declare the Greek letters (left ltallc, rlght uprlght).
(6z \My@greek@letter{Gamma} {000}{200}
(6 \My@greek@letter{Delta} {001}{201}
(6( \My@greek@letter{Theta} {002}{202}
(6 \My@greek@letter{Lambda} {003}{203}
(66 \My@greek@letter{Xi} {004}{204}
(6) \My@greek@letter{Pi} {005}{205}
(68 \My@greek@letter{Sigma} {006}{206}
(6p \My@greek@letter{Upsilon} {007}{207}
()o \My@greek@letter{Phi} {010}{210}
()+ \My@greek@letter{Psi} {011}{211}
()z \My@greek@letter{Omega} {012}{212}
() \My@greek@letter{alpha} {013}{213}
()( \My@greek@letter{beta} {014}{214}
() \My@greek@letter{gamma} {015}{215}
()6 \My@greek@letter{delta} {016}{216}
()) \My@greek@letter{epsilon} {017}{217}
()8 \My@greek@letter{zeta} {020}{220}
()p \My@greek@letter{eta} {021}{221}
(8o \My@greek@letter{theta} {022}{222}
(8+ \My@greek@letter{iota} {023}{223}
(8z \My@greek@letter{kappa} {024}{224}
(8 \My@greek@letter{lambda} {025}{225}
(8( \My@greek@letter{mu} {026}{226}
(8 \My@greek@letter{nu} {027}{227}
(86 \My@greek@letter{xi} {030}{230}
(8) \My@greek@letter{pi} {031}{231}
(88 \My@greek@letter{rho} {032}{232}
(8p \My@greek@letter{sigma} {033}{233}
(po \My@greek@letter{tau} {034}{234}
(p+ \My@greek@letter{upsilon} {035}{235}
(pz \My@greek@letter{phi} {036}{236}
(p \My@greek@letter{chi} {037}{237}
(p( \My@greek@letter{psi} {040}{240}
(p \My@greek@letter{omega} {041}{241}
(p6 \My@greek@letter{varepsilon} {042}{242}
(p) \My@greek@letter{vartheta} {043}{243}
(p8 \My@greek@letter{varpi} {044}{244}
(pp \My@greek@letter{varrho} {045}{245}
oo \My@greek@letter{varsigma} {046}{246}
o+ \My@greek@letter{varphi} {047}{247}
Some of the followlng symbols are not really Greek letters but are treated ln the same
way.
oz %% \My@greek@letter{varbeta} {260}{250}
o \My@greek@letter{varbeta} {014}{214}
o( %% \My@greek@letter{varkappa} {261}{251}
o \My@greek@letter{varkappa} {024}{224}
z
o6 \My@greek@letter{backepsilon} {262}{252}
o) \My@greek@letter{varbackepsilon}{263}{253}
o8 \My@greek@letter{digamma} {264}{254}
op \My@greek@letter{eth} {266}{256}
+o \fi
11. pdf7
E
X to-unicode support
Old verslons of MyrladPro have non-standard glyph names.
++ \@ifundefined{pdfglyphtounicode}{}{
+z \pdfglyphtounicode{uniEFD5}{03DD}% uni03DD
+ \pdfglyphtounicode{uniEFED}{02D9}% dotaccent.cap
+( \pdfglyphtounicode{uniEFEE}{02D8}% breve.cap
+ \pdfglyphtounicode{uniEFF1}{02DB}% ogonek.cap
+6 \pdfglyphtounicode{uniEFF2}{00B8}% cedilla.cap
+) \pdfglyphtounicode{uniEFF3}{02DA}% ring.cap
+8 \pdfglyphtounicode{uniEFF5}{02DC}% tilde.cap
+p \pdfglyphtounicode{uniEFF7}{02C6}% circumflex.cap
zo \pdfglyphtounicode{uniF628}{2030}% perthousand.oldstyle
z+ \pdfglyphtounicode{uniF62C}{0028}% parenleft.denominator
zz \pdfglyphtounicode{uniF62D}{0029}% parenright.denominator
z \pdfglyphtounicode{uniF631}{0028}% parenleft.numerator
z( \pdfglyphtounicode{uniF632}{0029}% parenright.numerator
z \pdfglyphtounicode{uniF638}{0030}% zero.slash
z6 \pdfglyphtounicode{uniF639}{0030}% zero.fitted
z) \pdfglyphtounicode{uniF63A}{0032}% two.fitted
z8 \pdfglyphtounicode{uniF63B}{0033}% three.fitted
zp \pdfglyphtounicode{uniF63C}{0034}% four.fitted
o \pdfglyphtounicode{uniF63D}{0035}% five.fitted
+ \pdfglyphtounicode{uniF63E}{0036}% six.fitted
z \pdfglyphtounicode{uniF63F}{0037}% seven.fitted
\pdfglyphtounicode{uniF640}{0038}% eight.fitted
( \pdfglyphtounicode{uniF641}{0039}% nine.fitted
\pdfglyphtounicode{uniF642}{0025}% percent.oldstyle
6 \pdfglyphtounicode{uniF643}{0030}% zero.taboldstyle
) \pdfglyphtounicode{uniF644}{0031}% one.taboldstyle
8 \pdfglyphtounicode{uniF645}{0032}% two.taboldstyle
p \pdfglyphtounicode{uniF646}{0033}% three.taboldstyle
(o \pdfglyphtounicode{uniF647}{0034}% four.taboldstyle
(+ \pdfglyphtounicode{uniF648}{0035}% five.taboldstyle
(z \pdfglyphtounicode{uniF649}{0036}% six.taboldstyle
( \pdfglyphtounicode{uniF64A}{0037}% seven.taboldstyle
(( \pdfglyphtounicode{uniF64B}{0038}% eight.taboldstyle
( \pdfglyphtounicode{uniF64C}{0039}% nine.taboldstyle
(6 \pdfglyphtounicode{uniF64D}{20A1}% colonmonetary.taboldstyle
() \pdfglyphtounicode{uniF64E}{20AC}% Euro.taboldstyle
(8 \pdfglyphtounicode{uniF64F}{0192}% florin.taboldstyle
(p \pdfglyphtounicode{uniF650}{0023}% numbersign.taboldstyle
o \pdfglyphtounicode{uniF651}{00A3}% sterling.taboldstyle
z:
+ \pdfglyphtounicode{uniF652}{00A5}% yen.taboldstyle
z \pdfglyphtounicode{uniF653}{0024}% dollar.taboldstyle
\pdfglyphtounicode{uniF654}{00A2}% cent.taboldstyle
( \pdfglyphtounicode{uniF655}{0030}% zero.denominator
\pdfglyphtounicode{uniF656}{0031}% one.denominator
6 \pdfglyphtounicode{uniF657}{0032}% two.denominator
) \pdfglyphtounicode{uniF658}{0033}% three.denominator
8 \pdfglyphtounicode{uniF659}{0034}% four.denominator
p \pdfglyphtounicode{uniF65A}{0035}% five.denominator
6o \pdfglyphtounicode{uniF65B}{0036}% six.denominator
6+ \pdfglyphtounicode{uniF65C}{0037}% seven.denominator
6z \pdfglyphtounicode{uniF65D}{0038}% eight.denominator
6 \pdfglyphtounicode{uniF65E}{0039}% nine.denominator
6( \pdfglyphtounicode{uniF65F}{002C}% comma.denominator
6 \pdfglyphtounicode{uniF660}{002E}% period.denominator
66 \pdfglyphtounicode{uniF661}{0030}% zero.numerator
6) \pdfglyphtounicode{uniF662}{0031}% one.numerator
68 \pdfglyphtounicode{uniF663}{0032}% two.numerator
6p \pdfglyphtounicode{uniF664}{0033}% three.numerator
)o \pdfglyphtounicode{uniF665}{0034}% four.numerator
)+ \pdfglyphtounicode{uniF666}{0035}% five.numerator
)z \pdfglyphtounicode{uniF667}{0036}% six.numerator
) \pdfglyphtounicode{uniF668}{0037}% seven.numerator
)( \pdfglyphtounicode{uniF669}{0038}% eight.numerator
) \pdfglyphtounicode{uniF66A}{0039}% nine.numerator
)6 \pdfglyphtounicode{uniF66B}{002C}% comma.numerator
)) \pdfglyphtounicode{uniF66C}{002E}% period.numerator
)8 \pdfglyphtounicode{uniF66D}{0103}% abreve.sc
)p \pdfglyphtounicode{uniF66F}{0105}% aogonek.sc
8o \pdfglyphtounicode{uniF671}{0107}% cacute.sc
8+ \pdfglyphtounicode{uniF672}{010D}% ccaron.sc
8z \pdfglyphtounicode{uniF675}{010F}% dcaron.sc
8 \pdfglyphtounicode{uniF676}{0111}% dcroat.sc
8( \pdfglyphtounicode{uniF678}{011B}% ecaron.sc
8 \pdfglyphtounicode{uniF67B}{014B}% eng.sc
86 \pdfglyphtounicode{uniF67C}{0119}% eogonek.sc
8) \pdfglyphtounicode{uniF67D}{011F}% gbreve.sc
88 \pdfglyphtounicode{uniF684}{0133}% ij.sc
8p \pdfglyphtounicode{uniF687}{0129}% itilde.sc
po \pdfglyphtounicode{uniF68A}{013A}% lacute.sc
p+ \pdfglyphtounicode{uniF68B}{013E}% lcaron.sc
pz \pdfglyphtounicode{uniF68E}{0144}% nacute.sc
p \pdfglyphtounicode{uniF68F}{0148}% ncaron.sc
p( \pdfglyphtounicode{uniF692}{0151}% ohungarumlaut.sc
p \pdfglyphtounicode{uniF695}{0155}% racute.sc
p6 \pdfglyphtounicode{uniF696}{0159}% rcaron.sc
p) \pdfglyphtounicode{uniF698}{015B}% sacute.sc
p8 \pdfglyphtounicode{uniF699}{015F}% scedilla.sc
pp \pdfglyphtounicode{uniF69D}{0165}% tcaron.sc
6oo \pdfglyphtounicode{uniF69E}{0163}% tcommaaccent.sc
zz
6o+ \pdfglyphtounicode{uniF6A0}{0171}% uhungarumlaut.sc
6oz \pdfglyphtounicode{uniF6A3}{016F}% uring.sc
6o \pdfglyphtounicode{uniF6A4}{0169}% utilde.sc
6o( \pdfglyphtounicode{uniF6AA}{1EF3}% ygrave.sc
6o \pdfglyphtounicode{uniF6AB}{017A}% zacute.sc
6o6 \pdfglyphtounicode{uniF6AC}{017C}% zdotaccent.sc
6o) \pdfglyphtounicode{uniF6DC}{0031}% one.fitted
6o8 }
11. Superior and inferior gures
We dene commands to convert numbers to numerator gures and denomlnator g-
ures.
6op \def\My@for@tok#1:=#2\do#3{%
6+o \expandafter\def\expandafter\@fortmp\expandafter{#2}%
6++ \ifx\@fortmp\@empty \else
6+z \expandafter\My@forloop@tok#2\@nil\@nil\@@#1{#3}%
6+ \fi}
6+( \def\My@forloop@tok#1#2#3\@@#4#5{%
6+ \def#4{#1}%
6+6 \ifx #4\@nnil \else
6+) #5%
6+8 \def#4{#2}%
6+p \ifx #4\@nnil \else
6zo #5\My@iforloop@tok #3\@@#4{#5}%
6z+ \fi\fi}
6zz \def\My@iforloop@tok#1#2\@@#3#4{%
6z \def#3{#1}%
6z( \ifx #3\@nnil
6z \expandafter\@fornoop
6z6 \else
6z) #4\relax\expandafter\My@iforloop@tok
6z8 \fi
6zp #2\@@#3{#4}}
6o %
6+ \newcommand*\My@extra@font{%
6z \fontencoding{U}\fontfamily{MyriadPro-Extra}\selectfont}
6 \newcommand*\My@numerator@fig[1]{{\My@extra@font\My@@numerator@fig{#1}}}
6( \newcommand*\My@denominator@fig[1]{{\My@extra@font\My@@denominator@fig{#1}}}
6 \newcommand*\My@superior@fig[1]{{\My@extra@font\My@@superior@fig{#1}}}
66 \newcommand*\My@inferior@fig[1]{{\My@extra@font\My@@inferior@fig{#1}}}
6) \newcommand*\My@@numerator@fig[1]{%
68 \My@for@tok\@nf@fig:=#1\do{%
6p \ifcase\@nf@fig
6(o \char00%
6(+ \or\char01%
6(z \or\char02%
6( \or\char03%
6(( \or\char04%
z
6( \or\char05%
6(6 \or\char06%
6() \or\char07%
6(8 \or\char10%
6(p \or\char11%
6o \else
6+ \@latex@error{invalid argument to \string\My@@numerator@fig}%
6z \fi
6 }}
6( \newcommand*\My@@denominator@fig[1]{%
6 \My@for@tok\@nf@fig:=#1\do{%
66 \ifcase\@nf@fig
6) \char20%
68 \or\char21%
6p \or\char22%
66o \or\char23%
66+ \or\char24%
66z \or\char25%
66 \or\char26%
66( \or\char27%
66 \or\char30%
666 \or\char31%
66) \else
668 \@latex@error{invalid argument to \string\My@@denominator@fig}%
66p \fi
6)o }}
6)+ \newcommand*\My@@superior@fig[1]{%
6)z \My@for@tok\@nf@fig:=#1\do{%
6) \ifcase\@nf@fig
6)( \char60%
6) \or\char61%
6)6 \or\char62%
6)) \or\char63%
6)8 \or\char64%
6)p \or\char65%
68o \or\char66%
68+ \or\char67%
68z \or\char70%
68 \or\char71%
68( \else
68 \@latex@error{invalid argument to \string\My@@superior@fig}%
686 \fi
68) }}
688 \newcommand*\My@@inferior@fig[1]{%
68p \My@for@tok\@nf@fig:=#1\do{%
6po \ifcase\@nf@fig
6p+ \char100%
6pz \or\char101%
6p \or\char102%
6p( \or\char103%
z
6p \or\char104%
6p6 \or\char105%
6p) \or\char106%
6p8 \or\char107%
6pp \or\char110%
)oo \or\char111%
)o+ \else
)oz \@latex@error{invalid argument to \string\My@@inferior@fig}%
)o \fi
)o( }}
\Myensure@text swltches to text mode, lf necessary.
)o \newcommand*\Myensure@text[1]{%
)o6 \ifmmode
)o) \mdsy@text{#1}%
)o8 \else
)op #1%
)+o \fi}
\smallfracand\slantfracassemble numerlcal fractlons. To ensure not overwrlt-
lng exlstlng commands, they are only dened lf mathverslon reactlng commands are
avallable.
)++ \newlength{\MdSlantfracSpacingBeforeSlash}
)+z \newlength{\MdSlantfracSpacingAfterSlash}
)+ \setlength{\MdSlantfracSpacingBeforeSlash}{-0.15em}
)+( \setlength{\MdSlantfracSpacingAfterSlash}{-0.14em}
)+ \InputIfFileExists{MyriadPro.cfg}{%
)+6 \typeout{Using the configuration file MyriadPro.cfg}}{}
)+) \newcommand*\My@smallfrac[2]{%
)+8 \leavevmode
)+p \setbox\@tempboxa
)zo \vbox{%
)z+ \baselineskip\z@skip%
)zz \lineskip.25ex%
)z \lineskiplimit-\maxdimen
)z( \ialign{\hfil##\hfil\crcr
)z \vbox to 2.13ex{\vss\hbox{\My@numerator@fig{#1}}\vskip.68ex}\crcr
)z6 \leavevmode\leaders\hrule height 1.1ex depth -1.01ex\hfill\crcr
)z) \vtop to 1ex{\vbox{}\hbox{\My@denominator@fig{#2}}\vss}\crcr
)z8 \noalign{\vskip-1.47ex}}}%
)zp \dp\@tempboxa=0.49ex%
)o \box\@tempboxa}
)+ \newcommand*\My@slantfrac[2]{%
)z {\My@extra@font\My@@numerator@fig{#1}\kern\MdSlantfracSpacingBeforeSlash/\kern\MdSlantfracSpacingAfterSlash\My@@denominator@fig{#2}}}
) \if@My@Math@Symbols@
)( \mdsy@DeclareRobustCommandArg{smallfrac}{2}{\Myensure@text{\kern0.06em\My@smallfrac{#1}{#2}\kern0.09em}}
) \mdsy@DeclareRobustCommandArg{slantfrac}{2}{\Myensure@text{\kern0.06em\My@slantfrac{#1}{#2}\kern0.09em}}
)6 \fi
z
11./ AdditionaI symboIs
Some symbols mlsslng from MdSymbol can be taken from MyrladPro.
)) \if@My@Math@Symbols@
)8 \mdsy@DeclareMathSymbol{hbar} {\mathord}{letters}{265}
)p \mdsy@DeclareMathSymbol{uphbar} {\mathord}{letters}{255}
)(o \mdsy@DeclareMathSymbol{partial} {\mathord}{letters}{100}
)(+ \mdsy@DeclareMathSymbol{uppartial} {\mathord}{letters}{300}
)(z \mdsy@DeclareMathSymbol{ell} {\mathord}{letters}{140}
)( \mdsy@DeclareMathSymbol{upell} {\mathord}{letters}{340}
)(( \mdsy@DeclareMathSymbol{slashedzero} {\mathord}{letters}{257}
)( \mdsy@DeclareMathSymbol{upimath} {\mathord}{letters}{373}
)(6 \mdsy@DeclareMathSymbol{upjmath} {\mathord}{letters}{374}
)() \mdsy@DeclareMathSymbol{varsmallint} {\mathord}{letters}{376}
)(8 \fi
Archalc Greek letters not provlded by MyrladPro.
)(p \if@My@Text@
)o %\def\Qoppa{\reflectbox{P}}
)+ %\def\Sampi{\begingroup\fontfamily{cmr}\fontencoding{LGR}\selectfont\char23\endgroup}
)z \let\Stigma\stigma
)
)( % fix \r A
) \DeclareTextCompositeCommand{\r}{OT1}{A}
)6 {\leavevmode\setbox\z@\hbox{!}\dimen@\ht\z@\advance\dimen@-1ex%
)) \ooalign{\hss\raise.67\dimen@\hbox{\char23}\hss\crcr A}}
)8
)p \DeclareEncodingSubset{TS1}{MyriadPro-LF} {1}%
)6o \DeclareEncodingSubset{TS1}{MyriadPro-TLF} {1}%
)6+ \DeclareEncodingSubset{TS1}{MyriadPro-OsF} {1}%
)6z \DeclareEncodingSubset{TS1}{MyriadPro-TOsF}{1}%
)6 \AtBeginDocument{
)6( \UndeclareTextCommand{\textvisiblespace}{T1}%
)6 \UndeclareTextCommand{\textcompwordmark}{T1}%
)66 \UndeclareTextCommand{\textsterling}{T1}%
)6) \UndeclareTextCommand{\j}{T1}%
)68 \UndeclareTextCommand{\j}{LY1}%
)6p }
))o \fi
11. IntegraI symboIs
We can also replace the lntegral slgns from MdSymbol by those of MyrladPro. The fol-
lowlng denltlons provlde thls as an optlon.
))+ \if@My@Math@
))z \newcommand\My@Decl@Myriad@Ints{%
Peplace MdSymbolF by MySymbolFI.
)) \DeclareFontFamily{U}{MySymbolFI}{}
z6
))( \DeclareFontShape{U}{MySymbolFI}{m}{it}{
)) <-6> MySymbolFI\My@myriadint@opticals5
))6 <6-7> MySymbolFI\My@myriadint@opticals6
))) <7-8> MySymbolFI\My@myriadint@opticals7
))8 <8-9> MySymbolFI\My@myriadint@opticals8
))p <9-10> MySymbolFI\My@myriadint@opticals9
)8o <10-12> MySymbolFI\My@myriadint@opticals10
)8+ <12-> MySymbolFI\My@myriadint@opticals12
)8z }{}
)8 \DeclareFontShape{U}{MySymbolFI}{b}{it}{
)8( <-6> MySymbolFI\My@myriadint@bold\My@myriadint@opticals5
)8 <6-7> MySymbolFI\My@myriadint@bold\My@myriadint@opticals6
)86 <7-8> MySymbolFI\My@myriadint@bold\My@myriadint@opticals7
)8) <8-9> MySymbolFI\My@myriadint@bold\My@myriadint@opticals8
)88 <9-10> MySymbolFI\My@myriadint@bold\My@myriadint@opticals9
)8p <10-12> MySymbolFI\My@myriadint@bold\My@myriadint@opticals10
)po <12-> MySymbolFI\My@myriadint@bold\My@myriadint@opticals12
)p+ }{}
)pz \DeclareSymbolFont{symbols} {U}{MySymbolFI}{m}{it}
)p \SetSymbolFont{symbols}{bold}{U}{MySymbolFI}{b}{it}
Make the orlglnal lntegral symbols avallable as \var. . . .
)p( \let\varint\tint
)p \let\variint\tiint
)p6 \let\variiint\tiiint
)p) \let\variiiint\tiiiint
)p8 \let\varidotsint\tidotsint
)pp \let\varlandupint\tlandupint
8oo \let\varlanddownint\tlanddownint
8o+ \let\varstrokedint\tstrokedint
8oz \let\varoint\toint
8o \let\varoiint\toiint
8o( \let\varrcirclerightint\trcirclerightint
8o \let\varlcirclerightint\tlcirclerightint
8o6 \let\varrcircleleftint\trcircleleftint
8o) \let\varlcircleleftint\tlcircleleftint
8o8 \let\varsumint\tsumint
Peplace the symbols wlth the new lntegrals.
8op \DeclareMathSymbol\tint \mathop{symbols}{112}
8+o \DeclareMathSymbol\tiint \mathop{symbols}{114}
8++ \DeclareMathSymbol\tiiint \mathop{symbols}{116}
8+z \DeclareMathSymbol\tiiiint \mathop{symbols}{118}
8+ \DeclareMathSymbol\tidotsint \mathop{symbols}{120}
8+( \DeclareMathSymbol\tlandupint \mathop{symbols}{122}
8+ \DeclareMathSymbol\tlanddownint \mathop{symbols}{124}
8+6 \DeclareMathSymbol\tstrokedint \mathop{symbols}{126}
8+) \DeclareMathSymbol\toint \mathop{symbols}{128}
8+8 \DeclareMathSymbol\toiint \mathop{symbols}{130}
8+p \DeclareMathSymbol\trcirclerightint\mathop{symbols}{132}
z;
8zo \DeclareMathSymbol\tlcirclerightint\mathop{symbols}{134}
8z+ \DeclareMathSymbol\trcircleleftint \mathop{symbols}{136}
8zz \DeclareMathSymbol\tlcircleleftint \mathop{symbols}{138}
8z \DeclareMathSymbol\tsumint \mathop{symbols}{140}
8z( \let\intop\tint
8z \let\ointop\toint
8z6 }
8z) \My@load@integrals
8z8 \fi
11.p Logos
Correct logos.
8zp \if@My@Text@
8o \def\TeX{T\kern-.1667em\lower.4ex\hbox{E}\kern-.125emX\@}
8+ \DeclareRobustCommand{\LaTeX}{L\kern-.32em%
8z {\sbox\z@ T%
8 \vbox to\ht\z@{\hbox{\check@mathfonts
8( \fontsize\sf@size\z@
8 \math@fontsfalse\selectfont
86 A}%
8) \vss}%
88 }%
8p \kern-.15em%
8(o \TeX}
8(+ \fi
11.1 AMS
Flx a bug ln amsmath.sty whlch does not support math fonts wlthout a skew char.
8(z \def\macc@set@skewchar#1{%
8( \begingroup
8(( \ifnum\mathgroup=\m@ne \let\@tempa\@ne
8( \else
8(6 \ifnum\skewchar\textfont\mathgroup=\m@ne \let\@tempa\@ne
8() \else \let\@tempa\mathgroup
8(8 \fi
8(p \fi
8o \count@=\skewchar\textfont\@tempa
8+ \ifnum\count@=\m@ne
8z \endgroup
8 \def\macc@skewchar{}
8( \else
8 \advance\count@"7100
86 \edef\@tempa{\endgroup
8) \mathchardef\noexpand\macc@skewchar=\number\count@\relax}%
88 \@tempa
8p \fi
z
86o #1%
86+ }
Make the changes take eect. Thls concludes the maln style le.
86z \if@My@Text@
86 \normalfont
86( \fi
86 /style
1z Support for character protrusion
The mlcrotype conguratlon. All four MyrladPro famllles use the same le (cf. sec-
tlon :).
866 mtcfg
86) \SetProtrusion
868 [ name = MyriadPro-OT1-Roman ]
86p { encoding = OT1,
8)o family = {MyriadPro-OsF,MyriadPro-LF,MyriadPro-TOsF,MyriadPro-
TLF},
8)+ shape = n }
8)z {
8) A = {40,40},
8)( F = { ,60},
8) J = {90, },
8)6 K = { ,50},
8)) L = { ,60},
8)8 T = {50,50},
8)p V = {40,40},
88o W = {30,30},
88+ X = {50,50},
88z Y = {50,50},
88 k = { ,60},
88( r = { ,80},
88 t = { ,100},
886 v = {70,70},
88) w = {40,40},
888 x = {60,60},
88p y = {70,70},
8po ! = {70,180},
8p+ ( = {60,30}, ) = {30,60},
8pz [ = {100,160}, ] = {160,100},
8p {,} = {440,700},
8p( . = {660,700},
8p : = {400,480},
8p6 ; = {350,440},
8p) - = {700,700},
8p8 \textendash = {390,480}, \textemdash = {220,270},
8pp \textquotedblleft = {380,250}, \textquotedblright = {250,380},
poo \textquoteleft = {670,450}, \textquoteright = {450,670},
zp
po+ }
poz \SetProtrusion
po [ name = MyriadPro-T1-Roman,
po( load = MyriadPro-OT1-Roman ]
po { encoding = T1,
po6 family = {MyriadPro-OsF,MyriadPro-LF,MyriadPro-TOsF,MyriadPro-
TLF},
po) shape = n }
po8 {
pop 023 = { ,40}, % fft ligature
p+o 032 = { ,50}, % ft ligature
p++ 191 = {30,30}, % Th ligature
p+z 127 = {620,700}, % hyphen
p+ \AE = {40, }, % AE
p+( \quotesinglbase = {670,670}, \quotedblbase = {370,370},
p+ \guilsinglleft = {500,360}, \guilsinglright = {360,500},
p+6 \guillemotleft = {320,230}, \guillemotright = {230,320},
p+) }
p+8 \SetProtrusion
p+p [ name = MyriadPro-OT1-Italic]
pzo { encoding = OT1,
pz+ family = {MyriadPro-OsF,MyriadPro-LF,MyriadPro-TOsF,MyriadPro-
TLF},
pzz shape = {it,sl} }
pz {
pz( A = {120,50},
pz B = {90,-50},
pz6 C = {50,-60},
pz) D = {70,-30},
pz8 E = {90,-50},
pzp F = {100,-40},
po G = {50,-60},
p+ H = {70,-40},
pz I = {150,-90},
p J = {250,-130},
p( K = {80,-50},
p L = {90,60},
p6 M = {60,-40},
p) N = {70,-40},
p8 O = {70,-30},
pp P = {70,-110},
p(o Q = {40,-40},
p(+ R = {80,-50},
p(z S = {70,-70},
p( T = {130, },
p(( U = {70,-40},
p( V = {120,30},
p(6 W = {90,20},
p() X = {50, },

p(8 Y = {160, },
p(p Z = {50,-50},
po d = {60,-60},
p+ f = { ,-190},
pz 027 = { ,-70}, % ff ligature
p g = {-70,-70},
p( i = { ,-110},
p 025 = { ,-60}, % dotlessi
p6 028 = { ,-60}, % fi ligature
p) 030 = { ,-30}, % ffi ligature
p8 j = {-90,-150},
pp p = {-40, },
p6o r = { ,80},
p6+ t = { ,100},
p6z v = {90, },
p6 w = {60,10},
p6( x = {90, },
p6 ! = {190,40},
p66 ( = {90, }, ) = {90, },
p6) [ = {90,90}, ] = {120,60},
p68 {,} = {210,680},
p6p . = {640,680},
p)o : = {380,430},
p)+ ; = { ,430},
p)z - = {750,750},
p) \textquoteleft = {690,140}, \textquoteright = {470,230},
p)( \textendash = {400,500}, \textemdash = {220,280},
p) \textquotedblleft = {520,130}, \textquotedblright = {520,130},
p)6 }
p)) \SetProtrusion
p)8 [ name = MyriadPro-T1-Italic,
p)p load = MyriadPro-OT1-Italic ]
p8o { encoding = T1,
p8+ family = {MyriadPro-OsF,MyriadPro-LF,MyriadPro-TOsF,MyriadPro-
TLF},
p8z shape = {it,sl} }
p8 {
p8( 023 = { ,40}, % fft ligature
p8 032 = { ,50}, % ft ligature
p86 191 = {80,30}, % Th ligature
p8) 127 = {660,750}, % hyphen
p88 \AE = {90,-40}, % AE
p8p 131 = {80,-30}, % Dcaron
ppo 132 = {70,-40}, % Ecaron
pp+ 156 = {80,-60}, % IJ
ppz \OE = {50,-30}, % OE
pp 188 = { ,-80}, % ij
pp( 184 = {70,70}, % ydieresis
pp 253 = {70,70}, % yacute
:
pp6 \quotesinglbase = {220,700}, \quotedblbase = {130,400},
pp) \guilsinglleft = {500,180}, \guilsinglright = {350,350},
pp8 \guillemotleft = {310,110}, \guillemotright = {230,230},
ppp }
+ooo \SetProtrusion
+oo+ [ name = MyriadPro-other-Roman ]
+ooz { encoding = {LGR,U,OT2,T2A,T2B,T2C,T5,X2},
+oo family = {MyriadPro-OsF,MyriadPro-LF,MyriadPro-TOsF,MyriadPro-
TLF},
+oo( shape = n }
+oo {
+oo6 ! = {70,180},
+oo) ( = {60,30}, ) = {30,60},
+oo8 [ = {100,160}, ] = {160,100},
+oop {,} = {440,700},
+o+o . = {660,700},
+o++ : = {400,480},
+o+z ; = {350,440},
+o+ - = {700,700},
+o+( \textendash = {390,480}, \textemdash = {220,270},
+o+ \textquotedblleft = {380,250}, \textquotedblright = {250,380},
+o+6 \textquoteleft = {670,450}, \textquoteright = {450,670},
+o+) }
+o+8 \SetProtrusion
+o+p [ name = MyriadPro-other-Italic ]
+ozo { encoding = {LGR,U,OT2,T2A,T2B,T2C,T5,X2},
+oz+ family = {MyriadPro-OsF,MyriadPro-LF,MyriadPro-TOsF,MyriadPro-
TLF},
+ozz shape = {it,sl} }
+oz {
+oz( ! = {190,40},
+oz ( = {90, }, ) = {90, },
+oz6 [ = {90,90}, ] = {120,60},
+oz) {,} = {210,680},
+oz8 . = {640,680},
+ozp : = {380,430},
+oo ; = { ,430},
+o+ - = {750,750},
+oz \textquoteleft = {690,140}, \textquoteright = {470,230},
+o \textendash = {400,500}, \textemdash = {220,280},
+o( \textquotedblleft = {520,130}, \textquotedblright = {520,130},
+o }
+o6 /mtcfg
1 Font denition Ies
As all the font denltlons look the same we lntroduce macros to ease the conguratlon.
These macros are stored ln the le MyrladPro-FontDef.sty whlch ls lncluded by every
z
FD le. Note that MyrladPro-FontDef.sty wlll be lncluded several tlmes and that we do
not know ln whlch context the code ls executed. Therefore, we have to dene all non-
prlvate commands as globals.
Slncethls packageshouldbeloadablelnanFDlewehavetoavoldall \preambleonly
commands. Therefore, we use \ProvidesFile lnstead of \ProvidesPackage.
We add a guard so that thls le ls executed only once even lf lt ls lncluded multlple
tlmes.
+o) fontdef
+o8 \ifx\My@DeclareFontShape\@undefined\else\endinput\fi
We dlstlngulsh between belng loaded dlrectly or vla \usepackage ln the preamble
by checklng \@nodocument.
+op \ifx\@nodocument\relax
+o(o \input{otfontdef.sty}
+o(+ \else
+o(z \NeedsTeXFormat{LaTeX2e}
+o( \RequirePackage{otfontdef}
+o(( \fi
Peset \escapechar (whlch ls set to : ln FD les) to make \newcommand work. The
addltlonal group does not harm, we have to make the lmportant commands global
anyway.
+o( \ifx\@nodocument\relax
+o(6 \begingroup\escapechar\\
+o() \fi
These are the default values lf lt ls lmposslble to process optlons.
+o(8 \newcommand\My@option@opticals{noopticals}
+o(p \newcommand\My@option@fontset{smallfamily}
+oo \newdimen\My@option@normalsize
+o+ \global\My@option@normalsize10pt
Whether we should adapt the conguratlon to the \normalsize of the document.
Thls swltch ls only needed locally.
+oz \newif\ifMy@option@normalsize
+o \My@option@normalsizetrue
+o( \ifx\@nodocument\relax\else
+o \DeclareOption{noopticals} {\let\My@option@opticals\CurrentOption}
+o6 \DeclareOption{smallfamily}{\let\My@option@fontset\CurrentOption}
+o) \DeclareOption{medfamily} {\let\My@option@fontset\CurrentOption}
+o8 % \DeclareOption{fullfamily} {\let\My@option@fontset\CurrentOption}
+op \DeclareOption{normalsize} {\My@option@normalsizetrue}
+o6o \ExecuteOptions{smallfamily,noopticals,normalsize}
+o6+ \ProcessOptions\relax
+o6z \fi
The method to determlne the maln font slze ls lnsplred by mlcrotypes lmplementatlon.
+o6 \ifMy@option@normalsize
+o6( \begingroup
+o6 \def\set@fontsize#1#2#3#4\@nil{%

+o66 \@defaultunits\global\My@option@normalsize#2pt\relax\@nnil}%
+o6) \normalsize\@nil
+o68 \endgroup
+o6p \fi
We use \otf@makeglobalfromotfontdef toexport the denltlons that are needed
globally.
+o)o \otf@makeglobal{My@option@opticals}
+o)+ \otf@makeglobal{My@option@fontset}
+o)z \ifx\@nodocument\relax\else
+o) \PackageInfo{MyriadPro-FontDef}{%
+o)( Configuration:\space\My@option@fontset,\space\My@option@opticals,\space
+o) normalsize=\the\My@option@normalsize}%
+o)6 \fi
Conguration database
+o)) \newcount\My@config@cnt
+o)8 \My@config@cnt=0
+o)p \newcommand\My@curr@config{My@config@\romannumeral\My@config@cnt}
These commands help ln settlng up the conguratlon database. They do not need to
be global. But the cong database ltself has to be.
#3 ls added to all lnstances llsted ln #2 of conguratlon class #1. #3 ls read wlth
NFSS catcodes.
+o8o \newcommand\My@AddToConfig{%
+o8+ \begingroup
+o8z \nfss@catcodes
+o8 \expandafter\endgroup
+o8( \My@AddToConfig@
+o8 }
+o86 \newcommand\My@AddToConfig@[3]{%
+o8) \advance\My@config@cnt\@ne
+o88 \@namedef{\My@curr@config}{#3}%
+o8p \otf@makeglobal{\My@curr@config}
+opo debug & show\expandafter\show\csname\My@curr@config\endcsname
+op+ \@for\My@tempa:=#2\do{%
+opz \@ifundefined{My@config@#1@\My@tempa}{%
+op \@temptokena{}%
+op( }{%
+op \@temptokena\expandafter\expandafter\expandafter
+op6 {\csname My@config@#1@\My@tempa\endcsname}%
+op) }%
+op8 \@expandtwoargs\@namedef{My@config@#1@\My@tempa}{%
+opp \the\@temptokena
++oo \expandafter\noexpand\csname\My@curr@config\endcsname
++o+ }%
++oz \otf@makeglobal{My@config@#1@\My@tempa}% perhaps defer to only ex-
ecute once
++o debug & show\expandafter\show\csname My@config@#1@\My@tempa\endcsname

++o( }%
++o }
The followlng commands are used ln the Declare...Family commands to ac-
cess the prevlously bullt conguratlon database. They must be expandable. #3 ls used
as a default lf no entry ls found ln the database.
++o6 \newcommand*\My@UseConfig[2]{%
++o) \My@UseConfigOrDefault{#1}{#2}{}%
++o8 }
++op \newcommand*\My@UseConfigOrDefault[3]{%
+++o \@ifundefined{My@config@#1@#2}{#3}%
++++ {\@nameuse{My@config@#1@#2}}%
+++z }
+++ \newcommand*\My@TheConfig[2]{%
+++( \@ifundefined{My@config@#1@#2}{}{%
+++ \expandafter\noexpand\csname My@config@#1@#2\endcsname
+++6 }%
+++) }
+++8 \otf@makeglobal{My@UseConfig}
+++p \otf@makeglobal{My@UseConfigOrDefault}
++zo \otf@makeglobal{My@TheConfig}
The slze range ln the conguratlon has to be dlvlded by the scallng factor to take the
changedslze lntoaccount because the scallngtakes place after chooslngthe rlght com-
blnatlon. Provlde calculatlon routlne here.
++z+ \RequirePackage{fltpoint}
++zz \fpDecimalSign{.}
++z \@ifundefined{My@calc@bsize}{%
++z( \newcommand*{\My@calc@bsize}[2]{\fpDiv{#1}{#2}{\My@scale}}}
Here comes the conguratlon.
++z \My@calc@bsize{\My@s@capt}{8.5}
++z6 \My@calc@bsize{\My@s@text}{13.1}
++z) \My@calc@bsize{\My@s@subh}{20}
++z8 \My@AddToConfig{opticals}{opticals}{
++zp <-\My@s@capt> otf* [optical=Capt]
++o <\My@s@capt-\My@s@text> otf* [optical=Text]
+++ <\My@s@text-\My@s@subh> otf* [optical=Subh]
++z <\My@s@subh-> otf* [optical=Disp]
++ }
++( \My@AddToConfig{opticals}{noopticals}{
++ <-> otf* [optical=Text]
++6 }
++) \My@AddToConfig{opticals}{slides}{
++8 <-> otf* [optical=Capt]
++p }
++(o \My@AddToConfig{weight}{l}{
++(+ <-> otf* [weight=Light]
++(z }
++( %
++(( \My@calc@bsize{\My@s@semim}{6}

++( \My@AddToConfig{fontset/weight}{medfamily/m}{
++(6 <-\My@s@semim> otf* [weight=Semibold]
++() <\My@s@semim-> otf* [weight=Regular]
++(8 }
++(p \My@AddToConfig{fontset/weight}{smallfamily/m}{
++o <-> otf* [weight=Regular]
+++ }
++z %
++ \My@calc@bsize{\My@s@bold}{6}
++( \My@AddToConfig{fontset/weight}{fullfamily/b,medfamily/b}{
++ <-\My@s@bold> otf* [weight=Bold]
++6 <\My@s@bold-> otf* [weight=Semibold]
++) }
++8 \My@AddToConfig{fontset/weight}{smallfamily/b}{
++p <-> otf* [weight=Bold]
++6o }
++6+ %
++6z \My@AddToConfig{fontset/weight}{smallfamily/eb}{
++6 <-> otf* [weight=Black]
++6( }
++6 \My@AddToConfig{fontset/weight}{smallfamily/ub}{
++66 <-> otf* [weight=Black]
++6) }
++68 \My@AddToConfig{fontset/weight}{medfamily/eb}{
++6p <-> otf* [weight=Bold]
++)o }
++)+ \My@AddToConfig{fontset/weight}{medfamily/ub}{
++)z <-> otf* [weight=Black]
++) }
++)( \My@calc@bsize{\My@s@spac}{8}
++) \My@AddToConfig{shape}{n,it}{
++)6 <-\My@s@spac> otf* [spacing=l1]
++)) }
++)8 \My@AddToConfig{encoding/shape}{U/n,U/it}{
++)p <-> otf* [spacing=]
++8o }
++8+ \My@AddToConfig{shape}{it}{
++8z <-> otf* MyriadPro-It
++8 }
++8( \My@AddToConfig{shape}{n}{
++8 <-> otf* MyriadPro
++86 }
++8) \My@AddToConfig{encoding/shape}{OML/it}{
++88 <-> otf* [figures=] MyriadPro-Mixed
++8p }
++po \My@AddToConfig{encoding/shape}{OML/n}{
++p+ <-> otf* [figures=] MyriadPro-French
++pz }
++p \My@AddToConfig{scale}{scale}{
6
++p( <-> otf* [scale=\My@scale]
++p }
Substltutlons
++p6 \My@AddToConfig{sub:series} {sb} {b}
++p) \My@AddToConfig{sub:series} {bx} {b}
++p8 \My@AddToConfig{sub:shape} {sl} {it}
Code for the last argument of \DeclareFontShape
DecIaration of font famiIies and shapes
++pp \newcommand*\My@DeclareFontShape[6][]{%
Check lf any substltutlons are specled.
+zoo \edef\@tempa{%
+zo+ \My@UseConfig{sub:series}{#4}%
+zoz \My@UseConfigOrDefault{sub:encoding/shape}{#2/#5}{%
+zo \My@UseConfig{sub:shape}{#5}}%
+zo( }%
+zo \ifx\@tempa\@empty
Collect the conguratlon and declare the font shape. \DeclareFontShape fully ex-
pands lts fth argument (wlth our macros \My@UseConfig ln lt), but we have to re-
trleve the code for the slxth argument ourselves.
+zo6 \@temptokena={%
+zo) \DeclareFontShape{#2}{#3-#6}{#4}{#5}{%
+zo8 \My@UseConfig{opticals} {\My@option@opticals}%
+zop \My@UseConfig{fontset/weight}{\My@option@fontset/#4}%
+z+o \My@UseConfig{weight} {#4}%
+z++ \My@UseConfig{encoding/shape}{#2/#5}%
+z+z \My@UseConfig{shape} {#5}%
+z+ \My@UseConfig{scale} {scale}%
+z+( }}%
+z+ \edef\@tempa{\the\@temptokena{\My@TheConfig{code:shape}{#5}}}%
+z+6 \@tempa
+z+) \else
Generate the substltutlon. (All substltutlons are sllent at the moment.)
+z+8 \DeclareFontShape{#2}{#3-#6}{#4}{#5}{%
+z+p <->ssub*#3-#6%
+zzo /\My@UseConfigOrDefault{sub:series}{#4}{#4}%
+zz+ /\My@UseConfigOrDefault{sub:encoding/shape}{#2/#5}{%
+zzz \My@UseConfigOrDefault{sub:shape}{#5}{#5}}%
+zz }{}%
+zz( \fi
+zz }
+zz6 \otf@makeglobal{My@DeclareFontShape}
+zz) \otf@makeglobal{\string\My@DeclareFontShape}
#2 contalns the encodlng, #3 the famlly, and #1 a llst of gure verslons (or Extra).
+zz8 \newcommand*\My@DeclareLargeFontFamily[3][LF,OsF,TLF,TOsF]{%
+zzp \My@DeclareFontFamily{#1}{#2}{#3}
+zo {l,m,sb,b,bx,eb,ub} {n,it,sl}%
;
+z+ }
+zz \newcommand*\My@DeclareSmallFontFamily[3][LF,OsF,TLF,TOsF]{%
+z \My@DeclareFontFamily{#1}{#2}{#3}
+z( {l,m,sb,b,bx,eb,ub} {n,it,sl}%
+z }
+z6 \newcommand*\My@DeclareMathFontFamily[3][TOsF]{%
+z) \My@DeclareFontFamily[\skewchar\font=255]{#1}{#2}{#3}
+z8 {l,m,sb,b,bx,eb,ub} {n,it}%
+zp }
Anaddltlonal macro\csname\string\foo\endcsnamels generatedby\newcommand
for processlng an optlonal argument of \foo.
+z(o \otf@makeglobal{My@DeclareLargeFontFamily}
+z(+ \otf@makeglobal{\string\My@DeclareLargeFontFamily}
+z(z \otf@makeglobal{My@DeclareSmallFontFamily}
+z( \otf@makeglobal{\string\My@DeclareSmallFontFamily}
+z(( \otf@makeglobal{My@DeclareMathFontFamily}
+z( \otf@makeglobal{\string\My@DeclareMathFontFamily}
+z(6 \newcommand*\My@DeclareFontFamily[6][]{%
+z() \@for\My@variant:=#2\do{%
+z(8 \DeclareFontFamily {#3}{#4-\My@variant}{#1}%
+z(p }%
+zo \My@DeclareFontShapes{#3}{#4}
+z+ {#5} {#6} {#2}%
+zz }
+z \otf@makeglobal{My@DeclareFontFamily}
+z( \otf@makeglobal{\string\My@DeclareFontFamily}
+z \newcommand*\My@DeclareFontShapes[5]{%
+z6 \@for\My@series:=#3\do{%
+z) \@for\My@shape:=#4\do{%
+z8 \@for\My@variant:=#5\do{%
+zp \My@DeclareFontShape{#1}{#2}{\My@series}{\My@shape}{\My@variant}%
+z6o }%
+z6+ }%
+z6z }%
+z6 }
+z6( \otf@makeglobal{My@DeclareFontShapes}
Ad[ust font dlmenslon #1 of the current font. The functlon ln #2 should replace the
old value ln dlmen \My@fontdimen wlth a new one (whlch may depend on other
parameters llke \f@size).
+z6 \newdimen\My@fontdimen
+z66 \newcommand*\My@adjust@fontdimen[2]{%
+z6) \My@fontdimen=\fontdimen#1\font
+z68 #2%
+z6p \fontdimen#1\font=\My@fontdimen
+z)o }
+z)+ \otf@makeglobal{My@adjust@fontdimen}
+z)z \ifx\@nodocument\relax
+z) \endgroup

+z)( \fi
+z) debug
+z)6 \newcommand\old@DeclareFontFamily{}
+z)) \let\old@DeclareFontFamily\DeclareFontFamily
+z)8 \renewcommand\DeclareFontFamily[3]{
+z)p \begingroup\escapechar\\%
+z8o \edef\@tempa{\noexpand\DeclareFontFamily{#1}{#2}}%
+z8+ \@temptokena\expandafter{\@tempa{#3}}%
+z8z \message{\the\@temptokena}%
+z8 \endgroup
+z8( \old@DeclareFontFamily{#1}{#2}{#3}%
+z8 }
+z86 \newcommand\old@DeclareFontShape{}
+z8) \let\old@DeclareFontShape\DeclareFontShape
+z88 \renewcommand\DeclareFontShape[6]{
+z8p \begingroup\escapechar\\%
+zpo \edef\@tempa{\noexpand\DeclareFontShape{#1}{#2}{#3}{#4}{#5}}%
+zp+ \@temptokena\expandafter{\@tempa{#6}}%
+zpz \message{\the\@temptokena}%
+zp \endgroup
+zp( \old@DeclareFontShape{#1}{#2}{#3}{#4}{#5}{#6}%
+zp }
+zp6 /debug
We dene font famlly allases sothat we canplace all conguratlons for the MyrladPro
famlly varlants lnto one mlcrotype le: mt-MyrladPro.cfg. We use mlcrotypes hook
lf mlcrotype has not been loaded yet (whlch should be the case), otherwlse we can
execute the allas denltlons dlrectly.
+zp) \gdef\My@MicroType@Aliases{%
+zp8 \DeclareMicrotypeAlias{MyriadPro-LF}{MyriadPro}%
+zpp \DeclareMicrotypeAlias{MyriadPro-OsF}{MyriadPro}%
+oo \DeclareMicrotypeAlias{MyriadPro-TLF}{MyriadPro}%
+o+ \DeclareMicrotypeAlias{MyriadPro-TOsF}{MyriadPro}%
+oz }
+o \@ifundefined{Microtype@Hook}{%
+o( \global\let\Microtype@Hook\My@MicroType@Aliases
+o }{%
+o6 \g@addto@macro\Microtype@Hook{\My@MicroType@Aliases}%
+o) }%
+o8 \@ifundefined{DeclareMicroTypeAlias}{}{\My@MicroType@Aliases}%
+op /fontdef
Uslng these macros the varlous FD les become slmple one-llners.
++o fd
+++ \input{MyriadPro-FontDef.sty}%
++z Uextra \My@DeclareSmallFontFamily[Extra]{U} {MyriadPro}
++ LGP \My@DeclareSmallFontFamily {LGR}{MyriadPro}
++( LG| \My@DeclareSmallFontFamily {LGI}{MyriadPro}
++ OT: \My@DeclareLargeFontFamily {OT1}{MyriadPro}
++6 T: \My@DeclareLargeFontFamily {T1} {MyriadPro}
p
++) LY: \My@DeclareLargeFontFamily {LY1}{MyriadPro}
++8 T \My@DeclareLargeFontFamily {T5} {MyriadPro}
++p TzA \My@DeclareSmallFontFamily {T2A}{MyriadPro}
+zo TzB \My@DeclareSmallFontFamily {T2B}{MyriadPro}
+z+ TzC \My@DeclareSmallFontFamily {T2C}{MyriadPro}
+zz TS: \My@DeclareLargeFontFamily {TS1}{MyriadPro}
+z Xz \My@DeclareSmallFontFamily {X2} {MyriadPro}
+z( OTz \My@DeclareSmallFontFamily {OT2}{MyriadPro}
+z OML & tosf \My@DeclareMathFontFamily {OML}{MyriadPro}
+z6 OML & (lf osf tlf)
+z) \@for\My@variant:=LF,TLF,OsF\do{%
+z8 \DeclareFontFamily{OML}{MyriadPro-\My@variant}{\skewchar\font=255}
+zp \@for\My@series:=l,m,sb,b,bx,eb,ub\do{%
+o \@for\My@shape:=n,it\do{%
++ \DeclareFontShape{OML}{MyriadPro-\My@variant}{\My@series}{\My@shape}%
+z { <-> ssub*MyriadPro-TOsF/\My@series/\My@shape }{}
+ }%
+( }%
+ }%
+6 /OML & (lf osf tlf)
+) /fd