summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Master/texmf-dist/doc/latex/microtype/README60
-rw-r--r--Master/texmf-dist/doc/latex/microtype/microtype.pdfbin1154951 -> 922005 bytes
-rw-r--r--Master/texmf-dist/doc/latex/microtype/test-microtype.tex7
-rw-r--r--Master/texmf-dist/source/latex/microtype/microtype.dtx3248
-rw-r--r--Master/texmf-dist/source/latex/microtype/microtype.ins18
-rw-r--r--Master/texmf-dist/tex/latex/microtype/letterspace.sty155
-rw-r--r--Master/texmf-dist/tex/latex/microtype/microtype-luatex.def1162
-rw-r--r--Master/texmf-dist/tex/latex/microtype/microtype-pdftex.def1568
-rw-r--r--Master/texmf-dist/tex/latex/microtype/microtype-xetex.def480
-rw-r--r--Master/texmf-dist/tex/latex/microtype/microtype.cfg75
-rw-r--r--Master/texmf-dist/tex/latex/microtype/microtype.lua32
-rw-r--r--Master/texmf-dist/tex/latex/microtype/microtype.sty1783
-rwxr-xr-xMaster/texmf-dist/tex/latex/microtype/mt-CharisSIL.cfg476
-rwxr-xr-xMaster/texmf-dist/tex/latex/microtype/mt-LatinModernRoman.cfg349
-rwxr-xr-xMaster/texmf-dist/tex/latex/microtype/mt-PalatinoLinotype.cfg293
-rw-r--r--Master/texmf-dist/tex/latex/microtype/mt-bch.cfg7
-rw-r--r--Master/texmf-dist/tex/latex/microtype/mt-blg.cfg7
-rw-r--r--Master/texmf-dist/tex/latex/microtype/mt-cmr.cfg129
-rw-r--r--Master/texmf-dist/tex/latex/microtype/mt-euf.cfg7
-rw-r--r--Master/texmf-dist/tex/latex/microtype/mt-eur.cfg7
-rw-r--r--Master/texmf-dist/tex/latex/microtype/mt-euroitc.cfg7
-rw-r--r--Master/texmf-dist/tex/latex/microtype/mt-eus.cfg7
-rw-r--r--Master/texmf-dist/tex/latex/microtype/mt-msa.cfg7
-rw-r--r--Master/texmf-dist/tex/latex/microtype/mt-msb.cfg7
-rw-r--r--Master/texmf-dist/tex/latex/microtype/mt-mvs.cfg14
-rw-r--r--Master/texmf-dist/tex/latex/microtype/mt-pad.cfg7
-rw-r--r--Master/texmf-dist/tex/latex/microtype/mt-pmn.cfg7
-rw-r--r--Master/texmf-dist/tex/latex/microtype/mt-ppl.cfg7
-rw-r--r--Master/texmf-dist/tex/latex/microtype/mt-ptm.cfg7
-rw-r--r--Master/texmf-dist/tex/latex/microtype/mt-ugm.cfg7
-rw-r--r--Master/texmf-dist/tex/latex/microtype/mt-zpeu.cfg7
-rwxr-xr-xMaster/tlpkg/libexec/ctan2tds1
32 files changed, 7007 insertions, 2941 deletions
diff --git a/Master/texmf-dist/doc/latex/microtype/README b/Master/texmf-dist/doc/latex/microtype/README
index 82072ff2acd..62c2e189b5f 100644
--- a/Master/texmf-dist/doc/latex/microtype/README
+++ b/Master/texmf-dist/doc/latex/microtype/README
@@ -1,33 +1,34 @@
The `microtype' package
- An interface to the micro-typographic extensions of pdfTeX
+ Subliminal refinements towards typographical perfection
===================================
- v2.4 2010/01/10
+ v2.5 2013/03/13
* Overview
----------
-The `microtype' package provides a LaTeX interface to the micro-typographic
-extensions of pdfTeX: most prominently, character protrusion and font
-expansion, furthermore the adjustment of interword spacing and additional
-kerning, as well as hyphenatable letterspacing (tracking) and the possibility
-to disable all or selected ligatures.
-It allows to apply these features to customisable sets of fonts, and to
-configure all micro-typographic aspects of the fonts in a straightforward and
-flexible way. Settings for various fonts are provided.
-
-Note that font expansion and character protrusion will only work with pdfTeX,
-at least version 0.14f. Automatic font expansion requires version 1.20 or
-newer. Disabling ligatures requires pdfTeX 1.30, letterspacing and the
-adjustment of interword spacing and of kerning requires version 1.40. The
-package will by default enable protrusion and expansion if they can safely be
-assumed to work. These two features are also available with luaTeX. The
-`microtype' package does not work with XeTeX.
-
-The alternative package `letterspace', which also works with plain TeX,
-provides the user commands for letter-spacing only, omitting support for all
+The `microtype' package provides a LaTeX interface to the micro-typographic
+extensions that were introduced by pdfTeX and have since also propagated to
+XeTeX and LuaTeX: most prominently, character protrusion and font expansion,
+furthermore the adjustment of interword spacing and additional kerning, as
+well as hyphenatable letterspacing (tracking) and the possibility to disable
+all or selected ligatures.
+These features may be applied to customisable sets of fonts, and all micro-
+typographic aspects of the fonts can be configured in a straight-forward
+and flexible way. Settings for various fonts are provided.
+
+Note that character protrusion requires pdfTeX (version 0.14f or later),
+LuaTeX, or XeTeX (at least version 0.9997). Font expansion works with pdfTeX
+(version 1.20 for automatic expansion) or LuaTeX. The package will by default
+enable protrusion and expansion if they can safely be assumed to work.
+Disabling ligatures requires pdfTeX (at least version 1.30) or LuaTeX, while
+the adjustment of interword spacing and of kerning only works with pdfTeX
+(at least 1.40). Letterspacing is available with pdfTeX (1.40) or LuaTeX (0.62).
+
+The alternative package `letterspace', which also works with plain TeX,
+provides the user commands for letterspacing only, omitting support for all
other extensions.
The documentation can be found in microtype.pdf.
@@ -50,21 +51,22 @@ The documentation can be found in microtype.pdf.
* License
---------
-This work may be distributed and/or modified under the conditions of the
+This work may be distributed and/or modified under the conditions of the
LaTeX Project Public License, either version 1.3c 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.3c or later is part of
+option) any later version. The latest version of this license is in:
+http://www.latex-project.org/lppl.txt, and version 1.3c or later is part of
all distributions of LaTeX version 2005/12/01 or later.
This work has the LPPL maintenance status `author-maintained'.
-This work consists of the files `microtype.dtx' and `microtype.ins' and the
-derived files `microtype.sty', `microtype.lua' and `letterspace.sty'.
+This work consists of the files `microtype.dtx' and `microtype.ins' and the
+derived files `microtype.sty', `microtype-pdftex.def', `microtype-xetex.def',
+`microtype-luatex.def', `microtype.lua' and `letterspace.sty'.
-Modified versions of the configuration files (*.cfg) may be distributed
-provided that (1) the original copyright statement is not removed, and
+Modified versions of the configuration files (*.cfg) may be distributed
+provided that (1) the original copyright statement is not removed, and
(2) the identification string is changed.
----------------------------------------------------
- Copyright (c) 2004--2010 R Schlicht <w.m.l@gmx.net>
+ Copyright (c) 2004--2013 R Schlicht <w.m.l@gmx.net>
----------------------------------------------------
diff --git a/Master/texmf-dist/doc/latex/microtype/microtype.pdf b/Master/texmf-dist/doc/latex/microtype/microtype.pdf
index 8f04a022f57..4ee0841c39a 100644
--- a/Master/texmf-dist/doc/latex/microtype/microtype.pdf
+++ b/Master/texmf-dist/doc/latex/microtype/microtype.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/microtype/test-microtype.tex b/Master/texmf-dist/doc/latex/microtype/test-microtype.tex
index 95519249f32..57d13966c87 100644
--- a/Master/texmf-dist/doc/latex/microtype/test-microtype.tex
+++ b/Master/texmf-dist/doc/latex/microtype/test-microtype.tex
@@ -9,8 +9,8 @@
%% ------------------------------------------------------------------------
%%
%% The `microtype' package
-%% An interface to the micro-typographic extensions of pdfTeX
-%% Copyright (c) 2004--2010 R Schlicht <w.m.l@gmx.net>
+%% Subliminal refinements towards typographical perfection
+%% Copyright (c) 2004--2013 R Schlicht <w.m.l@gmx.net>
%%
%% This work may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License, either version 1.3c of this license or (at
@@ -21,7 +21,8 @@
%% This work has the LPPL maintenance status `author-maintained'.
%%
%% This work consists of the files microtype.dtx and microtype.ins and the
-%% derived files microtype.sty, microtype.lua and letterspace.sty.
+%% derived files microtype.sty, microtype-pdftex.def, microtype-xetex.def,
+%% microtype-luatex.def, microtype.lua and letterspace.sty.
%%
%% ------------------------------------------------------------------------
%% This file might be useful to test protrusion settings for a font.
diff --git a/Master/texmf-dist/source/latex/microtype/microtype.dtx b/Master/texmf-dist/source/latex/microtype/microtype.dtx
index 9b9a551c4c9..f7504f44871 100644
--- a/Master/texmf-dist/source/latex/microtype/microtype.dtx
+++ b/Master/texmf-dist/source/latex/microtype/microtype.dtx
@@ -2,13 +2,13 @@
% ^^A messages to WinEdt:
% !Mode:: "TeX:DTX:UK"
% !smartQuote:: "English"
-% !DTXversion:: "2.4"
+% !DTXversion:: "2.5"
% ------------------------------------------------------------------------
-% $Id: microtype.dtx,v 1.60 2010-01-10 02:00:23+01 schlicht Exp schlicht $
+% $Id: microtype.dtx,v 1.69 2013-03-13 05:46:35+01 schlicht Exp schlicht $
% ------------------------------------------------------------------------
% The `microtype' package
-% An interface to the micro-typographic extensions of pdfTeX
-% Copyright (c) 2004--2010 R Schlicht <w.m.l@gmx.net>
+% Subliminal refinements towards typographical perfection
+% Copyright (c) 2004--2013 R Schlicht <w.m.l@gmx.net>
%
% This work may be distributed and/or modified under the conditions of the
% LaTeX Project Public License, either version 1.3c of this license or (at
@@ -19,7 +19,8 @@
% This work has the LPPL maintenance status `author-maintained'.
%
% This work consists of the files microtype.dtx and microtype.ins and the
-% derived files microtype.sty, microtype.lua and letterspace.sty.
+% derived files microtype.sty, microtype-pdftex.def, microtype-xetex.def,
+% microtype-luatex.def, microtype.lua and letterspace.sty.
%
% Modified versions of the configuration files (*.cfg) may be distributed
% provided that: (1) the original copyright statement is not removed, and
@@ -31,21 +32,28 @@
\ProvidesFile{\jobname.dtx}
%</driver>
%<package|letterspace>\ProvidesPackage
-%<config>\ProvidesFile
+%<config|pdftex-def|luatex-def|xetex-def>\ProvidesFile
%<package> {microtype}
%<letterspace> {letterspace}
%<m-t> {microtype.cfg}
-%<*package|letterspace|m-t>
- [2010/01/10 v2.4
-%<package> Micro-typography with pdfTeX
+%<pdftex-def> {microtype-pdftex.def}
+%<luatex-def> {microtype-luatex.def}
+%<xetex-def> {microtype-xetex.def}
+%<*package|letterspace|m-t|pdftex-def|luatex-def|xetex-def>
+ [2013/03/13 v2.5
+%<package> Micro-typographical refinements
%<letterspace> Robust letterspacing
%<m-t> microtype main configuration file
+%<pdftex-def|luatex-def|xetex-def> Definitions specific to
+%<pdftex-def> pdftex
+%<luatex-def> luatex
+%<xetex-def> xetex
(RS)]
-%</package|letterspace|m-t>
+%</package|letterspace|m-t|pdftex-def|luatex-def|xetex-def>
%<*config>
%<bch> {mt-bch.cfg}[2007/03/03 v1.5 microtype config. file: Bitstream Charter (RS)]
%<blg> {mt-blg.cfg}[2007/07/14 v1.0 microtype config. file: Bitstream Letter Gothic (RS)]
-%<cmr> {mt-cmr.cfg}[2009/11/09 v2.0 microtype config. file: Computer Modern Roman (RS)]
+%<cmr> {mt-cmr.cfg}[2011/04/09 v2.1 microtype config. file: Computer Modern Roman (RS)]
%<pad> {mt-pad.cfg}[2005/11/07 v1.5 microtype config. file: Adobe Garamond (RS)]
%<pmn> {mt-pmn.cfg}[2009/11/14 v1.3 microtype config. file: Adobe Minion (HH/KK)]
%<ppl> {mt-ppl.cfg}[2005/11/16 v1.6 microtype config. file: Palatino (RS)]
@@ -72,7 +80,7 @@
% \def\rmdefault{bch} % not scaled
% \def\ttdefault{blg}
\usepackage{ifpdf,ifluatex}
-\usepackage[latin1]{\ifluatex luainputenc,\fi inputenc}
+\usepackage[latin1]{\ifluatex lua\fi inputenc}
\usepackage[T1]{fontenc}
\usepackage{textcomp}
\GetFileInfo{\jobname.dtx}
@@ -102,12 +110,12 @@
\IfFileExists{t1mwr.fd}
{\newcommand\textfrak[1]{{\fontfamily{mwr}\selectfont ##1}}
\ifpdf
- \SetTracking[no ligatures={f}]{encoding=T1,family=mwr}{100}
+ \SetTracking[no ligatures={f,s,c}]{encoding=T1,family=mwr}{100}
\fi}
{\IfFileExists{yfonts.sty}
{\usepackage{yfonts}
\ifpdf
- \SetTracking[no ligatures={f}]{encoding=LY,family=yfrak}{100}
+ \SetTracking[no ligatures={f,s,c}]{encoding=LY,family=yfrak}{100}
\fi}
{\let\textfrak\@gobble}}
\tolerance=700
@@ -153,7 +161,7 @@
\usepackage{amssymb} % \varnothing
\let\OrigTeX\TeX
\def\TeX{\textoractual{\OrigTeX}{TeX}}
- \setlength\textheight{47\baselineskip}
+ \setlength\textheight{49\baselineskip}
\else
\def\bfdefault{b}
\def\Module#1{{\color{theblue}\textoractual{$\langle$}{<}\textit{#1}\textoractual{$\rangle$}{>}}}
@@ -166,10 +174,10 @@
{\catcode`\`=\active % indiscernible from ' in Bitstream Letter Gothic
\g@addto@macro\macro@code{\let`\textasciigrave}}
\linespread{1.07}\normalfont
- \setlength\textheight{46\baselineskip}
+ \setlength\textheight{48\baselineskip}
\fi
\addtolength\textheight{\topskip}
-\setlength\topmargin{12pt}
+\setlength\topmargin{5pt}
% sections
\def\@seccntformat#1{\llap{\csname the#1\endcsname\hskip\marginparsep}}
\def\paragraph{\@startsection{paragraph}{4}%
@@ -182,8 +190,9 @@
{\LARGE \@title\par}\vskip 1.5em
{\large \parbox{.33\textwidth}{\centering\@author}%
\parbox{.33\textwidth}{\centering\@date}}%
- \vskip1.5em\rule{.66\textwidth}{.4pt}%
+ \vskip2.5em\rule{\textwidth}{.4pt}%
\end{center}\par\vskip1.5em}
+\def\abstractname{}
% headers
\headheight=15pt
\def\ps@MTheadings{%
@@ -199,7 +208,7 @@
\pagestyle{MTheadings}
% toc
\let\l@section@\l@section
-\def\l@section{\vskip -.75ex\l@section@}
+\def\l@section{\vskip -1ex\l@section@}
\def\l@subsection{\vskip.35ex \penalty\@secpenalty \@dottedtocline{2}{1.5em}{2.7em}}
\def\l@subsubsection#1#2{%
\leftskip 4.2em
@@ -280,20 +289,22 @@
\itemindent \labelsep
\lstset{belowskip=0pt}}}
{\endlist}
-% boxes (for some reason, mathdesign changes these values)
+% boxes (for some reason, mathdesign changes these values) % still?
\setlength\fboxrule{0.4pt}
\setlength\fboxsep{3pt}
\setlength\arrayrulewidth{0.4pt}
% tables
\setlength\tabcolsep{2pt}
\long\def\@makecaption#1#2{%
- \sbox\@tempboxa{\footnotesize\itshape#1: #2}%
- \ifdim \wd\@tempboxa >\hsize
- \footnotesize\itshape#1: #2\par
- \else
- \hb@xt@\hsize{\box\@tempboxa\hfil}%
- \fi
- \vskip 4pt}
+ \setbox\mt@box\vbox{\llap{\vbox{% \fboxsep = 4pt
+ \vskip\dimexpr\floatsep-4pt+\fboxrule\relax
+ \hsize\dimexpr\marginparwidth-\marginparsep-4pt-\fboxrule\relax
+ \rightskip\dimexpr\marginparsep+4pt+\fboxrule\relax plus 2.5em
+ \footnotesize {\itshape#1:}\\[-\dimexpr\aboverulesep+\cmidrulewidth+3.5\fboxrule]
+ \textcolor{theframe}{\vrule width \hsize height\fboxrule}\\[.3\baselineskip]#2}}}
+ \mt@unvdimen\dimexpr\ht\mt@box+\dp\mt@box\relax
+ \unvbox\mt@box
+ \vskip-\mt@unvdimen}
% index and change log
\IndexPrologue{\section{Index}%
Links (in blue) refer to the page where the corresponding entry is described
@@ -304,15 +315,27 @@
%\raggedcolumns
\setcounter{IndexColumns}{2}
\def\IndexMin{12\baselineskip}
-\g@addto@macro\IndexParms{\footnotesize}
+\g@addto@macro\IndexParms{%
+ \footnotesize
+ \def\indexspace#1{%
+ \end{multicols}
+ \vspace*{-2\baselineskip}%
+ \begin{multicols}{2}
+ \llap{\mdseries\color{thegrey}\footnotesize
+ \hbox to 1em{\hss#1\hss}\hskip\marginparsep}%
+ \vspace*{-\baselineskip}%
+ \IndexParms %\rightskip 15pt
+ \let\item\@idxitem
+ \raggedcolumns}}
\def\GlossaryParms{\IndexParms
\def\@idxitem ##1##2\efill{%
\end{multicols}
- \begin{multicols}{2}
- [\subsubsection*{\if##1v\relax Version ##2
- (\csname MTversiondate##2\endcsname)\else ##2\fi}][5\baselineskip]
- \ifpdf \phantomsection \pdfbookmark[2]{\if##1v\relax ##2
- (\csname MTversiondate##2\endcsname)\else ##2\fi}{subsection##2}\fi
+ \begin{multicols}{2}[\subsubsection*{\if##1v\relax
+ \llap{\mdseries\color{thegrey}\footnotesize
+ \csname MTversiondate##2\endcsname\hskip\marginparsep}%
+ Version ##2\else ##2\fi}][5\baselineskip]
+ \ifpdf \phantomsection \pdfbookmark[2]{\if##1v\relax ##2
+ (\csname MTversiondate##2\endcsname)\else ##2\fi}{subsection##2}\fi
\GlossaryParms \rightskip 15pt plus 5pt
\let\item\@idxitem
\ignorespaces \makeatletter \scan@allowedfalse}%
@@ -363,7 +386,13 @@
\if#1?\def\@tempb{\normalsize[\Variable{#2}]}% % ? = optional
\else\def\@tempb{\normalsize\{\Variable{#1#2}\}}\fi}
\let\SpecialEnvValue\SpecialMacroValue
-\def\Variable#1{$\langle${\rmfamily\itshape\small#1}$\rangle$}
+\DeclareRobustCommand\langlechar{<} % for makeindex
+\DeclareRobustCommand\ranglechar{>}
+\def\Variable#1{%
+ \textoractual{$\langle$}{\langlechar}%
+ {\rmfamily\itshape\small#1}%
+ \textoractual{$\rangle$}{\ranglechar}}
+\let\m@a\meta \def\meta#1{\textoractual{\m@a{#1}}{\langlechar#1\ranglechar}}
\def\MaybeDefault#1{\textrm{*}\,#1}
\def\OptionSep{{\rmfamily, }} \def\MacroSep{\,} \def\EnvironmentSep{\,}
\def\PrintValues[#1]{{\MacroFont\expandafter\@gobble\@tempa\hfill #1}\\*[.25\baselineskip]}
@@ -373,7 +402,7 @@
\actualchar{\protect\bfseries Options:}%
\levelchar{\protect\ttfamily#1}\encapchar usage}\@esphack}
\def\SpecialUsageIndex#1{\@bsphack{\index{\quotechar!User Commands
- \actualchar{\protect\indexspace\protect\bfseries User Commands:}%
+ \actualchar{\protect\bfseries User Commands:}%
\levelchar\expandafter\@gobble\string#1\actualchar\string\verb
\quotechar*\verbatimchar\string#1\verbatimchar\encapchar usage}%
\let\special@index\index\SpecialIndex@{#1}{\encapchar usage}}\@esphack}
@@ -389,6 +418,14 @@
\DeclareRobustCommand\pkg[1]{{\PackageFont#1}\@bsphack\CatIndex{#1}{package}\@esphack}
\DeclareRobustCommand\opt[1]{{\ttfamily#1}\@bsphack\CatIndex{#1}{option}\@esphack}
\DeclareRobustCommand\file[1]{{\ttfamily#1}}
+\def\RequiresSep{ \textbar\ }
+\def\requires#1{\let\@tempa\@empty
+ \@for\@tempb:=#1\do{%
+ \g@addto@macro\@tempa\RequiresSep
+ \expandafter\g@addto@macro\expandafter\@tempa\expandafter{\@tempb}}%
+ \hfill{\setlength\fboxsep{2pt}%
+ \fcolorbox{theframe}{white}{\mdseries\itshape\small\strut\color{thegrey}%
+ \,\expandafter\@gobble\@tempa\,}}}
% ... and whistles
{\catcode`\"\active
\gdef\verbatim#1
@@ -442,29 +479,30 @@
\ifx\pdfcolorstack\@undefined % no longer required with pdftex 1.40
\usepackage{pdfcolmk}
\fi\fi
- \usepackage[bookmarks,bookmarksopen,pdfdisplaydoctitle,colorlinks,
- linkcolor=theblue,citecolor=theblue,urlcolor=thered,
- hyperindex=false,hyperfootnotes=false,
+ \usepackage[bookmarks,bookmarksopen,pdfdisplaydoctitle,
+ colorlinks,linkcolor=theblue,citecolor=theblue,urlcolor=thered,
+ hyperindex=false,hyperfootnotes=false]
+ {hyperref}
+ \usepackage{hyperxmp}
+ \usepackage{attachfile}
+ %\usepackage{pdfpages}
+ \hypersetup{
pdftitle={The microtype package},
pdfauthor={R Schlicht <w.m.l@gmx.net>},
- pdfsubject={An interface to the micro-typographic extensions of pdfTeX},
- pdfkeywords={TeX, LaTeX, pdfTeX, luaTeX, typography, micro-typography,
+ pdfsubject={Subliminal refinements towards typographical perfection},
+ pdfkeywords={TeX, LaTeX, pdfTeX, LuaTeX, XeTeX, typography, micro-typography,
character protrusion, margin kerning, optical alignment, font expansion,
font scaling, hz, kerning, spacing, glue, letterspacing, tracking, ligatures}
- ]{hyperref}
+ pdfcopyright={\textcopyright\ 2004--2013 R Schlicht\012%
+ This work may be distributed and/or modified under the conditions
+ of the LaTeX Project Public License, either version 1.3c of this
+ license or (at your option) any later version.\&\#xA;%
+ This work has the LPPL maintenance status `author-maintained'.},
+ pdflicenseurl={http://www.latex-project.org/lppl/}
+ }
\pdfcatalog{/Lang(en-GB)}
\ifnum\pdftexversion < 130 \else
\IfFileExists{hypdestopt.sty}{\usepackage{hypdestopt}}\relax\fi
- \IfFileExists{hyperxmp.sty}{
- \usepackage{hyperxmp}
- \hypersetup{%
- pdfcopyright={\textcopyright\ 2004--2010 R Schlicht\012%
- This work may be distributed and/or modified under the conditions
- of the LaTeX Project Public License, either version 1.3c of this
- license or (at your option) any later version.\&\#xA;%
- This work has the LPPL maintenance status `author-maintained'.},
- pdflicenseurl={http://www.latex-project.org/lppl/}}
- }\relax
\def\usage#1{\textbf{\hyperpage{#1}}}% for indexing of \DescribeMacro ...
\def\changes@#1#2#3{% ... the changes ...
\protected@edef\@tempa{\noexpand\glossary{#1\levelchar
@@ -487,7 +525,7 @@
% \encapchar codeline}%
% \@esphack}
\def\ctanurl#1{Available from \acronym{CTAN} at
- \href{http://www.ctan.org/tex-archive/#1}{\nolinkurl{/#1}}}
+ \href{http://mirror.ctan.org/#1}{\nolinkurl{/#1}}}
\DeclareRobustCommand\mailto[1]{\href{mailto:#1}{\nolinkurl{#1}}}
\def\mailtoRS{\href % some PDF viewers don't like spaces:
{mailto:<w.m.l@gmx.net>\%20Robert\%20Schlicht?subject=[microtype\%20\fileversion]}
@@ -593,8 +631,10 @@
\fi
\hyphenation{An-dre-as Ber-nard Ha-rald Mi-cha-el Pe-ter Ste-phan Wolf-ram
Har-ders Hop-pe Jac-kow-ski Ku-char-czyk Mei-er Mu-the-si-us Zed-ler
+ Die-te-rich
Sveinung % ?
- with-out}
+ with-out
+ Pa-la-ti-no}
\def\fallbacktext#1{{\centering\itshape[#1]\par}}
% abbreviations
\DeclareRobustCommand\thanh{H\`an Th\^e%
@@ -602,7 +642,7 @@
\else \llap{\raisebox{0.45ex}{\'{}\kern\dimexpr.05em-2\fontdimen1\font\relax}}
\fi Th\`anh}
\def\pdftex{\texorpdfstring{pdf\kern.05em\TeX}{pdfTeX}}
-\def\luatex{\texorpdfstring{lua\kern-.05em\TeX}{luaTeX}}
+\def\luatex{\texorpdfstring{Lua\kern-.05em\TeX}{LuaTeX}}
\def\etex{\mbox{e-\TeX}}
\def\nonetex{\mbox{\rlap{\kern.05em/}e-\TeX}} % aka. \TeX
\def\@reflect#1{\ifdim\fontdimen1\font=0pt \reflectbox{#1}%
@@ -614,8 +654,9 @@
\def\microtype{{\PackageFont microtype}}
\def\letterspace{\pkg{letterspace}}
\def\fontdim{\cmd\fontdimen\,}
-\def\eg{e.\,g.}
-\def\ie{i.\,e.}
+\def\eg{e.g.}
+\def\ie{i.e.}
+\def\EM#1{#1\kern.1emem}
\DeclareRobustCommand\smaller{\setbox\z@\hbox{\@tempcnta=\f@size
\edef\x{\@tempcnta=\the\@tempcnta}\expandafter}\x
\advance\@tempcnta-7 \ifcase\@tempcnta\tiny\or\scriptsize\or
@@ -654,7 +695,7 @@
% \GetFileInfo{microtype.dtx}
% \title{\ifx\printlogo\undefined\else\printlogo\fi
% \textls{The \microtype\ package}\\[.3\baselineskip]\large
-% An interface to the micro-typographic extensions of \pdftex}
+% Subliminal refinements towards typographical perfection}
% \author{R Schlicht\\\mailtoRS}
% \date{\fileversion\\\filedate}
%
@@ -663,34 +704,31 @@
%\begin{abstract}
%\noindent
% The \microtype\ package provides a \LaTeX\ interface to the micro-typographic
-% extensions of \pdftex: most prominently, character protrusion and font
+% extensions that were introduced by \pdftex\ and have since also propagated to
+% \xetex\ and \luatex: most prominently, character protrusion and font
% expansion, furthermore the adjustment of interword spacing and additional
% kerning, as well as hyphenatable letterspacing (tracking) and the possibility
% to disable all or selected ligatures.
-% It allows to apply these features to customisable sets of fonts, and to
-% configure all micro-typographic aspects of the fonts in a straight-forward
-% and flexible way. Settings for various fonts are provided.\footnote{
-% Currently, this package provides protrusion settings for Computer Modern
-% Roman, Palatino, Times, <URW> Garamond, Adobe Garamond and Minion,
-% Bitstream Charter and Letter Gothic, the <AMS> symbols and Euler fonts, for
-% various Euro symbol fonts, as well as some generic settings for unknown
-% fonts (cf.~table~\ref{tab:fonts} on page~\pageref{tab:fonts}).
-% Contributions are very welcome.}
-%
-% Note that font expansion and character protrusion will only work with
-% \pdftex, at least version 0.14f. Automatic font expansion requires version
-% 1.20 or newer. Disabling ligatures requires \pdftex\ 1.30, letterspacing and
-% the adjustment of interword spacing and of kerning requires version 1.40. The
-% package will by default enable protrusion and expansion if they can safely be
-% assumed to work. These two features are also available with \luatex. The
-% \microtype\ package does not work with \xetex.
+% These features may be applied to customisable sets of fonts, and all
+% micro-typographic aspects of the fonts can be configured in a straight-forward
+% and flexible way. Settings for various fonts are provided.
+%
+% Note that character protrusion requires \pdftex\ (version~0.14f or later),
+% \luatex, or \xetex\ (at least version~0.9997).
+% Font expansion works with \pdftex\ (version~1.20 for automatic expansion)
+% or \luatex.
+% The package will by default enable protrusion and expansion if they can safely
+% be assumed to work.
+% Disabling ligatures requires \pdftex\ ($\geq$~1.30) or \luatex, while the
+% adjustment of interword spacing and of kerning only works with \pdftex\ ($\geq$~1.40).
+% Letterspacing is available with \pdftex\ ($\geq$~1.40) or \luatex\ ($\geq$~0.62).
%
% The alternative package \letterspace, which also works with plain \TeX,
% provides the user commands for letterspacing only, omitting support for all
% other extensions (see section~\ref{sec:lettersp}).
%
%\bigskip\noindent
-% This package is copyright \textcopyright\ 2004\kern.09em--2010 R Schlicht.
+% This package is copyright \textcopyright\ 2004\kern.09em--2013 R Schlicht.
% It may be distributed and/or modified under the conditions of the
% \IfFileExists{lppl.tex}{\hyperref[LPPL:LPPL]}{\href{http://www.latex-project.org/lppl/}}
% {\LaTeX\ Project Public License},
@@ -706,14 +744,33 @@
%
%
%\newpage
-%\section{Micro-typography with \pdftex}\label{sec:micro-type}
-%
-% \pdftex, the \TeX\ extension written by \thanh, introduces a number of
-% micro-typographic features that make it the tool of choice not only for the
-% creation of electronic documents but also of works of outstanding
-% time-honoured typography: most prominently, \textit{character protrusion}
-% (also known as margin kerning) and \textit{font expansion}. Quoting \thanh's
-% thesis:
+%\section{Micro-typography with \TeX}\label{sec:micro-type}
+%
+% Micro-typography is the art of enhancing the appearance and readability of a
+% document while exhibiting a minimum degree of visual obtrusion. It is
+% concerned with what happens between or at the margins of characters,
+% words or lines.
+% Whereas the macro-typographical aspects of a document (\ie, its layout) are
+% clearly visible even to the untrained eye, micro-typographical refinements
+% should ideally not even be recognisable. That is, you may think that a
+% document looks beautiful, but you might not be able to tell exactly
+% why: good micro-typographic practice tries to reduce all potential irritations
+% that might disturb a reader.
+%
+% Some essential micro-typographical aspects are already taken care of by
+% \TeX\ out of the box -- and in an outstanding manner -- namely, hyphenation
+% and justification, as well as kerning and ligatures.
+% Other aspects are in the user's scope of responsibilities, \eg, to specify
+% the right amounts of spacing around punctuation characters, numbers, or
+% quotation marks.
+% On top of this, a number of long-standing micro-typographic techniques have
+% been introduced to the \TeX\ world relatively recently with \pdftex, and
+% have since also propagated to \luatex\ and \xetex.
+% These features make them the tool of choice not only for the creation of
+% electronic documents but also of works of outstanding time-honoured typography:
+% most prominently, \textit{character protrusion} (also known as margin kerning)
+% and \textit{font expansion}. Quoting \thanh, the author of \pdftex, who
+% writes in his thesis:
%
%\changes{v1.9b}{2006/01/13}{add samples of micro-typographic features}
%\microtypesample{\small
@@ -737,42 +794,16 @@
% be taken into consideration while a paragraph is being broken into lines,
% in order to choose better breakpoints.' [\cite[p.~323]{ThanhThesis}]}
%
-% Both these features have been lacking a simple \LaTeX\ user interface for
-% quite some time. Then, the \cite{pdfcprot} package was released, which
-% allowed \LaTeX\ users to employ character protrusion without having to mess
-% much with the internals.
-%
-% Font expansion, however, was still most difficult to utilise, since it
-% required that the font metrics are available for all levels of expansion.
-% Therefore, anybody who wanted to make use of this feature had to create
-% multiple instances of the fonts in advance. Shell scripts to partly relieve
-% the user from this burden were available~-- however, it remained a cumbersome
-% task. Furthermore, all fonts were still being physically created, thus
-% wasting compilation time and disk space.
-%
-% In the summer of 2004, \thanh\ implemented a feature that has proven as a
-% major facilitation for \TeX\ and \LaTeX\ users: font expansion can now take
-% place automatically. That is, \pdftex\ no longer needs the expanded font
-% metrics but will calculate them at run-time and completely in memory.
-%
-%\bigskip\noindent
-% After this great leap in usability had been taken, the development did not
-% stop. On the contrary, \pdftex\ was extended with even more features: version
-% 1.30 introduced the possibility to \emph{disable all ligatures}, version 1.40
-% a robust \emph{letterspacing} command, the possibility to specify
-% \emph{additional character kerning}, and the \emph{adjustment of interword
-% spacing}.
-%
-% Robust and hyphenatable \emph{letterspacing (tracking)} has always been
-% extremely difficult to achieve in \TeX. Although the \cite{soul} package
-% undertook great efforts in making this possible, it could still fail in
-% certain circumstances; even to adjust the tracking of a font throughout the
-% document remained impossible. Employing \pdftex's new extension, this no
-% longer poses a problem. The \microtype\ package provides the possibility
-% to change the tracking of customisable sets of fonts, \eg, all small
-% capitals. It also introduces two new commands \cs{textls} and \cs{lsstyle}
-% for ad-hoc letterspacing, which can be used like the normal text commands.
-% Note that letterspacing only works in <PDF> mode.
+% Another micro-typographic technique, which has always been extremely
+% difficult to achieve in \TeX, is robust and hyphenatable \emph{letterspacing
+% (tracking)}.\footnote{^^A
+% The \cite{soul} package undertook great efforts, but could still fail in
+% certain circumstances; even to systematically adjust the tracking of a
+% font throughout the document remained impossible.}
+% Whereas letterspacing can easily be, and often is, abused when applying
+% it to lowercase letters, readability may be increased by slightly
+% letterspacing (small) capitals or by decreasing the tracking of very large
+% uppercase type.
%
% Setting \emph{additional kerning} for characters of a font is especially
% useful for languages whose typographical tradition requires certain
@@ -781,29 +812,22 @@
% semi-colon, and a bigger space before the colon and the guillemets. Until
% now, this could only be achieved by making these characters active (for
% example by the \pkg{babel} package), which may not always be a robust
-% solution. In contrast to the standard kerning that is built into the fonts
-% (which will of course apply as usual), this additional kerning is based on
-% single characters, not on character pairs.
+% solution. In contrast to the standard kerning built into the fonts
+% (which will of course apply as usual), this additional kerning relates to
+% single characters, not to character pairs.
%
% \emph{Adjustment of interword spacing} is based upon the idea that in order
% to achieve a uniform greyness of the text, the space between words should
% also depend on the surrounding characters. For example, if a word ends with
% an `r', the following space should be a tiny bit smaller than that following,
% say, an `m'. You can think of this concept as an extension to \TeX's `space
-% factors'. However, while space factors will influence all three parameters of
-% interword space (or glue) by the same amount~-- the kerning, the maximum
-% amount that the space may be stretched and the maximum amount that it may be
-% shrunk~-- \pdftex\ provides the possibility to modify these parameters
-% independently from one another. Furthermore, the values may be set
-% differently for each font. And, probably most importantly, the parameters may
-% not only be increased but also decreased. This feature may enhance the
-% appearance of paragraphs even more.
+% factors'. This feature may enhance the appearance of paragraphs even more.
% Emphasis in the last sentence is on the word `may': this extension is still
% highly experimental -- in particular, only ending characters will currently
-% have an influence on the interword space. Also, the settings that are shipped
-% with \microtype\ are but a first approximation, and I would welcome
-% corrections and improvements very much. I suggest reading the reasoning
-% behind the settings in section~\ref{sub:conf-spacing}.
+% influence the interword space. Also, the settings shipped with \microtype\
+% are but a first approximation, and I~would highly welcome corrections and
+% improvements. I suggest reading the reasoning behind the settings in
+% section~\ref{sub:conf-spacing}.
%
% The possibility, finally, to \emph{disable all ligatures} of a font may be
% useful for typewriter fonts.
@@ -812,8 +836,11 @@
%\bigskip\noindent
% The \microtype\ package provides an interface to all these micro-typographic
% extensions. All micro-typographic aspects may be customised to your taste and
-% needs in a straight-forward manner. The next chapters will present a survey
-% of all options and customisation possibilities.
+% needs in a straight-forward and systematic manner. The next chapters present
+% a survey of all options and customisation possibilities. Should the
+% micro-typographic extension discussed in a section work only with certain
+% \TeX\ engines, this requirement is marked inside a grey text box on the
+% right.
%
%
%\section{Getting started}
@@ -823,9 +850,9 @@
%\usepackage{microtype}
%\end{verbatim}
% This will be sufficient in most cases, and if you are not interested in
-% fine-tuning the micro-typographic appearance of your document (which would
-% seem unlikely, since using this package is proof of your interest in
-% typographic issues), you may actually skip the rest of this document.
+% fine-tuning the micro-typographic appearance of your document (however
+% unlikely this would seem, since using this package is proof of your interest
+% in typographic issues), you may actually skip the rest of this document.
%^^A
% If this, on the other hand, does not satisfy you -- be it for theoretical or
% practical reasons -- this manual will guide you on the path to the desired
@@ -842,7 +869,7 @@
% (section~\ref{sec:font-sets}).
% \item Fine-tune the micro-typographic settings of the fonts or sets of fonts
% (section~\ref{sec:fine-tuning}).
-% \item If you're of the kind who always wants to march on, you'll certainly
+% \item If you're of the kind who always wants to march on, you will certainly
% be interested in the possibility of context-sensitive setup
% (section~\ref{sec:context}).
% \item You are even countenanced to leave the path of typographic virtue and
@@ -856,11 +883,11 @@
%\section{Options}\label{sec:options}
%
% Like many other \LaTeX\ packages, the \microtype\ package accepts options in
-% the well known |key=value| syntax. In the following, you'll find a
+% the well known |key=value| syntax. In the following, you will find a
% description of all \key{keys} and their possible |values|
% (`|true|' may be omitted; multiple values, where allowed, must be enclosed in
% braces; the default value is shown on the right, preceded by an asterisk
-% if it is contingent on the \pdftex\ version and/or the output mode).
+% if it is contingent on the \TeX\ engine, version and/or the output mode).
%
%
%\subsection{Enabling the micro-typographic features}\label{sub:options-microtype}
@@ -870,12 +897,12 @@
%\DescribeOption{expansion}
% These are the main options to control the level of micro-typographic
% refinement which the fonts in your document should gain. By default, the
-% package is moderately greedy: character protrusion will be enabled, font
-% expansion will only be disabled in circumstances where \pdftex\ cannot expand
-% the fonts automatically, that is, if it is either too old (versions before
-% 1.20) or if the output mode is <DVI> (see section~\ref{sub:options-misc}).
+% package is moderately greedy: character protrusion will always be enabled,
+% font expansion will only be disabled when the fonts cannot be expanded
+% automatically, that is, with \pdftex\ versions older than 1.20, in <DVI>
+% output mode (see section~\ref{sub:options-misc}), or with \xetex.
% In other words, \microtype\ will try to apply as much micro-typography as
-% can safely be expected to work under the respective conditions (and it is
+% can safely be expected to work under the respective conditions (hence, it is
% usually not necessary to load the package with different options for <PDF>
% resp. <DVI> mode).
%
@@ -896,7 +923,7 @@
%\usepackage{microtype}
%\end{verbatim}
%\smallskip
-% When \pdftex\ employs font expansion and character protrusion, line breaks
+% With activated font expansion and/or character protrusion, line breaks
% (and consequently, page breaks) may turn out differently. If this is not
% desired -- because you are re-typesetting a book whose pagination must not
% change -- you may pass the value |compatibility| to the \opt{protrusion}
@@ -910,12 +937,21 @@
%
%\medskip
%\Describe{Option}{tracking}{true,!false,:font set name}
-%\DescribeOption{kerning}
+% This option will systematically change the tracking of the fonts specified in
+% the active font set (by default, all small capitals).
+% It is not available with \xetex\ (you may use the `|LetterSpace|'
+% option of the \pkg{fontspec} package instead).
+% With \luatex, you need to load the fonts with the \pkg{fontspec} option
+% `|Renderer=Basic|`. See the \cite{fontspec} manual for details.
+%
+%\medskip
+%\Describe{Option}{kerning}{true,!false,:font set name}
%\DescribeOption{spacing}
-% There is no compatibility level for the new extensions of tracking,
-% additional kerning, and interword spacing. Therefore, they can only be
-% switched on or off, or they may be activated by passing a set name to the
-% option. By default, neither feature is enabled.
+% These features do not unconditionally improve the quality of the typeset text:
+% the `spacing' feature is still considered experimental, while the `kerning'
+% feature only makes sense in special cases.
+% Therefore, neither feature is enabled by default. They are not available
+% with \xetex\ or \luatex.
%
%\begin{table}\small
%\changes{v2.3a}{2008/02/25}{add table of available and enabled features}
@@ -950,9 +986,16 @@
% & & <PDF> & ! & ! & ! & _ & _ & _\\
% & $\geq$ 1.40 & <DVI> & ! & ? & _ & ? & ? & _\\
% & & <PDF> & ! & ! & ! & ? & ? & ?\,\textsuperscript{\itshape a}\\
-% \luatex ^^A we will have to re-model kerning, spacing and tracking with \luatex:
-% & $\geq$ 0.25 & <DVI> & ! & ? & _ & _ & _ & _\\
+%\cmidrule(r){1-3}
+% \luatex ^^A we will have to re-model kerning, spacing and tracking with \luatex
+% & $\geq$ 0.30 & <DVI> & ! & ? & _ & _ & _ & _\\
% & & <PDF> & ! & ! & ! & _ & _ & _\\
+% & $\geq$ 0.62 & <DVI> & ! & ? & _ & _ & _ & _\\
+% & & <PDF> & ! & ! & ! & _ & _ & ?\\
+%\cmidrule(r){1-3}
+% \let\textoractual\@firstoftwo ^^A why?
+% \xetex
+% & $\geq$ 0.9997 & <PDF> & ! & _ & _ & _ & _ & _\\
%\bottomrule
%\end{tabular}^^A
%\vskip4pt\footnotesize
@@ -970,7 +1013,7 @@
%\medskip\noindent
% In table~\ref{tab:available-features}, you find an overview of which
% micro-typographic features are available and enabled by default for the
-% relevant \pdftex\ versions and output modes.
+% relevant \TeX\ versions and output modes.
%
%\medskip\noindent
% Whether ligatures should be disabled cannot be controlled via a package option
@@ -978,7 +1021,9 @@
% section~\ref{sec:disable-ligatures}.
%
%
-%\subsection{Character protrusion}\label{sub:options-protrusion}
+%\subsection[Character protrusion]
+% {Character protrusion \requires{\pdftex~0.14f,\luatex~0.30,\xetex~0.9997}}
+% \label{sub:options-protrusion}
%
%\Describe{Option}{factor}{:integer}[1000]
% Using this option, you can globally increase or decrease the amount by which
@@ -998,13 +1043,16 @@
% \cs{SetProtrusion}. Use with care.
%
%
-%\subsection{Font expansion}\label{sub:options-expansion}
+%\subsection[Font expansion]
+% {Font expansion \requires{\pdftex~0.14f,\luatex~0.30}}
+% \label{sub:options-expansion}
%
%\Describe{Option}{auto}{*true,false}
-% As noted in chapter~\ref{sec:micro-type}, the expanded versions of the fonts
-% may be calculated automatically. This option is true by default provided that
-% \pdftex's version is found to be 1.20 or higher and the output mode is <PDF>;
-% otherwise, it will be disabled.
+% Beginning with version \pdftex\ 1.20 (and with \luatex), the expanded
+% instances of the fonts may be calculated automatically and at run-time instead
+% of the user having to prepare the instances in advance. This option is true
+% by default provided that you are using a \TeX\ engine with this capability
+% and the output mode is <PDF>; otherwise, it will be disabled.
% If \opt{auto} is set to false, the fonts for all expansion steps must exist
% (with files called \meta{font~name}\texttt{\textpm}\meta{expansion value},
% \eg, \file{cmr12+10}, as described in the \cite{pdftexman}).
@@ -1016,9 +1064,12 @@
%\changes{v1.9}{2005/08/27}{add remark about Type\,1 fonts required for
% automatic font expansion}
% Automatic font expansion does not work with bitmap fonts. Therefore, if you
-% are using the Computer Modern Roman fonts in <T1> encoding\footnote{
+% are using the Computer Modern Roman fonts in <T1> encoding,
+%\iffalse
+% \footnote{
% En passant, it may be noted that Type\,1 format and <T1> encoding are in
-% no other way related than that both start with a `T' and end with a `1'.},
+% no other way related than that both start with a `T' and end with a `1'.}
+%\fi
% you should either install the \pkg{cm-super} fonts or use the Latin Modern
% fonts (package \pkg{lmodern}).
%
@@ -1036,9 +1087,9 @@
%\Describe{Option}{step}{:integer}[\MaybeDefault{1}]
% Fonts are not expanded by arbitrary amounts but only by certain discrete
% steps within the expansion limits. With recent versions of \pdftex\ (1.40 or
-% newer), this option is by default set to 1, in order to allow \pdftex\ to try
-% the maximum number of font instances, and hence to guarantee the best
-% possible output.\footnote{
+% newer) or \luatex, this option is by default set to 1, in order to allow
+% trying the maximum number of font instances, and hence to guarantee
+% the best possible output.\footnote{
% The downside with this default is that \pdftex\ may run out of memory with
% huge documents; in this case, read about the error messages in the `Hints
% and caveats' section~(\ref{sec:caveats}), or try with a larger \opt{step}.}
@@ -1052,31 +1103,34 @@
% When applying font expansion, it is possible to restrict the expansion of some
% characters that are more sensitive to deformation than others (\eg, the `O',
% in contrast to the `I'). This is called \emph{selected expansion}, and its
-% usage allows to increase the stretch and shrink limits (to, say, 30 instead
+% usage allows increasing the stretch and shrink limits (to, say, 30 instead
% of 20); however, the gain is limited since at the same time the average
% stretch variance will be decreased. Therefore, this option is by default
% set to |false|, so that all characters will be expanded by the same amount.
% See section~\ref{sub:expansion} for a more detailed discussion.
%
%
-%\subsection{Tracking/letterspacing}\label{sub:option-tracking}
+%\subsection[Tracking]
+% {Tracking \requires{\pdftex~1.40,\luatex~0.62}}
+% \label{sub:option-tracking}
%
%\Describe{Option}{letterspace}{:integer}[100]
% This option changes the default amount for tracking (see section~\ref{sub:tracking})
% resp. letterspacing (see section~\ref{sec:lettersp}). The amount is specified
-% in thousandths of 1\,em; admissible values are in the range of \textminus1000
+% in thousandths of \EM{1}; admissible values are in the range of \textminus1000
% to +1000.
%
%
%\subsection{Miscellaneous options}\label{sub:options-misc}
%
%\Describe{Option}{DVIoutput}{true,*false}
-% \pdftex\ is not only able to generate <PDF> output but can also spit out <DVI>
-% files.\footnote{
+% \pdftex\ and \luatex\ are not only able to generate <PDF> output but can also
+% spit out <DVI> files.\footnote{
% Recent \TeX\ systems are using \pdftex\ as the default engine even for
% <DVI> output.}
% The latter can be ordered with the option \opt{DVIoutput}, which will set
% \cmd\pdfoutput\ to zero.
+% For \xetex, this option is not applicable.
%
%\changes{v1.5}{2004/12/15}{add note about \opt{DVIoutput} option}
% Note that this will confuse packages that depend on the value of
@@ -1102,7 +1156,7 @@
% micro-typographic extensions will be disabled}, which may lead to different
% line, and hence page, breaks. The \opt{draft} and \opt{final} options may
% also be inherited from the class options; of course, you can override them in
-% the package options. E.\,g., if you are using the class option |draft| to
+% the package options. E.g., if you are using the class option |draft| to
% show any overfull boxes, you should load \microtype\ with the |final|
% option.
%
@@ -1159,12 +1213,11 @@
%\fi
%
%
-%\ifcmr\else\pagebreak\markright{}\fi ^^A layout
%\subsection{Changing options later}\label{sub:options-cmd}
%
%\Describe{Macro}{\microtypesetup}{key\,|=|\,value list}
% Inside the preamble, this command accepts all package options described above
-% (except for |config|).
+% (except for \key{config}).
% In the document body, this command may be used to change the general settings
% of the micro-typographic extensions. It then accepts all options from
% section~\ref{sub:options-microtype}: \key{expansion}, \key{protrusion} and
@@ -1181,8 +1234,8 @@
%
%\section{Selecting fonts for micro-typography}\label{sec:font-sets}
%
-% By default, character protrusion will be applied to all text fonts that are
-% being used in the document, and a basic set of fonts will be subject to font
+% By default, character protrusion will be applied to all text fonts used in
+% the document, and a basic set of fonts will be subject to font
% expansion. You may want to customise which fonts should get the benefit of
% micro-typographic treatment. This can be achieved by declaring and activating
% `font sets'; these font sets are specified via font attributes that have to
@@ -1203,7 +1256,7 @@
% `|basictext|' in the main configuration file as follows:
%\begin{verbatim}
%\DeclareMicrotypeSet{basictext}
-% { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5},
+% { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,EU1,EU2},
% family = {rm*,sf*},
% series = {md*},
% size = {normalsize,footnotesize,small,large}
@@ -1213,12 +1266,11 @@
%\begin{verbatim}[deletekeywords={[1]{protrusion}}]
%\UseMicrotypeSet[protrusion]{basictext}
%\end{verbatim}
-% in the document's preamble, only fonts in the text encodings <OT1>, <T1>,
-% <T2A>, <LY1>, <OT4>, <QX> or <T5>, roman or sans serif families, normal (or
-% `medium') series, and in sizes called by \cmd\normalsize,
-% \cmd\footnotesize, \cmd\small\ or \cmd\large, will be protruded. Math
-% fonts, on the other hand, will not, since they are in another encoding.
-% Neither will fonts in bold face, or huge fonts. Etc.
+% in the document's preamble, only fonts in the text encodings, roman or sans
+% serif families, normal (or `medium') series, and in sizes called by
+% \cmd\normalsize, \cmd\footnotesize, \cmd\small\ or \cmd\large, will be
+% protruded. Math fonts, on the other hand, will not, since they are in another
+% encoding. Neither will fonts in bold face, or huge fonts. Etc.
%
% If an attribute list is empty or missing -- like the `shape' attribute
% in the above example -- it does not constitute a restriction. In other
@@ -1227,7 +1279,7 @@
% Therefore, the predefined set `|alltext|', which is declared as:
%\begin{verbatim}
%\DeclareMicrotypeSet{alltext}
-% { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,TS1} }
+% { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,TS1,EU1,EU2} }
%\end{verbatim}
% is far less restrictive. The only condition here is that the encoding must
% match.
@@ -1264,7 +1316,7 @@
% font = {T1/tt*/m/n/*,
% T1/tt*/m/it/*} }
%\end{verbatim}
-% As you can tell from the example, the asterisk notation is also allowed for
+% As you can tell from the example, the asterisk notation is also permitted for
% the |font| key. A single asterisk is equivalent to `|*/*/*/*/*|', \ie, the
% normal font. Size selection commands are possible, too, however, ranges are
% not allowed.
@@ -1287,6 +1339,7 @@
%\leavevmode\kern-\dimexpr\fboxsep+\fboxrule\relax
%\fcolorbox{theframe}{white}{^^A
%\begin{minipage}{\textwidth}
+%\def\arraystretch{1.2}
%\begin{tabular}{@{}L{65pt}L{80pt}*3{L{41pt}}L{67pt}@{}}
% \footnotesize Set name
% & \multicolumn{5}{l}{\footnotesize Font attributes}\\
@@ -1349,7 +1402,7 @@
%\bottomrule
%\end{tabular}
%\vskip4pt\footnotesize
-% `Text encodings' = <OT1>, <T1>, <T2A>, <LY1>, <OT4>, <QX>, <T5>
+% `Text encodings' = <OT1>, <T1>, <T2A>, <LY1>, <OT4>, <QX>, <T5>, <EU1>, <EU2>
%\hfill
% `/\bslash\,\dots|*|/' = `/\bslash\,\dots|default|/'
%\vskip3pt
@@ -1394,23 +1447,29 @@
%
% The set of fonts to which the settings should apply is declared using the
% same syntax of \meta{font axis}\,|=|\,\meta{value list} pairs as for the
-% command \cs{DeclareMicrotypeSet} (see section~\ref{sec:font-sets}). The only
-% difference is that asterisked values will be translated immediately instead
-% of at the end of the preamble.
-%^^A
-%\ifcmr\else\enlargethispage{3\baselineskip}\fi ^^A layout
-%\changes{v1.7}{2005/03/23}{remove table of match order}^^A
+% command \cs{DeclareMicrotypeSet} (see section~\ref{sec:font-sets}). Values
+% with an asterisk will be translated immediately instead of at the end
+% of the preamble.
% To find the matching settings for a given font the package will try all
-% combinations of font encoding, family, series, shape and size, with
-% decreasing significance in this order. For instance, if both settings for the
-% current family (say, |T1/cmr///|) and settings for italic fonts in the normal
-% weight (|T1//m/it/|) exist, those for the |cmr| family would
-% apply.\footnote{
-% For the interested, table~\ref{tab:match-order} on
-% page~\pageref{tab:match-order} presents the exact order.}
+% combinations of font encoding, family, series, shape and size,
+% with decreasing significance in this order. For instance, if both settings for
+% the current family (say, |T1/cmr///|) and settings for italic fonts in the
+% normal weight (|T1//m/it/|) exist, those for the |cmr| family would
+% apply.
+%\changes{v1.7}{2005/03/23}{remove table of match order}^^A
+%^^A \footnote{
+%^^A For the interested, table~\ref{tab:match-order} on
+%^^A page~\pageref{tab:match-order} presents the exact order.}
% The encoding must always match.
+%\iffalse
+%^^A TODO: When using native TrueType\slash OpenType fonts (with \xetex\ or \luatex, and
+%^^A the \pkg{fontspec} package), you may additionally restrict the settings to
+%^^A certain |features|.
+%\fi
%
-%\subsection{Character protrusion}\label{sub:protrusion}
+%\subsection[Character protrusion]
+% {Character protrusion \requires{\pdftex~0.14f,\luatex~0.30,\xetex~0.9997}}
+% \label{sub:protrusion}
%
%\Describe{Macro}{\SetProtrusion}{?options,set of fonts,protrusion settings}
% Using this command, you can set the protrusion factors for each character of a
@@ -1430,14 +1489,18 @@
%\paragraph{The protrusion settings}
% consist of \meta{character}\,|=|\,\meta{protrusion factors} pairs.
%
-% The characters may be specified either as a single character (`|A|'),
-% as a text symbol command (`\cmd\textquoteleft'), or as a slot number: three
-% digits for decimal notation, prefixed with~|"| for hexadecimal, with~|'| for
-% octal (\eg, the `fl' ligature in <T1> encoding:~|029|, |"1D|, |'35|).
+% The characters may be specified either as a single character (|A|),
+% as a text symbol command (\cmd\textquoteleft), or as a slot number (resp.
+% Unicode number for \luatex\ or \xetex): three or more digits for decimal
+% notation, prefixed with~|"| for hexadecimal, with~|'| for octal (\eg, the
+% `fl' ligature in <T1> encoding:~|029|, |"1D|, |'35|).
% \mbox{8-bit} (and even <UTF-8>) characters may be entered directly or in
% \LaTeX's traditional \mbox{7-bit} notation: both |\"A| and \expandafter|\"A|
% are valid, provided the character is actually declared in both the input and
-% the font encoding. Note that you also have the possibility to declare lists
+% the font encoding.
+% With \luatex\ or \xetex, you may additionally specify a (font-specific)
+% glyph name, prefixed with `|/|' (\eg, the `fl' ligature as |/f_l|).
+% Note that you also have the possibility to declare lists
% of characters that should inherit settings (see section~\ref{sub:inherit}).
%
% The protrusion factors designate the amount that a character should be
@@ -1446,7 +1509,7 @@
% widths, so that a value of 1000 means that the character should be shifted
% fully into the margin, while, for example, with a value of 50 it would be
% protruded by 5\% of its width. Negative values are admitted, as well as
-% numbers larger than 1000 (but effectively not more than 1\,em of the font).
+% numbers larger than 1000 (but effectively not more than \EM{1} of the font).
% You can omit either number if the character should not be protruded on that
% side, but must not drop the separating comma.
%
@@ -1463,7 +1526,8 @@
% or series can then load these settings, and extend or overwrite them
% (since the value that comes last will take precedence). Font settings
% will be loaded recursively.
-% The following options will affect all loaded lists:
+% The following options will affect all loaded lists, in other words,
+% any options from the loaded lists will be ignored:
%\changes{v1.8}{2005/06/23}{add example for \texttt{factor} option}
% \item[\key{factor}] This option can be used to influence all protrusion
% factors of the list, overriding any global \opt{factor} setting (see
@@ -1502,11 +1566,13 @@
% specify any encoding that can be loaded via the \pkg{inputenc} package,
% \eg, |ansinew|, |koi8-r|, |utf8|.
% \item[\key{context}] The scope of the list may be limited to a certain
-% context. For an example application, see section~\ref{sec:context}.
+% context. For further details, see section~\ref{sec:context}.
%\end{options}
%
%
-%\subsection{Font expansion}\label{sub:expansion}
+%\subsection[Font expansion]
+% {Font expansion \requires{\pdftex~0.14f,\luatex~0.30}}
+% \label{sub:expansion}
%
%\Describe{Macro}{\SetExpansion}{?options,set of fonts,expansion settings}
% By default, all characters of a font are allowed to be stretched or shrunk by
@@ -1517,7 +1583,6 @@
% section~\ref{sub:options-expansion}). Otherwise, the expansion settings will
% be ignored~-- unlike the options in the optional first argument, which will
% still be evaluated.
-%
% If the package was loaded with the \opt{selected} option, and settings for a
% font don't exist, font expansion will not be applied to this font at all.
% Should the extraordinary situation arise that you want to employ selected
@@ -1525,7 +1590,6 @@
% should be expanded or shrunk by the same amount, you would have to declare an
% empty list for these fonts.
%
-%\ifcmr\else\enlargethispage\baselineskip\fi ^^A layout
%\paragraph{The expansion settings}
% consist of \meta{character}\,|=|\,\meta{expansion factor} pairs.
% You may specify one number for each character, which determines the amount
@@ -1602,7 +1666,10 @@
%\end{options}
%
%
-%\subsection{Tracking}\label{sub:tracking}
+%\subsection[Tracking]
+% {Tracking \requires{\pdftex~1.40,\luatex~0.62}}
+% \label{sub:tracking}
+%
%\Describe{Macro}{\SetTracking}{?options,set of fonts,tracking amount}
% An important typographic technique -- which was missing in \TeX\ for a long
% time -- is the adjustment of tracking, \ie, the uniform addition or
@@ -1614,32 +1681,32 @@
% With full-featured fonts like Computer Modern, this is usually not
% necessary, though, since they come in optical sizes, and the tracking of
% the small-capitals font is already adjusted.}
-% The \cs{SetTracking} command allows to specify the tracking amount for
+% The \cs{SetTracking} command allows specifying the tracking amount for
% different fonts or font sets. It will also be evaluated by the \cs{textls}
% command, which may be used for letterspacing shorter pieces of text (see
% section~\ref{sec:lettersp}).
%
%\paragraph{The tracking amount}
-% is specified in thousandths of 1\,em (or the given unit); negative values are
+% is specified in thousandths of \EM{1} (or the given unit); negative values are
% allowed, too.
%
%\paragraph{Options:}
%\begin{options}
% \item[\key{name}, \key{unit}, \key{context}]
% These options serve the same functions as in the previous configuration
-% commands. The unit may be any dimension, default is 1\,em.
+% commands. The unit may be any dimension, default is \EM{1}.
% \item[\key{spacing}]
% When the inter-\emph{letter} spacing is altered, the inter-\emph{word}
% spacing probably also needs to be adjusted. This option expects three
% numbers for interword space, stretch and shrink respectively, which are
-% given in thousandths of 1\,em (or of the current \texttt{unit}). If a
+% given in thousandths of \EM{1} (or of the current \texttt{unit}). If a
% value is followed by an asterisk, it denotes thousandths of the
% respective font dimension which will be added to it. For instance, with
%\begin{verbatim}
%\SetTracking[ spacing = {25*,166, } ]{ encoding = *, shape = sc }{ 25 }
%\end{verbatim}
% the interword space will be increased by 2.5\%, the stretch amount will
-% be set to 0.166\,em, while the shrink amount will be left untouched. If
+% be set to \EM{0.166}, while the shrink amount will be left untouched. If
% you don't specify the \texttt{spacing} option, the interword space will
% be scaled by the current letterspace amount (as in the above example),
% while stretch and shrink will not be changed.
@@ -1652,7 +1719,7 @@
% If, on the other hand, no interword space precedes of follows, you may
% still want to slightly set off the first and last letter from adjoining
% letters. This option expects the kerning amounts for left and right hand
-% side, separated by a comma, in thousandths of 1\,em (or the current
+% side, separated by a comma, in thousandths of \EM{1} (or the current
% \texttt{unit}). If a value is followed by an asterisk, it denotes
% thousandths of the current letterspacing amount. A single asterisk means
% `|500*|'; this is also the default, \ie, the sum of the outer kerns is
@@ -1716,17 +1783,17 @@
%\noindent
% While the word `Stop' is not letterspaced, the space between the letters in
% the other two words is expanded by the \showarrow[tracking]{tracking~amount}{red}
-% of 160/1000\,em\,=\allowbreak\,0.16\,em.
+% of \EM{160/1000}\,=\allowbreak\,\EM{0.16}.
% The \showarrow[ispace]{inner~space}{green} within the letterspaced text is
% increased by 60\%, while its \showarrow[istretch]{stretch}{green} amount is
% decreased by 10\% and the \showarrow[ishrink]{shrink}{green} amount is left
% untouched.
-% The \showarrow[ospace]{outer~space}{green} (of 0.45\,em) immediately before the
-% piece of text may \showarrow[ostretch]{stretch}{green} by 0.25\,em and
-% \showarrow[oshrink]{shrink}{green} by 0.15\,em.
+% The \showarrow[ospace]{outer~space}{green} (of \EM{0.45}) immediately before the
+% piece of text may \showarrow[ostretch]{stretch}{green} by \EM{0.25} and
+% \showarrow[oshrink]{shrink}{green} by \EM{0.15}.
% Note that there is no outer space after the text, since the exclamation mark
% immediately follows; instead, the default \showarrow[okern]{outer~kern}{red}
-% of half the letterspace amount (0.08\,em) is added.
+% of half the letterspace amount (\EM{0.08}) is added.
% Furthermore, one \showarrow{ligature}{grey} wasn't broken up, because we
% neglected to specify the `|s|' in the |no ligatures| key.
%
@@ -1734,8 +1801,8 @@
% As another, more realistic
%\fi
% example, suppose you want to space out all small
-% capitals by 50/1000\,em, fonts smaller than \cmd\small\ by 0.02\,em, and to
-% decrease the tracking of large type by 0.02\,em. You can achieve this with
+% capitals by \EM{50/1000}, fonts smaller than \cmd\small\ by \EM{0.02}, and to
+% decrease the tracking of large type by \EM{0.02}. You can achieve this with
% the following settings:
%^^A there's a \nobreakspace ahead!
%\begin{verbatim}
@@ -1751,18 +1818,18 @@
%
%\medskip\noindent
% Letterspaced fonts for which settings don't exist will be spaced out by the
-% default of 0.1\,em (adjustable with the package option \opt{letterspace}, see
+% default of \EM{0.1} (adjustable with the package option \opt{letterspace}, see
% section~\ref{sub:options-misc}). Suppose your editor wants you to shorten
-% your 1000 pages chef-d'\oe uvre by a handful of pages, you could load
+% your 1000-pages chef-d'\oe uvre by a handful of pages, you could load
% \microtype\ with (fingers crossed):
%\begin{verbatim}
%\usepackage[tracking=alltext,letterspace=-40]{microtype}
%\end{verbatim}
%
-%\emptypdfpageresources ^^A layers of letterspacing illustration
-%
%
-%\subsection{Additional kerning}\label{sub:kerning}
+%\subsection[Additional kerning]
+% {Additional kerning \requires{\pdftex~1.40}}
+% \label{sub:kerning}
%
%\Describe{Macro}{\SetExtraKerning}{?options,set of fonts,kerning settings}
% With this command, you can fine tune the extra kerning. In contrast to
@@ -1773,6 +1840,8 @@
% kerning will be inserted, regardless of which character precedes resp.
% follows it.
%
+%\emptypdfpageresources ^^A layers of letterspacing illustration
+%
% I should not neglect to mention a limitation of this additional kerning:
% words \emph{immediately following} such a kern (not separated by a space)
% will not be hyphenated, unless you insert the breakpoints manually, \eg, for
@@ -1791,14 +1860,13 @@
% These options serve the same function as in the previous configuration
% commands.
% \item[\key{unit}] Admissible values are: |space|, |character| and a
-% \meta{dimension}. By default, the values denote thousandths of 1\,em.
+% \meta{dimension}. By default, the values denote thousandths of \EM{1}.
% \item[\key{context}] When it comes to kerning settings, this option is
-% especially useful, since it allows to apply settings depending on the
+% especially useful, since it allows applying settings depending on the
% current language.
% \par
% For example, you can find the following settings, intended to be used
% for documents written in French, in the main configuration file:
-%\ifcmr\else\pagebreak\fi ^^A layout
%\begin{verbatim}[deletekeywords={[1]{unit}}]
%\SetExtraKerning
% [ name = french-default,
@@ -1838,7 +1906,9 @@
%\end{options}
%
%
-%\subsection{Interword spacing}\label{sub:spacing}
+%\subsection[Interword spacing]
+% {Interword spacing \requires{\pdftex~1.40}}
+% \label{sub:spacing}
%
%\Describe{Macro}{\SetExtraSpacing}{?options,set of fonts,spacing settings}
% This command allows you to fine tune the interword spacing (also known as
@@ -1852,9 +1922,16 @@
%
% On top of these glue dimensions, \TeX\ has the concept of `space factors'.
% They may be used to increase the space after certain characters, most
-% prominently the punctuation characters. If \pdftex's additional spacing
-% adjustment is in effect, space factors are ignored, since it may be
-% considered an extension to space factors with much finer control.
+% prominently the punctuation characters. \pdftex's additional spacing
+% adjustment may be considered as an extension to space factors with much
+% finer control: while space factors will influence all three parameters of
+% interword space (or glue) by the same amount~-- the kerning, the maximum
+% amount that the space may be stretched and the maximum amount that it may be
+% shrunk~-- you may modify these parameters independently from one another.
+% Furthermore, the values may be set differently for each font. And, probably
+% most importantly, the parameters may not only be increased but also decreased.
+% Note that when interword spacing adjustment is in effect, space factors are
+% ignored.
%
%\paragraph{The spacing settings}
% are declared as pairs of \meta{character}\,|=|\,\meta{spacing factors}, where
@@ -1904,17 +1981,17 @@
% up the respective base character. With the optional argument, which may
% contain a comma-separated list of features, you can confine the scope of the
% list. Additionally, it accepts the |inputenc| key to set the input encoding
-% for this list. The font set can be declared in the usual way, with the only
-% exception that exactly one encoding must be specified. The inheritance lists
-% are declared as pairs of \meta{base character}\,|=|\,\meta{list of inheriting
-% characters}. Unless you are using a different encoding or a very peculiarly
-% shaped font, there should be no need to change the default character
-% inheritance settings.
+% for this list. The font set can be declared in the usual way. The inheritance
+% lists are declared as pairs of \meta{base character}\,|=|\,\meta{list of
+% inheriting characters}. Unless you are using a different encoding or a very
+% peculiarly shaped font, there should be no need to change the default
+% character inheritance settings. The situation is different with \luatex\ and
+% \xetex, however: the default inheritance settings only contain those glyhps
+% that can safely be assumed to exist in any font; but since OpenType fonts may
+% contain many more glyphs for different scripts (languages), it is quite
+% probable that font-specific settings are necessary, which should be specified
+% in the font's configuration file (see next section).
%
-%\bigskip\noindent
-% In the main configuration file \file{microtype.cfg} and the other
-% font-specific configuration files, you can find examples of all these
-% commands.
%
%
%\subsection{Configuration files}\label{sub:config-file}
@@ -1927,7 +2004,8 @@
%
% If you embark on creating new settings for a font family, you should
% put them into a separate file, whose name must be: `|mt-|\meta{font
-% family}|.cfg|' (\eg, `\file{mt-cmr.cfg}'), and may contain all commands
+% family}|.cfg|' (\eg, `\file{mt-cmr.cfg}'; any spaces in the font name should
+% be removed, \eg, `\file{mt-MinionPro.cfg}'), and may contain all commands
% described in the current section~\ref{sec:fine-tuning}. These files will be
% loaded automatically if you are actually using the respective fonts.
% This package ships with configuration files for a number of font families.
@@ -1970,7 +2048,7 @@
% Adobe Garamond (|pad|, |padx|, |padj|)
% & <OT1>, <T1>, <LY1>, <TS1>
% & n, it, (sl)\fnref{fn:it-sl}, sc \\
-% <URW> Garamond (|ugm|)\footnote{Alias: \pkg{mathdesign}/<URW> Garamond (|mdugm|)}
+% <URW> Garamond (|ugm|)\footnote{Aliases: \pkg{mathdesign}/<URW> Garamond (|mdugm|), \pkg{garamondx} (|zgmx|, |zgmj|)}
% & <OT1>, <T1>, <TS1>
% & n, it\\
% Bitstream Letter Gothic (|blg|)\footnote{Alias: \pkg{ulgothic} (|ulg|)}
@@ -1988,7 +2066,21 @@
% \pkg{qfonts}/QuasiTimes, \TeX\ Gyre Termes (|qtm|)}
% & <OT1>, <OT4>, <T1>, <LY1>, <QX>, (<TS1>)\fnref{fn:incmpl}
% & n, it, (sl)\fnref{fn:it-sl}, sc \\
-% Computer Modern math (|cmsy|, |cmm|)
+% Latin Modern Roman
+% & <EU1>, <EU2> [Latin, Greek]
+% & n, it, (sl)\fnref{fn:it-sl}\\
+% Charis SIL
+% & <EU1>, <EU2> [Latin, Cyrillic, Greek]
+% & n, it, sc\\
+%\iffalse ^^A provided with the EB Garamond package
+% EB Garamond
+% & <EU1>, <EU2> [Latin, Cyrillic, Greek]
+% & n, it, sc, si\\
+%\fi
+% Palatino Linotype\footnote{Alias: \TeX\ Gyre Pagella, Palatino LT Std, Palatino}
+% & <EU1>, <EU2> [Latin]
+% & n, it, sc\\
+% Computer Modern math (|cmsy|, |cmm|)\footnote{Aliases: Latin Modern (|lmsy|, |lmm|)}
% & <OML>/<OMS>
% & n/it \\
% <AMS> symbols (|msa|, |msb|)
@@ -2011,9 +2103,9 @@
%\DescribeMacro{\DeclareMicrotypeVariants*}
% On its search for a configuration file, the package will also try to remove
% from the font name a suffix of one or more letters that denotes a `variant'
-% of the base font (cf. Karl Berry's \cite{fontname}). This allows it to put
-% settings for, \eg, the fonts |padx| (expert set), |padj| (oldstyle numerals)
-% and |pad| (plain) into one and the same file \file{mt-pad.cfg}.
+% of the base font (cf. Karl Berry's \cite{fontname}). It is thus possible to
+% put settings for, \eg, the fonts |padx| (expert set), |padj| (oldstyle
+% numerals) and |pad| (plain) into one and the same file \file{mt-pad.cfg}.
% This command expects a comma-separated list of variant suffixes. The starred
% version appends the suffix(es) to the existing list. The default declaration
% in \file{microtype.cfg} is:
@@ -2021,6 +2113,7 @@
%\DeclareMicrotypeVariants{x,j,w,a,d,0,1}
%\end{verbatim}
%
+%\pagebreak ^^A layout
%\medskip
%\Describe{Macro}{\DeclareMicrotypeAlias}{font name,alias font}
% This command may be used for fonts that are very similar, or actually the
@@ -2035,6 +2128,7 @@
% not find settings for it, also try the font |cmr|. In fact, you will find
% this very line, along with some others, in the default configuration file.
%
+%\enlargethispage\baselineskip ^^A layout
%\medskip
%\Describe{Macro}{\LoadMicrotypeFile}{font name}
% In rare cases, it might be necessary to load a font configuration file
@@ -2049,10 +2143,13 @@
%
%\section{Context-sensitive setup}\label{sec:context}
%
-% The \microtype\ package also allows to apply different micro-typographic
+% The \microtype\ package also allows applying different micro-typographic
% settings to the fonts depending on the context in which they occur. This
% opens up the space for infinite possibilities of tweaking the document's
-% appearance.
+% appearance.\footnote{
+% With \luatex, you have to load the fonts with the \pkg{fontspec} option
+% `|Renderer=Basic|'.}
+% ^^A Otherwise, OpenType feature will be ignored (+smcp being one of them)
%
%\medskip
%\Describe{Macro}{\microtypecontext}{context assignments}
@@ -2084,7 +2181,6 @@
% { 1 = { ,650}, 2 = { ,400}, 3 = { ,400}, 4 = { ,400}, 5 = { ,400},
% 6 = { ,400}, 7 = { ,500}, 8 = { ,400}, 9 = { ,400}, 0 = { ,400} }
%\end{verbatim}
-%\ifcmr\else\enlargethispage{2\baselineskip}\fi ^^A layout
% and have the context changed in the footnote marker command. This command
% differs among the various classes; for the base classes, \eg, \pkg{article},
% it would be:
@@ -2145,7 +2241,9 @@
% will be reset.
%
%
-%\section{Letterspacing revisited}\label{sec:lettersp}
+%\section[Letterspacing revisited]
+% {Letterspacing revisited \requires{\pdftex~1.40,\luatex~0.62}}
+% \label{sec:lettersp}
%
%\Describe{Macro}{\textls}{?amount,general text}
%\DescribeMacro{\textls*}
@@ -2154,9 +2252,9 @@
% will apply to sets of fonts, you may also want to letterspace shorter pieces
% of text, regardless of the font in which they are typeset.\footnote{
% Letterspacing should be used cautiously; in particular, letterspacing
-% lower-case text is held in abhorrence by honourable typographers. Unless
+% lowercase text is held in abhorrence by honourable typographers. Unless
% you know what you are doing, you should probably only letterspace
-% small-capitals or all-capitals. Another just cause may be emphasis in texts
+% capitals or small capitals. Another just cause may be emphasis in texts
% typeset in Fraktur fonts.}
% For such ad-hoc letterspacing, \microtype\ introduces two commands that can
% be used (independently of whether the |tracking| option is enabled) in the
@@ -2165,7 +2263,7 @@
% switch on letterspacing for all subsequent fonts until the end of the current
% group. The starred version of \cs{textls} does not add any extra kerning
% before or after the text, which may be useful, \eg, for section titles. By
-% default, each character will be spaced out by 100/1000\,em\,=\,0.1\,em; this
+% default, each character will be spaced out by \EM{100/1000}\,=\,\EM{0.1}; this
% amount may be altered in the optional argument to \cs{textls}, using the
% \cs{SetTracking} command, or globally with the \opt{letterspace} package
% option, with decreasing significance in this order.
@@ -2188,7 +2286,11 @@
% `|{\kern0pt}|' or \pkg{babel}'s \verb="|= shortcut; or disable them and
% protect those ligatures that need to be protected by enclosing them in the
% \cs{lslig} command. So, the following two solutions have the same result
-% (namely, `\textfrak{\lsstyle Aus:s{\kern0pt}ichts:los{\kern0pt}igkeit}').
+% (namely, `\textfrak{\lsstyle
+% \def\!#1{\textcolor{thered}{\lslig{#1}}}^^A
+% \def\?#1{\textcolor{thegreen}{#1}}^^A
+% Au\!{s:}\?{si}\!{ch}t\!{s:}lo\?{si}gkeit}',
+% ligatures shown in red, inhibited ligatures in green).
%
%\begin{verbatim}[morekeywords={[0]{\kern}}]
%\SetTracking[noligatures={f}]{encoding = LY, family = yfrak}{100}
@@ -2218,7 +2320,9 @@
% (which does not support package options) simply \cmd\input\ \file{letterspace.sty}.
%
%
-%\section{Disabling ligatures}\label{sec:disable-ligatures}
+%\section[Disabling ligatures]
+% {Disabling ligatures \requires{\pdftex~1.30,\luatex~0.30}}
+% \label{sec:disable-ligatures}
%
%\Describe{Macro}{\DisableLigatures}{?characters,set of fonts}
% While completely disabling all ligatures of a font (which will also switch
@@ -2238,9 +2342,11 @@
%\DisableLigatures[?,!]{encoding = T1} % "\ifx\tagcode\undefined\else ^^A
% \normalfont\color{thegrey}inhibit ?` and !`, but not fi, --, >>, etc.\fi"
%\end{verbatim}
-% The character that begins the ligature(s) is what matters. This command may
-% only be used in the preamble, and only once. It requires \pdftex\ 1.30 or
-% newer.
+% Only the character that begins the ligature(s) should be specified. This
+% command may only be used in the preamble, and only once.\footnote{
+% With \luatex, you have to load the fonts with the \pkg{fontspec} option
+% `|Renderer=Basic|'.}
+% ^^A Otherwise, it won't work at all
%
%
%\section{Hints and caveats}\label{sec:caveats}
@@ -2248,7 +2354,7 @@
%\paragraph{Use settings that match your font.}
% Although the default settings should give reasonable results for most fonts,
% the particular font you happen to be using may have different character
-% shapes that necessitate more or less protrusion or expansion. In particular,
+% shapes that necessitate more or less protrusion. In particular,
% italic letter shapes may differ wildly in different fonts, hence I have
% decided against providing default protrusion settings for them.
% The file \file{test-microtype.tex} might be of some help when adjusting the
@@ -2288,7 +2394,7 @@
%\end{verbatim}
%
%\changes{v1.9}{2005/07/10}{add hint about \texttt{verbatim} environment}
-%\todo{introduce option to patch \texttt{verbatim}} ^^A for Karl
+%\todo{option to patch \texttt{verbatim}} ^^A for Karl
%\paragraph{You might want to disable protrusion in \texttt{verbatim} environments.}
% As you know by now, \microtype\ will by default activate character protrusion
% for all fonts contained in the font set `|alltext|'. This also includes the
@@ -2301,7 +2407,7 @@
% is, if you don't want to disable protrusion for the typewriter font
% altogether, by choosing a different font set). While the \cs{microtypesetup}
% command has of course been designed for cases like this, you might find it
-% tiring to repeat it every time if you are using the |verbatim| environment
+% tiresome to repeat it every time if you are using the |verbatim| environment
% frequently. The following line, added to the document's preamble, would serve
% the same purpose:
%\changes{v2.3e}{2009/07/21}{suggest to patch \cmd\@verbatim\ instead of \cmd\verbatim}
@@ -2333,11 +2439,13 @@
% an English text, your readers would probably be rather confused by additional
% spaces before the punctuation characters.
%
-%\changes{v2.3c}{2008/10/27}{add hint about spacing being experimental}
+%\changes{v2.3c}{2008/10/27}{add hint about \opt{spacing} being experimental}
%\paragraph{Adjustment of interword spacing is still experimental.}
% The implementation of this feature in \pdftex\ is not complete, and may not
% yield the positive effects on the typographical quality you might expect --
-% in certain situations, there may even be undesired side effects. Therefore,
+% in certain situations, there may even be undesired side effects,
+%\changes{v2.5}{2011/11/27}{add hint about \opt{spacing} and \pkg{ragged2e}} ^^A (beta:09)
+% in particular, when used together with the \pkg{ragged2e} package. Therefore,
% the \opt{spacing} option should not be chosen blindly; it is also recommended
% to experiment with the settings in order to understand the workings of this
% feature.
@@ -2350,7 +2458,8 @@
%\begin{itemize}
% \item If you want to use 8-bit characters in the configuration, you have to
% load the \pkg{inputenc} package first. Unicode input is also supported
-% (when loading \pkg{inputenc} with the |utf8| or the |utf8x| option).
+% (when loading \pkg{inputenc} with the |utf8| or the |utf8x| option,
+% or out of the box with \xetex\ and \luatex).
% When using multiple input encodings in a document, 8-bit characters in
% the settings will only work reliably if you specify the |inputenc| key.
%\changes{v2.3a}{2008/02/25}{add hint about \pkg{babel} having to be loaded first}
@@ -2361,6 +2470,19 @@
% Chinese\slash Japanese\slash Korean fonts. Therefore, the only
% micro-typographic extension that can be made to work with the
% \pkg{CJK} package is font expansion.
+%\changes{v2.5}{2012/09/11}{add hint about \luatex\ compatibility}
+% \item Before this package was fully compatible with \luatex, the following
+% method of enabling expansion and protrusion with the \pkg{fontspec}
+% package was most often recommended on the web and in groups and forums:
+%\begin{verbatim}[deletekeywords={[1]{expansion,protrusion}}]
+%\newfontfeature{Microtype}{protrusion=default;expansion=default}
+%\defaultfontfeatures{Microtype}
+%\end{verbatim}
+% This code should \emph{not} be used with this package, as it will
+% basically override all of the settings made by \microtype\ -- despite
+% the naming, the above lines have nothing to do with this
+% package.\footnote{^^A
+% They make use of features provided by \pkg{luaotfload} (via \pkg{fontspec}).}
%\end{itemize}
%
%\changes{v1.8}{2005/06/23}{add hint about error messages}
@@ -2374,8 +2496,8 @@
%! Font csnameendcsname=cmr10+20 at 10.0pt not loadable: Metric (TFM) file not found.
%\end{verbatim}
% This error message will occur if you are trying to employ font expansion
-% while creating <DVI> output. Remember, that \emph{automatic} font expansion
-% only works when running \pdftex\ in <PDF> mode. Although expansion is also
+% while creating <DVI> output. Remember that \emph{automatic} font expansion
+% only works when running \pdftex\ or \luatex\ in <PDF> mode. Although expansion is also
% possible in <DVI> mode, it requires that all instances of the expanded fonts
% exist on your \TeX\ system.
%
@@ -2419,7 +2541,6 @@
% older \pdftex\ versions, this is only possible if you manually create
% expanded instances of the fonts.
%
-%\ifcmr\else\pagebreak\fi ^^A layout
%\changes{v2.0}{2006/11/05}{add hint about how to increase \texttt{font\textunderscore max}
% and \texttt{font\textunderscore mem\textunderscore size}}
% \item
@@ -2455,6 +2576,16 @@
% \emph{and} expansion is applied to a font. It is harmless and can be ignored.
%\end{itemize}
%
+%\changes{v2.5}{2012/07/17}{add hint about \texttt{dtx} source code}
+% \paragraph{The source code of this document is freely available.}
+% If you wonder how this document was created, just have a look at the source
+% code in \file{microtype.dtx}, which is either already included in your \TeX\
+% distribution, or else can be downloaded from
+% \href{http://mirror.ctan.org/macros/latex/contrib/microtype/}
+% {\acronym{CTAN}}.
+% For the source code of the logo on the title page and of the letterspacing
+% sample from section~\ref{sub:tracking}, see appendix~\ref{sec:title-logo} and
+% \ref{sec:letterspace-ill}.
%
%
%\section{Contributions}
@@ -2475,7 +2606,8 @@
%
%\section{Acknowledgments}
%
-% This package would be pointless if \contributor\thanh{} <thanh\at pdftex.org>
+% This package would be pointless if
+% \contributor\thanh{} <thanh\at pdftex.org>
% hadn't created the \pdftex\ programme in the first place, which introduced
% the micro-typographic extensions and made them available to the \TeX\ world.
% Furthermore, I thank him for helping me to improve this package, and not
@@ -2483,30 +2615,41 @@
% elsewhere. I also thank him and the rest of the \pdftex\ team for refuting
% the idea that \TeX\ is dead, and for fixing the bugs I find.
%
-% \contributor Harald Harders <h.harders\at tu-bs.de> has contributed protrusion
-% settings for Adobe Minion. I~would also like to thank him for a number of bug
-% reports and suggestions he had to make.
-% \contributor Andreas B\"uhmann <andreas.buehmann\at web.de> has suggested the
-% possibility to specify ranges of font sizes, and resourcefully assisted in
-% implementing this. He also came up with some good ideas for the management of
-% complex configurations.
-% \contributor Ulrich Dirr <ud\at art-satz.de> has made numerous suggestion,
-% especially concerning the new extensions of interword spacing adjustment
-% and additional character kerning.
-% My thanks also go to \contributor Maciej Eder <maciej_eder\at poczta.onet.pl>
+% \contributor Harald Harders <h.harders\at tu-bs.de>
+% has contributed protrusion settings for Adobe Minion. I~would also like to
+% thank him for a number of bug reports and suggestions he had to make.
+% \contributor Andreas B\"uhmann <andreas.buehmann\at web.de>
+% has suggested the possibility to specify ranges of font sizes, and
+% resourcefully assisted in implementing this. He also came up with some good
+% ideas for the management of complex configurations.
+% \contributor Ulrich Dirr <ud\at art-satz.de>
+% has made numerous suggestion, especially concerning the new extensions of
+% interword spacing adjustment and additional character kerning.
+% \contributor Georg Duffner <g.duffner\at gmail.com> has patiently tested
+% \microtype\ under \xetex\ and \luatex\ with his beautiful OpenType font
+% <EB>~Garamond\footnote{\ctanurl{fonts/ebgaramond}, including configuration
+% files for \microtype.}.
+% My thanks also go to
+% \contributor Maciej Eder <maciej_eder\at poczta.onet.pl>
% for contributing settings for the <QX> encoding, as well as to
-% \contributor Karl Karlsson <karl-karlsson\at yandex.ru> for providing
-% settings for the Cyrillic <T2A> encoding.
-% I am indebted to \contributor \'Elie Roux <elie.roux\at telecom-bretagne.eu>,
+% \contributor Karl Karlsson <karl-karlsson\at yandex.ru>
+% for providing settings for the Cyrillic <T2A> encoding, and to
+% \contributor Hendrik Vogt <hendrik.vogt\at tu-dresden.de>,
+% who made substantial improvements to the Computer Modern Roman italic settings.
+% \contributor Loren B. Davis <davislo\at eecs.oregonstate.edu>
+% has provided protrusion settings for OpenType versions of Palatino Linotype.
+% I am also indebted to
+% \contributor \'Elie Roux <elie.roux\at telecom-bretagne.eu>,
% who contributed the |lua| module.
%
-% I thank \contributor Philipp Lehman <plehman\at gmx.net> for adding to his
-% \pkg{csquotes} package the possibility to restore the original meanings of
-% all activated characters, thus allowing for these characters to be used in the
-% configuration files.
-% \contributor Peter Wilson <herries.press\at earthlink.net> kindly provided a
-% hook in his \pkg{ledmac}/\pkg{ledpar} packages, so that critical editions can
-% finally also benefit from character protrusion.
+% I thank
+% \contributor Philipp Lehman <plehman\at gmx.net>
+% for adding to his \pkg{csquotes} package the possibility to restore the
+% original meanings of all activated characters, thus allowing for these
+% characters to be used in the configuration files.
+% \contributor Peter Wilson <herries.press\at earthlink.net>
+% kindly provided a hook in his \pkg{ledmac}/\pkg{ledpar} packages, so that
+% critical editions can finally also benefit from character protrusion.
%
% Additionally, the following people have reported bugs, made suggestions or
% helped otherwise (in chronological order):
@@ -2543,9 +2686,53 @@
% \contributor Colin Rourke <gt\at msp.warwick.ac.uk>,
% \contributor Maverick Woo <maverick\at cs.cmu.edu>,
% \contributor Silas~S. Brown <ssb22\at cam.ac.uk>,
-% \contributor Christian Stark <cstark\at gmx.de>
+% \contributor Christian Stark <cstark\at gmx.de>,
+% \contributor Marcin Borkowski <mbork\at atos.wmid.amu.edu.pl>,
+% \contributor George Gratzer <gratzer\at me.com>,
+% \contributor Josep Maria Font <jmfont\at ub.edu>,
+% \contributor Juan Acevedo <juan.acevedo.juan\at gmail.com>,
+% \contributor Heiko Oberdiek <heiko.oberdiek\at googlemail.com>,
+% \contributor Till~A. Heilmann <till.heilmann\at unibas.ch>,
+% \contributor Rolf Dieterich <rolf.dieterich\at gmx.de>,
+% \contributor Seamus Bradley <@\at @>,
+% \contributor Meho~R <meho.2005\at gmail.com>,
+% \contributor Steffen Hoffmann <speraviro-delenda\at expires-2011-11-30.arcornews.de>,
+% \contributor Scott Pakin <scott\at pakin.org>,
+% \contributor Loren~B. Davis <davislo\at eecs.oregonstate.edu>,
+% \contributor Ma\"ieul Rouquette <maieul\at maieul.net>,
+% \contributor Jonas Hogstrom <hjb981\at gmail.com>,
+% \contributor Gabriel Kerneis <gabriel\at kerneis.info>
% and
-% \contributor Marcin Borkowski <mbork\at atos.wmid.amu.edu.pl>.
+% \contributor RazorXsr <@\at @>.
+%
+%
+%\iffalse
+%\section{History of micro-typography} ^^A some time ...
+% Both these features have been lacking a simple \LaTeX\ user interface for
+% quite some time. Then, the \cite{pdfcprot} package was released, which
+% allowed \LaTeX\ users to employ character protrusion without having to mess
+% much with the internals.
+%
+% Font expansion, however, was still most difficult to utilise, since it
+% required that the font metrics are available for all levels of expansion.
+% Therefore, anybody who wanted to make use of this feature had to create
+% multiple instances of the fonts in advance. Shell scripts to partly relieve
+% the user from this burden were available~-- however, it remained a cumbersome
+% task. Furthermore, all fonts were still being physically created, thus
+% wasting compilation time and disk space.
+%
+% In the summer of 2004, \thanh\ implemented a feature that has proven as a
+% major facilitation for \TeX\ and \LaTeX\ users: font expansion can now take
+% place automatically. That is, \pdftex\ no longer needs the expanded font
+% metrics but will calculate them at run-time and completely in memory.
+%
+% After this great leap in usability had been taken, the development did not
+% stop. On the contrary, \pdftex\ was extended with even more features: version
+% 1.30 introduced the possibility to \emph{disable all ligatures}, version 1.40
+% a robust \emph{letterspacing} command, the possibility to specify
+% \emph{additional character kerning}, and the \emph{adjustment of interword
+% spacing}.
+%\fi
%
%
%\begin{thebibliography}{}
@@ -2590,7 +2777,7 @@
% \bibitem[\pdftex\ manual]{pdftexman}
% \thanh, Sebastian Rahtz, Hans Hagen, Hartmut Henkel, Pawe\l\ Jackowski, Martin Schr\"oder,
% \emph{The \pdftex\ user manual},
-% \newblock 25 January 2007.
+% \newblock 23 November 2010.
% \newblock (\ctanurl{systems/pdftex/};
% latest version at \url{http://sarovar.org/projects/pdftex/})
% ^^A or even \url{http://foundry.supelec.fr/scm/?group_id=23}
@@ -2618,6 +2805,11 @@
% \newblock See also Heiko Oberdiek's extension of this package,
% \pkg{soulutf8}, which adds Unicode support.
% \newblock (\ctanurl{macros/latex/contrib/oberdiek/})
+%
+% \bibitem[\pkg{fontspec}]{fontspec}
+% Will Robertson, Khaled Hosny, \emph{The \pkg{fontspec} package},
+% \newblock 6 May 2012.
+% \newblock (\ctanurl{macros/latex/contrib/fontspec/})
%\end{thebibliography}
%
%
@@ -2653,7 +2845,18 @@
%\begin{History}
%
%\Version{\expandafter\@gobble\fileversion}{\filedate}
-% \item |lua| functions moved to a dedicated file
+% \item Support for the \pkg{fontspec} and \pkg{xunicode} packages, viz.
+% for OpenType fonts with \luatex\ and \xetex
+% \item Support for protrusion with \xetex\ $\geq$ 0.9997
+% \item Support for tracking/letterspacing with \luatex\ $\geq$ 0.62
+% \item Allow context-sensitive setup with \luatex
+% \item Warning if protrusion settings are generic
+% \item Protrusion settings for Latin Modern Roman (OpenType)
+% \item Protrusion settings for Charis SIL (OpenType)
+% \item Protrusion settings for Palatino Linotype (OpenType)
+%
+%\Version{2.4}{2010/01/10}
+% ^^A \item |lua| functions moved to a dedicated file
% \item Protrusion settings for <T2A> encoded Minion
%
%\Version{2.3e}{2009/11/09}
@@ -2691,7 +2894,7 @@
% \item Possibility to expand a font with different parameters (\pdftex\ $\geq$ 1.40.4)
% ^^A ; new option `\opt{copyfonts}'
% \refsection{\ref{sub:expansion}}
-% \item New optional argument for \cs{DisableLigatures} to disable selected ligatures only
+% \item New optional argument for \cs{DisableLigatures} to disable selected ligatures
% \refsection{\ref{sec:disable-ligatures}}
% \item New command \cs{DeclareMicrotypeVariants} to specify variant suffixes
% \refsection{\ref{sub:config-file}}
@@ -2752,7 +2955,7 @@
% \item Protrusion settings for <T5> encoded Charter
%
%\Version{1.9}{2005/10/28}
-% \item New command \cs{DisableLigatures} to disable ligatures of fonts
+% \item New command \cs{DisableLigatures} to disable ligatures
% (\pdftex\ $\geq$ 1.30)
% \refsection{\ref{sec:disable-ligatures}}
% \item New command \cs{microtypecontext} to change the configuration context;
@@ -2783,17 +2986,15 @@
% \item The `|allmath|' font set also includes <U> encoding
%^^A \item 8-bit characters in the configuration finally work as advertised,
%^^A even if made active by the \pkg{csquotes} package
-% \item When using the \pkg{ledmac} package, character protrusion will work
-% for the first time ever (\pdftex\ $\geq$ 1.30)
+% \item Support for protrusion with the \pkg{ledmac} package (\pdftex\ $\geq$ 1.30)
%
%\Version{1.7}{2005/03/23}
% \item Possibility to specify ranges of font sizes in the set declarations
-% and protrusion and expansion settings
% \refsection{\ref{sec:font-sets}, \ref{sec:fine-tuning}}
%^^A \item Always take font size into account when trying to find protrusion resp.
%^^A expansion settings for a given font
%^^A \refsection{\ref{sec:fine-tuning}}
-% \item New command \cs{LoadMicrotypeFile} to load a font configuration file manually
+% \item New command \cs{LoadMicrotypeFile} to load a configuration file manually
% \refsection{\ref{sub:config-file}}
% \item Hook \cs{Microtype@Hook} for font package authors
% \refsection{\ref{sub:hook}}
@@ -2894,6 +3095,9 @@
% \appendix
% \AppendixSettings
% \typeout{:?1000} ^^A tell WinEdt not to bother about overfull boxes
+%\changes{v2.5}{2013/02/23}{include \file{microtype-logo.dtx} and \file{microtype-lssample.dtx}}
+% \InputIfFileExists{microtype-logo.dtx}\relax\relax
+% \InputIfFileExists{microtype-lssample.dtx}\relax\relax
% \PrintChanges
% \PrintIndex
% \typeout{:?1111}
@@ -2935,9 +3139,9 @@
% \endinput,\escapechar,\everypar,\expandafter,\fi,\futurelet,\gdef,\global,
% \hbadness,\hbox,\hsize,\hskip,\if,\ifcase,\ifcat,\ifdim,\iffalse,\ifhbox,
% \ifhmode,\ifmmode,\ifnum,\iftrue,\ifx,\immediate,\input,\inputlineno,\jobname,
-% \kern,\lastskip,\let,\lowercase,\meaning,\multiply,\newlinechar,\noexpand,
-% \number,\or,\parfillskip,\pretolerance,\relax,\setbox,\showboxdepth,\string,
-% \the,\tolerance,\unkern,\unskip,\uppercase,\vbox,\wd,\write,\xdef}
+% \kern,\lastskip,\let,\lowercase,\maxdimen,\meaning,\multiply,\newlinechar,
+% \noexpand,\number,\or,\parfillskip,\pretolerance,\relax,\setbox,\showboxdepth,
+% \string,\the,\tolerance,\unkern,\unskip,\uppercase,\vbox,\wd,\write,\xdef}
%^^A\DoNotIndex{\font,\fontdimen,\nullfont,\sfcode,\spacefactor,\spaceskip,
%^^A \xspaceskip} ^^A tex
%\DoNotIndex{\currentgrouptype,\detokenize,\dimexpr,\eTeXversion,\ifcsname,
@@ -2947,8 +3151,11 @@
% \pdftexrevision,\pdftexversion}
%^^A\DoNotIndex{\(ef,lp,rp,kn(ac,bc),(kn,sh,st)bs)code,\(left,right)marginkern,
%^^A \tagcode,\letterspacefont,\pdfcopyfont,\pdffontexpand,\pdfnoligatures,
-%^^A \pdfprotrudechars,\pdfadjust(interwordglue,spacing),\pdf(app,prep)endkern,
+%^^A \pdfprotrudechars,\pdfadjust(interwordglue,spacing),\pdf(ap,pre)pendkern,
%^^A \pdftracingfonts} ^^A pdftex
+%\DoNotIndex{\XeTeXversion,\XeTeXrevision} ^^A xetex
+%^^A\DoNotIndex{\XeTeXcharglyph,\XeTeXcountglyphs,\XeTeXfonttype,\XeTeXglyph,
+%^^A \XeTeXglyphindex,\XeTeXglyphname,\XeTeXprotrudechars}
%\DoNotIndex{\directlua,\luatexversion} ^^A luatex
%\DoNotIndex{\eplain,\usepkg@pkg} ^^A eplain
%\DoNotIndex{\@backslashchar,\@cclv,\@cclvi,\@classoptionslist,\@currext,
@@ -2961,17 +3168,16 @@
% \@unprocessedoptions,\@unusedoptionlist,\@xobeysp,\check@icr,\color@begingroup,
% \color@endgroup,\g@addto@macro,\hmode@bgroup,\m@ne,\maybe@ic,\maybe@ic@,
% \nfss@text,\not@math@alphabet,\on@line,\p@,\set@display@protect,\strip@prefix,
-% \strip@pt,\tw@,\z@,\z@skip,\active,\documentclass,\leavevmode,\makeatletter,
-% \maxdimen,\newcommand,\newcount,\newdimen,\newif,\newskip,\newtoks,\nobreak,
-% \nonfrenchspacing,\normalsize,\renewcommand,\space,
+% \strip@pt,\tw@,\z@,\z@skip,\zap@space,\active,\documentclass,\leavevmode,
+% \makeatletter,\mbox,\newcommand,\newcount,\newdimen,\newif,\newskip,
+% \newtoks,\nobreak,\nonfrenchspacing,\normalsize,\renewcommand,\space,
% \AtBeginDocument,\AtEndOfPackage,\CheckCommand,\CurrentOption,
% \DeclareRobustCommand,\IfFileExists,\InputIfFileExists,\MessageBreak,
% \PackageError,\PackageInfo,\PackageWarning,\RequirePackage,
% \@@enc@update,\cf@encoding,\f@encoding}
%^^A\DoNotIndex{\add@accent,\curr@fontshape,\define@newfont,\do@subst@correction,
-%^^A \f@size,\font@name,\normalfont,\pickup@font,\selectfont,\set@fontsize,
-%^^A \showhyphens} ^^A latex
-%\DoNotIndex{\XeTeXversion} ^^A xetex
+%^^A \f@size,\font@name,\glb@currsize,\normalfont,\pickup@font,\selectfont,
+%^^A \set@fontsize,\showhyphens} ^^A latex
%\DoNotIndex{\normalpdfoutput,\normalpdftexversion,\normalpdftexrevision} ^^A tex live
%\DoNotIndex{\foreign@language,\languagename,\select@language,\shorthandoff} ^^A babel
%\DoNotIndex{\percentsign} ^^A babel/spanish,galician,mexican
@@ -3008,13 +3214,16 @@
% \begin{description}
% \item[|driver|] The documentation driver, only visible in the \file{dtx} file.
% \item[|package|] The code for the \microtype\ package (\file{microtype.sty}).
+% \item[|pdftex-def|] Definitions specific to \pdftex\ (\file{microtype-pdftex.def}).
+% \item[|xetex-def|] Definitions specific to \xetex\ (\file{microtype-xetex.def}).
+% \item[|luatex-def|] Definitions specific to \luatex\ (\file{microtype-luatex.def}).
+% \item[|letterspace|] The code for the \letterspace\ package (\file{letterspace.sty}).
% \begin{description}
-% \item[|letterspace|] The code for the \letterspace\ package (\file{letterspace.sty}).
-% \item[|lua|] Code for \luatex\ (\microtype\ only).
% \item[|plain|] Code for \pkg{eplain}, \pkg{miniltx} (\letterspace\ only).
-% \item[|debug|] Code for additional output in the log file.
-% \\Used for -- surprise! -- debugging purposes.
% \end{description}
+% \item[|debug|] Code for additional output in the log file.
+% \\Used for -- surprise! -- debugging purposes.
+% \item[|luafile|] Lua functions (\file{microtype.lua}).
% \item[|config|] Surrounds all configuration modules.
% \begin{description}
% \item[|cfg-t|] Surrounds (Latin) text configurations.
@@ -3153,6 +3362,10 @@
\@onlypreamble\DeclareMicrotypeVariants
\@onlypreamble\DeclareMicrotypeBabelHook
% \end{macrocode}
+% Don't load \letterspace.
+% \begin{macrocode}
+\expandafter\let\csname ver@letterspace.sty\endcsname\@empty
+% \end{macrocode}
%\begin{macro}{\MT@old@cmd}
% The old command names had one more hunch.
%\changes{v1.8}{2005/04/28}{renamed commands from \cs{..MicroType..} to \cs{..Microtype..}}
@@ -3360,6 +3573,88 @@
%</plain>
% \end{macrocode}
%\end{macro}
+%\begin{macro}{\MT@maybe@etex}
+%\changes{v2.2}{2007/05/01}{use catcode trickery}
+%\changes{v2.3a}{2007/12/29}{removed}
+% For definitions that depend on \etex\ features.
+% \begin{macrocode}
+\ifcase 0%
+ \ifx\eTeXversion\@undefined 1\else
+ \ifx\eTeXversion\relax 1\else
+ \ifcase\eTeXversion 1\fi
+ \fi
+ \fi
+\else
+ \catcode`\^^Q=9 \catcode`\^^X=14
+\fi
+%<debug>\MT@dinfo@nl{0}{this is
+%<debug>^^Q not
+%<debug> etex}
+% \end{macrocode}
+%\end{macro}
+%\changes{v2.5}{2010/05/05}{new files: \file{microtype-pdftex.def}, \file{microtype-xetex.def}, \file{microtype-luatex.def},
+% containing engine-specific definitions}
+% We check whether we are running \pdftex, \xetex, or \luatex, and
+% load the appropriate definition file.
+%\begin{macro}{\MT@clear@options}
+% If we are using neither of these engines, we disable everything and exit.
+% \begin{macrocode}
+\def\MT@clear@options{%
+%<plain> \MT@requires@latex1{%
+ \AtEndOfPackage{\let\@unprocessedoptions\relax\MT@restore@catcodes}%
+ \let\CurrentOption\@empty
+%<package> \let\MT@endinput\endinput
+%<plain> }\relax
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\changes{v1.9}{2005/08/29}{compatibility with \texlive\ hack
+% (reported by \contributor Herbert Vo\ss{} <Herbert.Voss\at gmx.net>)}
+% ^^A MID: <deprh8$c69$00$1@news.t-online.com>
+% A hack circumventing the \texlive\ 2004 hack which undefines the \pdftex\
+% primitives in the format in order to hide the fact that \pdftex\ is being run
+% from the user. This has been \emph{fixed} in \texlive\ 2005.
+% \begin{macrocode}
+\ifx\normalpdftexversion\@undefined \else
+ \let\pdftexversion \normalpdftexversion
+ \let\pdftexrevision\normalpdftexrevision
+ \let\pdfoutput \normalpdfoutput
+\fi
+% \end{macrocode}
+%\begin{macro}{\MT@engine}
+%\begin{macro}{\MT@engine@tooold}
+% Old packages might have let \cmd\pdftexversion\ to \cmd\relax.
+% \begin{macrocode}
+\let\MT@engine\relax
+%<letterspace>\def\MT@engine@tooold{0}
+\ifx\pdftexversion\@undefined \else
+ \ifx\pdftexversion\relax \else
+ \def\MT@engine{pdf}
+%<letterspace> \let\MT@pdf@or@lua\@firstoftwo
+%<letterspace> \ifnum\pdftexversion > 139 \def\MT@engine@tooold{1}\fi
+ \ifx\directlua\@undefined \else
+ \ifx\directlua\relax \else
+ \def\MT@engine{lua}
+%<letterspace> \let\MT@pdf@or@lua\@secondoftwo
+%<letterspace> \ifnum\luatexversion < 62 \def\MT@engine@tooold{0}\fi
+ \fi
+ \fi
+ \fi
+\fi
+%<*package>
+\ifx\MT@engine\relax
+ \ifx\XeTeXversion\@undefined \else
+ \ifx\XeTeXversion\relax \else
+ \def\MT@engine{xe}
+ \fi
+ \fi
+\fi
+%</package>
+%</package|letterspace>
+% \end{macrocode}
+%\end{macro}
+%\end{macro}
%\begin{macro}{\MT@pdftex@no}
%\changes{v1.6a}{2005/02/02}{new macro}
% \pdftex's features for which we provide an interface here haven't always been
@@ -3372,7 +3667,7 @@
% \item not running \pdftex
% \item \pdftex\ ($\less$~0.14f)
% \item + micro-typographic extensions (0.14f,g)
-% \item + protrusion relative to 1\,em ($\geq$~0.14h)
+% \item + protrusion relative to \EM{1} ($\geq$~0.14h)
% \item + automatic font expansion;
% protrusion no longer has to be set up first;
% scale factor fixed to 1000;
@@ -3400,126 +3695,124 @@
% (reported by \contributor Harald Harders <h.harders\at tu-bs.de>)}
% ^^A private mail, 2004/09/13
% \begin{macrocode}
-\def\MT@pdftex@no{0}
-% \end{macrocode}
-%\changes{v1.9}{2005/08/29}{compatibility with \texlive\ hack
-% (reported by \contributor Herbert Vo\ss{} <Herbert.Voss\at gmx.net>)}
-% ^^A MID: <deprh8$c69$00$1@news.t-online.com>
-% A hack circumventing the \texlive\ 2004 hack which undefines the \pdftex\
-% primitives in the format in order to hide the fact that \pdftex\ is being run
-% from the user. This has been \emph{fixed} in \texlive\ 2005.
-% \begin{macrocode}
-\ifx\normalpdftexversion\@undefined \else
- \let\pdftexversion \normalpdftexversion
- \let\pdftexrevision\normalpdftexrevision
- \let\pdfoutput \normalpdfoutput
-\fi
-% \end{macrocode}
-% Old packages might have let \cmd\pdftexversion\ to \cmd\relax.
-% \begin{macrocode}
-\ifx\pdftexversion\@undefined \else
- \ifx\pdftexversion\relax \else
+%<*pdftex-def>
%<debug>\MT@dinfo@nl{0}{this is pdftex \the\pdftexversion(\pdftexrevision)}
- \def\MT@pdftex@no{7}
-%<*package>
- \ifnum\pdftexversion = 140
- \ifnum\pdftexrevision < 4
- \def\MT@pdftex@no{6}
- \fi
- \else
-%</package>
- \ifnum\pdftexversion < 140
- \def\MT@pdftex@no{5}
-%<*package>
- \ifnum\pdftexversion < 130
- \def\MT@pdftex@no{4}
- \ifnum\pdftexversion < 120
- \def\MT@pdftex@no{3}
- \ifnum\pdftexversion = 14
- \ifnum \expandafter`\pdftexrevision < `h
- \def\MT@pdftex@no{2}
- \ifnum \expandafter`\pdftexrevision < `f
- \def\MT@pdftex@no{1}
- \fi
- \fi
- \else
- \ifnum\pdftexversion < 14
- \def\MT@pdftex@no{1}
- \fi
+\def\MT@pdftex@no{7}
+\ifnum\pdftexversion = 140
+ \ifnum\pdftexrevision < 4
+ \def\MT@pdftex@no{6}
+ \fi
+\else
+ \ifnum\pdftexversion < 140
+ \def\MT@pdftex@no{5}
+ \ifnum\pdftexversion < 130
+ \def\MT@pdftex@no{4}
+ \ifnum\pdftexversion < 120
+ \def\MT@pdftex@no{3}
+ \ifnum\pdftexversion = 14
+ \ifnum \expandafter`\pdftexrevision < `h
+ \def\MT@pdftex@no{2}
+ \ifnum \expandafter`\pdftexrevision < `f
+ \def\MT@pdftex@no{1}
\fi
\fi
+ \else
+ \ifnum\pdftexversion < 14
+ \def\MT@pdftex@no{1}
+ \fi
\fi
\fi
-%</package>
\fi
\fi
\fi
%<debug>\MT@dinfo@nl{0}{pdftex no.: \MT@pdftex@no}
+%</pdftex-def>
% \end{macrocode}
%\end{macro}
-%\begin{macro}{\MT@clear@options}
-% If we are not using \pdftex\ or in case it is too old, we disable everything
-% and exit.
+%\changes{v2.5}{2010/05/05}{protrusion with \xetex}
+%\begin{macro}{\MT@xetex@no}
+% \xetex\ supports character protrusion since version 0.9997.
% \begin{macrocode}
-\def\MT@clear@options{%
-%<plain> \MT@requires@latex1{%
- \AtEndOfPackage{\let\@unprocessedoptions\relax}%
- \let\CurrentOption\@empty
-%<plain> }\relax
-}
+%<*xetex-def>
+%<debug>\MT@dinfo@nl{0}{this is xetex (\the\XeTeXversion\XeTeXrevision)}
+\ifdim 0\XeTeXrevision pt < 0.9997pt
+ \def\MT@xetex@no{1}
+\else
+ \def\MT@xetex@no{2}
+\fi
+%<debug>\MT@dinfo@nl{0}{xetex no.: \MT@xetex@no}
+%</xetex-def>
% \end{macrocode}
%\end{macro}
+%\changes{v2.3c}{2008/09/09}{\luatex\ supported by default}
+%\begin{macro}{\MT@luatex@no}
+% Cases for \luatex\
+% (\cmd\luatexversion\ ought to have been enabled by the format):
+%\begin{enum}
+% \item N/A
+% \item \luatex\ ($\less$~0.36)
+% \item + \cmd\directlua\ without state number ($\geq$~0.36)
+% \item + \cmd\letterspacefont\ ($\geq$~0.62).
+%\end{enum}
% \begin{macrocode}
-\ifnum\MT@pdftex@no <
-%<package> 2
-%<letterspace> 6
+%<*luatex-def>
+%<debug>\MT@dinfo@nl0{this is luatex (\the\luatexversion)}
+% \end{macrocode}
+%\begin{macro}{\MT@lua}
+% Communicate with |lua|.
+%\changes{v2.2}{2007/05/10}{(basic) support for \luatex}
+% Beginning with \luatex\ 0.36, \cmd\directlua\ no longer requires a state
+% number.
+%\changes{v2.3d}{2009/03/25}{update for \luatex\ 0.36}
+% \begin{macrocode}
+\def\MT@lua{\directlua}
+\def\MT@luatex@no{3}
+\ifnum\luatexversion<62
+ \def\MT@luatex@no{2}
+ \ifnum\luatexversion<36
+ \def\MT@lua{\directlua0}
+ \def\MT@luatex@no{1}
+ \fi
+\fi
+% \end{macrocode}
+%\end{macro}
+% \begin{macrocode}
+%<debug>\MT@dinfo@nl{0}{luatex no.: \MT@luatex@no}
+%</luatex-def>
+% \end{macrocode}
+%\end{macro}
+% \begin{macrocode}
+%<*pdftex-def|xetex-def|letterspace>
+\ifnum
+%<pdftex-def|xetex-def> \csname MT@\MT@engine tex@no\endcsname < 2
+%<letterspace> \MT@engine@tooold=\z@
\MT@warning@nl{You
- \ifcase\MT@pdftex@no
- don't seem to be using pdftex.\MessageBreak
- `\MT@MT' only works with pdftex.\MessageBreak
- Try running `pdflatex' instead of
- `\ifx\XeTeXversion\@undefined\else xe\fi latex'%
+%<*letterspace>
+ \ifx\MT@engine\relax
+ don't seem to be using pdftex or luatex.\MessageBreak
+ Try running `pdftex' or `luatex' instead of\MessageBreak
+ `\ifx\XeTeXversion\@undefined\else xe\fi tex'%
\else
- are using a pdftex version older than
-%<package> 0.14f%
-%<letterspace> 1.40%
+%</letterspace>
+ are using a \MT@engine tex version older than
+%<pdftex-def> 0.14f%
+%<xetex-def> 0.9997%
+%<letterspace> \MT@pdf@or@lua{1.40}{0.62}%
.\MessageBreak
`\MT@MT' does not work with this version.\MessageBreak
- Please install a newer version of pdftex%
- \fi
- }
- \MT@clear@options\MT@restore@catcodes
+ Please install a newer version of \MT@engine tex%
+%<letterspace> \fi
+ .\MessageBreak I will quit now}
+ \MT@clear@options
\endinput\fi
-% \end{macrocode}
-%\changes{v2.3c}{2008/09/09}{\luatex\ supported by default}
-% Since \luatex\ is included in \texlive\ 2008, we now support it by default,
-% even though it's still experimental. Letterspacing doesn't work at all yet,
-% since \luatex\ doesn't know the \cmd\letterspacefont\ command.
-% \begin{macrocode}
-%<*!lua|letterspace>
-\ifx\directlua\@undefined \else
- \ifx\directlua\relax \else
-%<!letterspace> \MT@error
-%<letterspace> \MT@warning@nl
- {`\MT@MT'
-%<!letterspace> only works with luatex if you generate%
-%<letterspace> doesn't currently work with luatex.%
- \MessageBreak
-%<!letterspace> the package with the `lua' option%
-%<letterspace> Bye bye%
- }
-%<!letterspace> {}
-%<letterspace> \MT@clear@options\MT@restore@catcodes
-%<letterspace> \expandafter\expandafter\expandafter\endinput
- \fi
-\fi
-%</!lua|letterspace>
+%</pdftex-def|xetex-def|letterspace>
% \end{macrocode}
% Still there? Then we can begin:
% We need the \pkg{keyval} package, including the `new' \cmd\KV@@sp@def\
% implementation.
%\changes{v2.1}{2007/01/15}{fix: \letterspace\ package forgot to load \pkg{keyval}}
% \begin{macrocode}
+%<*package|letterspace>
\RequirePackage{keyval}[1997/11/10]
%<*package>
% \end{macrocode}
@@ -3597,7 +3890,7 @@
%\begin{macro}{\MT@sp@unit}
%\begin{macro}{\MT@kn@unit}
% Default unit for protrusion settings is character width, for spacing
-% |space|, for kerning (and tracking) 1\,em.
+% |space|, for kerning (and tracking) \EM{1}.
% \begin{macrocode}
\let\MT@pr@unit\@empty
\let\MT@sp@unit\m@ne
@@ -3661,19 +3954,16 @@
%\end{macro}
%\begin{macro}{\MT@stretch@default}
%\begin{macro}{\MT@shrink@default}
-%\begin{macro}{\MT@step@default}
% Default values for expansion.
% \begin{macrocode}
\def\MT@stretch@default{20 }
\def\MT@shrink@default{20 }
-\def\MT@step@default{4 }
% \end{macrocode}
%\end{macro}
%\end{macro}
-%\end{macro}
%\begin{macro}{\MT@letterspace}
%\begin{macro}{\MT@letterspace@default}
-% Default value for letterspacing (in thousandths of 1\,em).
+% Default value for letterspacing (in thousandths of \EM{1}).
% \begin{macrocode}
%</package>
\let\MT@letterspace\m@ne
@@ -3686,82 +3976,44 @@
% Our private test whether we're still in the preamble.
% \begin{macrocode}
\newif\ifMT@document
+%</package>
+%</package|letterspace>
% \end{macrocode}
%\end{macro}
%
%\subsubsection{Auxiliary macros}
%
-%\begin{macro}{\MT@maybe@etex}
-%\changes{v2.2}{2007/05/01}{use catcode trickery}
-%\changes{v2.3a}{2007/12/29}{removed}
-% For definitions that depend on \etex\ features.
-% \begin{macrocode}
-\ifcase 0%
- \ifx\eTeXversion\@undefined 1\else
- \ifx\eTeXversion\relax 1\else
- \ifcase\eTeXversion 1\fi
- \fi
- \fi
-\else
- \catcode`\^^Q=9 \catcode`\^^X=14
-\fi
-%<debug>\MT@dinfo@nl{0}{this is
-%<debug>^^Q not
-%<debug> etex}
-% \end{macrocode}
-%\end{macro}
%\begin{macro}{\MT@requires@pdftex}
-% For definitions that depend on a particular \pdftex\ version.
-% \begin{macrocode}
-\def\MT@requires@pdftex#1{%
- \ifnum\MT@pdftex@no<#1 \expandafter\@secondoftwo\else\expandafter\@firstoftwo\fi
-}
-%<debug>\MT@requires@pdftex6{\pdftracingfonts=1 }\relax
-% \end{macrocode}
-%\end{macro}
%\begin{macro}{\MT@requires@luatex}
-%\changes{v2.2}{2007/05/10}{(basic) support for \luatex}
-% For definitions that depend on \luatex.
+% For definitions that depend on a particular \pdftex\ resp. \luatex\ version.
% \begin{macrocode}
-%<*lua>
-\let\MT@requires@luatex\@secondoftwo
-\ifx\directlua\@undefined \else
- \ifx\directlua\relax \else
- \let\MT@requires@luatex\@firstoftwo
- \fi
-\fi
-%<debug>\MT@dinfo@nl0{this is \MT@requires@luatex{}{not }luatex}
+%<*pdftex-def|luatex-def>
+\def
+%<pdftex-def> \MT@requires@pdftex%
+%<luatex-def> \MT@requires@luatex%
+ #1{\ifnum
+%<pdftex-def> \MT@pdftex@no
+%<luatex-def> \MT@luatex@no
+ <#1 \expandafter\@secondoftwo\else\expandafter\@firstoftwo\fi}
+%<debug+pdftex-def>\MT@requires@pdftex6{
+%<debug>\pdftracingfonts=1
+%<debug+pdftex-def>}\relax
+%</pdftex-def|luatex-def>
% \end{macrocode}
%\end{macro}
-%\begin{macro}{\MT@lua}
-% Communicate with |lua|.
-% Beginning with \luatex\ 0.36, \cmd\directlua\ no longer requires a state
-% number.
-%\changes{v2.3d}{2009/03/25}{update for \luatex\ 0.36}
-% \cmd\luatexversion\ ought to have been enabled by the format.
-% \begin{macrocode}
-\MT@requires@luatex{
-\ifnum\luatexversion<36
- \def\MT@lua{\directlua0}
-\else
- \def\MT@lua{\directlua}
-\fi
-% \end{macrocode}
%\end{macro}
% Some functions are loaded from a dedicated |lua| file. This avoids character
% escaping problems and incompatibilities between versions of \luatex.
% If available, we'll use the \pkg{luatextra} package to load the module.
% \begin{macrocode}
+%<*luatex-def>
\MT@lua{
if (luatextra and luatextra.use_module) then
luatextra.use_module("microtype")
else
dofile(kpse.find_file("microtype.lua"))
end}
-}\relax
-%</lua>
-%</package>
-%</package|letterspace>
+%</luatex-def>
% \end{macrocode}
% Here it begins. The module was contributed by \'Elie Roux.
%\changes{v2.4}{2009/11/12}{new file \file{microtype.lua} containing the \texttt{lua} functions
@@ -3776,11 +4028,11 @@ microtype = {}
microtype.module = {
name = "microtype",
- version = 2.4,
- date = "2010/01/10",
+ version = 2.5,
+ date = "2013/03/13",
description = "microtype module.",
- author = "R Schlicht",
- copyright = "R Schlicht",
+ author = "Elie Roux & R Schlicht",
+ copyright = "Elie Roux & R Schlicht",
license = "LPPL",
}
@@ -3982,35 +4234,33 @@ end
% or \luatex\ (which also allows negative numbers, as required by the
% \opt{letterspace} option).
% \begin{macrocode}
-\MT@requires@pdftex6{
-%<*lua>
- \MT@requires@luatex{
- \def\MT@ifint#1{\csname\MT@lua{microtype.ifint([[#1]])}\endcsname}
- }{
-%</lua>
%</package>
- \def\MT@ifint#1{%
- \ifcase\pdfmatch{^-*[0-9]+ *$}{#1}\relax
- \expandafter\@secondoftwo
- \else
- \expandafter\@firstoftwo
- \fi
- }
-%<*package>
-%<lua> }
+%</package|letterspace>
+%<pdftex-def>\MT@requires@pdftex6{
+%<letterspace>\MT@pdf@or@lua{
+%<*pdftex-def|letterspace>
+\def\MT@ifint#1{%
+ \ifcase\pdfmatch{^-*[0-9]+ *$}{#1}\relax
+ \expandafter\@secondoftwo
+ \else
+ \expandafter\@firstoftwo
+ \fi
+}
}{
- \def\MT@ifint#1{%
- \if!\ifnum9<1#1!\else?\fi
- \expandafter\@firstoftwo
- \else
- \expandafter\@secondoftwo
- \fi
- }
+%</pdftex-def|letterspace>
+%<*pdftex-def|xetex-def|letterspace>
+\def\MT@ifint#1{%
+ \if!\ifnum9<1#1!\else?\fi
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
}
-%</package>
-%</package|letterspace>
+%</pdftex-def|xetex-def|letterspace>
+%<pdftex-def|letterspace>}
+%<luatex-def>\def\MT@ifint#1{\csname\MT@lua{microtype.if_int([[#1]])}\endcsname}
%<*luafile>
-function microtype.ifint(s)
+function microtype.if_int(s)
if string.find(s,"^-*[0-9]+ *$") then
tex.write("@firstoftwo")
else
@@ -4032,37 +4282,34 @@ end
%\changes{v2.2}{2007/05/10}{employ \luatex\ features if available}
%\todo{fix \texttt{lua} expression}
% \begin{macrocode}
-%<*package>
+%<*pdftex-def>
\MT@requires@pdftex6{
-%<*lua>
- \MT@requires@luatex{
- \def\MT@ifdimen#1{\csname\MT@lua{microtype.ifdimen([[#1]])}\endcsname}
- }{
-%</lua>
- \def\MT@ifdimen#1{%
- \ifcase\pdfmatch{^([0-9]+([.,][0-9]+)?|[.,][0-9]+)%
- (em|ex|cm|mm|in|pc|pt|dd|cc|bp|sp|nd|nc|px)? *$}{#1}\relax
- \expandafter\@secondoftwo
- \else
- \expandafter\@firstoftwo
- \fi
- }
-%<lua> }
+\def\MT@ifdimen#1{%
+ \ifcase\pdfmatch{^([0-9]+([.,][0-9]+)?|[.,][0-9]+)%
+ (em|ex|cm|mm|in|pc|pt|dd|cc|bp|sp|nd|nc|px)? *$}{#1}\relax
+ \expandafter\@secondoftwo
+ \else
+ \expandafter\@firstoftwo
+ \fi
+}
}{
- \def\MT@ifdimen#1{%
- \setbox\z@=\hbox{%
- \MT@count=1#1\relax
- \ifnum\MT@count=\@ne
- \aftergroup\@secondoftwo
- \else
- \aftergroup\@firstoftwo
- \fi
- }%
- }
+%</pdftex-def>
+%<*pdftex-def|xetex-def>
+\def\MT@ifdimen#1{%
+ \setbox\z@=\hbox{%
+ \MT@count=1#1\relax
+ \ifnum\MT@count=\@ne
+ \aftergroup\@secondoftwo
+ \else
+ \aftergroup\@firstoftwo
+ \fi
+ }%
}
-%</package>
+%</pdftex-def|xetex-def>
+%<pdftex-def>}
+%<luatex-def>\def\MT@ifdimen#1{\csname\MT@lua{microtype.if_dimen([[#1]])}\endcsname}
%<*luafile>
-function microtype.ifdimen(s)
+function microtype.if_dimen(s)
if (string.find(s, "^-*[0-9]+(%a*) *$") or
string.find(s, "^-*[0-9]*[.,][0-9]+(%a*) *$")) then
tex.write("@firstoftwo")
@@ -4085,6 +4332,7 @@ end
\expandafter\@secondoftwo
\fi
}
+%</package>
% \end{macrocode}
%\end{macro}
%\begin{macro}{\MT@ifstreq}
@@ -4095,34 +4343,32 @@ end
% ^^A MID: <esmd6k$954$1@news1.rz.uni-duesseldorf.de>
%\changes{v2.2}{2007/05/10}{employ \luatex\ features if available}
% \begin{macrocode}
+%<*pdftex-def>
\MT@requires@pdftex5{
-%<*lua>
- \MT@requires@luatex{
- \def\MT@ifstreq#1#2{\csname\MT@lua{microtype.ifstreq([[#1]],[[#2]])}\endcsname}
- }{
-%</lua>
- \def\MT@ifstreq#1#2{%
- \ifcase\pdfstrcmp{#1}{#2}\relax
- \expandafter\@firstoftwo
- \else
- \expandafter\@secondoftwo
- \fi
- }
-%<lua> }
+\def\MT@ifstreq#1#2{%
+ \ifcase\pdfstrcmp{#1}{#2}\relax
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+}
}{
- \def\MT@ifstreq#1#2{%
- \edef\MT@res@a{#1}%
- \edef\MT@res@b{#2}%
- \ifx\MT@res@a\MT@res@b
- \expandafter\@firstoftwo
- \else
- \expandafter\@secondoftwo
- \fi
- }
+%</pdftex-def>
+%<*pdftex-def|xetex-def>
+\def\MT@ifstreq#1#2{%
+ \edef\MT@res@a{#1}%
+ \edef\MT@res@b{#2}%
+ \ifx\MT@res@a\MT@res@b
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
}
-%</package>
+%</pdftex-def|xetex-def>
+%<pdftex-def>}
+%<luatex-def>\def\MT@ifstreq#1#2{\csname\MT@lua{microtype.if_str_eq([[#1]],[[#2]])}\endcsname}
%<*luafile>
-function microtype.ifstreq(s1, s2)
+function microtype.if_str_eq(s1, s2)
if s1 == s2 then
tex.write("@firstoftwo")
else
@@ -4130,10 +4376,6 @@ function microtype.ifstreq(s1, s2)
end
end
-% \end{macrocode}
-% And here we end the |lua| file.
-% \begin{macrocode}
-end
%</luafile>
% \end{macrocode}
%\end{macro}
@@ -4348,9 +4590,32 @@ end
% \end{macrocode}
%\end{macro}
%\begin{macro}{\MT@do@font}
-% Execute \meta{\#1} 256 times.
+% Execute \meta{\#1} 256 times,
+% \begin{macrocode}
+%</package|letterspace>
+%<*pdftex-def|luatex-def|letterspace>
+\def\MT@do@font{\MT@while@num\z@
+%<pdftex-def|letterspace> \@cclvi
+% \end{macrocode}
+% resp. 1114111 times for \luatex\ (this is going to be slow, but \luatex\ is
+% slow anyway -- still, there ought to be a better way!)
+%\changes{v2.5}{2010/08/14}{adapt for \luatex}
+% \begin{macrocode}
+%<luatex-def> \MT@max@slot
+}
+%</pdftex-def|luatex-def|letterspace>
+% \end{macrocode}
+% resp. for the whole font.
+%\changes{v2.5}{2010/05/18}{adapt for \xetex}
% \begin{macrocode}
-\def\MT@do@font{\MT@while@num\z@\@cclvi}
+%<*xetex-def>
+\def\MT@do@font#1{%
+ \@tempcnta=\z@
+ \MT@loop #1%
+ \advance\@tempcnta \@ne
+ \ifnum\@tempcnta < \XeTeXcountglyphs\MT@font \MT@repeat
+}
+%</xetex-def>
%<*package>
% \end{macrocode}
%\end{macro}
@@ -4513,7 +4778,7 @@ end
\@ifl@aded{tex}{wordcount}{%
\MT@warning@nl{Detected the `wordcount' utility.\MessageBreak
Disabling `\MT@MT', since it wouldn't work}%
- \MT@clear@options\MT@restore@catcodes\endinput}\relax
+ \MT@clear@options\endinput}\relax
% \end{macrocode}
%\begin{macro}{\MT@setup@}
%\changes{v1.9a}{2005/11/21}{defer setup until the end of the preamble}
@@ -4527,6 +4792,7 @@ end
% preamble, and fonts don't have to be set up before \microtype.
% \begin{macrocode}
%</package>
+%<*package|letterspace>
%<plain>\MT@requires@latex1{
\let\MT@setup@\@empty
% \end{macrocode}
@@ -4546,6 +4812,7 @@ end
% We almost never do anything if a package is not loaded.
% \begin{macrocode}
\def\MT@with@package@T#1{\@ifpackageloaded{#1}\@firstofone\@gobble}
+%</package|letterspace>
%<*package>
% \end{macrocode}
%\end{macro}
@@ -4562,13 +4829,7 @@ end
}
% \end{macrocode}
%\end{macro}
-% Don't load \letterspace.
-% \begin{macrocode}
-\MT@let@nc{ver@letterspace.sty}\@empty
-% \end{macrocode}
%\begin{macro}{\MT@ledmac@setup}
-%\begin{macro}{\MT@led@unhbox@line}
-%\begin{macro}{\MT@led@kern}
% The \pkg{ledmac} package first saves each paragraph in a box, from which it
% then splits off the lines one by one. This will destroy character protrusion.
% (There aren't any problems with the \pkg{lineno} package, since it takes a
@@ -4589,11 +4850,22 @@ end
% Peter Wilson was so kind to provide the \cmd\l@dunhbox@line\ hook in
% \pkg{ledmac} to allow for protrusion. \cmd\leftmarginkern\ and
% \cmd\rightmarginkern\ are new primitives of \pdftex\ 1.21b (aka. 1.30.0).
+%\changes{v2.5}{2012/07/02}{fix to work with \xetex\
+% (reported by \contributor Ma\"ieul Rouquette <maieul\at maieul.net>)}
+% ^^A private mail, 2012/06/30
+% They are also part of recent \xetex.
% \begin{macrocode}
-\MT@requires@pdftex5{
+%</package>
+%<pdftex-def>\MT@requires@pdftex5{
+%<*pdftex-def|luatex-def|xetex-def>
\def\MT@ledmac@setup{%
\ifMT@protrusion
\MT@ifdefined@c@TF\l@dunhbox@line{%
+% \end{macrocode}
+%\begin{macro}{\MT@led@unhbox@line}
+%\begin{macro}{\MT@led@kern}
+% Hook.
+% \begin{macrocode}
\MT@info@nl{Patching ledmac to enable character protrusion}%
\newdimen\MT@led@kern
\let\MT@led@unhbox@line\l@dunhbox@line
@@ -4605,6 +4877,10 @@ end
\kern\MT@led@kern
\fi
}%
+% \end{macrocode}
+%\end{macro}
+%\end{macro}
+% \begin{macrocode}
}{%
\MT@warning@nl{%
Character protrusion in paragraphs with line\MessageBreak
@@ -4612,6 +4888,8 @@ end
}%
\fi
}
+%</pdftex-def|luatex-def|xetex-def>
+%<*pdftex-def>
}{
\def\MT@ledmac@setup{%
\ifMT@protrusion
@@ -4623,16 +4901,28 @@ end
\fi
}
}
+%</pdftex-def>
% \end{macrocode}
%\end{macro}
-%\end{macro}
-%\end{macro}
%\begin{macro}{\MT@restore@p@h}
% Restore meaning of \cmd\% and \cmd\#.
% \begin{macrocode}
+%<*package|letterspace>
+%<*package>
\def\MT@restore@p@h{\chardef\%`\% \chardef\#`\# }
% \end{macrocode}
%\end{macro}
+% Two new conditionals for use with \xetex\ or \luatex.
+%\begin{macro}{\ifMT@xunicode}
+%\begin{macro}{\ifMT@fontspec}
+% \begin{macrocode}
+\newif\ifMT@xunicode
+\newif\ifMT@fontspec
+\MT@with@package@T{xunicode}\MT@xunicodetrue
+\MT@with@package@T{fontspec}\MT@fontspectrue
+% \end{macrocode}
+%\end{macro}
+%\end{macro}
%\begin{macro}{\MT@setupfont@hook}
% This hook will be executed every time a font is set up (inside a group).
%
@@ -4663,11 +4953,19 @@ end
%\changes{v1.8}{2005/03/24}{remove superfluous \pkg{statex} hook}
% --- No longer needed, either.
%\fi
+%\changes{v2.5}{2012/08/22}{select font with \pkg{fontspec} (found by \contributor Georg Duffner <g.duffner\at gmail.com>)}
+% ^^A private mail, 2012/08/17
+% When a font is defined via \cmd\fontspec, the font is not actually loaded,
+% hence \xetex\ resp. \luatex\ would see a wrong font (in \cs{MT@get@slot}).
+% Therefore, we load the current font.
+% \begin{macrocode}
+ \ifMT@fontspec\MT@font\fi
+% \end{macrocode}
%\changes{v1.8}{2005/03/30}{restore percent character if Spanish \pkg{babel} is loaded}
%\changes{v2.2}{2007/02/02}{restore percent character if Galician \pkg{babel} is loaded}
%\changes{v2.3a}{2008/01/29}{restore percent character if Mexican \pkg{babel} is loaded}
-% Spanish (and Galician and Mexican) \pkg{babel} modify \cmd\%, storing the
-% original meaning in \cmd\percentsign.
+% Spanish (as well as Galician and Mexican) \pkg{babel} modify \cmd\%, storing
+% the original meaning in \cmd\percentsign.
% \begin{macrocode}
\MT@if@false
\MT@with@babel@and@T{spanish} \MT@if@true
@@ -4686,14 +4984,20 @@ end
% \pkg{hyperref} redefines \cmd\% and \cmd\# inside a \cmd\url. We restore
% the original meanings (which we can only hope are correct).
%\changes{v1.8}{2005/05/20}{restore \cmd\% and \cmd\# when \pkg{hyperref} is loaded}
-% Same for \pkg{tex4ht}.
+% Same for \pkg{tex4ht}
%\changes{v1.9d}{2006/02/27}{restore \cmd\% and \cmd\# when \pkg{tex4ht} is loaded
% (reported by \contributor Peter Dyballa <Peter_Dyballa\at Web.DE>)}
% ^^A private mail, 2006/02/26
+% and \pkg{mathastext}.
+%\changes{v2.5}{2011/07/29}{restore \cmd\% and \cmd\# when \pkg{mathastext} is loaded
+% (found by \contributor Seamus Bradley <@\at @>)}
+% ^^A http://tex.stackexchange.com/questions/24248
+% ^^A (beta:07)
% \begin{macrocode}
\MT@if@false
- \MT@with@package@T{hyperref}\MT@if@true
- \MT@with@package@T{tex4ht} \MT@if@true
+ \MT@with@package@T{hyperref} \MT@if@true
+ \MT@with@package@T{tex4ht} \MT@if@true
+ \MT@with@package@T{mathastext}\MT@if@true
\ifMT@if@\MT@restore@p@h\fi
}
% \end{macrocode}
@@ -4715,10 +5019,15 @@ So does the `\MT@MT' package. Using both packages at the same\MessageBreak
time will almost certainly lead to undesired results. Have your choice!}%
}%
\MT@with@package@T{ledmac}\MT@ledmac@setup
+ \MT@with@package@T{xunicode}\MT@xunicodetrue
+ \MT@with@package@T{fontspec}\MT@fontspectrue
% \end{macrocode}
% We can clean up \cs{MT@setupfont@hook} now.
% \begin{macrocode}
\let\MT@setupfont@hook\@empty
+ \ifMT@fontspec
+ \g@addto@macro\MT@setupfont@hook{\MT@font}%
+ \fi
\MT@if@false
\MT@with@babel@and@T{spanish} \MT@if@true
\MT@with@babel@and@T{galician}\MT@if@true
@@ -4763,6 +5072,7 @@ time will almost certainly lead to undesired results. Have your choice!}%
%<plain> }\relax
%<*package>
\MT@with@package@T{tex4ht}\MT@if@true
+ \MT@with@package@T{mathastext}\MT@if@true
\ifMT@if@\g@addto@macro\MT@setupfont@hook\MT@restore@p@h\fi
% \end{macrocode}
%\changes{v1.9b}{2005/12/19}{compatibility with \pkg{listings}: sanitise more catcodes
@@ -4785,6 +5095,14 @@ time will almost certainly lead to undesired results. Have your choice!}%
\g@addto@macro\MT@setupfont@hook{%
\catcode`\\\z@
% \end{macrocode}
+% Inside a listing, \cmd\space\ is redefined.
+%\changes{v2.5}{2011/05/03}{restore \cmd\space\ inside \pkg{listings}
+% (reported by \contributor Rolf Dieterich <rolf.dieterich\at gmx.de>)}
+% ^^A private mail, 2011/04/30
+% ^^A (beta:07)
+% \begin{macrocode}
+ \def\space{ }%
+% \end{macrocode}
%\changes{v1.9b}{2005/12/23}{compatibility with the \texttt{extendedchar} option of
% the \pkg{listings} package}
% When loaded with the |extendedchar| option, \pkg{listings} will also redefine
@@ -4847,12 +5165,12 @@ time will almost certainly lead to undesired results. Have your choice!}%
}%
%</package>
}
-%<*package>
+%</package|letterspace>
% \end{macrocode}
%\changes{v1.6}{2005/01/19}{load a font if none is selected}
% We need a font (the \pkg{minimal} class doesn't load one).
% \begin{macrocode}
-\expandafter\ifx\the\font\nullfont\normalfont\fi
+%<package>\expandafter\ifx\the\font\nullfont\normalfont\fi
% \end{macrocode}
%
%\subsection{Font setup}\label{ssec:font-setup}
@@ -4863,14 +5181,16 @@ time will almost certainly lead to undesired results. Have your choice!}%
% But first, we might have to disable stuff when used together with adventurous
% packages.
% \begin{macrocode}
+%<*pdftex-def|xetex-def|luatex-def>
\def\MT@setupfont{\MT@setupfont@hook}
% \end{macrocode}
% This will use a copy of the font (allowing for expansion parameter variation
% and the use of more than one set of protrusion factors for a font within one
% paragraph).
% \begin{macrocode}
-\MT@requires@pdftex7
- {\g@addto@macro\MT@setupfont\MT@copy@font}\relax
+%<pdftex-def>\MT@requires@pdftex7{
+%<pdftex-def|luatex-def>\g@addto@macro\MT@setupfont\MT@copy@font
+%<pdftex-def>}\relax
% \end{macrocode}
% The font properties must be extracted from \cs{MT@font}, since the current
% value of \cmd\f@encoding\ and friends may be wrong!
@@ -4900,8 +5220,9 @@ time will almost certainly lead to undesired results. Have your choice!}%
% Tracking has to come first, since it means actually loading a different font.
%\changes{v2.2}{2007/04/15}{only add features that are available with the respective \pdftex}
% \begin{macrocode}
-\MT@requires@pdftex6
- {\g@addto@macro\MT@setupfont\MT@tracking}\relax
+%<pdftex-def>\MT@requires@pdftex6
+%<luatex-def>\MT@requires@luatex3
+%<pdftex-def|luatex-def> {\g@addto@macro\MT@setupfont\MT@tracking}\relax
\g@addto@macro\MT@setupfont{%
\MT@check@font
\ifMT@inlist@
@@ -4917,18 +5238,22 @@ time will almost certainly lead to undesired results. Have your choice!}%
% with 1.20, the order doesn't matter.
% \begin{macrocode}
\MT@protrusion
- \MT@expansion
+%<pdftex-def|luatex-def> \MT@expansion
}
% \end{macrocode}
% Interword spacing and kerning (\pdftex\ 1.40).
% \begin{macrocode}
-\MT@requires@pdftex6
- {\g@addto@macro\MT@setupfont{\MT@spacing\MT@kerning}}\relax
+%<*pdftex-def>
+\MT@requires@pdftex6{
+\g@addto@macro\MT@setupfont{\MT@spacing\MT@kerning}
+}\relax
+%</pdftex-def>
% \end{macrocode}
% Disable ligatures (\pdftex\ 1.30).
% \begin{macrocode}
-\MT@requires@pdftex5
- {\g@addto@macro\MT@setupfont\MT@noligatures}\relax
+%<pdftex-def>\MT@requires@pdftex5{
+%<pdftex-def|luatex-def>\g@addto@macro\MT@setupfont\MT@noligatures
+%<pdftex-def>}\relax
\g@addto@macro\MT@setupfont{%
% \end{macrocode}
% Debugging.
@@ -4940,19 +5265,21 @@ time will almost certainly lead to undesired results. Have your choice!}%
\MT@register@font
\fi
}
+%</pdftex-def|xetex-def|luatex-def>
% \end{macrocode}
%\end{macro}
%\begin{macro}{\MT@copy@font}
%\changes{v2.2}{2007/07/03}{optionally work on copies of fonts}
%\begin{macro}{\MT@copy@font@}
-% The new (1.40.4) \cmd\pdfcopyfont\ command allows to expand a font with
+% The new (1.40.4) \cmd\pdfcopyfont\ command allows expanding a font with
% different parameters, or to use more than one set of protrusion factors for a
% given font within one paragraph. It will be used when we find a context for
% \cs{SetProtrusion} or \cs{SetExpansion} in the preamble, or when the package
% has been loaded with the \opt{copyfonts} option.
% \begin{macrocode}
+%<*pdftex-def|luatex-def>
\let\MT@copy@font\relax
-\MT@requires@pdftex7{
+%<pdftex-def>\MT@requires@pdftex7{
\def\MT@copy@font@{%
% \end{macrocode}
%\begin{macro}{\MT@font@copy}
@@ -4965,7 +5292,7 @@ time will almost certainly lead to undesired results. Have your choice!}%
% \end{macrocode}
%\end{macro}
%\begin{macro}{\MT@font@orig}
-% \pdftex\ doesn't allow to copy a font that has already been copied and
+% \pdftex\ doesn't allow copying a font that has already been copied and
% expanded\slash letterspaced. Hence, we have to get the original.
% \begin{macrocode}
\expandafter\ifx\MT@font@copy\relax
@@ -5009,7 +5336,8 @@ time will almost certainly lead to undesired results. Have your choice!}%
\MT@font \csname MT@\@tempa @#1font@list\endcsname
\fi
}
-}\relax
+%<pdftex-def>}\relax
+%</pdftex-def|luatex-def>
% \end{macrocode}
%\end{macro}
%\ifpdf\phantomsection\fi\label{exp-hack}
@@ -5019,7 +5347,7 @@ time will almost certainly lead to undesired results. Have your choice!}%
% you do not want to create a clone of the font setup (this would require
% duplicating the \file{tfm}/\file{vf} files under a new name, and writing new
% \file{fd} files and \file{map} entries), you can load a minimally larger font
-% for the paragraph in question. E.\,g., for a document typeset in 10\,pt:
+% for the paragraph in question. E.g., for a document typeset in 10\,pt:
%\begin{verbatim}[gobble=2,morekeywords={[0]{\expandpar}}]
% \SetExpansion
% [ stretch = 30,
@@ -5050,10 +5378,16 @@ time will almost certainly lead to undesired results. Have your choice!}%
%\begin{macro}{\MT@size}
% Split up the font name (\meta{\#6} may be a protrusion\slash expansion
% context and/or a letterspacing amount). ^^A really?
+% With \pkg{fontspec} we also need to remove its internal instance counter.
% \begin{macrocode}
+%<*package>
\def\MT@split@name#1/#2/#3/#4/#5/#6\@nil{%
\def\MT@encoding{#1}%
- \def\MT@family {#2}%
+ \ifMT@fontspec
+ \edef\MT@family{\MT@scrubfeature#2()\relax}%
+ \else
+ \def\MT@family{#2}%
+ \fi
\def\MT@series {#3}%
\def\MT@shape {#4}%
\def\MT@size {#5}%
@@ -5075,6 +5409,21 @@ time will almost certainly lead to undesired results. Have your choice!}%
%\end{macro}
%\end{macro}
%\end{macro}
+%\begin{macro}{\MT@scrubfeature}
+%\begin{macro}{\MT@scrubfeatures}
+% Remove one resp. all feature counters (\pkg{fontspec}).
+%\changes{v2.5}{2010/02/27}{compatibility with \pkg{fontspec}: remove its internal counter}
+% \begin{macrocode}
+\def\MT@scrubfeature#1(#2)#3\relax{#1}
+\def\MT@scrubfeatures#1(#2)#3\relax{%
+ #1%
+ \ifx\relax#3\relax\else
+ \MT@scrubfeatures#3\relax
+ \fi
+}
+% \end{macrocode}
+%\end{macro}
+%\end{macro}
%\begin{macro}{\ifMT@do}
%\begin{macro}{\MT@feat}
%\begin{macro}{\MT@maybe@do}
@@ -5244,9 +5593,23 @@ time will almost certainly lead to undesired results. Have your choice!}%
%
%\subsubsection{Protrusion}
%
+%\begin{macro}{\ifMT@nofamily}
+% Info for settings that are not family-specific.
+% (Warnings seem to be too irritating.) ^^A at least one thing I found out in the ridiculously long `beta' phase
+% The switch is set in \cs{MT@next@listname}.
+%\changes{v2.5}{2011/05/28}{info if settings are not family-specific
+% (suggested by \contributor\thanh{} <thanh\at river-valley.org>)}
+% ^^A private mail, 2010/09/07
+% ^^A (beta:07)
+% \begin{macrocode}
+\newif\ifMT@nofamily
+%</package>
+% \end{macrocode}
+%\end{macro}
%\begin{macro}{\MT@protrusion}
% Set up for protrusion?
% \begin{macrocode}
+%<*pdftex-def|xetex-def|luatex-def>
\def\MT@protrusion{\MT@maybe@do{pr}}
% \end{macrocode}
%\end{macro}
@@ -5258,10 +5621,25 @@ time will almost certainly lead to undesired results. Have your choice!}%
%\changes{v1.6}{2004/12/18}{introduce \texttt{factor} option}
% \begin{macrocode}
\def\MT@set@pr@codes{%
+ \MT@nofamilyfalse
% \end{macrocode}
% Check whether and if, which list should be applied to the current font.
+% If family-specific settings don't exist, we write it to the log
+%\changes{v2.5}{2013/02/05}{make info about generic settings encoding-specific
+% (reported by \contributor Sebastian Schubert <schubert.seb\at googlemail.com>)}
+% ^^A private mail, 2013/01/24
+% (for each encoding).
% \begin{macrocode}
\MT@if@list@exists{%
+ \ifMT@nofamily
+ \MT@ifdefined@n@TF{\MT@encoding-\MT@family-settings}\relax{%
+ \MT@info@nl{Loading generic settings for font family\MessageBreak
+ `\MT@family' (encoding: \MT@encoding).\MessageBreak
+ For optimal results, create family-specific settings.\MessageBreak
+ See the microtype manual for details}%
+ \MT@glet@nc{\MT@encoding-\MT@family-settings}\@empty
+ }%
+ \fi
\MT@get@font@dimen@six{%
\MT@get@opt
\MT@reset@pr@codes
@@ -5316,12 +5694,17 @@ time will almost certainly lead to undesired results. Have your choice!}%
%\begin{macro}{\MT@set@all@pr}
%\changes{v2.2}{2007/06/16}{(et al.) allow empty values}
% Set all protrusion codes of the font.
+%\changes{v2.5}{2011/08/19}{fix: remove space
+% (found by \contributor Meho~R <meho.2005\at gmail.com>)}
+% ^^A MID: <b3c1627e-192f-4004-ab46-4ea86925e298@dc3g2000vbb.googlegroups.com>
+% ^^A http://tex.stackexchange.com/questions/25036/microtype-package-v-2-5-beta-06-and-footnote-protrusion
+% ^^A (beta:08)
% \begin{macrocode}
\def\MT@set@all@pr#1#2{%
%<debug>\MT@dinfo@nl{3}{-- lp/rp: setting all to #1/#2}%
\let\MT@temp\@empty
- \MT@ifempty{#1}\relax{\g@addto@macro\MT@temp{\lpcode\MT@font\@tempcnta=#1\relax}}%
- \MT@ifempty{#2}\relax{\g@addto@macro\MT@temp{\rpcode\MT@font\@tempcnta=#2\relax}}%
+ \MT@ifempty{#1}\relax{\g@addto@macro\MT@temp{\lpcode\MT@font\@tempcnta=#1}}%
+ \MT@ifempty{#2}\relax{\g@addto@macro\MT@temp{\rpcode\MT@font\@tempcnta=#2}}%
\MT@do@font\MT@temp
}
% \end{macrocode}
@@ -5344,11 +5727,14 @@ time will almost certainly lead to undesired results. Have your choice!}%
% the margin kerns. This will be activated in \cs{MT@set@tr@codes}.
% \begin{macrocode}
\def\MT@the@pr@code{\@tempcntb}
-\MT@requires@pdftex6{
- \def\MT@the@pr@code@tr{%
+%<*pdftex-def|luatex-def>
+%<pdftex-def>\MT@requires@pdftex6
+%<luatex-def>\MT@requires@luatex3
+ {\def\MT@the@pr@code@tr{%
\numexpr\@tempcntb+\MT@letterspace@/2\relax
}
}\relax
+%</pdftex-def|luatex-def>
% \end{macrocode}
%\end{macro}
%\end{macro}
@@ -5375,7 +5761,8 @@ time will almost certainly lead to undesired results. Have your choice!}%
\def\@tempa{#1}%
\ifx\@tempa\@empty \else
\MT@get@slot
- \ifnum\MT@char > \m@ne
+%<pdftex-def|luatex-def> \ifnum\MT@char > \m@ne
+%<xetex-def> \ifx\MT@char\@empty \else
\MT@get@char@unit
\csname MT@\MT@feat @split@val\endcsname#2\relax
\fi
@@ -5390,13 +5777,13 @@ time will almost certainly lead to undesired results. Have your choice!}%
\MT@ifempty\@tempb\relax{%
\MT@scale@to@em
\lpcode\MT@font\MT@char=\MT@the@pr@code
-%<debug>\MT@dinfo@nl{4}{;;; lp (\MT@char): \number\lpcode\MT@font\MT@char: [#1]}%
+%<debug>\MT@dinfo@nl{4}{;;; lp (\MT@char): \number\lpcode\MT@font\MT@char\space: [#1]}%
}%
\def\@tempb{#2}%
\MT@ifempty\@tempb\relax{%
\MT@scale@to@em
\rpcode\MT@font\MT@char=\MT@the@pr@code
-%<debug>\MT@dinfo@nl{4}{;;; rp (\MT@char): \number\rpcode\MT@font\MT@char: [#2]}%
+%<debug>\MT@dinfo@nl{4}{;;; rp (\MT@char): \number\rpcode\MT@font\MT@char\space: [#2]}%
}%
% \end{macrocode}
% Now we can set the values for the inheriting characters. Their slot numbers
@@ -5423,25 +5810,25 @@ time will almost certainly lead to undesired results. Have your choice!}%
% Unlike \file{protcode.tex} and \pkg{pdfcprot}, we do not calculate with
% \cs{lpcode} resp. \cs{rpcode}, since this would disallow protrusion factors
% larger than the character width (since \cs{[lr]pcode}'s limit is 1000). Now,
-% the maximum protrusion is 1\,em of the font.
+% the maximum protrusion is \EM{1} of the font.
%
% The unit is in \cs{MT@count}, the desired factor in \cmd\@tempb, and the
% result will be returned in \cmd\@tempcntb.
% \begin{macrocode}
-\MT@requires@pdftex3{
- \def\MT@scale@to@em{%
- \@tempcntb=\MT@count\relax
+%<pdftex-def>\MT@requires@pdftex3{
+\def\MT@scale@to@em{%
+ \@tempcntb=\MT@count\relax
% \end{macrocode}
% For really huge fonts (100\,pt or so), an arithmetic overflow could occur
% with vanilla \TeX. Using \etex, this can't happen, since the intermediate
% value is 64\,bit, which could only be reached with a character width larger
% than \cs{maxdimen}.
% \begin{macrocode}
- \MT@scale\@tempcntb \@tempb \MT@dimen@six
- \ifnum\@tempcntb=\z@ \else
- \MT@scale@factor
- \fi
- }
+ \MT@scale\@tempcntb \@tempb \MT@dimen@six
+ \ifnum\@tempcntb=\z@ \else
+ \MT@scale@factor
+ \fi
+}
% \end{macrocode}
%\end{macro}
%\begin{macro}{\MT@get@charwd}
@@ -5450,46 +5837,65 @@ time will almost certainly lead to undesired results. Have your choice!}%
%\changes{v1.6}{2005/01/19}{use \etex's \cmd\fontcharwd, if available}
%\changes{v1.8}{2005/05/25}{warning for missing (resp. zero-width) characters}
% \begin{macrocode}
- \def\MT@get@charwd{%
-^^X \MT@count=\fontcharwd\MT@font\MT@char\relax
-^^Q \setbox\z@=\hbox{\MT@font \char\MT@char}%
-^^Q \MT@count=\wd\z@
- \ifnum\MT@count=\z@ \MT@info@missing@char \fi
- }
+\def\MT@get@charwd{%
+%<*pdftex-def>
+^^X \MT@count=\fontcharwd\MT@font\MT@char\relax
+^^Q \setbox\z@=\hbox{\MT@font \char\MT@char}%
+^^Q \MT@count=\wd\z@
+%</pdftex-def>
+%<luatex-def> \MT@count=\fontcharwd\MT@font\MT@char\relax
+% \end{macrocode}
+% \cs{MT@char} contains a slot number (legacy fonts), a Unicode number,
+% or a glyph name (if \cs{MT@char@} is negative).
+% \begin{macrocode}
+%<*xetex-def>
+ \ifnum\MT@char@<\z@
+ \setbox\z@=\hbox{\MT@font \XeTeXglyph-\MT@char@}%
+ \MT@count=\wd\z@
+ \else
+ \MT@count=\fontcharwd\MT@font\MT@char@\relax
+ \fi
+%</xetex-def>
+ \ifnum\MT@count=\z@ \MT@info@missing@char \fi
+}
% \end{macrocode}
%\changes{v2.2}{2007/04/05}{subtract letterspacing amount from width}
% For letterspaced fonts, we have to subtract the letterspacing amount from the
% characters' widths. The protrusion amounts will be adjusted in
% \cs{MT@set@pr@codes}.
-% The letterspaced font is already loaded so that 1\,em = \fontdim6.
+% The letterspaced font is already loaded so that \EM{1} = \fontdim6.
% \begin{macrocode}
- \MT@requires@pdftex6{
- \g@addto@macro\MT@get@charwd{%
- \MT@ifdefined@c@T\MT@letterspace@
- {\advance\MT@count -\dimexpr\MT@letterspace@ sp *\dimexpr 1em/1000\relax}%
- }
- }\relax
+%<*pdftex-def>
+\MT@requires@pdftex6{
+ \g@addto@macro\MT@get@charwd{%
+ \MT@ifdefined@c@T\MT@letterspace@
+ {\advance\MT@count -\dimexpr\MT@letterspace@ sp *\dimexpr 1em/1000\relax}%
+ }
+}\relax
}{
% \end{macrocode}
%\end{macro}
% No adjustment with versions 0.14f and 0.14g.
% \begin{macrocode}
- \def\MT@scale@to@em{%
- \MT@count=\@tempb\relax
- \ifnum\MT@count=\z@ \else
- \MT@scale@factor
- \fi
- }
+\def\MT@scale@to@em{%
+ \MT@count=\@tempb\relax
+ \ifnum\MT@count=\z@ \else
+ \MT@scale@factor
+ \fi
+}
% \end{macrocode}
% We need this in \cs{MT@warn@code@too@large} (neutralised).
% \begin{macrocode}
- \def\MT@get@charwd{\MT@count=\MT@dimen@six}
+\def\MT@get@charwd{\MT@count=\MT@dimen@six}
}
+%</pdftex-def>
+%</pdftex-def|xetex-def|luatex-def>
% \end{macrocode}
%\begin{macro}{\MT@get@font@dimen}
% For the |space| unit.
%\changes{v1.9d}{2006/02/13}{warning for zero fontdimen}
% \begin{macrocode}
+%<*package>
\def\MT@get@font@dimen#1{%
\ifnum\fontdimen#1\MT@font=\z@
\MT@warning@nl{Font `\MT@@font' does not specify its\MessageBreak
@@ -5507,10 +5913,14 @@ time will almost certainly lead to undesired results. Have your choice!}%
% the `fl' ligature is missing in Palatino <SC>)}
% ^^A MID: <1h64d0x.16xsx9n1151dieN%mh@michael-hoppe.de>
% Info about missing characters, or characters with zero width.
+%\changes{v2.5}{2010/11/11}{fix error message for \xetex\
+% (reported by \contributor Juan Acevedo <juan.acevedo.juan\at gmail.com>)}
+% ^^A <http://permalink.gmane.org/gmane.comp.tex.xetex/17202>
+% ^^A (beta:05)
% \begin{macrocode}
\def\MT@info@missing@char{%
\MT@info@nl{Character `\the\MT@toks'
-^^X \iffontchar\MT@font\MT@char
+^^X \iffontchar\MT@font\MT@char@
has a width of 0pt
^^X \else is missing\fi
^^Q \MessageBreak (it's probably missing)
@@ -5737,17 +6147,19 @@ time will almost certainly lead to undesired results. Have your choice!}%
%<debug>\MT@dinfo@nl{1}{loading input encoding: \@nameuse{\@tempa}}%
\inputencoding{\@nameuse{\@tempa}}%
}
+%</package>
% \end{macrocode}
%\end{macro}
%\begin{macro}{\MT@set@pr@heirs}
% Set the inheriting characters.
% \begin{macrocode}
+%<*pdftex-def|xetex-def|luatex-def>
\def\MT@set@pr@heirs#1{%
- \lpcode\MT@font#1=\lpcode\MT@font\MT@char
- \rpcode\MT@font#1=\rpcode\MT@font\MT@char
+ \lpcode\MT@font #1 =\lpcode\MT@font\MT@char\relax
+ \rpcode\MT@font #1 =\rpcode\MT@font\MT@char\relax
%<debug>\MT@dinfo@nl{2}{-- heir of \MT@char: #1}%
-%<debug>\MT@dinfo@nl{4}{;;; lp/rp (#1): \number\lpcode\MT@font\MT@char/%
-%<debug> \number\rpcode\MT@font\MT@char}%
+%<debug>\MT@dinfo@nl{4}{;;; lp/rp (#1): \number\lpcode\MT@font\MT@char\space/%
+%<debug> \number\rpcode\MT@font\MT@char\space}%
}
% \end{macrocode}
%\end{macro}
@@ -5802,6 +6214,7 @@ time will almost certainly lead to undesired results. Have your choice!}%
for \@nameuse{MT@abbr@#1} list `\@nameuse{MT@#1@c@name}'. Presetting them%
\MessageBreak relative to 1em instead}%
}
+%</pdftex-def|xetex-def|luatex-def>
% \end{macrocode}
%\end{macro}
%
@@ -5810,6 +6223,7 @@ time will almost certainly lead to undesired results. Have your choice!}%
%\begin{macro}{\MT@expansion}
% Set up for expansion?
% \begin{macrocode}
+%<*pdftex-def|luatex-def>
\def\MT@expansion{\MT@maybe@do{ex}}
% \end{macrocode}
%\end{macro}
@@ -5844,7 +6258,9 @@ time will almost certainly lead to undesired results. Have your choice!}%
% We need this boolean in \cs{MT@if@list@exists} so that no warning for missing
% lists will be issued.
% \begin{macrocode}
-\newif\ifMT@nonselected
+%</pdftex-def|luatex-def>
+%<package>\newif\ifMT@nonselected
+%<*pdftex-def|luatex-def>
% \end{macrocode}
%\end{macro}
% \begin{macrocode}
@@ -5899,6 +6315,7 @@ time will almost certainly lead to undesired results. Have your choice!}%
% However, this is only necessary for versions prior to~1.20.
%\changes{v1.6a}{2005/01/30}{only reset \cmd\efcode s for older \pdftex\ versions}
% \begin{macrocode}
+%<*pdftex-def>
\MT@requires@pdftex4{
\def\MT@reset@ef@codes{%
\ifnum\MT@ex@factor@=\@m \else
@@ -5906,8 +6323,13 @@ time will almost certainly lead to undesired results. Have your choice!}%
\fi
}
}{
+%</pdftex-def>
+% \end{macrocode}
+% ^^A this is SO wrong!
+%\todo{do it right for \luatex}
+% \begin{macrocode}
\let\MT@reset@ef@codes\MT@reset@ef@codes@
-}
+%<pdftex-def>}
% \end{macrocode}
%\end{macro}
%\begin{macro}{\MT@ex@split@val}
@@ -6013,14 +6435,16 @@ time will almost certainly lead to undesired results. Have your choice!}%
\MT@scale@factor
\MT@set@all@ex\@tempcntb
}
+%</pdftex-def|luatex-def>
% \end{macrocode}
%\end{macro}
%
%\subsubsection{Interword spacing (glue)}
%
%\begin{macro}{\MT@spacing}
-% Adjustment of interword spacing?
+% Adjustment of interword spacing? Only works with \pdftex.
% \begin{macrocode}
+%<*pdftex-def>
\MT@requires@pdftex6{
\def\MT@spacing{\MT@maybe@do{sp}}
% \end{macrocode}
@@ -6234,15 +6658,21 @@ time will almost certainly lead to undesired results. Have your choice!}%
\MT@set@all@kn\@tempa\@tempb
}
}\relax
+%</pdftex-def>
% \end{macrocode}
%\end{macro}
%\end{macro}
%
%\subsubsection{\lsstyle Tracking}
%
-% This only works with \pdftex\ 1.40.
+% This only works with \pdftex\ 1.40
+%\changes{v2.5}{2010/09/17}{letterspacing with \luatex\ 0.62} ^^A (beta:03)
+% or \luatex\ 0.62.
% \begin{macrocode}
-\MT@requires@pdftex6{
+%<*pdftex-def|luatex-def>
+%<pdftex-def>\MT@requires@pdftex6
+%<luatex-def>\MT@requires@luatex3
+{
% \end{macrocode}
%\begin{macro}{\MT@tracking}
%\changes{v2.2}{2007/02/23}{remember fonts that shouldn't be letterspaced}
@@ -6262,9 +6692,9 @@ time will almost certainly lead to undesired results. Have your choice!}%
\fi
\fi
}
-%</package>
-\let\MT@tracking
-%<package> \MT@tracking@
+%</pdftex-def|luatex-def>
+%<pdftex-def|luatex-def|letterspace>\let\MT@tracking
+%<pdftex-def|luatex-def> \MT@tracking@
%<letterspace> \relax
% \end{macrocode}
%\end{macro}
@@ -6275,14 +6705,15 @@ time will almost certainly lead to undesired results. Have your choice!}%
% settings from \cs{SetTracking}, or the global \opt{letterspace} option, in
% this order.
% \begin{macrocode}
+%<*pdftex-def|luatex-def|letterspace>
\def\MT@set@tr@codes{%
-%<*package>
+%<*pdftex-def|luatex-def>
\MT@vinfo{Tracking font `\MT@@font'\on@line}%
\MT@get@font@dimen@six{%
\MT@if@list@exists
\MT@get@tr@opt
\relax
-%</package>
+%</pdftex-def|luatex-def>
\MT@ifdefined@c@TF\MT@letterspace@\relax{\let\MT@letterspace@\MT@letterspace}%
\ifnum\MT@letterspace@=\z@
% \end{macrocode}
@@ -6291,7 +6722,7 @@ time will almost certainly lead to undesired results. Have your choice!}%
% \begin{macrocode}
\MT@set@tr@zero
\else
-%<package> \MT@vinfo{... Tracking by \number\MT@letterspace@}%
+%<pdftex-def|luatex-def> \MT@vinfo{... Tracking by \number\MT@letterspace@}%
% \end{macrocode}
% Letterspacing only works in <PDF> mode.
% \begin{macrocode}
@@ -6322,7 +6753,7 @@ time will almost certainly lead to undesired results. Have your choice!}%
%\changes{v2.2}{2007/06/16}{possibility to customise interword spacing}
% Scale interword spacing (not configurable in \letterspace).
% \begin{macrocode}
-%<*package>
+%<*pdftex-def|luatex-def>
\MT@ifdefined@c@TF\MT@tr@ispace
{\let\@tempa\MT@tr@ispace}%
{\edef\@tempa{\MT@letterspace@*,,}}%
@@ -6330,7 +6761,7 @@ time will almost certainly lead to undesired results. Have your choice!}%
{\edef\@tempa{\@tempa,\MT@tr@ospace}}%
{\edef\@tempa{\@tempa,,,}}%
\expandafter\MT@tr@set@space\@tempa,%
-%</package>
+%</pdftex-def|luatex-def>
%<*letterspace>
% spacing = {<letterspace amount>*,,}
\fontdimen2\MT@lsfont=\dimexpr\numexpr 1000+\MT@letterspace@\relax sp
@@ -6342,7 +6773,7 @@ time will almost certainly lead to undesired results. Have your choice!}%
% ^^A MID: <46aa1cbb$0$31620$9b4e6d93@newsspool3.arcor-online.net>
% Adjust outer kerning (\microtype\ only).
% \begin{macrocode}
-%<*package>
+%<*pdftex-def|luatex-def>
\MT@ifdefined@c@TF\MT@tr@okern{\let\@tempa\MT@tr@okern}{\def\@tempa{*,*}}%
\expandafter\MT@tr@set@okern\@tempa,%
% \end{macrocode}
@@ -6351,7 +6782,7 @@ time will almost certainly lead to undesired results. Have your choice!}%
% Disable ligatures (not configurable in \letterspace).
% \begin{macrocode}
\MT@ifdefined@c@T\MT@tr@ligatures\MT@tr@noligatures
-%</package>
+%</pdftex-def|luatex-def>
%<*letterspace>
% no ligatures = {f}
\tagcode\MT@lsfont`f=\m@ne
@@ -6369,13 +6800,13 @@ time will almost certainly lead to undesired results. Have your choice!}%
%<debug>\MT@dinfo@nl{2}{... compensating for tracking (\number\MT@letterspace@)}%
\MT@do@font{\lpcode\MT@lsfont\@tempcnta=\numexpr\MT@letterspace@/2\relax
\rpcode\MT@lsfont\@tempcnta=\numexpr\MT@letterspace@/2\relax}%
-%<package> \let\MT@the@pr@code\MT@the@pr@code@tr
+%<pdftex-def|luatex-def> \let\MT@the@pr@code\MT@the@pr@code@tr
\fi
% \end{macrocode}
% Finally, let the letterspaced font propagate.
% \begin{macrocode}
\aftergroup\MT@set@lsfont
-%<package> \let\MT@font\MT@lsfont
+%<pdftex-def|luatex-def> \let\MT@font\MT@lsfont
% \end{macrocode}
%\begin{macro}{\MT@set@curr@ls}
%\begin{macro}{\MT@curr@ls}
@@ -6392,11 +6823,11 @@ time will almost certainly lead to undesired results. Have your choice!}%
% We get the current outer spacing and adjust it, then, after the end of the
% current outer group, set the current outer spacing, again, and adjust.
% \begin{macrocode}
-%<*package>
+%<*pdftex-def|luatex-def>
\MT@outer@space=\csname MT@outer@space\expandafter\string\font@name\endcsname\relax
\xdef\MT@set@curr@os{\MT@outer@space=\the\MT@outer@space\relax}%
\MT@tr@outer@l
-%</package>
+%</pdftex-def|luatex-def>
% \end{macrocode}
%\end{macro}
% If \cs{MT@ls@adjust} is empty, it's the starred version of \cs{textls}.
@@ -6414,16 +6845,16 @@ time will almost certainly lead to undesired results. Have your choice!}%
% Otherwise, get the current outer kerning and adjust it, for left and right
% side (\microtype\ only).
% \begin{macrocode}
-%<*package>
+%<*pdftex-def|luatex-def>
\else
\MT@outer@kern=\expandafter\expandafter\expandafter\@firstoftwo
\csname MT@outer@kern\expandafter\string\font@name\endcsname\relax
\ifdim\MT@outer@kern=\z@\else \MT@ls@outer@k \fi
\MT@outer@kern=\expandafter\expandafter\expandafter\@secondoftwo
\csname MT@outer@kern\expandafter\string\font@name\endcsname\relax
-%</package>
+%</pdftex-def|luatex-def>
\fi
-%<*package>
+%<*pdftex-def|luatex-def>
% \end{macrocode}
%\begin{macro}{\MT@set@curr@ok}
% Carry the outer kerning amount to outside the next group, then set outer
@@ -6434,9 +6865,9 @@ time will almost certainly lead to undesired results. Have your choice!}%
% \end{macrocode}
%\end{macro}
% \begin{macrocode}
-%</package>
+%</pdftex-def|luatex-def>
\fi
-%<package> }%
+%<pdftex-def|luatex-def> }%
}
% \end{macrocode}
%\end{macro}
@@ -6455,6 +6886,7 @@ time will almost certainly lead to undesired results. Have your choice!}%
% a \pkg{tikz} node, where we don't want to do anything, lest we disturb
% \pkg{tikz}.
% \begin{macrocode}
+%</pdftex-def|luatex-def|letterspace>
%<*package>
\MT@addto@setup{%
\@ifpackageloaded{tikz}
@@ -6462,6 +6894,8 @@ time will almost certainly lead to undesired results. Have your choice!}%
\ifnum\tikz@expandcount>\z@ \else
\MT@set@curr@os\MT@set@curr@ok\expandafter\MT@tr@outer@r\fi}}
{\def\MT@ls@aftergroup{\MT@set@curr@os\MT@set@curr@ok\MT@tr@outer@r}}}
+%</package>
+%<*pdftex-def|luatex-def>
% \end{macrocode}
%\end{macro}
%\begin{macro}{\MT@get@tr@opt}
@@ -6519,13 +6953,14 @@ time will almost certainly lead to undesired results. Have your choice!}%
\MT@ifdefined@n@T{MT@tr@c@\MT@tr@c@name @#1}%
{\MT@let@nn{MT@tr@#2}{MT@tr@c@\MT@tr@c@name @#1}}%
}
-%</package>
+%</pdftex-def|luatex-def>
% \end{macrocode}
%\end{macro}
%\begin{macro}{\MT@set@lsfont}
% Redefine \cmd\font@name, which will be called a second later (in
% \cmd\selectfont).
% \begin{macrocode}
+%<*pdftex-def|luatex-def|letterspace>
%<plain>\MT@requires@latex2{
\def\MT@set@lsfont{\MT@exp@two@c\let\font@name\MT@lsfont}
% \end{macrocode}
@@ -6541,10 +6976,14 @@ time will almost certainly lead to undesired results. Have your choice!}%
% setup.
% Only \cs{textls} can be used in math mode (\cs{lsstyle} may be used inside
% another text switch, of course).
+%\changes{v2.5}{2012/11/14}{fix: ensure to set up math fonts (reported by \contributor RazorXsr <@\at @>)}
+% ^^A http://tex.stackexchange.com/questions/82686/settracking-in-the-math-environment
+% Still, we have to ensure that math fonts are set up again.
% \begin{macrocode}
\DeclareRobustCommand\lsstyle{%
\not@math@alphabet\lsstyle\textls
-%<package> \def\MT@feat{tr}%
+ \let\glb@currsize\@empty
+%<pdftex-def|luatex-def> \def\MT@feat{tr}%
\let\MT@tracking\MT@set@tr@codes
\selectfont
}
@@ -6636,8 +7075,9 @@ time will almost certainly lead to undesired results. Have your choice!}%
%\begin{macro}{\MT@tr@noligatures}
% \pdftex\ 1.40.0--1.40.3 disabled all ligatures in letterspaced fonts.
% \begin{macrocode}
-%<*package>
-\MT@requires@pdftex7{
+%</pdftex-def|luatex-def|letterspace>
+%<*pdftex-def|luatex-def>
+%<pdftex-def>\MT@requires@pdftex7{
\def\MT@tr@noligatures{%
\ifx\MT@tr@ligatures\@empty
\MT@noligatures@\MT@lsfont\@undefined
@@ -6645,6 +7085,7 @@ time will almost certainly lead to undesired results. Have your choice!}%
\MT@noligatures@\MT@lsfont\MT@tr@ligatures
\fi
}
+%<*pdftex-def>
}{
\def\MT@tr@noligatures{%
\MT@warning@nl{%
@@ -6653,6 +7094,7 @@ time will almost certainly lead to undesired results. Have your choice!}%
\MT@glet\MT@tr@noligatures\relax
}
}
+%</pdftex-def>
% \end{macrocode}
%\end{macro}
%\begin{macro}{\MT@outer@space}
@@ -6665,6 +7107,8 @@ time will almost certainly lead to undesired results. Have your choice!}%
% Adjust interword spacing (\fontdim2--4) for inner and outer space.
% For inner spacing, the font dimensions will be adjusted, the settings for
% outer spacing will be remembered in a macro.
+%\todo{don't add stretch components if ragged2e is active?} ^^A reported by \contributor Leo ? <sdl.web\at gmail.com>, MID: <wqlfwxsuo6h.fsf@pip.srcf.ucam.org>
+%^^A or in fact, shouldn't we test whether \spaceskip<>0pt ?
% \begin{macrocode}
\def\MT@tr@set@space#1,#2,#3,#4,#5,#6,{%
%<debug>\MT@dinfo@nl2{... orig. space: \the\fontdimen2\MT@lsfont,
@@ -6682,8 +7126,8 @@ time will almost certainly lead to undesired results. Have your choice!}%
% \end{macrocode}
%\end{macro}
%\begin{macro}{\MT@tr@set@space@}
-% If outer spacing settings don't exist, they will be inherited from the inner
-% spacing settings.
+% If settings for outer spacing \meta{\#2} don't exist, they will be inherited
+% from the inner spacing settings \meta{\#1}.
% \begin{macrocode}
\def\MT@tr@set@space@#1#2#3#4{%
\MT@ifempty{#2}{%
@@ -6778,7 +7222,6 @@ time will almost certainly lead to undesired results. Have your choice!}%
%\end{macro}
%\begin{macro}{\MT@tr@outer@next}
%\begin{macro}{\MT@tr@outer@r}
-%\begin{macro}{\MT@tr@outer@r@}
% The following is borrowed from \pkg{soul}. I've added the cases for italic
% correction, since tracking may also be triggered by text commands (\eg,
% \cmd\textsc).
@@ -6786,6 +7229,25 @@ time will almost certainly lead to undesired results. Have your choice!}%
\def\MT@tr@outer@r{%
\futurelet\MT@tr@outer@next\MT@tr@outer@r@
}
+% \end{macrocode}
+%\end{macro}
+%\end{macro}
+%\begin{macro}{\MT@if@outer@next}
+% We avoid using \cs{ifx} tests, in case \cs{MT@tr@outer@next} is \cmd\let\ to
+% \cs{fi} etc.
+%\changes{v2.5}{2012/02/20}{fix: conflict with \pkg{amsmath}
+% (reported by \contributor Scott Pakin <scott\at pakin.org>)}
+% ^^A private mail, 2012/02/09
+% ^^A (beta:09)
+% \begin{macrocode}
+\def\MT@if@outer@next#1{%
+ \ifx\MT@tr@outer@next#1\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi
+}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\MT@tr@outer@r@}
+%\todo{fix problem with \pkg{xspace}} ^^A http://tex.stackexchange.com/questions/59655
+% \begin{macrocode}
\def\MT@tr@outer@r@{%
\def\MT@temp*{}%
% \end{macrocode}
@@ -6810,12 +7272,12 @@ time will almost certainly lead to undesired results. Have your choice!}%
\def\MT@temp*##1{\ifhmode\hskip\MT@outer@space
%<debug>\MT@dinfo2{]]] adjusting post space (1): \the\MT@outer@space}%
\fi}%
- \ifcat\egroup\noexpand\MT@tr@outer@next
+ \expandafter\ifcat\expandafter\noexpand\csname MT@tr@outer@next\endcsname\egroup
% \end{macrocode}
%\changes{v2.3c}{2008/09/18}{additional test for horizontal mode
% (reported by \contributor Sveinung Heggen <sveinung.heggen\at orkla.no>)}
% ^^A private mail, 2008/09/18
-%\todo{fix problem with tikz}
+%\todo{fix problem with tikz} ^^A fixed in tikz? (2012/02/20)
%^^A \path[->] (N0) edge node {\textls{abc}} (N1);
%^^A reported by \contributor Christian Stark <cstark\at gmx.de>
%^^A ^^A 2009/07/28, MID: <7d81lgF2ad3ckU1@mid.dfncis.de>
@@ -6835,46 +7297,45 @@ time will almost certainly lead to undesired results. Have your choice!}%
% (found by \contributor Lars R\"onnb\"ack <lars.ronnback\at affecto.com>)}
% ^^A <http://code.google.com/p/tufte-latex/issues/detail?id=25>
% \begin{macrocode}
- \ifx\maybe@ic\MT@tr@outer@next
+ \MT@if@outer@next\maybe@ic{%
\MT@set@curr@ok \MT@set@curr@os
\def\MT@temp*{\afterassignment\MT@tr@outer@icr\let\MT@temp=}%
- \else
+ }{%
% \end{macrocode}
% If the next token is \cmd\check@icr\ (from an inner text command), we insert
% ourselves just before it. This will then call \cmd\maybe@ic\ again the next
% round (which however will always insert an italic correction, since it
% doesn't read beyond our group).
% \begin{macrocode}
- \ifx\check@icr\MT@tr@outer@next
+ \MT@if@outer@next\check@icr{%
\def\MT@temp*{\aftergroup\MT@tr@outer@r\check@icr\let\MT@temp=}%
- \else
- \ifx\@sptoken\MT@tr@outer@next
+ }{%
+ \MT@if@outer@next\@sptoken{%
\def\MT@temp* {\ifhmode\hskip\MT@outer@space
-%<debug>\MT@dinfo2{]]] adjusting post spaces (2): \the\MT@outer@space}%
+%<debug>\MT@dinfo2{]]] adjusting post space (2): \the\MT@outer@space}%
\fi}%
- \else
- \ifx~\MT@tr@outer@next
+ }{%
+ \MT@if@outer@next~{%
\def\MT@temp*~{\nobreak\hskip\MT@outer@space
-%<debug>\MT@dinfo2{]]] adjusting post spaces (3): \the\MT@outer@space}%
+%<debug>\MT@dinfo2{]]] adjusting post space (3): \the\MT@outer@space}%
}%
- \else
- \ifx\ \MT@tr@outer@next \else
- \ifx\space\MT@tr@outer@next \else
- \ifx\@xobeysp\MT@tr@outer@next \else
+ }{%
+ \MT@if@outer@next\ \relax{%
+ \MT@if@outer@next\space\relax{%
+ \MT@if@outer@next\@xobeysp\relax{%
% \end{macrocode}
% If there's no outer spacing, there may be outer kerning.
% \begin{macrocode}
\def\MT@temp*{\ifdim\MT@outer@kern=\z@\else\MT@ls@outer@k
%<debug>\MT@dinfo2{--- adjusting post kern: \the\MT@outer@kern}%
\fi}%
- \let\MT@tr@outer@next\relax
- \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
+ \MT@let@nc{MT@tr@outer@next}\relax
+ }}}}}}}\fi
+ \fi\fi
\MT@temp*%
}
% \end{macrocode}
%\end{macro}
-%\end{macro}
-%\end{macro}
%\begin{macro}{\MT@tr@outer@icr}
%\begin{macro}{\MT@tr@outer@icr@}
% Helper macros for the italic correction mess.
@@ -6887,28 +7348,29 @@ time will almost certainly lead to undesired results. Have your choice!}%
% \end{macrocode}
%\end{macro}
%\end{macro}
-% For older \pdftex\ versions, throw an error.
+% For older \pdftex\ versions and \luatex, throw an error.
% \begin{macrocode}
}{
\DeclareRobustCommand\lsstyle{%
- \MT@error{Letterspacing only works with pdftex version 1.40\MessageBreak
- or newer}{Upgrade pdftex, or use the `soul' package instead.}%
+ \MT@error{Letterspacing only works with \MT@engine tex version
+%<pdftex-def> 1.40%
+%<luatex-def> 0.62%
+ \MessageBreak or newer}
+ {Upgrade \MT@engine tex, or try the `soul' package instead.}%
\MT@glet\lsstyle\relax
}
}
% \end{macrocode}
-% And for \luatex, too.
+% And for \xetex, too.
% \begin{macrocode}
-%<*lua>
-\MT@requires@luatex{
- \DeclareRobustCommand\lsstyle{%
- \MT@error{Letterspacing currently doesn't work with luatex}
- {Run pdftex, or use the `soul' package instead.}%
- \MT@glet\lsstyle\relax
- }
-}\relax
-%</lua>
-%</package>
+%</pdftex-def|luatex-def>
+%<*xetex-def>
+\DeclareRobustCommand\lsstyle{%
+ \MT@error{Letterspacing currently doesn't work with xetex}
+ {Run pdftex or luatex, or use the `soul' package instead.}%
+ \MT@glet\lsstyle\relax
+}
+%</xetex-def>
% \end{macrocode}
%\begin{macro}{\textls}
%\changes{v2.0}{2005/09/21}{(beta:1) new command: letterspacing}
@@ -6920,6 +7382,7 @@ time will almost certainly lead to undesired results. Have your choice!}%
% The starred version removes kerning on the sides.
% The optional argument changes the letterspacing factor.
% \begin{macrocode}
+%<*package|letterspace>
\DeclareRobustCommand\textls{%
\@ifstar{\let\MT@ls@adjust@\MT@ls@adjust@empty\MT@textls}%
{\let\MT@ls@adjust@\MT@ls@adjust@relax\MT@textls}%
@@ -6953,6 +7416,10 @@ time will almost certainly lead to undesired results. Have your choice!}%
%\begin{macro}{\MT@ls@set@ls}
% Set current letterspacing amount and outer kerning. This has to be done inside
% the same group as the letterspacing command.
+%\changes{v2.5}{2010/12/02}{allow formulas in optional argument to \cs{textls}
+% (fix by \contributor Heiko Oberdiek <heiko.oberdiek\at googlemail.com>)}
+% ^^A private mail, 2010/12/02
+% ^^A (beta:05)
% \begin{macrocode}
\def\MT@ls@adjust@empty{\let\MT@ls@adjust\@empty}
\def\MT@ls@adjust@relax{\let\MT@ls@adjust\relax}
@@ -6960,6 +7427,7 @@ time will almost certainly lead to undesired results. Have your choice!}%
\MT@ifempty{#1}%
{\let\MT@letterspace@\@undefined}%
{\KV@@sp@def\MT@letterspace@{#1}%
+ \edef\MT@letterspace@{\number\MT@letterspace@}%
\MT@ls@too@large\MT@letterspace@}%
\MT@ls@adjust@
}
@@ -6991,7 +7459,8 @@ time will almost certainly lead to undesired results. Have your choice!}%
% and for adjusted outer kerning.
% \begin{macrocode}
\newdimen\MT@outer@kern
-%<*package>
+%</package|letterspace>
+%<*pdftex-def|luatex-def>
\def\MT@tr@set@okern#1,#2,{%
\let\MT@temp\@empty
\MT@ifempty{#1}{\MT@tr@set@okern@{*}}{\MT@tr@set@okern@{#1}}%
@@ -7020,14 +7489,14 @@ time will almost certainly lead to undesired results. Have your choice!}%
* \fontdimen6\MT@lsfont/2000\relax
\edef\MT@temp{\MT@temp{\the\@tempdima}}%
}
-%</package>
+%</pdftex-def|luatex-def>
% \end{macrocode}
%\end{macro}
%\begin{macro}{\MT@ls@outer@k}
% Adjust outer kerning.
% \begin{macrocode}
-\def\MT@ls@outer@k{\ifhmode\kern\MT@outer@kern\relax\fi}
-%<*package>
+%<pdftex-def|luatex-def|letterspace>\def\MT@ls@outer@k{\ifhmode\kern\MT@outer@kern\relax\fi}
+%<*pdftex-def|luatex-def>
% \end{macrocode}
%\end{macro}
%
@@ -7037,7 +7506,7 @@ time will almost certainly lead to undesired results. Have your choice!}%
% The possibility to disable ligatures is a new features of \pdftex\ 1.30.
%\changes{v2.3}{2007/10/23}{fix: set evaluation didn't work (bug introduced in 2.2)}
% \begin{macrocode}
-\MT@requires@pdftex5{
+%<pdftex-def>\MT@requires@pdftex5{
\def\MT@noligatures{%
\MT@dotrue
\let\@tempa\MT@nl@setname
@@ -7082,7 +7551,8 @@ time will almost certainly lead to undesired results. Have your choice!}%
\MT@vinfo{... Disabling ligatures}%
}%
}
-}\relax
+%<pdftex-def>}\relax
+%</pdftex-def|luatex-def>
% \end{macrocode}
%\end{macro}
%\end{macro}
@@ -7094,6 +7564,7 @@ time will almost certainly lead to undesired results. Have your choice!}%
%\changes{v1.3}{2004/10/27}{check whether list exists}
%\todo{load more than one list}
% \begin{macrocode}
+%<*package>
\def\MT@load@list#1{%
\edef\@tempa{#1}%
\MT@let@cn\@tempb{MT@\MT@feat @c@\@tempa @load}%
@@ -7306,13 +7777,14 @@ time will almost certainly lead to undesired results. Have your choice!}%
% (suggested by \contributor Andreas B\"uhmann <andreas.buehmann\at web.de>)}
% ^^A private mail, 2005/03/10
%
-%\begin{table}\footnotesize
+%\begin{table}\small
%\caption{Order for matching font attributes}\label{tab:match-order}
%\catcode`\!=13 \let!\match
%\setlength\fboxsep{4pt}
%\leavevmode\kern-\dimexpr\fboxsep+\fboxrule\relax
%\fcolorbox{theframe}{white}{^^A
%\begin{minipage}{\textwidth}
+%\def\arraystretch{1.2}
%\begin{tabular}{@{}L{38pt}*{16}{p{19.5pt}<{\centering}@{}}}
% & 1.& 2.& 3.& 4.& 5.& 6.& 7.& 8.& 9.&10.&11.&12.&13.&14.&15.&16.\\
%\cmidrule(r){2-2} \cmidrule(r){3-3} \cmidrule(r){4-4} \cmidrule(r){5-5}
@@ -7345,11 +7817,12 @@ time will almost certainly lead to undesired results. Have your choice!}%
% match.
% \begin{macrocode}
\def\MT@next@listname#1#2#3#4{%
+ \ifnum#1=\z@\MT@nofamilytrue\fi
\edef\@tempa{\MT@encoding
- /\ifnum#1=\@ne \MT@family\fi
- /\ifnum#2=\@ne \MT@series\fi
- /\ifnum#3=\@ne \MT@shape\fi
- /\ifnum#4=\@ne *\fi
+/\ifnum#1=\@ne \MT@family \fi
+/\ifnum#2=\@ne \MT@series \fi
+/\ifnum#3=\@ne \MT@shape \fi
+/\ifnum#4=\@ne *\fi
\MT@context}%
%<debug>\MT@dinfo@nl{1}{trying \@tempa}%
\MT@ifdefined@n@TF{MT@\@tempb @\@tempa}{%
@@ -7557,9 +8030,47 @@ time will almost certainly lead to undesired results. Have your choice!}%
%\end{itemize}
% \begin{macrocode}
\let\MT@char\MT@char@
- \ifnum\MT@char < \z@
- \MT@warn@unknown
- \else
+ \MT@get@slot@
+ \escapechar\m@ne
+}
+%</package>
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\MT@get@slot@}
+%\changes{v2.5}{2010/05/18}{adapt for \xetex}
+% \begin{macrocode}
+%<*pdftex-def|luatex-def|xetex-def>
+\def\MT@get@slot@{%
+% \end{macrocode}
+% If it's a legacy (\ie, <TFM>) font, proceed as usual.
+% \begin{macrocode}
+%<xetex-def> \ifnum\XeTeXfonttype\MT@font=\z@
+ \ifnum\MT@char > \m@ne
+% \end{macrocode}
+% In \luatex, it may also be a glyph name, prefixed with `|/|'.
+%\changes{v2.5}{2012/08/14}{adapt for \luatex\ (requested by \contributor Georg Duffner <g.duffner\at gmail.com>)}
+% ^^A private mail, 2012/07/17
+% ^^A (beta:10)
+% \begin{macrocode}
+%<*luatex-def>
+ \ifnum\MT@char=47\relax
+ \ifMT@norest \else
+ \@tempcnta=\directlua{
+ local glyph = microtype.name_to_slot([[\expandafter\@gobble\@tempa]])
+ if glyph then tex.write(glyph)
+ else tex.write(-1)
+ end
+ }\relax
+ \ifnum\@tempcnta<\z@
+ \MT@warn@unknown
+ \let\MT@char\m@ne
+ \else
+ \edef\MT@char{\the\@tempcnta}%
+%<debug>\MT@dinfo@nl{3}{> `\the\MT@toks' is a glyph name (\the\@tempcnta)}%
+ \fi
+ \fi
+ \else
+%</luatex-def>
% \end{macrocode}
% If the user has specified something like `|fi|', or wanted to define a number
% but forgot to use three digits, we'll have something left of the string. In
@@ -7567,17 +8078,79 @@ time will almost certainly lead to undesired results. Have your choice!}%
% \begin{macrocode}
\ifMT@norest \else
\MT@warn@rest
- \let\MT@char\m@ne
+%<pdftex-def|luatex-def> \let\MT@char\m@ne
+%<xetex-def> \let\MT@char\@empty
+ \fi
+%<luatex-def> \fi
+ \else
+ \MT@warn@unknown
+ \fi
+%<*xetex-def>
+ \else
+% \end{macrocode}
+% There are more possibilities for \xetex:
+% It may also be a glyph name (prefixed with~`|/|'). We indicate this to
+% \cs{MT@get@charwd} by reversing the sign of \cs{MT@char@}.
+% \begin{macrocode}
+ \ifnum\MT@char=47\relax
+ \ifMT@norest \edef\MT@char{U47}%
+ \else
+ \@tempcnta=\XeTeXglyphindex"\expandafter\@gobble\@tempa"\relax
+ \ifnum\@tempcnta=\z@
+ \MT@warn@unknown
+ \let\MT@char\@empty
+ \else
+ \edef\MT@char{\@tempa\space}%
+ \edef\MT@char@{-\the\@tempcnta}%
+%<debug>\MT@dinfo@nl{3}{> `\the\MT@toks' is a glyph name (\the\@tempcnta)}%
+ \fi
+ \fi
+ \else
+ \ifnum\MT@char > \m@ne
+ \ifMT@norest
+% \end{macrocode}
+% Or, it's a Unicode number, which we mustn't translate into a glyph number,
+% since the latter is font-specific.
+% \begin{macrocode}
+ \@tempcnta=\XeTeXcharglyph\MT@char\relax
+ \ifnum\@tempcnta=\z@
+ \MT@info@missing@char
+ \let\MT@char\@empty
+ \else
+%<debug>\MT@dinfo@nl{3}{> (glyph number: \the\@tempcnta,
+%<debug> glyph name: \XeTeXglyphname\MT@font\@tempcnta)}%
+ \edef\MT@char{U\MT@char}%
+ \fi
+ \else
+ \MT@warn@rest
+ \let\MT@char\@empty
+ \fi
+ \else
+ \MT@warn@unknown
+ \let\MT@char\@empty
+ \fi
\fi
\fi
- \escapechar\m@ne
+%</xetex-def>
}
+%</pdftex-def|luatex-def|xetex-def>
% \end{macrocode}
-%\end{macro}
-%\begin{macro}{\ifMT@norest}
-% Test whether all of the string has been used up.
+% This is the lua function to translate glyph name into Unicode number, stolen
+% from \pkg{luaotfload} (file \file{otfl-font-dum.lua}).
% \begin{macrocode}
-\newif\ifMT@norest
+%<*luafile>
+function microtype.name_to_slot(name)
+ if fonts then
+ local tfmdata = fonts.ids[font.current()]
+ if tfmdata and tfmdata.shared then
+ local otfdata = tfmdata.shared.otfdata
+ local unicode = otfdata.luatex.unicodes[name]
+ return unicode and (type(unicode) == "number" and unicode or unicode[1])
+ end
+ end
+end
+
+%</luafile>
% \end{macrocode}
%\end{macro}
%\begin{macro}{\MT@is@letter}
@@ -7585,6 +8158,28 @@ time will almost certainly lead to undesired results. Have your choice!}%
%\changes{v1.8}{2005/04/04}{warning for non-<ASCII> characters}
%\changes{v1.9}{2005/10/22}{using \cmd\catcode\ should be more efficient than
% inspecting the \cmd\meaning}
+%\begin{macro}{\MT@max@char}
+%\begin{macro}{\MT@max@slot}
+% Warning if resulting character or slot number is too large.
+% \begin{macrocode}
+%<*pdftex-def|luatex-def|xetex-def>
+\def\MT@max@char
+%<pdftex-def> {127 }
+%<luatex-def|xetex-def> {1114111 }
+\def\MT@max@slot
+%<pdftex-def> {255 }
+%<luatex-def|xetex-def> {1114111 }
+%</pdftex-def|luatex-def|xetex-def>
+% \end{macrocode}
+%\end{macro}
+%\end{macro}
+%\begin{macro}{\ifMT@norest}
+% Test whether all of the string has been used up.
+% \begin{macrocode}
+%<*package>
+\newif\ifMT@norest
+% \end{macrocode}
+%\end{macro}
% \begin{macrocode}
\def\MT@is@letter#1#2\relax{%
\ifcat a\noexpand#1\relax
@@ -7599,7 +8194,7 @@ time will almost certainly lead to undesired results. Have your choice!}%
\edef\MT@char@{\number`#1}%
%<debug>\MT@dinfo@nl{3}{> `\the\MT@toks' is a character (\MT@char@)}%
\ifx\\#2\\%
- \ifnum\MT@char@ > 127 \MT@warn@ascii \fi
+ \ifnum\MT@char@ > \MT@max@char \MT@warn@ascii \fi
\else
\MT@norestfalse
\expandafter\MT@is@number#1#2\relax\relax
@@ -7636,7 +8231,7 @@ time will almost certainly lead to undesired results. Have your choice!}%
}\MT@norestfalse
\fi
\fi
- \ifnum\MT@char@ > \@cclv
+ \ifnum\MT@char@ > \MT@max@slot
\MT@warn@number@too@large{\noexpand#1\noexpand#2\noexpand#3}%
\let\MT@char@\m@ne
\fi
@@ -7778,20 +8373,48 @@ time will almost certainly lead to undesired results. Have your choice!}%
% \end{macrocode}
%\SpecialEscapechar{\/}
% \begin{macrocode}
- /MT@map@tlist@n{/\CHAR}/@makeother
+ /MT@map@tlist@n{/\CHARLEX}/@makeother
/lowercase{%
/def/x{/endgroup
/def/MT@charstring{\CHAR"}%
/def/MT@is@char##1\CHAR"##2##3##4/relax{%
+ /ifx/relax##4/relax
+ /ifMT@xunicode
+ /expandafter/MT@is@charx/MT@strip@prefix##1>/relax\CHAR "%
+ /relax/relax/relax/relax/relax
+ /fi
+ /else
+ /ifx/relax##1/relax
+ /if##3\/relax
+ /edef/MT@char@{/number"##2}%
+ /MT@ifstreq/MT@charstring{##3##4}/relax/MT@norestfalse
+ /else
+ /edef/MT@char@{/number"##2##3}%
+ /MT@ifstreq/MT@charstring{##4}/relax/MT@norestfalse
+ /fi
+%<debug> /MT@dinfo@nl{3}{> `/the/MT@toks' is a \char (/MT@char@)}%
+ /fi
+ /fi
+ }%
+% \end{macrocode}
+%\end{macro}
+%\end{macro}
+%\begin{macro}{\MT@charxstring}
+%\begin{macro}{\MT@strip@prefix}
+%\begin{macro}{\MT@is@charx}
+% For \pkg{xunicode}, which doesn't \cmd\countdef, but rather \cmd\def s the chars.
+%\changes{v2.5}{2010/02/27}{compatibility with \pkg{xunicode}}
+%\SpecialEscapechar{\/}
+% \begin{macrocode}
+ /def/MT@charxstring{\CHAR "}%
+ /def/MT@strip@prefix##1>##2/relax{##2}%
+ /def/MT@is@charx##1\CHAR "##2##3##4##5##6/relax{%
/ifx/relax##1/relax
- /if##3\/relax
- /edef/MT@char@{/number"##2}%
- /MT@ifstreq/MT@charstring{##3##4}/relax/MT@norestfalse
- /else
- /edef/MT@char@{/number"##2##3}%
- /MT@ifstreq/MT@charstring{##4}/relax/MT@norestfalse
+ /ifx/relax##6/relax/else
+ /edef/MT@char@{/number"##2##3##4##5}%
+ /MT@ifstreq{\RELAX >\CHAR "}{##6}/relax/MT@norestfalse
+%<debug> /MT@dinfo@nl{3}{> `/the/MT@toks' is a xunicode \char (/MT@char@)}%
/fi
-%<debug> /MT@dinfo@nl{3}{> `/the/MT@toks' is a \char (/MT@char@)}%
/fi
}%
}%
@@ -7800,6 +8423,7 @@ time will almost certainly lead to undesired results. Have your choice!}%
% \end{macrocode}
%\end{macro}
%\end{macro}
+%\end{macro}
%\begin{macro}{\MT@is@composite}
% Here, we are dealing with accented characters, specified as two tokens.
%\changes{v1.7}{2005/03/10}{new macro: construct command for composite character;
@@ -7821,6 +8445,16 @@ time will almost certainly lead to undesired results. Have your choice!}%
\string\csname\MT@encoding\endcsname
\MT@detokenize@n{#1}-\MT@detokenize@n{#2}\endcsname}%
\expandafter\expandafter\expandafter\MT@is@letter\MT@char\relax\relax
+% \end{macrocode}
+% Again, \pkg{xunicode}.
+% \begin{macrocode}
+ \ifnum\MT@char@ < \z@
+ \ifMT@xunicode
+ \edef\MT@char{\MT@exp@two@c\MT@strip@prefix\meaning\MT@char>\relax}%
+ \expandafter\MT@exp@two@c\expandafter\MT@is@charx\expandafter
+ \MT@char\MT@charxstring\relax\relax\relax\relax\relax
+ \fi
+ \fi
\fi
}
% \end{macrocode}
@@ -7981,6 +8615,7 @@ time will almost certainly lead to undesired results. Have your choice!}%
% It doesn't work for plain, of course, which doesn't have \cmd\pickup@font.
% \begin{macrocode}
%</package>
+%<*package|letterspace>
%<plain>\MT@requires@latex2{
\MT@addto@setup{%
% \end{macrocode}
@@ -8143,18 +8778,26 @@ time will almost certainly lead to undesired results. Have your choice!}%
\def\MT@check@font{\MT@exp@one@n\MT@in@clist\MT@font\MT@font@list}
% \end{macrocode}
%\end{macro}
-%\begin{macro}{\MT@register@subst@font}
-% Register the substituted font.
-% \begin{macrocode}
-\def\MT@register@subst@font{\xdef\MT@font@list{\MT@font@list\font@name,}}
-% \end{macrocode}
-%\end{macro}
%\begin{macro}{\MT@register@font}
% Register the current font.
% \begin{macrocode}
\def\MT@register@font{\xdef\MT@font@list{\MT@font@list\MT@font,}}
% \end{macrocode}
%\end{macro}
+%\begin{macro}{\MT@register@subst@font}
+% Register the substituted font
+%\changes{v2.5}{2010/08/23}{only register if it isn't registered already
+% (reported by \contributor George Gratzer <gratzer\at me.com>
+% and \contributor Josep Maria Font <jmfont\at ub.edu>)}
+% ^^A 1. <http://permalink.gmane.org/gmane.comp.tex.macosx/38293>
+% ^^A 2. <http://permalink.gmane.org/gmane.comp.tex.macosx/38303>
+% ^^A (beta:02)
+% (only if it isn't registered already).
+% \begin{macrocode}
+\def\MT@register@subst@font{\MT@exp@one@n\MT@in@clist\font@name\MT@font@list
+ \ifMT@inlist@\else\xdef\MT@font@list{\MT@font@list\font@name,}\fi}
+% \end{macrocode}
+%\end{macro}
%
%\subsubsection{Context-sensitive setup}
%
@@ -8191,12 +8834,17 @@ time will almost certainly lead to undesired results. Have your choice!}%
%\begin{macro}{\MT@register@subst@font@cx}
% Add the substituted font to each feature list.
%\todo{remove from other lists?}
+%\changes{v2.5}{2010/08/23}{only register if it isn't registered already} ^^A (beta:02)
% \begin{macrocode}
\def\MT@register@subst@font@cx{%
\MT@map@clist@c\MT@active@features{%
- \MT@exp@cs\MT@xadd
- {MT@##1@\csname MT@##1@context\endcsname font@list}%
- {\font@name,}%
+ \expandafter\MT@exp@one@n\expandafter\MT@in@clist\expandafter\font@name
+ \csname MT@##1@\csname MT@##1@context\endcsname font@list\endcsname
+ \ifMT@inlist@ \else
+ \MT@exp@cs\MT@xadd
+ {MT@##1@\csname MT@##1@context\endcsname font@list}%
+ {\font@name,}%
+ \fi
}%
}
% \end{macrocode}
@@ -8246,6 +8894,12 @@ time will almost certainly lead to undesired results. Have your choice!}%
\DeclareRobustCommand\microtypecontext[1]{%
\MT@setup@contexts
\let\MT@reset@context\relax
+% \end{macrocode}
+% We need to ensure that math fonts are set up anew.
+%\changes{v2.5}{2012/11/13}{fix: ensure to set up math fonts (reported by \contributor RazorXsr <@\at @>)}
+% ^^A http://tex.stackexchange.com/questions/82556/pdftex-font-expansion-error-setexpansion-in-microtype-package
+% \begin{macrocode}
+ \let\glb@currsize\@empty
\setkeys{MTC}{#1}%
\selectfont
\MT@reset@context
@@ -8502,11 +9156,15 @@ time will almost certainly lead to undesired results. Have your choice!}%
%\end{macro}
%\begin{macro}{\MT@font@sets}
%\begin{macro}{\MT@fix@font@set}
-% Fully expand the font specification and fix catcodes for all font sets.
+% Fully expand the font specification and fix catcodes for all font sets. Also
+% remove \pkg{fontspec}'s counters.
% \begin{macrocode}
\let\MT@font@sets\@empty
\def\MT@fix@font@set#1{%
\xdef#1{#1}%
+ \ifMT@fontspec
+ \xdef#1{\expandafter\MT@scrubfeatures#1()\relax}%
+ \fi
\global\@onelevel@sanitize#1%
}
% \end{macrocode}
@@ -8864,10 +9522,11 @@ time will almost certainly lead to undesired results. Have your choice!}%
% settings for the aliased font will be loaded.
%\changes{v1.5}{2004/12/03}{remove spaces around arguments}
%\changes{v1.8}{2005/05/09}{warning when overriding an alias font}
+%\changes{v2.5}{2010/05/17}{remove spaces in font name}
% \begin{macrocode}
\renewcommand*\DeclareMicrotypeAlias[2]{%
- \KV@@sp@def\@tempa{#1}%
- \KV@@sp@def\@tempb{#2}%
+ \edef\@tempa{\zap@space#1 \@empty}%
+ \edef\@tempb{\zap@space#2 \@empty}%
\@onelevel@sanitize\@tempb
\MT@ifdefined@n@T{MT@\@tempa @alias}{%
\MT@warning{Alias font family `\@tempb' will override
@@ -8892,10 +9551,11 @@ time will almost certainly lead to undesired results. Have your choice!}%
%\changes{v1.7}{2005/03/22}{new command (suggested by
% \contributor Andreas B\"uhmann <andreas.buehmann\at web.de>)}
% ^^A private mail, 2005/03/21
+%\changes{v2.5}{2010/05/13}{remove all spaces in font name}
% May be used to load a configuration file manually.
% \begin{macrocode}
\def\LoadMicrotypeFile#1{%
- \KV@@sp@def\@tempa{#1}%
+ \edef\@tempa{\zap@space#1 \@empty}%
\@onelevel@sanitize\@tempa
\MT@exp@one@n\MT@in@clist\@tempa\MT@file@list
\ifMT@inlist@
@@ -8913,6 +9573,8 @@ time will almost certainly lead to undesired results. Have your choice!}%
\MT@end@catcodes
\fi
}
+%</package>
+%</package|letterspace>
% \end{macrocode}
%\end{macro}
%
@@ -8930,7 +9592,8 @@ time will almost certainly lead to undesired results. Have your choice!}%
%
% The optional argument may be used to disable selected ligatures only.
% \begin{macrocode}
-\MT@requires@pdftex5{
+%<*pdftex-def|luatex-def>
+%<pdftex-def>\MT@requires@pdftex5{
\def\DisableLigatures{%
\MT@begin@catcodes
\MT@DisableLigatures
@@ -8943,19 +9606,25 @@ time will almost certainly lead to undesired results. Have your choice!}%
\gdef\MT@nl@setname{no ligatures}%
\MT@end@catcodes
}
-}{
+%<pdftex-def>}{
+%</pdftex-def|luatex-def>
% \end{macrocode}
%\end{macro}
%\end{macro}
%\end{macro}
% If \pdftex\ is too old, we throw an error.
% \begin{macrocode}
+%<*pdftex-def|xetex-def>
\renewcommand*\DisableLigatures[2][]{%
\MT@error{Disabling ligatures of a font is only possible\MessageBreak
with pdftex version 1.30 or newer.\MessageBreak
- Ignoring \string\DisableLigatures}{Upgrade pdftex.}%
-}
+ Ignoring \string\DisableLigatures}{%
+%<pdftex-def> Upgrade
+%<xetex-def> Use
+ pdftex.}%
}
+%<pdftex-def>}
+%</pdftex-def|xetex-def>
% \end{macrocode}
%\end{macro}
%
@@ -8967,12 +9636,14 @@ time will almost certainly lead to undesired results. Have your choice!}%
% be overwritten.
%\changes{v2.0}{2005/10/04}{(beta:1) new command: interaction with \pkg{babel}}
% \begin{macrocode}
+%<*package>
\def\DeclareMicrotypeBabelHook#1#2{%
\MT@map@clist@n{#1}{%
\KV@@sp@def\@tempa{##1}%
\MT@gdef@n{MT@babel@\@tempa}{#2}%
}%
}
+%</package>
% \end{macrocode}
%\end{macro}
%
@@ -8994,6 +9665,7 @@ time will almost certainly lead to undesired results. Have your choice!}%
% A new macro called |\MT@pr@c@|\meta{name} will be defined to be \meta{\#3}
% (\ie, the list of characters, not expanded).
% \begin{macrocode}
+%<*pdftex-def|xetex-def|luatex-def>
\def\SetProtrusion{%
\MT@begin@catcodes
\MT@SetProtrusion
@@ -9029,6 +9701,7 @@ time will almost certainly lead to undesired results. Have your choice!}%
\MT@gdef@n{MT@pr@c@\MT@pr@c@name}{#3}%
\MT@end@catcodes
}
+%</pdftex-def|xetex-def|luatex-def>
% \end{macrocode}
%\end{macro}
%\end{macro}
@@ -9041,6 +9714,7 @@ time will almost certainly lead to undesired results. Have your choice!}%
% \cs{SetExpansion} only differs in that it allows some extra options
% (|stretch|, |shrink|, |step|, |auto|).
% \begin{macrocode}
+%<*pdftex-def|luatex-def>
\def\SetExpansion{%
\MT@begin@catcodes
\MT@SetExpansion
@@ -9070,6 +9744,7 @@ time will almost certainly lead to undesired results. Have your choice!}%
\MT@gdef@n{MT@ex@c@\MT@ex@c@name}{#3}%
\MT@end@catcodes
}
+%</pdftex-def|luatex-def>
% \end{macrocode}
%\end{macro}
%\end{macro}
@@ -9085,6 +9760,7 @@ time will almost certainly lead to undesired results. Have your choice!}%
% (suggested by \contributor Steven~E. Harris <seh\at panix.com>)}
% ^^A private mail, 2007/06/15
% \begin{macrocode}
+%<*pdftex-def|luatex-def>
\def\SetTracking{%
\MT@begin@catcodes
\MT@SetTracking
@@ -9110,11 +9786,13 @@ time will almost certainly lead to undesired results. Have your choice!}%
tracking set `\MT@curr@set@name'}}}%
\MT@end@catcodes
}
+%</pdftex-def|luatex-def>
% \end{macrocode}
%\end{macro}
%\begin{macro}{\SetExtraSpacing}
%\changes{v2.0}{2005/09/28}{(beta:1) new command: adjustment of interword spacing}
% \begin{macrocode}
+%<*pdftex-def>
\def\SetExtraSpacing{%
\MT@begin@catcodes
\MT@SetExtraSpacing
@@ -9165,6 +9843,7 @@ time will almost certainly lead to undesired results. Have your choice!}%
\MT@gdef@n{MT@kn@c@\MT@kn@c@name}{#3}%
\MT@end@catcodes
}
+%</pdftex-def>
% \end{macrocode}
%\end{macro}
%\end{macro}
@@ -9177,6 +9856,7 @@ time will almost certainly lead to undesired results. Have your choice!}%
% We first set the name (if specified), then remove it from the list, and set
% the remaining keys.
% \begin{macrocode}
+%<*package>
\def\MT@set@named@keys#1#2{%
\def\x##1name=##2,##3\@nil{%
\setkeys{#1}{name=##2}%
@@ -9210,6 +9890,29 @@ time will almost certainly lead to undesired results. Have your choice!}%
}
% \end{macrocode}
%\end{macro}
+%\begin{macro}{\MT@define@code@key@family}
+%\changes{v2.5}{2011/02/07}{compatibility with \pkg{fontspec}: remove its internal counter
+% (reported by \contributor Till~A. Heilmann <till.heilmann\at unibas.ch>)}
+% ^^A <http://permalink.gmane.org/gmane.comp.tex.lualatex.devel/668>
+% ^^A (beta:06)
+% Remove \pkg{fontspec}'s internal feature counter.
+% \begin{macrocode}
+\def\MT@define@code@key@family#1{%
+ \define@key{MT@#1}{family}[]{%
+ \@tempcnta=\@ne
+ \MT@map@clist@n{##1}{%
+ \KV@@sp@def\MT@val{####1}%
+ \MT@get@highlevel{family}%
+ \ifMT@fontspec
+ \edef\x{\edef\noexpand\MT@val{\noexpand\MT@scrubfeature\MT@val()\relax}}\x
+ \fi
+ \MT@edef@n{MT@tempfamily\the\@tempcnta}{\MT@val}%
+ \advance\@tempcnta \@ne
+ }%
+ }%
+}
+% \end{macrocode}
+%\end{macro}
%\begin{macro}{\MT@define@code@key@size}
%\changes{v1.9c}{2006/01/25}{fix: embrace \cs{MT@tempsize} in \cmd\csname\
% (bug introduced in v1.9b)}
@@ -9232,6 +9935,10 @@ time will almost certainly lead to undesired results. Have your choice!}%
%\end{macro}
%\begin{macro}{\MT@define@code@key@font}
%\changes{v1.9c}{2006/01/25}{fix: context was ignored}
+%\changes{v2.5}{2011/09/04}{scrub \pkg{fontspec} feature count
+% (found by \contributor Meho~R <meho.2005\at gmail.com>)}
+% ^^A MID: <e16242e2-49cf-47bf-9ab4-66f81ced4c7a@glegroupsg2000goo.googlegroups.com>
+% ^^A (beta:08)
% \begin{macrocode}
\def\MT@define@code@key@font#1{%
\define@key{MT@#1}{font}[]{%
@@ -9239,6 +9946,9 @@ time will almost certainly lead to undesired results. Have your choice!}%
\KV@@sp@def\MT@val{####1}%
\MT@ifstreq\MT@val*{\def\MT@val{*/*/*/*/*}}\relax
\expandafter\MT@get@font@and@size\MT@val/////\@nil
+ \ifMT@fontspec
+ \edef\@tempb{\expandafter\MT@scrubfeatures\@tempb()\relax}%
+ \fi
\MT@xdef@n{MT@\MT@permutelist @\@tempb\MT@extra@context}%
{\csname MT@\MT@permutelist @name\endcsname}%
%<debug>\MT@dinfo@nl{1}{initialising: use list for font \@tempb=\MT@val
@@ -9262,7 +9972,7 @@ time will almost certainly lead to undesired results. Have your choice!}%
%\end{macro}
% \begin{macrocode}
\MT@define@code@key{encoding}{cfg}
-\MT@define@code@key{family} {cfg}
+\MT@define@code@key@family {cfg}
\MT@define@code@key{series} {cfg}
\MT@define@code@key{shape} {cfg}
\MT@define@code@key@size {cfg}
@@ -9276,20 +9986,35 @@ time will almost certainly lead to undesired results. Have your choice!}%
}
% \end{macrocode}
%\end{macro}
+%\begin{macro}{\MT@listname@count}
% The options in the optional first argument.
% \begin{macrocode}
+\newcount\MT@listname@count
\MT@map@clist@c\MT@features{%
% \end{macrocode}
+%\end{macro}
%\changes{v1.9a}{2005/11/21}{`\meta{file name}\texttt{/}\meta{line number}' as default list name}
% Use file name and line number as the list name if the user didn't bother
-% to invent one.
+% to invent one -- also check whether the name already exists (in case more
+% than one unnamed list is loaded in the same line, for example
+% \cmd\AtBeginDocument).
+%\changes{v2.5}{2011/02/26}{fix: check whether `\meta{file}\texttt{/}\meta{line}' list name already exists
+% (reported by \contributor Till~A. Heilmann <till.heilmann\at unibas.ch>)}
+% ^^A private mail, 2011/02/25
+% ^^A (beta:07)
%\changes{v1.3}{2004/10/27}{fix: specifying \texttt{load} option does no
% longer require to give a \texttt{name}, too}
%\changes{v2.2}{2007/01/28}{simplify key declarations}
% \begin{macrocode}
\define@key{MT@#1@c}{name}[]{%
\MT@ifempty{##1}{%
- \MT@edef@n{MT@#1@c@name}{\MT@curr@file/\the\inputlineno}%
+ \MT@ifdefined@n@TF{MT@#1@c@\MT@curr@file/\the\inputlineno}{%
+ \global\advance\MT@listname@count\@ne
+ \MT@edef@n{MT@#1@c@name}{\MT@curr@file/\the\inputlineno
+ (\number\MT@listname@count)}%
+ }{%
+ \MT@edef@n{MT@#1@c@name}{\MT@curr@file/\the\inputlineno}%
+ }%
}{%
\MT@edef@n{MT@#1@c@name}{##1}%
\MT@ifdefined@n@T{MT@#1@c@\csname MT@#1@c@name\endcsname}{%
@@ -9311,36 +10036,30 @@ time will almost certainly lead to undesired results. Have your choice!}%
% Automatically enable font copying if we find a protrusion or expansion context.
% After the preamble, check whether font copying is enabled.
% For older \pdftex\ versions, disallow.
-% Also disable for \luatex.
+%\changes{v2.5}{2010/02/27}{allow contexts for \luatex}
+% It also works with \luatex\ 0.30 or newer.
% \begin{macrocode}
-\MT@requires@pdftex7{
-%<*lua>
- \MT@requires@luatex{
- \define@key{MT@ex@c}{context}[]{%
- \MT@error{Expansion contexts currently don't work with luatex.\MessageBreak
- Ignoring `context' key\on@line}%
- {Use pdftex instead.}%
- }
- }{
-%</lua>
+%</package>
+%<*pdftex-def|luatex-def>
+%<pdftex-def>\MT@requires@pdftex7{
+ \define@key{MT@ex@c}{context}[]{%
+ \MT@ifempty{#1}\relax{%
+ \MT@glet\MT@copy@font\MT@copy@font@
+ \def\MT@extra@context{#1}%
+ }%
+ }
+ \MT@addto@setup{%
\define@key{MT@ex@c}{context}[]{%
- \MT@ifempty{#1}\relax{%
- \MT@glet\MT@copy@font\MT@copy@font@
- \def\MT@extra@context{#1}%
- }%
- }
- \MT@addto@setup{%
- \define@key{MT@ex@c}{context}[]{%
- \ifx\MT@copy@font\MT@copy@font@
- \MT@ifempty{#1}\relax{\def\MT@extra@context{#1}}%
- \else
- \MT@error{\MT@MT\space isn't set up for expansion contexts.\MessageBreak
- Ignoring `context' key\on@line}%
- {Either move the settings inside the preamble,\MessageBreak
- or load the package with the `copyfonts' option.}%
- \fi
- }%
- }
+ \ifx\MT@copy@font\MT@copy@font@
+ \MT@ifempty{#1}\relax{\def\MT@extra@context{#1}}%
+ \else
+ \MT@error{\MT@MT\space isn't set up for expansion contexts.\MessageBreak
+ Ignoring `context' key\on@line}%
+ {Either move the settings inside the preamble,\MessageBreak
+ or load the package with the `copyfonts' option.}%
+ \fi
+ }%
+ }
% \end{macrocode}
% Protrusion contexts \emph{may} also work without copying the font, so we
% don't issue an error but only a warning. The problem is that \pdftex\ only
@@ -9349,36 +10068,50 @@ time will almost certainly lead to undesired results. Have your choice!}%
% the whole paragraph). When different fonts are loaded -- like in the example
% with the footnote markers -- we don't need to copy the fonts.
% \begin{macrocode}
+ \define@key{MT@pr@c}{context}[]{%
+ \MT@ifempty{#1}\relax{%
+ \MT@glet\MT@copy@font\MT@copy@font@
+ \def\MT@extra@context{#1}%
+ }%
+ }
+ \MT@addto@setup{%
\define@key{MT@pr@c}{context}[]{%
- \MT@ifempty{#1}\relax{%
- \MT@glet\MT@copy@font\MT@copy@font@
- \def\MT@extra@context{#1}%
- }%
- }
- \MT@addto@setup{%
- \define@key{MT@pr@c}{context}[]{%
- \MT@ifempty{#1}\relax{\def\MT@extra@context{#1}}%
- \ifx\MT@copy@font\MT@copy@font@\else
- \MT@warning@nl{If protrusion contexts don't work as expected,
- \MessageBreak load the package with the `copyfonts' option}%
- \fi
- }%
- }
-%<lua> }
+ \MT@ifempty{#1}\relax{\def\MT@extra@context{#1}}%
+ \ifx\MT@copy@font\MT@copy@font@\else
+ \MT@warning@nl{If protrusion contexts don't work as expected,
+ \MessageBreak load the package with the `copyfonts' option}%
+ \fi
+ }%
+ }
+%</pdftex-def|luatex-def>
+%<*pdftex-def>
}{
\define@key{MT@ex@c}{context}[]{%
\MT@error{Expansion contexts only work with pdftex 1.40.4\MessageBreak
or later. Ignoring `context' key\on@line}%
{Upgrade pdftex.}%
}
-}
+%</pdftex-def>
+%<*pdftex-def|xetex-def>
+ \define@key{MT@pr@c}{context}[]{%
+ \MT@error{Protrusion contexts only work with pdftex
+%<pdftex-def> 1.40.4\MessageBreak or later.
+%<xetex-def> \MessageBreak or luatex.
+ Ignoring `context' key\on@line}%
+%<pdftex-def> {Upgrade pdftex.}%
+%<xetex-def> {Use pdftex or luatex.}%
+ }
+%</pdftex-def|xetex-def>
+%<pdftex-def>}
% \end{macrocode}
%\begin{macro}{\MT@warn@nodim}
% \begin{macrocode}
+%<*package>
\def\MT@warn@nodim#1{%
\MT@warning{`\@tempa' is not a dimension.\MessageBreak
Ignoring it and setting values relative to\MessageBreak #1}%
}
+%</package>
% \end{macrocode}
%\end{macro}
%\changes{v1.8}{2005/04/14}{\cs{SetProtrusion}: new key: \texttt{unit}}
@@ -9389,6 +10122,7 @@ time will almost certainly lead to undesired results. Have your choice!}%
% Protrusion codes may be relative to character width, or to any dimension.
%\todo{new key for unit: \texttt{dimen} (for \texttt{kerning}, especially)}
% \begin{macrocode}
+%<*pdftex-def|xetex-def|luatex-def>
\define@key{MT@pr@c}{unit}[character]{%
\MT@glet@nc{MT@pr@c@\MT@curr@set@name @unit}\@empty
\def\@tempa{#1}%
@@ -9402,9 +10136,11 @@ time will almost certainly lead to undesired results. Have your choice!}%
{\MT@warn@nodim{character widths}}%
}%
}
+%</pdftex-def|xetex-def|luatex-def>
% \end{macrocode}
% Tracking may only be relative to a dimension.
% \begin{macrocode}
+%<*pdftex-def|luatex-def>
\define@key{MT@tr@c}{unit}[1em]{%
\MT@glet@nc{MT@tr@c@\MT@curr@set@name @unit}\@empty
\def\@tempa{#1}%
@@ -9413,9 +10149,11 @@ time will almost certainly lead to undesired results. Have your choice!}%
{\MT@warn@nodim{1em}%
\MT@gdef@n{MT@tr@c@\MT@curr@set@name @unit}{1em}}%
}
+%</pdftex-def|luatex-def>
% \end{macrocode}
% Spacing and kerning codes may additionally be relative to space dimensions.
% \begin{macrocode}
+%<*pdftex-def>
\MT@map@clist@n{sp,kn}{%
\define@key{MT@#1@c}{unit}[space]{%
\MT@glet@nc{MT@#1@c@\MT@curr@set@name @unit}\@empty
@@ -9430,9 +10168,11 @@ time will almost certainly lead to undesired results. Have your choice!}%
}%
}%
}
+%</pdftex-def>
% \end{macrocode}
% The first argument to \cs{SetExpansion} accepts some more options.
% \begin{macrocode}
+%<*pdftex-def|luatex-def>
\MT@map@clist@n{stretch,shrink,step}{%
\define@key{MT@ex@c}{#1}[]{%
\MT@ifempty{##1}\relax{%
@@ -9457,22 +10197,26 @@ time will almost certainly lead to undesired results. Have your choice!}%
%\changes{v1.7}{2005/03/07}{fix: remove space after \texttt{autoexpand}}
%\changes{v1.7}{2005/03/07}{disallow automatic expansion if \pdftex\ too old}
% \begin{macrocode}
- \MT@requires@pdftex4{%
+%<pdftex-def> \MT@requires@pdftex4{%
\MT@gdef@n{MT@ex@c@\MT@curr@set@name @auto}{autoexpand}%
+%<*pdftex-def>
}{%
\MT@warning{pdftex too old for automatic font expansion}%
}
+%</pdftex-def>
\else
- \MT@requires@pdftex4{%
+%<pdftex-def> \MT@requires@pdftex4{%
\MT@glet@nc{MT@ex@c@\MT@curr@set@name @auto}\@empty
- }\relax
+%<pdftex-def> }\relax
\fi
}
+%</pdftex-def|luatex-def>
% \end{macrocode}
% Tracking: Interword spacing and outer kerning.
% The variant with space in case \cs{SetTracking} is called inside an argument
% (\eg, to \cmd\IfFileExists).
% \begin{macrocode}
+%<*pdftex-def|luatex-def>
\MT@define@opt@key{tr}{spacing}
\MT@define@opt@key{tr}{outerspacing}
\MT@define@opt@key{tr}{outerkerning}
@@ -9484,14 +10228,17 @@ time will almost certainly lead to undesired results. Have your choice!}%
\define@key{MT@tr@c}{outer spacing}[]{\setkeys{MT@tr@c}{outerspacing={#1}}}
\define@key{MT@tr@c}{outer kerning}[]{\setkeys{MT@tr@c}{outerkerning={#1}}}
\define@key{MT@tr@c}{no ligatures}[]{\setkeys{MT@tr@c}{noligatures={#1}}}
+%</pdftex-def|luatex-def>
% \end{macrocode}
%
%\subsubsection{Character inheritance}
%
%\begin{macro}{\DeclareCharacterInheritance}
%\changes{v1.1}{2004/09/15}{new command: possibility to specify character inheritance}
+%^^A\changes{v1.2}{2004/09/29}{check whether only one encoding specified}
%\changes{v1.9d}{2006/02/09}{fix: empty context}
%\changes{v1.9e}{2006/07/26}{new key `\texttt{inputenc}' to set the input encoding}
+%\changes{v2.5}{2010/05/18}{allow more than one encoding}
% This macro may be used in the configuration files to declare characters that
% should inherit protrusion resp. expansion values from other characters. Thus,
% there is no need to define all accented characters (\eg, |\`a|, |\'a|,
@@ -9504,6 +10251,7 @@ time will almost certainly lead to undesired results. Have your choice!}%
%\begin{macro}{\MT@extra@inputenc}
% and to specify an input encoding.
% \begin{macrocode}
+%<*package>
\renewcommand*\DeclareCharacterInheritance[1][]{%
\let\MT@extra@context\@empty
\let\MT@extra@inputenc\@undefined
@@ -9562,35 +10310,15 @@ time will almost certainly lead to undesired results. Have your choice!}%
%\end{macro}
% Parse the second argument. \cs{DeclareCharacterInheritance} may also be set
% up for various combinations.
-% \begin{macrocode}
-\define@key{MT@inh}{encoding}[]{%
- \def\MT@val{#1}%
- \expandafter\MT@encoding@check\MT@val,\@nil
- \MT@get@highlevel{encoding}%
- \MT@edef@n{MT@tempencoding1}{\MT@val}%
-}
-% \end{macrocode}
-%\begin{macro}{\MT@encoding@check}
-%\changes{v1.2}{2004/09/29}{check whether only one encoding specified}
-% But we only allow \emph{one} encoding.
-% \begin{macrocode}
-\def\MT@encoding@check#1,#2\@nil{%
- \MT@ifempty{#2}\relax{%
- \edef\MT@val{#1}%
- \MT@warning{You may only specify one encoding for character\MessageBreak
- inheritance lists. Ignoring encoding(s) #2}%
- }%
-}
-% \end{macrocode}
-%\end{macro}
-% For the rest, we can reuse the key setup from the configuration lists
+% We can reuse the key setup from the configuration lists
% (|\Set...|).
% \begin{macrocode}
-\MT@define@code@key{family}{inh}
-\MT@define@code@key{series}{inh}
-\MT@define@code@key{shape} {inh}
-\MT@define@code@key@size {inh}
-\MT@define@code@key@font {inh}
+\MT@define@code@key{encoding}{inh}
+\MT@define@code@key@family {inh}
+\MT@define@code@key{series} {inh}
+\MT@define@code@key{shape} {inh}
+\MT@define@code@key@size {inh}
+\MT@define@code@key@font {inh}
% \end{macrocode}
%\begin{macro}{\MT@inh@do}
% Now parse the third argument, the inheritance lists. We define the commands
@@ -9611,17 +10339,21 @@ time will almost certainly lead to undesired results. Have your choice!}%
% Only gather the inheriting characters here. Their codes will actually be set
% in |\MT@set@|\meta{feature}|@codes|.
% \begin{macrocode}
+%</package>
+%<*pdftex-def|xetex-def|luatex-def>
\def\MT@inh@split#1=#2=#3\relax{%
\def\@tempa{#1}%
\ifx\@tempa\@empty \else
\MT@get@slot
- \ifnum\MT@char > \m@ne
+%<pdftex-def|luatex-def> \ifnum\MT@char > \m@ne
+%<xetex-def> \ifx\MT@char\@empty\else
\let\MT@val\MT@char
\MT@map@clist@n{#2}{%
\def\@tempa{##1}%
\ifx\@tempa\@empty \else
\MT@get@slot
- \ifnum\MT@char > \m@ne
+%<pdftex-def|luatex-def> \ifnum\MT@char > \m@ne
+%<xetex-def> \ifx\MT@char\@empty\else
\MT@exp@cs\MT@xadd{MT@inh@\MT@listname @\MT@val @}{{\MT@char}}%
\fi
\fi
@@ -9631,6 +10363,8 @@ time will almost certainly lead to undesired results. Have your choice!}%
\fi
\fi
}
+%</pdftex-def|xetex-def|luatex-def>
+%<*package>
% \end{macrocode}
%\end{macro}
%
@@ -9649,7 +10383,7 @@ time will almost certainly lead to undesired results. Have your choice!}%
% \meta{family}|/|\allowbreak
% \meta{series}|/|\allowbreak
% \meta{shape}|/|\allowbreak
-% \meta{|\textbar*|}
+% \meta{\textbar*}
% to be the expansion of |\MT@|\meta{list type}|@name|, \ie, the name of the
% currently defined list. Size ranges are held in a separate macro called
% |\MT@|\meta{list type}|@/|\allowbreak\meta{font axes}|@sizes|, which in turn
@@ -9913,12 +10647,14 @@ time will almost certainly lead to undesired results. Have your choice!}%
%\begin{macro}{\MT@optwarn@nan}
% \begin{macrocode}
%</package>
+%<*package|letterspace>
%<plain>\MT@requires@latex1{
\def\MT@optwarn@nan#1#2{%
\MT@warning@nl{Value `#1' for option `#2' is not a\MessageBreak number.
Using default value of \number\@nameuse{MT@#2@default}}%
}
%<plain>}\relax
+%</package|letterspace>
%<*package>
% \end{macrocode}
%\end{macro}
@@ -10040,16 +10776,23 @@ time will almost certainly lead to undesired results. Have your choice!}%
% \end{macrocode}
% The \opt{DVIoutput} option will change \cmd\pdfoutput\ immediately to minimise
% the risk of confusing other packages.
+%\changes{v2.5}{2010/09/17}{disable `\opt{DVIoutput}' option for \xetex} ^^A (beta:03)
% \begin{macrocode}
+%</package>
+%<*pdftex-def|luatex-def|xetex-def>
\MT@def@bool@opt{DVIoutput}{%
\csname if\@tempa\endcsname
+%<*pdftex-def|luatex-def>
\ifnum\pdfoutput>\z@ \MT@opt@DVItrue \fi
\pdfoutput\z@
\else
\ifnum\pdfoutput<\@ne \MT@opt@DVItrue \fi
\pdfoutput\@ne
+%</pdftex-def|luatex-def>
+%<xetex-def> \MT@warning@nl{Ignoring `DVIoutput' option}%
\fi
}
+%</pdftex-def|luatex-def|xetex-def>
% \end{macrocode}
%\changes{v1.9a}{2005/11/21}{new option: \opt{defersetup}, by default true}
% Setting the \opt{defersetup} option to false will restore the old behaviour,
@@ -10061,6 +10804,7 @@ time will almost certainly lead to undesired results. Have your choice!}%
% is being constructed inside the preamble and this box contains a font that is
% not loaded before the box is being used.
% \begin{macrocode}
+%<*package>
\MT@def@bool@opt{defersetup}{%
\csname if\@tempa\endcsname \else
\AtEndOfPackage{%
@@ -10070,44 +10814,43 @@ time will almost certainly lead to undesired results. Have your choice!}%
}%
\fi
}
+%</package>
% \end{macrocode}
% \opt{copyfonts} will copy all fonts before setting them up. This allows
% protrusion and expansion with different parameters.
%\changes{v2.2}{2007/07/03}{new option: \opt{copyfonts}}
% This options is also \emph{undocumented} in the hope that we can always find
% out automatically whether it's required.
+% It also works with \luatex\ 0.30 or newer.
% \begin{macrocode}
-\MT@requires@pdftex7{
-%<*lua>
- \MT@requires@luatex{
- \MT@def@bool@opt{copyfonts}{%
- \csname if\@tempa\endcsname
- \MT@error{The `copyfonts' option doesn't work with luatex}
- {Use pdftex instead.}%
- \fi
- }
- }{
-%</lua>
- \MT@def@bool@opt{copyfonts}{%
- \csname if\@tempa\endcsname
- \MT@glet\MT@copy@font\MT@copy@font@
- \else
- \MT@glet\MT@copy@font\relax
- \fi
- }
-%<lua> }
-}{
+%<*pdftex-def|luatex-def>
+%<pdftex-def>\MT@requires@pdftex7{
\MT@def@bool@opt{copyfonts}{%
\csname if\@tempa\endcsname
- \MT@error{The pdftex version you are using is too old\MessageBreak
- to use the `copyfonts' option}{Upgrade pdftex.}%
+ \MT@glet\MT@copy@font\MT@copy@font@
+ \else
+ \MT@glet\MT@copy@font\relax
\fi
}
-}
+%<pdftex-def>}{
+%</pdftex-def|luatex-def>
+%<*pdftex-def|xetex-def>
+ \MT@def@bool@opt{copyfonts}{%
+ \csname if\@tempa\endcsname
+ \MT@error
+%<pdftex-def> {The pdftex version you are using is too old\MessageBreak
+%<pdftex-def> to use the `copyfonts' option}{Upgrade pdftex.}%
+%<xetex-def> {The `copyfonts' option does not work with xetex}
+%<xetex-def> {Use pdftex or luatex instead.}%
+ \fi
+ }
+%<pdftex-def>}
+%</pdftex-def|xetex-def>
% \end{macrocode}
% \opt{final} is the opposite to \opt{draft}.
%\changes{v1.4a}{2004/11/16}{new option: \opt{final}}
% \begin{macrocode}
+%<*package>
\MT@def@bool@opt{final}{%
\csname if\@tempa\endcsname
\MT@draftfalse
@@ -10162,6 +10905,7 @@ time will almost certainly lead to undesired results. Have your choice!}%
% \opt{letterspace}.
% \begin{macrocode}
%</package>
+%<*package|letterspace>
%<plain>\MT@requires@latex1{
\MT@map@clist@n{%
%<package> stretch,shrink,step,%
@@ -10179,6 +10923,7 @@ time will almost certainly lead to undesired results. Have your choice!}%
}%
}
%<plain>}\relax
+%</package|letterspace>
%<*package>
% \end{macrocode}
% \opt{factor} will define the protrusion factor only.
@@ -10206,6 +10951,26 @@ time will almost certainly lead to undesired results. Have your choice!}%
}
% \end{macrocode}
%
+%\subsubsection{Loading the definition file}
+%
+%\begin{macro}{\MT@endinput}
+% Abort if no capable engine found.
+% \begin{macrocode}
+\let\MT@endinput\relax
+% \end{macrocode}
+%\end{macro}
+% \begin{macrocode}
+\ifx\MT@engine\relax
+ \MT@warning@nl{You don't seem to be using either pdftex, luatex, or xetex.\MessageBreak
+ `\MT@MT' only works with these engines.\MessageBreak
+ I will quit now.}
+ \MT@clear@options
+\else
+ \input{microtype-\MT@engine tex.def}
+\fi
+\MT@endinput
+% \end{macrocode}
+%
% \subsubsection{Reading the configuration file}
%
% The package should just work if called without any options. Therefore,
@@ -10216,17 +10981,20 @@ time will almost certainly lead to undesired results. Have your choice!}%
% running \pdftex.)
% \begin{macrocode}
\MT@protrusiontrue
+%</package>
+%<*pdftex-def|luatex-def>
\ifnum\pdfoutput<\@ne \else
% \end{macrocode}
% Also, we only enable expansion by default if \pdftex\ can expand the fonts
% automatically.
%\changes{v1.6}{2004/12/23}{defaults: turn off expansion for old \pdftex\ versions}
% \begin{macrocode}
- \MT@requires@pdftex4{
+%<pdftex-def> \MT@requires@pdftex4{
\MT@expansiontrue
\MT@autotrue
- }\relax
+%<pdftex-def> }\relax
\fi
+%</pdftex-def|luatex-def>
% \end{macrocode}
% The main configuration file will be loaded before processing the package
% options.
@@ -10237,6 +11005,7 @@ time will almost certainly lead to undesired results. Have your choice!}%
% However, the \opt{config} option must of course be evaluated beforehand.
% We also have to define a no-op for the regular option processing later.
% \begin{macrocode}
+%<*package>
\define@key{MT}{config}[]{\relax}
\def\MT@get@config#1config=#2,#3\@nil{%
\MT@ifempty{#2}%
@@ -10352,6 +11121,8 @@ time will almost certainly lead to undesired results. Have your choice!}%
% \begin{macrocode}
\def\microtypesetup{\setkeys{MT}}
\MT@addto@setup{\def\microtypesetup#1{\setkeys{MTX}{#1}\selectfont}}
+%</package>
+%<*pdftex-def|luatex-def|xetex-def>
\def\MT@define@optionX#1#2{%
\define@key{MTX}{#1}[true]{%
\edef\@tempb{\csname MT@rbba@#1\endcsname}%
@@ -10420,15 +11191,31 @@ time will almost certainly lead to undesired results. Have your choice!}%
% \end{macrocode}
%\end{macro}
% \begin{macrocode}
-\MT@define@optionX{protrusion}\pdfprotrudechars
-\MT@define@optionX{expansion}\pdfadjustspacing
+\MT@define@optionX{protrusion}\MT@protrudechars
+%</pdftex-def|luatex-def|xetex-def>
+%<*pdftex-def|luatex-def>
+\MT@define@optionX{expansion}\MT@adjustspacing
+% \end{macrocode}
+%\begin{macro}{\MT@protrudechars}
+%\begin{macro}{\MT@adjustspacing}
+% \begin{macrocode}
+\let\MT@protrudechars\pdfprotrudechars
+\let\MT@adjustspacing\pdfadjustspacing
+%</pdftex-def|luatex-def>
+%<*xetex-def>
+\let\MT@protrudechars\XeTeXprotrudechars
+\define@key{MTX}{expansion}[true]{\MT@warning{Ignoring expansion setup}}
+%</xetex-def>
% \end{macrocode}
+%\end{macro}
+%\end{macro}
%\begin{macro}{\MT@define@optionX@}
% The same for |tracking|, |spacing| and |kerning|, which do not have a
% |compatibility| level.
% \begin{macrocode}
-\MT@requires@pdftex6{
-%<lua> \MT@requires@luatex\@firstofone{
+%<*pdftex-def|luatex-def>
+%<pdftex-def>\MT@requires@pdftex6{
+%<luatex-def>\MT@requires@luatex3{
\def\MT@define@optionX@#1#2{%
\define@key{MTX}{#1}[true]{%
\MT@map@clist@n{##1}{%
@@ -10465,25 +11252,28 @@ time will almost certainly lead to undesired results. Have your choice!}%
\MT@define@optionX@{spacing}{\pdfadjustinterwordglue\@tempcnta}
\MT@define@optionX@{kerning}{\pdfprependkern\@tempcnta
\pdfappendkern \@tempcnta}
- \@gobble
-%<lua> }
-}\@firstofone
+}{
+%</pdftex-def|luatex-def>
+%<*pdftex-def|luatex-def|xetex-def>
% \end{macrocode}
-% Disable for older \pdftex\ versions and for \luatex.
+% Disable for older \pdftex\ versions and for \xetex\ and \luatex.
% \begin{macrocode}
-{\define@key{MTX}{tracking}[true]{\MT@warning{Ignoring tracking setup}}
- \define@key{MTX}{kerning}[true]{\MT@warning{Ignoring kerning setup}}
- \define@key{MTX}{spacing}[true]{\MT@warning{Ignoring spacing setup}}
-}
+\define@key{MTX}{tracking}[true]{\MT@warning{Ignoring tracking setup}}
+%<luatex-def>}
+\define@key{MTX}{kerning}[true]{\MT@warning{Ignoring kerning setup}}
+\define@key{MTX}{spacing}[true]{\MT@warning{Ignoring spacing setup}}
+%<pdftex-def>}
\define@key{MTX}{activate}[true]{%
\setkeys{MTX}{protrusion={#1}}%
- \setkeys{MTX}{expansion={#1}}%
+%<pdftex-def|luatex-def> \setkeys{MTX}{expansion={#1}}%
}
+%</pdftex-def|luatex-def|xetex-def>
% \end{macrocode}
%\begin{macro}{\MT@saved@setupfont}
% Disable everything -- may be used as a work-around in case setting up fonts
% doesn't work in certain environments. \emph{(Undocumented.)}
% \begin{macrocode}
+%<*package>
\let\MT@saved@setupfont\MT@setupfont
% \end{macrocode}
%\end{macro}
@@ -10504,6 +11294,7 @@ time will almost certainly lead to undesired results. Have your choice!}%
%\begin{macro}{\MT@ProcessOptionsWithKV}
% Parse options.
% \begin{macrocode}
+%<*package|letterspace>
%<plain>\MT@requires@latex1{
\def\MT@ProcessOptionsWithKV#1{%
\let\@tempc\relax
@@ -10541,6 +11332,7 @@ time will almost certainly lead to undesired results. Have your choice!}%
% \begin{macrocode}
\MT@ProcessOptionsWithKV{MT}
%<plain>}\relax
+%</package|letterspace>
%<*package>
% \end{macrocode}
% Now we can take the appropriate actions. We also tell the log file which
@@ -10562,17 +11354,23 @@ time will almost certainly lead to undesired results. Have your choice!}%
\renewcommand*\microtypecontext[1]{}%
\renewcommand*\lsstyle{}%
\else
+ \MT@setup@PDF
+ \MT@setup@copies
% \end{macrocode}
-% For <DVI> output, the user must have explicitly passed the \opt{expansion}
-% option to the package.
-%\changes{v1.5}{2004/12/02}{defaults: turn off expansion for <DVI> output}
+% Fix the font sets.
% \begin{macrocode}
- \ifnum\pdfoutput<\@ne
- \ifMT@opt@expansion \else
- \MT@expansionfalse
- \fi
- \fi
+ \MT@map@tlist@c\MT@font@sets\MT@fix@font@set
+ \MT@setup@protrusion
+ \MT@setup@expansion
+ \MT@setup@tracking
+ \MT@setup@warntracking
+ \MT@setup@spacing
+ \MT@setup@kerning
+ \MT@setup@noligatures
+}
+%</package>
% \end{macrocode}
+%\begin{macro}{\MT@setup@PDF}
% \pdftex\ can create <DVI> output, too. However, both the <DVI> viewer and
% |dvips| need to find actual fonts. Therefore, expansion will only work if the
% fonts for different degrees of expansion are readily available.
@@ -10585,22 +11383,34 @@ time will almost certainly lead to undesired results. Have your choice!}%
% for each package (that's not our job), we only say that it was \microtype\
% that changed it. This must be sufficient!
% \begin{macrocode}
+%<*pdftex-def|luatex-def>
+\def\MT@setup@PDF{%
\MT@info@nl{Generating \ifnum\pdfoutput<\@ne DVI \else PDF \fi output%
\ifMT@opt@DVI\space (changed by \MT@MT)\fi}%
+}
% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\MT@setup@copies}
% Working on font copies?
% \begin{macrocode}
+\def\MT@setup@copies{%
\ifx\MT@copy@font\relax\else \MT@info@nl{Using font copies for contexts}\fi
+}
+%</pdftex-def|luatex-def>
+%<*xetex-def>
+\let\MT@setup@PDF\relax
+\let\MT@setup@copies\relax
+%</xetex-def>
% \end{macrocode}
-% Fix the font sets.
-% \begin{macrocode}
- \MT@map@tlist@c\MT@font@sets\MT@fix@font@set
-% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\MT@setup@protrusion}
% Protrusion.
% \begin{macrocode}
+%<*pdftex-def|xetex-def|luatex-def>
+\def\MT@setup@protrusion{%
\ifMT@protrusion
\edef\MT@active@features{\MT@active@features,pr}%
- \pdfprotrudechars\MT@pr@level
+ \MT@protrudechars\MT@pr@level
\MT@info@nl{Character protrusion enabled (level \number\MT@pr@level)%
\ifnum\MT@pr@factor=\MT@factor@default \else,\MessageBreak
factor: \number\MT@pr@factor\fi
@@ -10610,9 +11420,22 @@ time will almost certainly lead to undesired results. Have your choice!}%
\let\MT@protrusion\relax
\MT@info@nl{No character protrusion}%
\fi
+}
+%</pdftex-def|xetex-def|luatex-def>
% \end{macrocode}
-% Expansion.
+%\end{macro}
+%\begin{macro}{\MT@setup@expansion}
+% For <DVI> output, the user must have explicitly passed the \opt{expansion}
+% option to the package.
+%\changes{v1.5}{2004/12/02}{defaults: turn off expansion for <DVI> output}
% \begin{macrocode}
+%<*pdftex-def|luatex-def>
+\def\MT@setup@expansion{%
+ \ifnum\pdfoutput<\@ne
+ \ifMT@opt@expansion \else
+ \MT@expansionfalse
+ \fi
+ \fi
\ifMT@expansion
% \end{macrocode}
% Set up the values for font expansion: if \opt{stretch} has not been specified, we
@@ -10639,31 +11462,35 @@ time will almost certainly lead to undesired results. Have your choice!}%
% rounded off, minimum value 1.
%\changes{v1.9}{2005/07/08}{warning if user requested zero \opt{step}}
% \begin{macrocode}
- \MT@requires@pdftex6{\def\MT@step{1 }}{%
- \ifnum\MT@step=\m@ne
- \ifnum\MT@stretch>\MT@shrink
- \ifnum\MT@shrink=\z@
- \@tempcnta=\MT@stretch
- \else
- \@tempcnta=\MT@shrink
- \fi
+ \ifnum\MT@step=\m@ne
+%<pdftex-def> \MT@requires@pdftex6{%
+ \def\MT@step{1 }%
+%<*pdftex-def>
+ }{%
+ \ifnum\MT@stretch>\MT@shrink
+ \ifnum\MT@shrink=\z@
+ \@tempcnta=\MT@stretch
\else
- \ifnum\MT@stretch=\z@
- \@tempcnta=\MT@shrink
- \else
- \@tempcnta=\MT@stretch
- \fi
+ \@tempcnta=\MT@shrink
\fi
- \divide\@tempcnta 5\relax
\else
- \@tempcnta=\MT@step
- \ifnum\@tempcnta=\z@
- \MT@warning@nl{The expansion step cannot be set to zero.\MessageBreak
- Setting it to one}
+ \ifnum\MT@stretch=\z@
+ \@tempcnta=\MT@shrink
+ \else
+ \@tempcnta=\MT@stretch
\fi
\fi
+ \divide\@tempcnta 5\relax
\ifnum\@tempcnta=\z@ \@tempcnta=\@ne \fi
- \edef\MT@step{\number\@tempcnta\space}}%
+ \edef\MT@step{\number\@tempcnta\space}%
+ }%
+%</pdftex-def>
+ \fi
+ \ifnum\MT@step=\z@
+ \MT@warning@nl{The expansion step cannot be set to zero.\MessageBreak
+ Setting it to one}%
+ \def\MT@step{1 }%
+ \fi
% \end{macrocode}
%\begin{macro}{\MT@auto}
% Automatic expansion of the font? This new feature of \pdftex\ 1.20 makes the
@@ -10673,7 +11500,7 @@ time will almost certainly lead to undesired results. Have your choice!}%
% \begin{macrocode}
\let\MT@auto\@empty
\ifMT@auto
- \MT@requires@pdftex4{%
+%<pdftex-def> \MT@requires@pdftex4{%
% \end{macrocode}
%\end{macro}
% We turn off automatic expansion if output mode is <DVI>.
@@ -10698,6 +11525,7 @@ time will almost certainly lead to undesired results. Have your choice!}%
% version is too old for \texttt{autoexpand}}
%\changes{v1.6}{2004/12/23}{disable automatic expansion for old \pdftex\ versions}
% \begin{macrocode}
+%<*pdftex-def>
}{%
\MT@error{%
The pdftex version you are using is too old for\MessageBreak
@@ -10708,13 +11536,16 @@ time will almost certainly lead to undesired results. Have your choice!}%
\MT@autofalse
\def\MT@auto{1000 }%
}%
+%</pdftex-def>
\else
% \end{macrocode}
% No automatic expansion.
% \begin{macrocode}
+%<*pdftex-def>
\MT@requires@pdftex4\relax{%
\def\MT@auto{1000 }%
}%
+%</pdftex-def>
\fi
% \end{macrocode}
% Choose the appropriate macro for selected expansion.
@@ -10739,7 +11570,7 @@ time will almost certainly lead to undesired results. Have your choice!}%
\fi
\ifMT@expansion
\edef\MT@active@features{\MT@active@features,ex}%
- \pdfadjustspacing\MT@ex@level
+ \MT@adjustspacing\MT@ex@level
\MT@info@nl{\ifMT@auto A\else Non-a\fi utomatic font expansion enabled
(level \number\MT@ex@level),\MessageBreak
stretch: \number\MT@stretch, shrink: \number\MT@shrink,
@@ -10749,13 +11580,13 @@ time will almost certainly lead to undesired results. Have your choice!}%
%\begin{macro}{\MT@check@step}
% Check whether \opt{stretch} and \opt{shrink} are multiples of \opt{step}.
% \begin{macrocode}
- \def\MT@check@step#1{%
- \@tempcnta=\csname MT@#1\endcsname
+ \def\MT@check@step##1{%
+ \@tempcnta=\csname MT@##1\endcsname
\divide\@tempcnta \MT@step
\multiply\@tempcnta \MT@step
- \ifnum\@tempcnta=\csname MT@#1\endcsname\else
- \MT@warning@nl{The #1 amount is not a multiple of step.\MessageBreak
- The effective maximum #1 is \the\@tempcnta\space
+ \ifnum\@tempcnta=\csname MT@##1\endcsname\else
+ \MT@warning@nl{The ##1 amount is not a multiple of step.\MessageBreak
+ The effective maximum ##1 is \the\@tempcnta\space
(step \number\MT@step)}%
\fi
}%
@@ -10770,15 +11601,15 @@ time will almost certainly lead to undesired results. Have your choice!}%
\CheckCommand*\showhyphens[1]{\setbox0\vbox{%
\color@begingroup\everypar{}\parfillskip\z@skip
\hsize\maxdimen\normalfont\pretolerance\m@ne\tolerance\m@ne
- \hbadness\z@\showboxdepth\z@\ #1\color@endgroup}}%
+ \hbadness\z@\showboxdepth\z@\ ##1\color@endgroup}}%
% \end{macrocode}
%\begin{macro}{\showhyphens}
% I wonder why it's defined globally (in \file{ltfssbas.dtx})?
% \begin{macrocode}
- \gdef\showhyphens#1{\setbox0\vbox{%
+ \gdef\showhyphens##1{\setbox0\vbox{%
\color@begingroup\pdfadjustspacing\z@\everypar{}\parfillskip\z@skip
\hsize\maxdimen\normalfont\pretolerance\m@ne\tolerance\m@ne
- \hbadness\z@\showboxdepth\z@\ #1\color@endgroup}}%
+ \hbadness\z@\showboxdepth\z@\ ##1\color@endgroup}}%
% \end{macrocode}
%\end{macro}
% \begin{macrocode}
@@ -10787,142 +11618,220 @@ time will almost certainly lead to undesired results. Have your choice!}%
\MT@info@nl{No font expansion}%
\fi
}
-\MT@requires@pdftex6{
-% \end{macrocode}
-%\begin{macro}{\MT@warn@lua}
-% Switch off the features that don't work with \luatex.
-% \begin{macrocode}
-%<*lua>
- \def\MT@warn@lua#1{%
- \MT@error{The `#1' feature doesn't currently work\MessageBreak with luatex}
- {Use pdftex instead.}%
- \csname MT@#1false\endcsname
- \MT@let@nc{MT@#1}\relax
- }
-%</lua>
+%</pdftex-def|luatex-def>
+%<*xetex-def>
+\def\MT@setup@expansion{%
+ \ifMT@expansion
+ \ifMT@opt@expansion
+ \MT@error{Font expansion does not work with xetex}
+ {Use pdftex or luatex instead.}%
+ \fi
+ \fi
+}
+%</xetex-def>
% \end{macrocode}
%\end{macro}
-% \begin{macrocode}
-%</package>
- \MT@addto@setup{%
-%<*package>
-% \end{macrocode}
+%\begin{macro}{\MT@setup@tracking}
% Tracking, spacing and kerning.
% \begin{macrocode}
+%<*pdftex-def|luatex-def>
+%<pdftex-def>\MT@requires@pdftex6{%
+%<luatex-def>\MT@requires@luatex3{%
+ \def\MT@setup@tracking{%
\ifMT@tracking
-%<lua> \MT@requires@luatex{\MT@warn@lua{tracking}}{%
- \edef\MT@active@features{\MT@active@features,tr}%
- \MT@info@nl{Tracking enabled}%
- \MT@check@active@set{tr}%
+ \edef\MT@active@features{\MT@active@features,tr}%
+ \MT@info@nl{Tracking enabled}%
+ \MT@check@active@set{tr}%
% \end{macrocode}
% Enable protrusion for compensation at the line edges.
%\changes{v2.3}{2007/07/27}{enable protrusion when tracking is enabled}
% \begin{macrocode}
- \ifMT@protrusion\else\pdfprotrudechars\@ne\fi
-%<lua> }%
+ \ifMT@protrusion\else\MT@protrudechars\@ne\fi
\else
\let\MT@tracking\relax
- \MT@info@nl{No tracking}%
+ \MT@info@nl{No adjustment of tracking}%
\fi
+ }
+%</pdftex-def|luatex-def>
+%<*pdftex-def>
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\MT@setup@spacing}
+% \begin{macrocode}
+ \def\MT@setup@spacing{%
\ifMT@spacing
-%<lua> \MT@requires@luatex{\MT@warn@lua{spacing}}{%
- \edef\MT@active@features{\MT@active@features,sp}%
- \pdfadjustinterwordglue\@ne
- \MT@info@nl{Adjustment of interword spacing enabled}%
- \MT@check@active@set{sp}%
-%<lua> }%
+ \edef\MT@active@features{\MT@active@features,sp}%
+ \pdfadjustinterwordglue\@ne
+ \MT@info@nl{Adjustment of interword spacing enabled}%
+% \end{macrocode}
+%\changes{v2.5}{2011/11/29}{warning with \pkg{ragged2e}
+% (reported by \contributor Steffen Hoffmann <speraviro-delenda\at expires-2011-11-30.arcornews.de>)}
+% ^^A MID: <dctt-20353621.20111126$90.sph@virsperans.my-fqdn.de>
+% ^^A (beta:09)
+% The \pkg{ragged2e} package sets interword spaces to a fixed value without glue.
+% \microtype's modifications can therefore have undesired effects. Therefore,
+% we issue a warning.
+% \begin{macrocode}
+ \MT@with@package@T{ragged2e}{%
+ \MT@warning@nl{You are using the `ragged2e' package.\MessageBreak
+ Adjustment of interword spacing may lead to\MessageBreak
+ undesired results when used with `ragged2e'.\MessageBreak
+ In this case, disable the `spacing' option}%
+ }%
+ \MT@check@active@set{sp}%
\else
\let\MT@spacing\relax
\MT@info@nl{No adjustment of interword spacing}%
\fi
- \ifMT@kerning
-%<lua> \MT@requires@luatex{\MT@warn@lua{kerning}}{%
- \edef\MT@active@features{\MT@active@features,kn}%
- \pdfprependkern\@ne
- \pdfappendkern\@ne
- \MT@info@nl{Adjustment of character kerning enabled}%
- \MT@check@active@set{kn}%
-%<lua> }%
- \else
- \let\MT@kerning\relax
- \MT@info@nl{No adjustment of character kerning}%
- \fi
-%</package>
+ }
% \end{macrocode}
-%\begin{macro}{\MT@warn@tracking@DVI}
-%\changes{v2.2}{2007/02/11}{warning when letterspacing in DVI mode}
-% We issue a warning, when letterspacing in <DVI> mode, since it will probably
-% not work. We also switch on protrusion if it isn't already, to compensate for
-% the letterspacing kerns.
+%\end{macro}
+%\begin{macro}{\MT@setup@spacing@check}
+% Warning if \cmd\nonfrenchspacing\ is active, since space factors will be
+% ignored with \cmd\pdfadjustinterwordglue\,|>|\,0. Why 1500? Because some
+% packages redefine \cmd\frenchspacing.\footnote{
+% Cf. the \texttt{c.t.t.} thread `\cmd\frenchspacing\ with <AMS> packages
+% and babel', started by Philipp Lehman on 16~August 2005,
+% <MID>:~\nolinkurl{ddtbaj$rob$1@online.de}}
% \begin{macrocode}
- \ifnum\pdfoutput<\@ne
- \def\MT@warn@tracking@DVI{%
- \MT@warning@nl{%
- You are using tracking/letterspacing in DVI mode.\MessageBreak
- This will probably not work, unless the post-\MessageBreak
- processing program (dvips, dvipdfm(x), ...) is\MessageBreak
- able to create the virtual fonts on the fly}%
- \MT@glet\MT@warn@tracking@DVI\relax
- }%
- \else
- \def\MT@warn@tracking@DVI{%
- \ifnum\pdfprotrudechars<\@ne \global\pdfprotrudechars\@ne \fi
- \MT@glet\MT@warn@tracking@DVI\relax
- }%
+ \def\MT@setup@spacing@check{%
+ \ifMT@spacing
+ \ifMT@babel \else
+ \ifnum\sfcode`\. > 1500
+ \MT@ifstreq\MT@sp@context{nonfrench}\relax{%
+ \MT@warning@nl{%
+ \string\nonfrenchspacing\space is active. Adjustment of\MessageBreak
+ interword spacing will disable it. You might want\MessageBreak
+ to add `\@backslashchar\MT@MT context{spacing=nonfrench}'\MessageBreak
+ to your preamble}%
+ }%
+ \fi
+ \fi
\fi
+ }
% \end{macrocode}
%\end{macro}
+%\begin{macro}{\MT@setup@kerning}
% \begin{macrocode}
- \ifnum\MT@letterspace=\m@ne
- \let\MT@letterspace\MT@letterspace@default
+ \def\MT@setup@kerning{%
+ \ifMT@kerning
+ \edef\MT@active@features{\MT@active@features,kn}%
+ \pdfprependkern\@ne
+ \pdfappendkern\@ne
+ \MT@info@nl{Adjustment of character kerning enabled}%
+ \MT@check@active@set{kn}%
\else
- \MT@ls@too@large\MT@letterspace
+ \let\MT@kerning\relax
+ \MT@info@nl{No adjustment of character kerning}%
\fi
- }%
+ }
+%</pdftex-def>
% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\MT@error@doesnt@work}
% If \pdftex\ is too old, we disable tracking, spacing and kerning,
%\changes{v2.3a}{2008/02/16}{error messages if \pdftex\ is too old for extensions}
% and throw an error message.
+% We also switch the features off for \luatex\ and \xetex.
% \begin{macrocode}
-%<*package>
-}{
- \MT@addto@setup{%
+%<pdftex-def|luatex-def>}{
+%<*luatex-def>
+ \def\MT@setup@tracking{%
\ifMT@tracking
- \MT@error{Tracking only works with pdftex version 1.40\MessageBreak
- or newer. Switching it off}{Upgrade pdftex.}%
- \else
- \MT@info@nl{No tracking (pdftex too old)}%
- \fi
- \ifMT@spacing
- \MT@error{Adjustment of interword spacing only works with\MessageBreak
- pdftex version 1.40 or newer. Switching it off}{Upgrade pdftex.}%
+ \MT@error{The tracking feature only works with luatex 0.62\MessageBreak
+ or newer. Switching it off}{Upgrade luatex.}%
+ \MT@trackingfalse
+ \MT@let@nc{MT@tracking}\relax
\else
- \MT@info@nl{No adjustment of interword spacing (pdftex too old)}%
+ \MT@info@nl{No adjustment of tracking (luatex too old)}%
\fi
- \ifMT@kerning
- \MT@error{Character kerning only works with\MessageBreak
- pdftex version 1.40 or newer. Switching it off}{Upgrade pdftex.}%
+ }
+}
+%</luatex-def>
+%<*pdftex-def|xetex-def|luatex-def>
+ \def\MT@error@doesnt@work#1{%
+ \csname ifMT@#1\endcsname
+ \MT@error{The #1 feature only works with pdftex 1.40\MessageBreak
+ or newer. Switching it off}
+%<pdftex-def> {Upgrade pdftex.}%
+%<luatex-def|xetex-def> {Use pdftex instead.}%
+ \csname MT@#1false\endcsname
+ \MT@let@nc{MT@#1}\relax
\else
- \MT@info@nl{No adjustment of character kerning (pdftex too old)}%
+ \MT@info@nl{No adjustment of #1%
+%<pdftex-def> \space(pdftex too old)%
+ }%
\fi
}
+%<pdftex-def|xetex-def> \def\MT@setup@tracking{\MT@error@doesnt@work{tracking}}
+ \def\MT@setup@kerning {\MT@error@doesnt@work{kerning}}
+ \def\MT@setup@spacing {\MT@error@doesnt@work{spacing}}
+%<pdftex-def>}
+%</pdftex-def|xetex-def|luatex-def>
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\MT@setup@warntracking}
+% \begin{macrocode}
+%<letterspace>\MT@addto@setup
+%<pdftex-def|luatex-def>\def\MT@setup@warntracking
+% \end{macrocode}
+%\begin{macro}{\MT@warn@tracking@DVI}
+%\changes{v2.2}{2007/02/11}{warning when letterspacing in DVI mode}
+% We issue a warning, when letterspacing in <DVI> mode, since it will probably
+% not work. We also switch on protrusion if it isn't already, to compensate for
+% the letterspacing kerns.
+% \begin{macrocode}
+%<*pdftex-def|luatex-def|letterspace>
+{%
+ \ifnum\pdfoutput<\@ne
+ \def\MT@warn@tracking@DVI{%
+ \MT@warning@nl{%
+ You are using tracking/letterspacing in DVI mode.\MessageBreak
+ This will probably not work, unless the post-\MessageBreak
+ processing program (dvips, dvipdfm(x), ...) is\MessageBreak
+ able to create the virtual fonts on the fly}%
+ \MT@glet\MT@warn@tracking@DVI\relax
+ }%
+ \else
+ \def\MT@warn@tracking@DVI{%
+ \ifnum\pdfprotrudechars<\@ne \global\pdfprotrudechars\@ne \fi
+ \MT@glet\MT@warn@tracking@DVI\relax
+ }%
+ \fi
+% \end{macrocode}
+%\end{macro}
+% \begin{macrocode}
+ \ifnum\MT@letterspace=\m@ne
+ \let\MT@letterspace\MT@letterspace@default
+ \else
+ \MT@ls@too@large\MT@letterspace
+ \fi
}
+%</pdftex-def|luatex-def|letterspace>
+%<xetex-def>\let\MT@setup@warntracking\relax
% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\MT@setup@noligatures}
% \cs{DisableLigatures} is only admissible in the preamble, therefore we can
% now disable the corresponding macro, if it was never called.
%\changes{v2.0}{2006/12/14}{maybe disable \cs{MT@noligatures} after the preamble}
% \begin{macrocode}
-\MT@requires@pdftex5{
- \MT@addto@setup{%
+%<*pdftex-def|luatex-def>
+\def\MT@setup@noligatures{%
+%<pdftex-def> \MT@requires@pdftex5{%
\ifMT@noligatures \else
\let\MT@noligatures\relax
\fi
- }
-}\relax
+%<pdftex-def> }\relax
+}
+%</pdftex-def|luatex-def>
+%<xetex-def>\let\MT@setup@noligatures\relax
% \end{macrocode}
+%\end{macro}
% Remove the leading comma in \cs{MT@active@features}, and set the
% document switch to true.
% \begin{macrocode}
+%<*package>
\MT@addto@setup{%
\ifx\MT@active@features\@empty \else
\edef\MT@active@features{\expandafter\@gobble\MT@active@features}%
@@ -11034,48 +11943,26 @@ time will almost certainly lead to undesired results. Have your choice!}%
% ^^A private mail, 2009/02/03
% \begin{macrocode}
%</package>
+%<*package|letterspace>
%<plain>\MT@requires@latex1{
\AtBeginDocument{\MT@setup@ \MT@glet\MT@setup@\@empty}
%<plain>}\relax
+%</package|letterspace>
% \end{macrocode}
-% Warning if \cmd\nonfrenchspacing\ is active, since space factors will be
-% ignored with \cmd\pdfadjustinterwordglue\,|>|\,0. Why 1500? Because some
-% packages redefine \cmd\frenchspacing.\footnote{
-% Cf. the \texttt{c.t.t.} thread `\cmd\frenchspacing\ with <AMS> packages
-% and babel', started by Philipp Lehman on 16~August 2005,
-% <MID>:~\nolinkurl{ddtbaj$rob$1@online.de}}
-% This has to be checked after the setup has taken place. There still will be a
-% false warning if \pkg{babel} is loaded after \microtype\ (without the
-% \opt{babel} option).
+% Must come at the very, very end.
% \begin{macrocode}
-%<*package>
-\MT@requires@pdftex6{
- \AtBeginDocument{%
- \ifMT@spacing
- \ifMT@babel \else
- \ifnum\sfcode`\. > 1500
- \MT@ifstreq\MT@sp@context{nonfrench}\relax{%
- \MT@warning@nl{%
- \string\nonfrenchspacing\space is active. Adjustment of\MessageBreak
- interword spacing will disable it. You might want\MessageBreak
- to add `\@backslashchar\MT@MT context{spacing=nonfrench}'\MessageBreak
- to your preamble}%
- }%
- \fi
- \fi
- \fi
- }
-}\relax
-%</package>
+%<package>\MT@ifdefined@c@T\MT@setup@spacing@check
+%<package> {\AtBeginDocument{\MT@setup@spacing@check}}
% \end{macrocode}
% Restore catcodes.
% \begin{macrocode}
-\MT@restore@catcodes
+%<package|letterspace>\MT@restore@catcodes
% \end{macrocode}
-% That was that.
+% And here we end the |lua| file.
% \begin{macrocode}
-%</package|letterspace>
+%<luafile>end
% \end{macrocode}
+% That was that.
%
% ^^A -------------------------------------------------------------------------
%\NoIndexing ^^A from now on, don't bother indexing
@@ -11108,25 +11995,26 @@ time will almost certainly lead to undesired results. Have your choice!}%
%\changes{v1.9}{2005/08/17}{add <T5> encoding to text sets}
%\changes{v1.9d}{2006/04/20}{add <QX> encoding to text sets}
%\changes{v2.3e}{2009/10/28}{add <T2A> encoding}
+%\changes{v2.5}{2010/05/13}{add <EU1> and <EU2> encodings}
% \begin{macrocode}
\DeclareMicrotypeSet{allmath}
- { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,TS1,OML,OMS,U} }
+ { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,EU1,EU2,TS1,OML,OMS,U} }
\DeclareMicrotypeSet{alltext}
- { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,TS1} }
+ { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,TS1,EU1,EU2} }
% \end{macrocode}
%\changes{v1.9d}{2006/02/22}{\texttt{md*} instead of \texttt{m} series in basic sets}
% \begin{macrocode}
\DeclareMicrotypeSet{basicmath}
- { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,OML,OMS},
+ { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,EU1,EU2,OML,OMS},
family = {rm*,sf*},
series = {md*},
size = {normalsize,footnotesize,small,large}
}
\DeclareMicrotypeSet{basictext}
- { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5},
+ { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,EU1,EU2},
family = {rm*,sf*},
series = {md*},
size = {normalsize,footnotesize,small,large}
@@ -11137,7 +12025,7 @@ time will almost certainly lead to undesired results. Have your choice!}%
%\changes{v2.3e}{2009/06/01}{\texttt{sc*} instead of \texttt{sc} in \texttt{smallcaps} set}
% \begin{macrocode}
\DeclareMicrotypeSet{smallcaps}
- { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,TS1},
+ { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,TS1,EU1,EU2},
shape = {sc*}
}
@@ -11145,12 +12033,12 @@ time will almost certainly lead to undesired results. Have your choice!}%
%\changes{v2.0}{2006/12/21}{add \texttt{footnotesize} and \texttt{scriptsize} sets}
% \begin{macrocode}
\DeclareMicrotypeSet{footnotesize}
- { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,TS1},
+ { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,TS1,EU1,EU2},
size = {-small}
}
\DeclareMicrotypeSet{scriptsize}
- { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,TS1},
+ { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,TS1,EU1,EU2},
size = {-footnotesize}
}
@@ -11189,18 +12077,36 @@ time will almost certainly lead to undesired results. Have your choice!}%
% |g|~(small text), |h|~(shadow), |l|~(outline), |n|~(informal),
% |p|~(ornaments), |r|~(roman), |s|~(sans serif), |t|~(typewriter).
% I've omitted them since they seem hardly be used and/or they are actually
-% more than a variant, \ie, they shouldn't share a file.
+% more than just a variant, \ie, they shouldn't share a file.
%
%\bigskip\noindent
-% Fonts that are `the same': The Latin Modern fonts, the virtual fonts from the
+% Fonts that are `the same':
+% The \pkg{fontspec} package will use |lmr| by default, whose EU1/2 encoding
+% is declared in \file{mt-LatinModernRoman.cfg}.
+%\changes{v2.5}{2012/08/23}{declare \texttt{lmr} as alias of \texttt{Latin Modern Roman}
+% (OpenType version)}
+% \begin{macrocode}
+\ifMT@fontspec
+\DeclareMicrotypeAlias{lmr} {Latin Modern Roman}
+\else
+\DeclareMicrotypeAlias{lmr} {cmr} % lmodern
+\fi
+% \end{macrocode}
+% The Latin Modern fonts, the virtual fonts from the
% \pkg{ae} and \pkg{zefonts}, and the \pkg{eco} and \pkg{hfoldsty} packages
% (oldstyle numerals) all inherit the (basic) settings from Computer Modern
% Roman. Some of them are in part overwritten later.
%\changes{v1.2}{2004/10/03}{declare \texttt{cmor} as an alias of \texttt{cmr}}
%\changes{v1.3}{2004/10/22}{declare \texttt{aer}, \texttt{zer} and \texttt{hfor}
% as aliases of \texttt{cmr}}
-% \begin{macrocode}
-\DeclareMicrotypeAlias{lmr} {cmr} % lmodern
+% We mustn't forget the Latin Modern math fonts.
+%\changes{v2.5}{2012/07/17}{declare \texttt{lmsy} and \texttt{lmm} as aliases
+% of \texttt{cmsy} resp. \texttt{cmm}
+% (reported by \contributor Jonas Hogstrom <hjb981\at gmail.com>)}
+% ^^A http://tex.stackexchange.com/questions/63558/how-to-get-microtype-to-work-with-mathematical-minus-sign-and-package-lmodern
+% \begin{macrocode}
+\DeclareMicrotypeAlias{lmsy}{cmsy}
+\DeclareMicrotypeAlias{lmm} {cmm}
\DeclareMicrotypeAlias{aer} {cmr} % ae
\DeclareMicrotypeAlias{zer} {cmr} % zefonts
\DeclareMicrotypeAlias{cmor}{cmr} % eco
@@ -11225,6 +12131,16 @@ time will almost certainly lead to undesired results. Have your choice!}%
\DeclareMicrotypeAlias{txr} {ptm} % txfonts
\DeclareMicrotypeAlias{qtm} {ptm} % TeX Gyre Termes (formerly: qfonts/QuasiTimes)
% \end{macrocode}
+% The OpenType versions:
+%
+%\changes{v2.5}{2012/03/29}{declare TeX Gyre Pagella, Asana Math, Palatino <LT> Std, and Palatino
+% as aliases of \texttt{Palatino Linotype} (OpenType version)}
+% \begin{macrocode}
+\DeclareMicrotypeAlias{TeX Gyre Pagella}{Palatino Linotype}
+\DeclareMicrotypeAlias{Palatino LT Std} {Palatino Linotype}
+\DeclareMicrotypeAlias{Palatino} {Palatino Linotype}
+\DeclareMicrotypeAlias{Asana Math} {Palatino Linotype}
+% \end{macrocode}
%\todo{check Times variants}
% More Times variants, to be checked: |pns|, |mns| (TimesNewRomanPS); |mnt|
% (Times\-NewRomanMT, TimesNRSevenMT), |mtm| (TimesSmallTextMT); |pte|
@@ -11252,6 +12168,16 @@ time will almost certainly lead to undesired results. Have your choice!}%
\DeclareMicrotypeAlias{mdbch}{bch} % mathdesign/Charter
\DeclareMicrotypeAlias{mdugm}{ugm} % mathdesign/URW Garamond
% \end{macrocode}
+% The \pkg{garamondx} package, an extension of <URW> Garamond, providing
+% small caps and oldstyle figures.
+%\changes{v2.5}{2013/02/20}{declare \texttt{zgmx} etc. (\pkg{garamondx})
+% as aliases of <URW> Garamond}
+% \begin{macrocode}
+\DeclareMicrotypeAlias{zgmx}{ugm} % garamondx
+\DeclareMicrotypeAlias{zgmj}{ugm} % "
+\DeclareMicrotypeAlias{zgmI}{ugm} % "
+\DeclareMicrotypeAlias{zgmq}{ugm} % "
+% \end{macrocode}
% <URW> Letter Gothic is similar enough to Bitstream Letter Gothic to share the
% configuration.
% \begin{macrocode}
@@ -11564,6 +12490,51 @@ time will almost certainly lead to undesired results. Have your choice!}%
y = {\`y,\'y,\~y,\h y,\d y}
}
+% \end{macrocode}
+%\subsubsection{<EU1>, <EU2>}
+%\changes{v2.5}{2010/11/05}{add rudimentary list for <EU1> and <EU2>} ^^A (beta:03)
+% The <EU1> and <EU2> encodings are not well-defined as they don't
+% contain a fixed number of glyphs, all of which must be present.
+% OpenType fonts may contain thousands of glyphs, but we only define those
+% that should be present in every font (basically <T1>). This inheritance list
+% should be overridden by font-specific ones.
+% \begin{macrocode}
+\DeclareCharacterInheritance
+ { encoding = {EU1,EU2} }
+ { A = {\`A,\'A,\^A,\~A,\"A,\r A,\k A,\u A},
+ a = {\`a,\'a,\^a,\~a,\"a,\r a,\k a,\u a},
+ C = {\'C,\c C,\v C},
+ c = {\'c,\c c,\v c},
+ D = {\v D,\DH},
+ d = {\v d,\dj},
+ E = {\`E,\'E,\^E,\"E,\k E,\v E},
+ e = {\`e,\'e,\^e,\"e,\k e,\v e},
+% f = {/f_f}, % sometimes /f_f, sometimes /ff
+ G = {\u G},
+ g = {\u g},
+ I = {\`I,\'I,\^I,\"I,\.I},
+ i = {\`i,\'i,\^i,\"i,\i},
+% j = {\j},
+ L = {\L,\'L,\v L},
+ l = {\l,\'l,\v l},
+ N = {\'N,\~N,\v N},
+ n = {\'n,\~n,\v n},
+ O = {\O,\`O,\'O,\^O,\~O,\"O,\H O},
+ o = {\o,\`o,\'o,\^o,\~o,\"o,\H o},
+ R = {\'R,\v R},
+ r = {\'r,\v r},
+ S = {\'S,\c S,\v S}, % \SS
+ s = {\'s,\c s,\v s},
+ T = {\c T,\v T},
+ t = {\c t,\v t},
+ U = {\`U,\'U,\^U,\"U,\H U,\r U},
+ u = {\`u,\'u,\^u,\"u,\H u,\r u},
+ Y = {\'Y,\"Y},
+ y = {\'y,\"y},
+ Z = {\'Z,\.Z,\v Z},
+ z = {\'z,\.z,\v z}
+ }
+
%</m-t>
% \end{macrocode}
%
@@ -11578,21 +12549,16 @@ time will almost certainly lead to undesired results. Have your choice!}%
%</zpeu>
%<*mvs>
-\DeclareCharacterInheritance
- { encoding = OT1,
- family = mvs }
- { 164 = {099,100,101} } % \EURhv,\EURcr,\EURtm
-
% \end{macrocode}
% Since 2006/05/11 (that is, one week after I've added these settings, after the
-% package had been dormant for six years), \pkg{marvosym}'s encoding is
+% package had been dormant for six years!), \pkg{marvosym}'s encoding is
% (correctly) <U> instead of <OT1>.
%\changes{v1.9e}{2006/07/05}{adapt to \pkg{marvosym}'s changed encoding}
% \begin{macrocode}
\DeclareCharacterInheritance
- { encoding = U,
+ { encoding = {OT1,U},
family = mvs }
- { 164 = {099,100,101} }
+ { 164 = {099,100,101} } % \EURhv,\EURcr,\EURtm
%</mvs>
% \end{macrocode}
@@ -11601,6 +12567,7 @@ time will almost certainly lead to undesired results. Have your choice!}%
%\GeneralChanges{Tracking}
%
%\changes{v2.2}{2007/02/23}{add ligatures that are to be disabled}
+%\changes{v2.5}{2011/09/07}{add <EU2> encoding to default list} ^^A (beta:09)
% By default, we only disable the `f*' ligatures, for those fonts that have
% any. Thus, ligatures and especially kerning for all other characters will be
% retained.
@@ -11612,7 +12579,7 @@ time will almost certainly lead to undesired results. Have your choice!}%
\SetTracking
[ name = default,
no ligatures = {f} ]
- { encoding = {OT1,T1,T2A,LY1,OT4,QX} }
+ { encoding = {OT1,T1,T2A,LY1,OT4,QX,EU2} }
{ }
% \end{macrocode}
@@ -12109,6 +13076,9 @@ time will almost certainly lead to undesired results. Have your choice!}%
% <T1> and <LY1> encodings contain some more characters. The default list
% will be loaded first.
%\changes{v1.9a}{2005/11/07}{fix: remove `\texttt{\_}' from <OT1> encoding}
+% For \xetex\ (<EU1>) and \luatex\ (<EU2>) we simply use the <T1> list as
+% default (for now).
+%\changes{v2.5}{2010/11/05}{add default lists for <EU1> and <EU2>} ^^A (beta:03)
% \begin{macrocode}
\SetProtrusion
%<m-t> [ name = T1-default,
@@ -12129,7 +13099,7 @@ time will almost certainly lead to undesired results. Have your choice!}%
%<ppl> load = ppl-default ]
%<ptm> load = ptm-default ]
%<ugm> load = ugm-default ]
-%<m-t> { encoding = {T1,LY1} }
+%<m-t> { encoding = {T1,LY1,EU1,EU2} }
%<bch|cmr|pad|pmn|ppl> { encoding = {T1,LY1},
%<blg|ptm|ugm> { encoding = {T1},
%<bch> family = bch }
@@ -12437,12 +13407,22 @@ time will almost certainly lead to undesired results. Have your choice!}%
%
%\subsubsection{Italics}
%
-% To find default settings for italic is difficult, since the character shapes
-% and their behaviour at the beginning or end of line may be wildly different
-% for different fonts. Therefore, we leave the letters away, and only set up the
-% punctuation characters.
%\changes{v1.4b}{2004/11/22}{slanted like italics}
%\changes{v1.6}{2004/12/26}{add italic uppercase Greek letters}
+%
+% To find default settings for italic is difficult, since the character shapes
+% and their behaviour at the beginning or end of line may be wildly different
+% for different fonts. In the generic settings we therefore omit the letters,
+% and only set up the punctuation characters.
+%
+% The italic glyphs of Computer Modern Roman feature a lot of side bearing,
+% therefore almost all of them have to protrude.\footnote{Settings
+% contributed by \contributor Hendrik Vogt <hendrik.vogt\at tu-dresden.de>.}
+%\changes{v2.5}{2011/04/09}{improvements to Computer Modern Roman italics
+% (contributed by \contributor Hendrik Vogt <hendrik.vogt\at tu-dresden.de>)}
+% ^^A private mail, 2011/02/24
+% ^^A (beta:07)
+%
% \begin{macrocode}
\SetProtrusion
%<m-t> [ name = OT1-it ]
@@ -12467,119 +13447,173 @@ time will almost certainly lead to undesired results. Have your choice!}%
%<blg|ugm> shape = it }
%<cmr|pmn> { }
{
-%<cmr|ptm> A = {100,50},
+%<cmr> A = {100,100},
+%<ptm> A = {100,50},
%<pad|pmn> A = {50, },
%<ugm> A = { ,150},
%<ppl> A = {50,50},
%<ptm> \AE = {100, },
%<pad|ppl> \AE = {50, },
-%<cmr|pad|ppl|ptm> B = {50, },
+%<cmr> B = {83,-40},
+%<pad|ppl|ptm> B = {50, },
%<pmn> B = {20,-50},
%<bch|ppl|ptm|ugm> C = {50, },
-%<cmr|pad> C = {100, },
+%<cmr> C = {165,-75},
+%<pad> C = {100, },
%<pmn> C = {50,-50},
-%<cmr|pad|ppl|ptm> D = {50,50},
+%<cmr> D = {75, -28},
+%<pad|ppl|ptm> D = {50,50},
%<pmn> D = {20, },
-%<cmr|pad|ppl|ptm> E = {50, },
+%<cmr> E = {80,-55},
+%<pad|ppl|ptm> E = {50, },
%<pmn> E = {20,-50},
-%<cmr|pad|ptm> F = {100, },
+%<cmr> F = {85,-80},
+%<pad|ptm> F = {100, },
%<pmn> F = {10, },
%<ppl> F = {50, },
%<bch|ppl|ptm|ugm> G = {50, },
-%<cmr|pad> G = {100, },
+%<cmr> G = {153,-15},
+%<pad> G = {100, },
%<pmn> G = {50,-50},
-%<cmr|pad|ppl|ptm> H = {50, },
-%<cmr|pad|ptm> I = {50, },
+%<cmr> H = {73,-60},
+%<pad|ppl|ptm> H = {50, },
+%<cmr> I = {140,-120},
+%<pad|ptm> I = {50, },
%<pmn> I = {20,-50},
-%<cmr|ptm> J = {100, },
+%<cmr> J = {135,-80},
%<pad> J = {50, },
%<pmn> J = {20, },
-%<cmr|pad|ppl|ptm> K = {50, },
+%<ptm> J = {100, },
+%<cmr> K = {70,-30},
+%<pad|ppl|ptm> K = {50, },
%<pmn> K = {20, },
-%<cmr|pad|ppl|ptm> L = {50, },
+%<cmr> L = {87, 40},
+%<pad|ppl|ptm> L = {50, },
%<pmn> L = {20,50},
%<ugm> L = { ,100},
-%<cmr|ptm> M = {50, },
+%<cmr> M = {67,-45},
%<pmn> M = { ,-30},
-%<cmr|ptm> N = {50, },
+%<ptm> M = {50, },
+%<cmr> N = {75,-55},
%<pmn> N = { ,-30},
+%<ptm> N = {50, },
%<bch|pmn|ppl|ptm> O = {50, },
-%<cmr|pad> O = {100, },
+%<cmr> O = {150,-30},
+%<pad> O = {100, },
%<ugm> O = {70,50},
%<ppl|ptm> \OE = {50, },
%<pad> \OE = {100, },
-%<cmr|pad|ppl|ptm> P = {50, },
+%<cmr> P = {82,-50},
+%<pad|ppl|ptm> P = {50, },
%<pmn> P = {20,-50},
%<bch|pmn|ppl|ptm> Q = {50, },
-%<cmr|pad> Q = {100, },
+%<cmr> Q = {150,-30},
+%<pad> Q = {100, },
%<ugm> Q = {70,50},
-%<cmr|pad|ppl|ptm> R = {50, },
+%<cmr> R = {75, 15},
+%<pad|ppl|ptm> R = {50, },
%<pmn> R = {20, },
-%<bch|cmr|pad|ppl|ptm> S = {50, },
+%<bch|pad|ppl|ptm> S = {50, },
+%<cmr> S = {90,-65},
%<pmn> S = {20,-30},
-%<bch|cmr|pad|ppl|ptm> $ = {50, },
+%<bch|pad|ppl|ptm> $ = {50, },
+%<cmr> $ = {100,-20},
%<pmn> $ = {20,-30},
%<bch|pmn|ugm> T = {70, },
-%<cmr|pad|ppl|ptm> T = {100, },
-%<cmr|pad|ppl|ptm> U = {50, },
+%<cmr> T = {220,-85},
+%<pad|ppl|ptm> T = {100, },
+%<cmr> U = {230,-55},
+%<pad|ppl|ptm> U = {50, },
%<pmn> U = {50,-50},
-%<cmr|pad|pmn|ugm> V = {100, },
+%<cmr> V = {260,-60},
+%<pad|pmn|ugm> V = {100, },
%<ppl|ptm> V = {100,50},
-%<cmr|pad|pmn|ugm> W = {100, },
+%<cmr> W = {185,-55},
+%<pad|pmn|ugm> W = {100, },
%<ppl> W = {50, },
%<ptm> W = {100,50},
-%<cmr|ppl|ptm> X = {50, },
-%<cmr|ptm> Y = {100, },
+%<cmr> X = {70,-30},
+%<ppl|ptm> X = {50, },
+%<cmr> Y = {250,-60},
%<pmn> Y = {50, },
%<ppl> Y = {100,50},
+%<ptm> Y = {100, },
+%<cmr> Z = {90,-60},
%<pmn> Z = { ,-50},
+%<cmr> a = {150,-10},
+%<cmr> b = {170, },
+%<cmr> c = {173,-10},
+%<cmr> d = {150,-55},
%<pmn> d = { ,-50},
+%<cmr> e = {180, },
+%<cmr> f = { ,-250},
%<pad|pmn> f = { ,-100},
+%<cmr> g = {150,-10},
+%<cmr> h = {100, },
+%<cmr> i = {210, },
%<pmn> i = { ,-30},
+%<cmr> j = { ,-40},
%<pmn> j = { ,-30},
+%<cmr> k = {110,-50},
+%<cmr> l = {240,-110},
%<pmn> l = { ,-100},
+%<cmr> m = {80, },
+%<cmr> n = {115, },
%<bch> o = {50,50},
+%<cmr> o = {155, },
%<bch> p = { ,50},
%<pmn> p = {-50, },
%<bch> q = {50, },
+%<cmr> q = {170,-40},
+%<cmr> r = {155,-40},
%<pmn> r = { ,50},
+%<cmr> s = {130, },
%<bch> t = { ,50},
+%<cmr> t = {230,-10},
+%<cmr> u = {120, },
+%<cmr> v = {140,-25},
%<pmn|ugm> v = {50, },
%<bch> w = { ,50},
+%<cmr> w = {98,-20},
%<pmn|ugm> w = {50, },
+%<cmr> x = {65,-40},
%<bch> y = { ,50},
-%<cmr> 0 = {100, },
+%<cmr> y = {130,-20},
+%<cmr> z = {110,-80},
+%<cmr> 0 = {170,-85},
%<bch|ptm> 1 = {150,100},
-%<cmr> 1 = {200,50},
+%<cmr> 1 = {230,110},
%<pad> 1 = {150, },
%<pmn> 1 = {50, },
%<ppl> 1 = {100, },
%<ugm> 1 = {150,150},
-%<cmr> 2 = {100,-100},
+%<cmr> 2 = {130,-70},
%<pad|ppl|ptm> 2 = {50, },
%<pmn> 2 = {-50, },
%<bch> 3 = {50, },
-%<cmr> 3 = {100,-100},
+%<cmr> 3 = {140,-70},
%<pmn> 3 = {-100, },
%<ptm> 3 = {100,50},
%<bch> 4 = {100, },
-%<cmr|pad> 4 = {150, },
+%<cmr> 4 = {130,80},
+%<pad> 4 = {150, },
%<ppl|ptm> 4 = {50, },
-%<cmr> 5 = {100, },
+%<cmr> 5 = {160, },
%<ptm> 5 = {50, },
%<bch> 6 = {50, },
-%<cmr> 6 = {100, },
+%<cmr> 6 = {175,-30},
%<bch|pad|ptm> 7 = {100, },
-%<cmr> 7 = {200,-150},
+%<cmr> 7 = {250,-150},
%<pmn> 7 = {20, },
%<ppl> 7 = {50, },
-%<cmr> 8 = {50,-50},
-%<cmr> 9 = {100,-100},
+%<cmr> 8 = {130,-40},
+%<cmr> 9 = {155,-80},
%<m-t|cmr|pad|pmn|ppl> . = { ,500},
%<blg> . = {400,600},
%<bch|ptm|ugm> . = { ,700},
%<blg> {,}= {300,500},
-%<m-t|cmr|pad|pmn|ppl> {,}= { ,500},
+%<m-t|pad|pmn|ppl> {,}= { ,500},
+%<cmr> {,}= { ,450},
%<bch|ugm> {,}= { ,600},
%<ptm> {,}= { ,700},
%<m-t|cmr|pad|ppl> : = { ,300},
@@ -12597,29 +13631,33 @@ time will almost certainly lead to undesired results. Have your choice!}%
%<pmn> " = {400,200},
%<m-t|pad|pmn|ppl|ptm> & = {50,50},
%<bch> & = { ,80},
-%<cmr> & = {100,50},
+%<cmr> & = {130,30},
%<ugm> & = {50,100},
-%<m-t|cmr|pad|pmn> \% = {100, },
+%<m-t|pad|pmn> \% = {100, },
+%<cmr> \% = {180,50},
%<bch> \% = {50,50},
%<ppl|ptm> \% = {100,100},
%<ugm> \% = {100,50},
%<m-t|pmn|ppl> * = {200,200},
%<bch> * = {300,200},
-%<cmr> * = {400,100},
+%<cmr> * = {380,20},
%<pad> * = {500,100},
%<ptm|ugm> * = {400,200},
-%<m-t|cmr|pmn|ppl> + = {150,200},
+%<m-t|pmn|ppl> + = {150,200},
+%<cmr> + = {180,200},
%<bch|ugm> + = {250,250},
%<pad|ptm> + = {250,200},
%<m-t|pad|pmn|ppl> @ = {50,50},
%<bch> @ = {80,50},
-%<cmr> @ = {200,50},
+%<cmr> @ = {180,10},
%<ptm> @ = {150,150},
%<m-t|bch|ugm> ~ = {150,150},
%<cmr|pad|pmn|ppl|ptm> ~ = {200,150},
%<ugm> {=}= {200,200},
-%<!blg> ( = {200, }, ) = { ,200},
-%<m-t|cmr|pad|ppl|ptm|ugm> / = {100,200},
+%<m-t|bch|pad|pmn|ppl|ptm|ugm> ( = {200, }, ) = { ,200},
+%<cmr> ( = {300, }, ) = { ,70},
+%<m-t|pad|ppl|ptm|ugm> / = {100,200},
+%<cmr> / = {100,100},
%<bch> / = { ,150},
%<pmn> / = {100,150},
%<m-t> - = {300,300},
@@ -12632,16 +13670,17 @@ time will almost certainly lead to undesired results. Have your choice!}%
%<blg> _ = {0,300},
%<m-t|pmn> \textendash = {200,200}, \textemdash = {150,150},
%<bch> \textendash = {200,300}, \textemdash = {150,200},
-%<cmr> \textendash = {500,300}, \textemdash = {400,200},
+%<cmr> \textendash = {500,300}, \textemdash = {400,170},
%<pad|ppl|ptm|ugm> \textendash = {300,300}, \textemdash = {200,200},
%<m-t|bch|pmn|ugm> \textquoteleft = {400,200}, \textquoteright = {400,200},
%<blg> \textquoteleft = {400,400}, \textquoteright = {400,400},
-%<cmr|pad> \textquoteleft = {800,200}, \textquoteright = {800,200},
+%<cmr> \textquoteleft = {800,200}, \textquoteright = {800,-20},
+%<pad> \textquoteleft = {800,200}, \textquoteright = {800,200},
%<ppl> \textquoteleft = {700,400}, \textquoteright = {700,400},
%<ptm> \textquoteleft = {800,500}, \textquoteright = {800,500},
%<m-t|bch|pmn> \textquotedblleft = {400,200}, \textquotedblright = {400,200}
%<blg> \textquotedblright = {300,300}
-%<cmr> \textquotedblleft = {700,100}, \textquotedblright = {500,300}
+%<cmr> \textquotedblleft = {540,100}, \textquotedblright = {500,100}
%<pad> \textquotedblleft = {700,200}, \textquotedblright = {700,200}
%<ppl> \textquotedblleft = {500,300}, \textquotedblright = {500,300}
%<ptm> \textquotedblleft = {700,400}, \textquotedblright = {700,400}
@@ -14908,7 +15947,7 @@ time will almost certainly lead to undesired results. Have your choice!}%
% \subsection{Additional kerning}
%\GeneralChanges{Kerning}
%
-% Default unit is 1\,em.
+% Default unit is \EM{1}.
%
% \begin{macrocode}
%%% -----------------------------------------------------------------------
@@ -14991,6 +16030,15 @@ time will almost certainly lead to undesired results. Have your choice!}%
%</config>
% \end{macrocode}
%^^A\changes{v2.0}{2006/12/28}{remove \texttt{letterspacing} settings}
+%
+%^^A \includepdf[pages=-,
+%^^A addtotoc={1,section,1,OpenType configuration files,section.\thesection}]
+%^^A {microtype-utf.pdf}
+%\section{OpenType font configuration files}
+% The configuration files for OpenType fonts are not included in the
+% documentation. Please refer to the respective |mt-|\meta{font}|.cfg|
+% files in the |microtype| \TeX\ input directory.
+%
%\GeneralChanges*
%
%\section{Auxiliary file for micro fine tuning}
@@ -15128,7 +16176,7 @@ normal, and shrunk by 5\%:
% Grave accent \` Left brace \{ Vertical bar \|
% Right brace \} Tilde \~}
%
-% \CheckSum{9578}
+% \CheckSum{10217}
%
% \Finale
%
diff --git a/Master/texmf-dist/source/latex/microtype/microtype.ins b/Master/texmf-dist/source/latex/microtype/microtype.ins
index b35d8733494..34fe8baa33f 100644
--- a/Master/texmf-dist/source/latex/microtype/microtype.ins
+++ b/Master/texmf-dist/source/latex/microtype/microtype.ins
@@ -1,5 +1,5 @@
% !Mode:: "TeX:STY:UK"
-% $Id: microtype.ins,v 1.20 2010-01-10 02:00:43+01 schlicht Exp schlicht $
+% $Id: microtype.ins,v 1.22 2013-03-13 05:07:23+01 schlicht Exp schlicht $
% ------------------------------------------------------------------------
\input docstrip
\keepsilent
@@ -10,8 +10,8 @@
------------------------------------------------------------------------
The `microtype' package
- An interface to the micro-typographic extensions of pdfTeX
- Copyright (c) 2004--2010 R Schlicht <w.m.l@gmx.net>
+ Subliminal refinements towards typographical perfection
+ Copyright (c) 2004--2013 R Schlicht <w.m.l@gmx.net>
This work may be distributed and/or modified under the conditions of the
LaTeX Project Public License, either version 1.3c of this license or (at
@@ -22,7 +22,8 @@ of all distributions of LaTeX version 2005/12/01 or later.
This work has the LPPL maintenance status `author-maintained'.
This work consists of the files microtype.dtx and microtype.ins and the
-derived files microtype.sty, microtype.lua and letterspace.sty.
+derived files microtype.sty, microtype-pdftex.def, microtype-xetex.def,
+microtype-luatex.def, microtype.lua and letterspace.sty.
% Modified versions of the configuration files (*.cfg) may be distributed
% provided that: (1) the original copyright statement is not removed, and
@@ -45,6 +46,9 @@ derived files microtype.sty, microtype.lua and letterspace.sty.
commands. Do not use this package together with the `microtype' package.
Please refer to section 7 of the `microtype' documentation.
\endpreamble
+\declarepreamble\defpreamble
+ This file contains enginge-specific definitions.
+\endpreamble
\declarepreamble\luapreamble
This file contains auxiliary lua functions.
It was contributed by Elie Roux <elie.roux{at}telecom-bretagne.eu>.
@@ -97,7 +101,11 @@ derived files microtype.sty, microtype.lua and letterspace.sty.
\usedir{tex/latex/microtype}
\let\MetaPrefix\DoubleperCent
\generate{
- \makefile{microtype.sty}{package,lua}
+ \makefile{microtype.sty}{package}
+ \usepreamble\defpreamble
+ \makefile{microtype-pdftex.def}{pdftex-def}
+ \makefile{microtype-luatex.def}{luatex-def}
+ \makefile{microtype-xetex.def} {xetex-def}
\usepreamble\lsppreamble
\makefile{letterspace.sty}{letterspace,plain}
\usepreamble\cfgpreamble
diff --git a/Master/texmf-dist/tex/latex/microtype/letterspace.sty b/Master/texmf-dist/tex/latex/microtype/letterspace.sty
index 0f49716a828..3fc1de4ec15 100644
--- a/Master/texmf-dist/tex/latex/microtype/letterspace.sty
+++ b/Master/texmf-dist/tex/latex/microtype/letterspace.sty
@@ -9,8 +9,8 @@
%% ------------------------------------------------------------------------
%%
%% The `microtype' package
-%% An interface to the micro-typographic extensions of pdfTeX
-%% Copyright (c) 2004--2010 R Schlicht <w.m.l@gmx.net>
+%% Subliminal refinements towards typographical perfection
+%% Copyright (c) 2004--2013 R Schlicht <w.m.l@gmx.net>
%%
%% This work may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License, either version 1.3c of this license or (at
@@ -21,7 +21,8 @@
%% This work has the LPPL maintenance status `author-maintained'.
%%
%% This work consists of the files microtype.dtx and microtype.ins and the
-%% derived files microtype.sty, microtype.lua and letterspace.sty.
+%% derived files microtype.sty, microtype-pdftex.def, microtype-xetex.def,
+%% microtype-luatex.def, microtype.lua and letterspace.sty.
%%
%% ------------------------------------------------------------------------
%% This is a stand-alone version that only provides the letterspacing
@@ -32,7 +33,7 @@
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage
{letterspace}
- [2010/01/10 v2.4
+ [2013/03/13 v2.5
Robust letterspacing
(RS)]
\def\MT@MT
@@ -86,56 +87,59 @@
\def\MT@requires@latex#1{%
\ifnum\MT@plain<#1 \expandafter\@secondoftwo\else\expandafter\@firstoftwo\fi
}
-\def\MT@pdftex@no{0}
+\ifcase 0%
+ \ifx\eTeXversion\@undefined 1\else
+ \ifx\eTeXversion\relax 1\else
+ \ifcase\eTeXversion 1\fi
+ \fi
+ \fi
+\else
+ \catcode`\^^Q=9 \catcode`\^^X=14
+\fi
+\def\MT@clear@options{%
+ \MT@requires@latex1{%
+ \AtEndOfPackage{\let\@unprocessedoptions\relax\MT@restore@catcodes}%
+ \let\CurrentOption\@empty
+ }\relax
+}
\ifx\normalpdftexversion\@undefined \else
\let\pdftexversion \normalpdftexversion
\let\pdftexrevision\normalpdftexrevision
\let\pdfoutput \normalpdfoutput
\fi
+\let\MT@engine\relax
+\def\MT@engine@tooold{0}
\ifx\pdftexversion\@undefined \else
\ifx\pdftexversion\relax \else
- \def\MT@pdftex@no{7}
- \ifnum\pdftexversion < 140
- \def\MT@pdftex@no{5}
+ \def\MT@engine{pdf}
+ \let\MT@pdf@or@lua\@firstoftwo
+ \ifnum\pdftexversion > 139 \def\MT@engine@tooold{1}\fi
+ \ifx\directlua\@undefined \else
+ \ifx\directlua\relax \else
+ \def\MT@engine{lua}
+ \let\MT@pdf@or@lua\@secondoftwo
+ \ifnum\luatexversion < 62 \def\MT@engine@tooold{0}\fi
+ \fi
\fi
\fi
\fi
-\def\MT@clear@options{%
- \MT@requires@latex1{%
- \AtEndOfPackage{\let\@unprocessedoptions\relax}%
- \let\CurrentOption\@empty
- }\relax
-}
-\ifnum\MT@pdftex@no <
- 6
+\ifnum
+ \MT@engine@tooold=\z@
\MT@warning@nl{You
- \ifcase\MT@pdftex@no
- don't seem to be using pdftex.\MessageBreak
- `\MT@MT' only works with pdftex.\MessageBreak
- Try running `pdflatex' instead of
- `\ifx\XeTeXversion\@undefined\else xe\fi latex'%
+ \ifx\MT@engine\relax
+ don't seem to be using pdftex or luatex.\MessageBreak
+ Try running `pdftex' or `luatex' instead of\MessageBreak
+ `\ifx\XeTeXversion\@undefined\else xe\fi tex'%
\else
- are using a pdftex version older than
- 1.40%
+ are using a \MT@engine tex version older than
+ \MT@pdf@or@lua{1.40}{0.62}%
.\MessageBreak
`\MT@MT' does not work with this version.\MessageBreak
- Please install a newer version of pdftex%
+ Please install a newer version of \MT@engine tex%
\fi
- }
- \MT@clear@options\MT@restore@catcodes
+ .\MessageBreak I will quit now}
+ \MT@clear@options
\endinput\fi
-\ifx\directlua\@undefined \else
- \ifx\directlua\relax \else
- \MT@warning@nl
- {`\MT@MT'
- doesn't currently work with luatex.%
- \MessageBreak
- Bye bye%
- }
- \MT@clear@options\MT@restore@catcodes
- \expandafter\expandafter\expandafter\endinput
- \fi
-\fi
\RequirePackage{keyval}[1997/11/10]
\def\MT@tr@min{-\@m}
\let\MT@tr@max\@m
@@ -163,13 +167,23 @@
\fi
}
\endgroup
- \def\MT@ifint#1{%
- \ifcase\pdfmatch{^-*[0-9]+ *$}{#1}\relax
- \expandafter\@secondoftwo
- \else
- \expandafter\@firstoftwo
- \fi
- }
+\MT@pdf@or@lua{
+\def\MT@ifint#1{%
+ \ifcase\pdfmatch{^-*[0-9]+ *$}{#1}\relax
+ \expandafter\@secondoftwo
+ \else
+ \expandafter\@firstoftwo
+ \fi
+}
+}{
+\def\MT@ifint#1{%
+ \if!\ifnum9<1#1!\else?\fi
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+}
+}
\def\MT@map@clist@n#1#2{%
\ifx\@empty#1\else
\def\MT@clist@function##1{#2}%
@@ -197,7 +211,9 @@
\advance\@tempcnta \@ne
\ifnum\@tempcnta < #2\MT@repeat
}
-\def\MT@do@font{\MT@while@num\z@\@cclvi}
+\def\MT@do@font{\MT@while@num\z@
+ \@cclvi
+}
\MT@requires@latex1{
\let\MT@setup@\@empty
\def\MT@addto@setup{\g@addto@macro\MT@setup@}
@@ -260,6 +276,7 @@
\def\MT@set@lsfont{\MT@exp@two@c\let\font@name\MT@lsfont}
\DeclareRobustCommand\lsstyle{%
\not@math@alphabet\lsstyle\textls
+ \let\glb@currsize\@empty
\let\MT@tracking\MT@set@tr@codes
\selectfont
}
@@ -321,6 +338,7 @@
\MT@ifempty{#1}%
{\let\MT@letterspace@\@undefined}%
{\KV@@sp@def\MT@letterspace@{#1}%
+ \edef\MT@letterspace@{\number\MT@letterspace@}%
\MT@ls@too@large\MT@letterspace@}%
\MT@ls@adjust@
}
@@ -421,28 +439,29 @@
\def\MT@getkey#1=#2\@nil{#1}
\MT@ProcessOptionsWithKV{MT}
}\relax
- \MT@addto@setup{%
- \ifnum\pdfoutput<\@ne
- \def\MT@warn@tracking@DVI{%
- \MT@warning@nl{%
- You are using tracking/letterspacing in DVI mode.\MessageBreak
- This will probably not work, unless the post-\MessageBreak
- processing program (dvips, dvipdfm(x), ...) is\MessageBreak
- able to create the virtual fonts on the fly}%
- \MT@glet\MT@warn@tracking@DVI\relax
- }%
- \else
- \def\MT@warn@tracking@DVI{%
- \ifnum\pdfprotrudechars<\@ne \global\pdfprotrudechars\@ne \fi
- \MT@glet\MT@warn@tracking@DVI\relax
- }%
- \fi
- \ifnum\MT@letterspace=\m@ne
- \let\MT@letterspace\MT@letterspace@default
- \else
- \MT@ls@too@large\MT@letterspace
- \fi
- }%
+\MT@addto@setup
+{%
+ \ifnum\pdfoutput<\@ne
+ \def\MT@warn@tracking@DVI{%
+ \MT@warning@nl{%
+ You are using tracking/letterspacing in DVI mode.\MessageBreak
+ This will probably not work, unless the post-\MessageBreak
+ processing program (dvips, dvipdfm(x), ...) is\MessageBreak
+ able to create the virtual fonts on the fly}%
+ \MT@glet\MT@warn@tracking@DVI\relax
+ }%
+ \else
+ \def\MT@warn@tracking@DVI{%
+ \ifnum\pdfprotrudechars<\@ne \global\pdfprotrudechars\@ne \fi
+ \MT@glet\MT@warn@tracking@DVI\relax
+ }%
+ \fi
+ \ifnum\MT@letterspace=\m@ne
+ \let\MT@letterspace\MT@letterspace@default
+ \else
+ \MT@ls@too@large\MT@letterspace
+ \fi
+}
\MT@requires@latex1{
\AtBeginDocument{\MT@setup@ \MT@glet\MT@setup@\@empty}
}\relax
diff --git a/Master/texmf-dist/tex/latex/microtype/microtype-luatex.def b/Master/texmf-dist/tex/latex/microtype/microtype-luatex.def
new file mode 100644
index 00000000000..c560e4fe160
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/microtype/microtype-luatex.def
@@ -0,0 +1,1162 @@
+%%
+%% This is file `microtype-luatex.def',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% microtype.dtx (with options: `luatex-def')
+%%
+%% ------------------------------------------------------------------------
+%%
+%% The `microtype' package
+%% Subliminal refinements towards typographical perfection
+%% Copyright (c) 2004--2013 R Schlicht <w.m.l@gmx.net>
+%%
+%% This work may be distributed and/or modified under the conditions of the
+%% LaTeX Project Public License, either version 1.3c 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.3c or later is part
+%% of all distributions of LaTeX version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `author-maintained'.
+%%
+%% This work consists of the files microtype.dtx and microtype.ins and the
+%% derived files microtype.sty, microtype-pdftex.def, microtype-xetex.def,
+%% microtype-luatex.def, microtype.lua and letterspace.sty.
+%%
+%% ------------------------------------------------------------------------
+%% This file contains enginge-specific definitions.
+%% ------------------------------------------------------------------------
+%%
+\ProvidesFile
+ {microtype-luatex.def}
+ [2013/03/13 v2.5
+ Definitions specific to
+ luatex
+ (RS)]
+\def\MT@lua{\directlua}
+\def\MT@luatex@no{3}
+\ifnum\luatexversion<62
+ \def\MT@luatex@no{2}
+ \ifnum\luatexversion<36
+ \def\MT@lua{\directlua0}
+ \def\MT@luatex@no{1}
+ \fi
+\fi
+\def
+ \MT@requires@luatex%
+ #1{\ifnum
+ \MT@luatex@no
+ <#1 \expandafter\@secondoftwo\else\expandafter\@firstoftwo\fi}
+\MT@lua{
+ if (luatextra and luatextra.use_module) then
+ luatextra.use_module("microtype")
+ else
+ dofile(kpse.find_file("microtype.lua"))
+ end}
+\def\MT@ifint#1{\csname\MT@lua{microtype.if_int([[#1]])}\endcsname}
+\def\MT@ifdimen#1{\csname\MT@lua{microtype.if_dimen([[#1]])}\endcsname}
+\def\MT@ifstreq#1#2{\csname\MT@lua{microtype.if_str_eq([[#1]],[[#2]])}\endcsname}
+\def\MT@do@font{\MT@while@num\z@
+ \MT@max@slot
+}
+ \def\MT@ledmac@setup{%
+ \ifMT@protrusion
+ \MT@ifdefined@c@TF\l@dunhbox@line{%
+ \MT@info@nl{Patching ledmac to enable character protrusion}%
+ \newdimen\MT@led@kern
+ \let\MT@led@unhbox@line\l@dunhbox@line
+ \renewcommand*{\l@dunhbox@line}[1]{%
+ \ifhbox##1%
+ \MT@led@kern=\rightmarginkern##1%
+ \kern\leftmarginkern##1%
+ \MT@led@unhbox@line##1%
+ \kern\MT@led@kern
+ \fi
+ }%
+ }{%
+ \MT@warning@nl{%
+ Character protrusion in paragraphs with line\MessageBreak
+ numbering will only work if you update ledmac}%
+ }%
+ \fi
+ }
+\def\MT@setupfont{\MT@setupfont@hook}
+\g@addto@macro\MT@setupfont\MT@copy@font
+\g@addto@macro\MT@setupfont{%
+ \MT@exp@two@c\MT@split@name\string\MT@font/\@nil
+ \MT@exp@one@n\MT@find@file\MT@family
+ \ifx\MT@familyalias\@empty \else
+ \MT@exp@one@n\MT@find@file\MT@familyalias\fi
+}
+\MT@requires@luatex3
+ {\g@addto@macro\MT@setupfont\MT@tracking}\relax
+\g@addto@macro\MT@setupfont{%
+ \MT@check@font
+ \ifMT@inlist@
+ \else
+ \MT@vinfo{Setting up font `\MT@@font'\on@line}%
+ \MT@protrusion
+ \MT@expansion
+}
+\g@addto@macro\MT@setupfont\MT@noligatures
+\g@addto@macro\MT@setupfont{%
+ \MT@register@font
+ \fi
+}
+\let\MT@copy@font\relax
+\def\MT@copy@font@{%
+ \xdef\MT@font@copy{\csname\MT@@font/\MT@pr@context/\MT@ex@context\endcsname}%
+ \expandafter\ifx\MT@font@copy\relax
+ \edef\MT@font@orig{\csname\expandafter\string\font@name @orig\endcsname}%
+ \expandafter\ifx\MT@font@orig\relax
+ \MT@exp@two@c\MT@glet\MT@font@orig\font@name
+ \else
+ \MT@exp@two@c\let\font@name\MT@font@orig
+ \fi
+ \global\MT@exp@two@c\pdfcopyfont\MT@font@copy\font@name
+ \MT@map@clist@c\MT@active@features{%
+ \MT@exp@cs\ifx{MT@\@nameuse{MT@abbr@##1}}\relax\else
+ \def\@tempa{##1}%
+ \MT@exp@cs\MT@map@tlist@c{MT@##1@doc@contexts}\MT@rem@from@list
+ \fi
+ }%
+ \fi
+ \MT@exp@two@c\let\MT@font\MT@font@copy
+ \let\font@name\MT@font@copy
+ \aftergroup\let\aftergroup\font@name\aftergroup\MT@font@copy
+}
+\def\MT@rem@from@list#1{%
+ \MT@exp@cs\ifx{MT@\@tempa @#1font@list}\relax\else
+ \expandafter\MT@exp@one@n\expandafter\MT@rem@from@clist\expandafter
+ \MT@font \csname MT@\@tempa @#1font@list\endcsname
+ \fi
+}
+\def\MT@protrusion{\MT@maybe@do{pr}}
+\def\MT@set@pr@codes{%
+ \MT@nofamilyfalse
+ \MT@if@list@exists{%
+ \ifMT@nofamily
+ \MT@ifdefined@n@TF{\MT@encoding-\MT@family-settings}\relax{%
+ \MT@info@nl{Loading generic settings for font family\MessageBreak
+ `\MT@family' (encoding: \MT@encoding).\MessageBreak
+ For optimal results, create family-specific settings.\MessageBreak
+ See the microtype manual for details}%
+ \MT@glet@nc{\MT@encoding-\MT@family-settings}\@empty
+ }%
+ \fi
+ \MT@get@font@dimen@six{%
+ \MT@get@opt
+ \MT@reset@pr@codes
+ \MT@get@inh@list
+ \MT@set@inputenc{c}%
+ \MT@load@list\MT@pr@c@name
+ \MT@set@listname
+ \MT@let@cn\@tempc{MT@pr@c@\MT@pr@c@name}%
+ \expandafter\MT@set@codes\@tempc,\relax,}%
+ }\MT@reset@pr@codes
+}
+\def\MT@get@font@dimen@six{%
+ \ifnum\fontdimen6\MT@font=\z@
+ \MT@warning@nl{%
+ Font `\MT@@font' does not specify its\MessageBreak
+ \@backslashchar fontdimen 6 (width of an `em')! Therefore,\MessageBreak
+ \@nameuse{MT@abbr@\MT@feat} will not work with this font}%
+ \expandafter\@gobble
+ \else
+ \edef\MT@dimen@six{\number\fontdimen6\MT@font}%
+ \expandafter\@firstofone
+ \fi
+}
+\def\MT@set@all@pr#1#2{%
+ \let\MT@temp\@empty
+ \MT@ifempty{#1}\relax{\g@addto@macro\MT@temp{\lpcode\MT@font\@tempcnta=#1}}%
+ \MT@ifempty{#2}\relax{\g@addto@macro\MT@temp{\rpcode\MT@font\@tempcnta=#2}}%
+ \MT@do@font\MT@temp
+}
+\def\MT@reset@pr@codes@{\MT@set@all@pr\z@\z@}
+\let\MT@reset@pr@codes\relax
+\def\MT@the@pr@code{\@tempcntb}
+\MT@requires@luatex3
+ {\def\MT@the@pr@code@tr{%
+ \numexpr\@tempcntb+\MT@letterspace@/2\relax
+ }
+}\relax
+\def\MT@set@codes#1,{%
+ \ifx\relax#1\@empty\else
+ \MT@split@codes #1==\relax
+ \expandafter\MT@set@codes
+ \fi
+}
+\def\MT@split@codes#1=#2=#3\relax{%
+ \def\@tempa{#1}%
+ \ifx\@tempa\@empty \else
+ \MT@get@slot
+ \ifnum\MT@char > \m@ne
+ \MT@get@char@unit
+ \csname MT@\MT@feat @split@val\endcsname#2\relax
+ \fi
+ \fi
+}
+\def\MT@pr@split@val#1,#2\relax{%
+ \def\@tempb{#1}%
+ \MT@ifempty\@tempb\relax{%
+ \MT@scale@to@em
+ \lpcode\MT@font\MT@char=\MT@the@pr@code
+ }%
+ \def\@tempb{#2}%
+ \MT@ifempty\@tempb\relax{%
+ \MT@scale@to@em
+ \rpcode\MT@font\MT@char=\MT@the@pr@code
+ }%
+ \MT@ifdefined@c@T\MT@pr@inh@name{%
+ \MT@ifdefined@n@T{MT@inh@\MT@pr@inh@name @\MT@char @}{%
+ \MT@exp@cs\MT@map@tlist@c
+ {MT@inh@\MT@pr@inh@name @\MT@char @}%
+ \MT@set@pr@heirs
+ }%
+ }%
+}
+\def\MT@scale@to@em{%
+ \@tempcntb=\MT@count\relax
+ \MT@scale\@tempcntb \@tempb \MT@dimen@six
+ \ifnum\@tempcntb=\z@ \else
+ \MT@scale@factor
+ \fi
+}
+\def\MT@get@charwd{%
+ \MT@count=\fontcharwd\MT@font\MT@char\relax
+ \ifnum\MT@count=\z@ \MT@info@missing@char \fi
+}
+\def\MT@set@pr@heirs#1{%
+ \lpcode\MT@font #1 =\lpcode\MT@font\MT@char\relax
+ \rpcode\MT@font #1 =\rpcode\MT@font\MT@char\relax
+}
+\def\MT@preset@pr{%
+ \expandafter\expandafter\expandafter\MT@preset@pr@
+ \csname MT@pr@c@\MT@pr@c@name @preset\endcsname\@nil
+}
+\def\MT@preset@pr@#1,#2\@nil{%
+ \ifx\MT@pr@unit@\@empty
+ \MT@warn@preset@towidth{pr}%
+ \let\MT@preset@aux\MT@preset@aux@factor
+ \else
+ \def\MT@preset@aux{\MT@preset@aux@space2}%
+ \fi
+ \MT@ifempty{#1}{\let\@tempa\@empty}{\MT@preset@aux{#1}\@tempa}%
+ \MT@ifempty{#2}{\let\@tempb\@empty}{\MT@preset@aux{#2}\@tempb}%
+ \MT@set@all@pr\@tempa\@tempb
+}
+\def\MT@preset@aux@factor#1#2{%
+ \@tempcntb=#1\relax
+ \MT@scale@factor
+ \edef#2{\number\@tempcntb}%
+}
+\def\MT@preset@aux@space#1#2#3{%
+ \def\@tempb{#2}%
+ \MT@get@space@unit#1%
+ \MT@scale@to@em
+ \edef#3{\number\@tempcntb}%
+}
+\def\MT@warn@preset@towidth#1{%
+ \MT@warning@nl{%
+ Cannot preset characters relative to their widths\MessageBreak
+ for \@nameuse{MT@abbr@#1} list `\@nameuse{MT@#1@c@name}'. Presetting them%
+ \MessageBreak relative to 1em instead}%
+}
+\def\MT@expansion{\MT@maybe@do{ex}}
+\def\MT@set@ex@codes@s{%
+ \MT@if@list@exists{%
+ \MT@get@ex@opt
+ \let\MT@get@char@unit\relax
+ \MT@reset@ef@codes
+ \MT@get@inh@list
+ \MT@set@inputenc{c}%
+ \MT@load@list\MT@ex@c@name
+ \MT@set@listname
+ \MT@let@cn\@tempc{MT@ex@c@\MT@ex@c@name}%
+ \expandafter\MT@set@codes\@tempc,\relax,%
+ \MT@expandfont
+ }\relax
+}
+\def\MT@set@ex@codes@n{%
+ \MT@nonselectedtrue
+ \MT@if@list@exists
+ \MT@get@ex@opt
+ {%
+ \let\MT@stretch@ \MT@stretch
+ \let\MT@shrink@ \MT@shrink
+ \let\MT@step@ \MT@step
+ \let\MT@auto@ \MT@auto
+ \let\MT@ex@factor@\MT@ex@factor
+ }%
+ \MT@reset@ef@codes
+ \MT@expandfont
+ \MT@nonselectedfalse
+}
+\let\MT@set@ex@codes\MT@set@ex@codes@n
+\def\MT@expandfont{%
+ \pdffontexpand\MT@font \MT@stretch@ \MT@shrink@ \MT@step@ \MT@auto@\relax
+}
+\def\MT@set@all@ex#1{%
+ \MT@do@font{\efcode\MT@font\@tempcnta=#1\relax}%
+}
+\def\MT@reset@ef@codes@{\MT@set@all@ex\MT@ex@factor@}
+ \let\MT@reset@ef@codes\MT@reset@ef@codes@
+\def\MT@ex@split@val#1\relax{%
+ \@tempcntb=#1\relax
+ \ifnum\MT@ex@factor@=\@m \else
+ \MT@scale\@tempcntb \MT@ex@factor@ \@m
+ \fi
+ \ifnum\@tempcntb > \MT@ex@max
+ \MT@warn@ex@too@large\MT@ex@max
+ \else
+ \ifnum\@tempcntb < \MT@ex@min
+ \MT@warn@ex@too@large\MT@ex@min
+ \fi
+ \fi
+ \efcode\MT@font\MT@char=\@tempcntb
+ \MT@ifdefined@c@T\MT@ex@inh@name{%
+ \MT@ifdefined@n@T{MT@inh@\MT@ex@inh@name @\MT@char @}{%
+ \MT@exp@cs\MT@map@tlist@c{MT@inh@\MT@ex@inh@name @\MT@char @}\MT@set@ex@heirs
+ }%
+ }%
+}
+\def\MT@warn@ex@too@large#1{%
+ \MT@warning@nl{Expansion factor \number\@tempcntb\space too large for
+ character\MessageBreak `\the\MT@toks' in \MT@curr@list@name.\MessageBreak
+ Setting it to the maximum of \number#1}%
+ \@tempcntb=#1\relax
+}
+\def\MT@get@ex@opt{%
+ \MT@set@listname
+ \MT@ifdefined@n@TF{MT@ex@c@\MT@ex@c@name @factor}{%
+ \MT@let@cn\MT@ex@factor@{MT@ex@c@\MT@ex@c@name @factor}%
+ \MT@vinfo{... : Multiplying expansion factors by \number\MT@ex@factor@/1000}%
+ }{%
+ \let\MT@ex@factor@\MT@ex@factor
+ }%
+ \MT@get@ex@opt@{stretch}{Setting stretch limit to \number\MT@stretch@}%
+ \MT@get@ex@opt@{shrink} {Setting shrink limit to \number\MT@shrink@}%
+ \MT@get@ex@opt@{step} {Setting expansion step to \number\MT@step@}%
+ \def\@tempa{autoexpand}%
+ \MT@get@ex@opt@{auto}{\ifx\@tempa\MT@auto@ En\else Dis\fi abling automatic expansion}%
+ \MT@ifdefined@n@T{MT@ex@c@\MT@ex@c@name @preset}{%
+ \MT@preset@ex
+ \let\MT@reset@ef@codes\relax
+ }%
+}
+\def\MT@get@ex@opt@#1#2{%
+ \MT@ifdefined@n@TF{MT@ex@c@\MT@ex@c@name @#1}{%
+ \MT@let@nn{MT@#1@}{MT@ex@c@\MT@ex@c@name @#1}%
+ \MT@vinfo{... : #2}%
+ }{%
+ \MT@let@nn{MT@#1@}{MT@#1}%
+ }%
+}
+\def\MT@set@ex@heirs#1{%
+ \efcode\MT@font#1=\efcode\MT@font\MT@char
+}
+\def\MT@preset@ex{%
+ \@tempcntb=\csname MT@ex@c@\MT@ex@c@name @preset\endcsname\relax
+ \MT@scale@factor
+ \MT@set@all@ex\@tempcntb
+}
+\MT@requires@luatex3
+{
+\let\MT@tr@font@list\@empty
+\def\MT@tracking@{%
+ \MT@exp@one@n\MT@in@clist\MT@font\MT@tr@font@list
+ \ifMT@inlist@\else
+ \MT@maybe@do{tr}%
+ \ifMT@do\else
+ \xdef\MT@tr@font@list{\MT@tr@font@list\MT@font,}%
+ \fi
+ \fi
+}
+\let\MT@tracking
+ \MT@tracking@
+\def\MT@set@tr@codes{%
+ \MT@vinfo{Tracking font `\MT@@font'\on@line}%
+ \MT@get@font@dimen@six{%
+ \MT@if@list@exists
+ \MT@get@tr@opt
+ \relax
+ \MT@ifdefined@c@TF\MT@letterspace@\relax{\let\MT@letterspace@\MT@letterspace}%
+ \ifnum\MT@letterspace@=\z@
+ \MT@set@tr@zero
+ \else
+ \MT@vinfo{... Tracking by \number\MT@letterspace@}%
+ \MT@warn@tracking@DVI
+ \xdef\MT@lsfont{\csname\expandafter\string\font@name
+ /\number\MT@letterspace@ ls\endcsname}%
+ \expandafter\ifx\MT@lsfont\relax
+ \MT@get@ls@basefont
+ \global\expandafter\letterspacefont\MT@lsfont\font@name\MT@letterspace@
+ \MT@ifdefined@c@TF\MT@tr@ispace
+ {\let\@tempa\MT@tr@ispace}%
+ {\edef\@tempa{\MT@letterspace@*,,}}%
+ \MT@ifdefined@c@TF\MT@tr@ospace
+ {\edef\@tempa{\@tempa,\MT@tr@ospace}}%
+ {\edef\@tempa{\@tempa,,,}}%
+ \expandafter\MT@tr@set@space\@tempa,%
+ \MT@ifdefined@c@TF\MT@tr@okern{\let\@tempa\MT@tr@okern}{\def\@tempa{*,*}}%
+ \expandafter\MT@tr@set@okern\@tempa,%
+ \MT@ifdefined@c@T\MT@tr@ligatures\MT@tr@noligatures
+ \MT@do@font{\lpcode\MT@lsfont\@tempcnta=\numexpr\MT@letterspace@/2\relax
+ \rpcode\MT@lsfont\@tempcnta=\numexpr\MT@letterspace@/2\relax}%
+ \let\MT@the@pr@code\MT@the@pr@code@tr
+ \fi
+ \aftergroup\MT@set@lsfont
+ \let\MT@font\MT@lsfont
+ \xdef\MT@set@curr@ls{\def\noexpand\MT@curr@ls{\MT@letterspace@}}%
+ \aftergroup\MT@set@curr@ls
+ \MT@outer@space=\csname MT@outer@space\expandafter\string\font@name\endcsname\relax
+ \xdef\MT@set@curr@os{\MT@outer@space=\the\MT@outer@space\relax}%
+ \MT@tr@outer@l
+ \ifx\MT@ls@adjust\@empty
+ \MT@outer@kern=-\dimexpr\MT@letterspace@ sp * \fontdimen6\font@name/2000\relax
+ \MT@ls@outer@k
+ \else
+ \MT@outer@kern=\expandafter\expandafter\expandafter\@firstoftwo
+ \csname MT@outer@kern\expandafter\string\font@name\endcsname\relax
+ \ifdim\MT@outer@kern=\z@\else \MT@ls@outer@k \fi
+ \MT@outer@kern=\expandafter\expandafter\expandafter\@secondoftwo
+ \csname MT@outer@kern\expandafter\string\font@name\endcsname\relax
+ \fi
+ \xdef\MT@set@curr@ok{\MT@outer@kern=\the\MT@outer@kern\relax}%
+ \aftergroup\aftergroup\aftergroup\MT@ls@aftergroup
+ \fi
+ }%
+}
+\def\MT@get@tr@opt{%
+ \MT@set@listname
+ \MT@ifdefined@n@T{MT@tr@c@\MT@tr@c@name}{%
+ \MT@let@cn\MT@letterspace{MT@tr@c@\MT@tr@c@name}%
+ \MT@ifdefined@n@T{MT@tr@c@\MT@tr@c@name @unit}{%
+ \MT@let@cn\MT@tr@unit@{MT@tr@c@\MT@tr@c@name @unit}%
+ \ifdim\MT@tr@unit@=1em
+ \let\MT@tr@unit@\@undefined
+ \else
+ \MT@let@cn\@tempb{MT@tr@c@\MT@tr@c@name}%
+ \MT@get@unit\MT@tr@unit@
+ \let\MT@tr@factor@\@m
+ \MT@scale@to@em
+ \edef\MT@letterspace{\number\@tempcntb}%
+ \fi
+ }%
+ }%
+ \MT@get@tr@opt@{spacing} {ispace}%
+ \MT@get@tr@opt@{outerspacing}{ospace}%
+ \MT@get@tr@opt@{outerkerning}{okern}%
+ \MT@get@tr@opt@{noligatures} {ligatures}%
+}
+\def\MT@get@tr@opt@#1#2{%
+ \MT@ifdefined@n@T{MT@tr@c@\MT@tr@c@name @#1}%
+ {\MT@let@nn{MT@tr@#2}{MT@tr@c@\MT@tr@c@name @#1}}%
+}
+\def\MT@set@lsfont{\MT@exp@two@c\let\font@name\MT@lsfont}
+\DeclareRobustCommand\lsstyle{%
+ \not@math@alphabet\lsstyle\textls
+ \let\glb@currsize\@empty
+ \def\MT@feat{tr}%
+ \let\MT@tracking\MT@set@tr@codes
+ \selectfont
+}
+\DeclareRobustCommand\lslig[1]{%
+ {\MT@ifdefined@c@TF\MT@curr@ls{%
+ \escapechar\m@ne
+ \MT@get@ls@basefont
+ \MT@outer@kern=\dimexpr\MT@curr@ls sp * \fontdimen6\font@name/2000\relax
+ \kern\MT@outer@kern
+ \font@name #1%
+ \kern\MT@outer@kern%
+ }{#1}}%
+}
+\def\MT@get@ls@basefont{%
+ \xdef\MT@ls@basefont{\csname\expandafter\string\font@name @base\endcsname}%
+ \expandafter\ifx\MT@ls@basefont\relax
+ \MT@exp@two@c\MT@glet\MT@ls@basefont\font@name
+ \else
+ \MT@exp@two@c\let\font@name\MT@ls@basefont
+ \fi
+}
+\def\MT@set@lsbasefont{\MT@exp@two@c\let\font@name\MT@ls@basefont}
+\def\MT@set@tr@zero{%
+ \xdef\MT@ls@basefont{\csname\expandafter\string\font@name @base\endcsname}%
+ \expandafter\ifx\MT@ls@basefont\relax \else
+ \aftergroup\MT@set@lsbasefont
+ \fi
+}
+ \def\MT@tr@noligatures{%
+ \ifx\MT@tr@ligatures\@empty
+ \MT@noligatures@\MT@lsfont\@undefined
+ \else
+ \MT@noligatures@\MT@lsfont\MT@tr@ligatures
+ \fi
+ }
+\newskip\MT@outer@space
+\def\MT@tr@set@space#1,#2,#3,#4,#5,#6,{%
+ \let\MT@temp\@empty
+ \MT@tr@set@space@{#1}{#4}{2}\@empty
+ \MT@tr@set@space@{#2}{#5}{3}\@plus
+ \MT@tr@set@space@{#3}{#6}{4}\@minus
+ \MT@glet@nc{MT@outer@space\expandafter\string\font@name}\MT@temp
+}
+\def\MT@tr@set@space@#1#2#3#4{%
+ \MT@ifempty{#2}{%
+ \MT@ifempty{#1}{%
+ \edef\MT@temp{\MT@temp#4\the\fontdimen#3\MT@lsfont}%
+ }{%
+ \MT@tr@set@space@@{#1}{#3}{1000}%
+ \edef\MT@temp{\MT@temp#4\the\@tempdima}%
+ \fontdimen#3\MT@lsfont=\@tempdima
+ }%
+ }{%
+ \MT@tr@set@space@@{#2}{#3}{2000}%
+ \edef\MT@temp{\MT@temp#4\the\@tempdima}%
+ \MT@ifempty{#1}\relax{%
+ \MT@tr@set@space@@{#1}{#3}{1000}%
+ \fontdimen#3\MT@lsfont=\@tempdima
+ }%
+ }%
+}
+\def\MT@tr@set@space@@#1#2#3{%
+ \MT@test@ast#1*\@nil{%
+ \MT@ifdefined@c@TF\MT@tr@unit@
+ {\edef\@tempb{#1}\MT@scale@to@em}
+ {\@tempcntb=#1\relax}%
+ \@tempdima=\dimexpr \dimexpr\@tempcntb sp*\MT@dimen@six/1000\relax
+ -\fontdimen#2\MT@lsfont\relax
+ \ifnum#2=\tw@
+ \advance\@tempdima -\dimexpr\MT@letterspace@ sp*\MT@dimen@six/#3\relax
+ \fi
+ \@tempdima=\dimexpr \fontdimen#2\MT@lsfont+\@tempdima\relax
+ }{%
+ \MT@ifempty\@tempa{\let\@tempa\MT@letterspace@}\relax
+ \@tempdima=\dimexpr \numexpr1000+\@tempa sp *\fontdimen#2\MT@lsfont/1000\relax
+ }%
+}
+\def\MT@tr@outer@l{%
+ \ifhmode
+ \ifdim\lastskip>5sp
+ \edef\x{\the\lastskip minus 0pt}%
+ \setbox\z@\hbox{\MT@outer@space=\x}%
+ \ifdim\wd\z@>\z@
+ \unskip \hskip\MT@outer@space\relax
+ \let\MT@ls@outer@k\relax
+ \else
+ \ifdim\lastskip=%
+ \ifnum\spacefactor<2000
+ \spaceskip
+ \else
+ \ifdim\xspaceskip=\z@
+ \dimexpr\spaceskip+\fontdimen7\font@name\relax
+ \else
+ \xspaceskip
+ \fi
+ \fi
+ \unskip \hskip\MT@outer@space\relax
+ \let\MT@ls@outer@k\relax
+ \fi
+ \fi
+ \fi
+ \fi
+}
+\def\MT@tr@outer@r{%
+ \futurelet\MT@tr@outer@next\MT@tr@outer@r@
+}
+\def\MT@if@outer@next#1{%
+ \ifx\MT@tr@outer@next#1\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi
+}
+\def\MT@tr@outer@r@{%
+ \def\MT@temp*{}%
+ \ifmmode \else
+ \ifnum\currentgrouptype=10 \else
+ \def\MT@temp*##1{\ifhmode\hskip\MT@outer@space
+ \fi}%
+ \expandafter\ifcat\expandafter\noexpand\csname MT@tr@outer@next\endcsname\egroup
+ \ifhmode\unkern\fi\egroup
+ \MT@set@curr@ok \MT@set@curr@os
+ \def\MT@temp*{\afterassignment\MT@tr@outer@r\let\MT@temp=}%
+ \else
+ \MT@if@outer@next\maybe@ic{%
+ \MT@set@curr@ok \MT@set@curr@os
+ \def\MT@temp*{\afterassignment\MT@tr@outer@icr\let\MT@temp=}%
+ }{%
+ \MT@if@outer@next\check@icr{%
+ \def\MT@temp*{\aftergroup\MT@tr@outer@r\check@icr\let\MT@temp=}%
+ }{%
+ \MT@if@outer@next\@sptoken{%
+ \def\MT@temp* {\ifhmode\hskip\MT@outer@space
+ \fi}%
+ }{%
+ \MT@if@outer@next~{%
+ \def\MT@temp*~{\nobreak\hskip\MT@outer@space
+ }%
+ }{%
+ \MT@if@outer@next\ \relax{%
+ \MT@if@outer@next\space\relax{%
+ \MT@if@outer@next\@xobeysp\relax{%
+ \def\MT@temp*{\ifdim\MT@outer@kern=\z@\else\MT@ls@outer@k
+ \fi}%
+ \MT@let@nc{MT@tr@outer@next}\relax
+ }}}}}}}\fi
+ \fi\fi
+ \MT@temp*%
+}
+\def\MT@tr@outer@icr{\afterassignment\MT@tr@outer@icr@\MT@tr@outer@r}
+\def\MT@tr@outer@icr@{%
+ \let\@let@token= \MT@tr@outer@next
+ \maybe@ic@
+}
+}{
+ \DeclareRobustCommand\lsstyle{%
+ \MT@error{Letterspacing only works with \MT@engine tex version
+ 0.62%
+ \MessageBreak or newer}
+ {Upgrade \MT@engine tex, or try the `soul' package instead.}%
+ \MT@glet\lsstyle\relax
+ }
+}
+\def\MT@tr@set@okern#1,#2,{%
+ \let\MT@temp\@empty
+ \MT@ifempty{#1}{\MT@tr@set@okern@{*}}{\MT@tr@set@okern@{#1}}%
+ \MT@ifempty{#2}{\MT@tr@set@okern@{*}}{\MT@tr@set@okern@{#2}}%
+ \MT@glet@nc{MT@outer@kern\expandafter\string\font@name}\MT@temp
+}
+\def\MT@tr@set@okern@#1{%
+ \MT@test@ast#1*\@nil{%
+ \MT@ifdefined@c@TF\MT@tr@unit@
+ {\edef\@tempb{#1}\MT@scale@to@em}
+ {\@tempcntb=#1\relax}%
+ \@tempdima=\dimexpr \@tempcntb sp * \MT@dimen@six/1000\relax
+ }{%
+ \MT@ifempty\@tempa{\let\@tempa\@m}\relax
+ \@tempdima=\dimexpr \numexpr\@tempa*\MT@letterspace@/1000\relax sp
+ * \fontdimen6\MT@lsfont/2000\relax
+ }%
+ \advance\@tempdima -\dimexpr \MT@letterspace@ sp
+ * \fontdimen6\MT@lsfont/2000\relax
+ \edef\MT@temp{\MT@temp{\the\@tempdima}}%
+}
+\def\MT@ls@outer@k{\ifhmode\kern\MT@outer@kern\relax\fi}
+\def\MT@noligatures{%
+ \MT@dotrue
+ \let\@tempa\MT@nl@setname
+ \MT@map@clist@n{font,encoding,family,series,shape,size}{%
+ \MT@ifdefined@n@TF{MT@checklist@##1}%
+ {\csname MT@checklist@##1\endcsname}%
+ {\MT@checklist@{##1}}%
+ {nl}%
+ }%
+ \ifMT@do
+ \MT@noligatures@\MT@font\MT@nl@ligatures
+ \fi
+}
+\def\MT@noligatures@#1#2{%
+ \MT@ifdefined@c@TF#2{%
+ \MT@ifdefined@c@TF\tagcode{%
+ \let\MT@warn@maybe@inputenc\@empty
+ \def\MT@curr@list@name{\@backslashchar DisableLigatures}%
+ \MT@map@clist@c#2{%
+ \KV@@sp@def\@tempa{##1}\MT@get@slot
+ \ifnum\MT@char>\m@ne \tagcode#1\MT@char=\m@ne \fi}%
+ \MT@vinfo{... Disabling ligatures for characters: #2}%
+ }{%
+ \pdfnoligatures#1%
+ \MT@warning{Cannot disable selected ligatures (pdftex doesn't\MessageBreak
+ know \@backslashchar tagcode). Disabling all ligatures of\MessageBreak
+ the font instead}%
+ }%
+ }{%
+ \pdfnoligatures#1%
+ \MT@vinfo{... Disabling ligatures}%
+ }%
+}
+\def\MT@get@slot@{%
+ \ifnum\MT@char > \m@ne
+ \ifnum\MT@char=47\relax
+ \ifMT@norest \else
+ \@tempcnta=\directlua{
+ local glyph = microtype.name_to_slot([[\expandafter\@gobble\@tempa]])
+ if glyph then tex.write(glyph)
+ else tex.write(-1)
+ end
+ }\relax
+ \ifnum\@tempcnta<\z@
+ \MT@warn@unknown
+ \let\MT@char\m@ne
+ \else
+ \edef\MT@char{\the\@tempcnta}%
+ \fi
+ \fi
+ \else
+ \ifMT@norest \else
+ \MT@warn@rest
+ \let\MT@char\m@ne
+ \fi
+ \fi
+ \else
+ \MT@warn@unknown
+ \fi
+}
+\def\MT@max@char
+ {1114111 }
+\def\MT@max@slot
+ {1114111 }
+\def\DisableLigatures{%
+ \MT@begin@catcodes
+ \MT@DisableLigatures
+}
+\newcommand*\MT@DisableLigatures[2][]{%
+ \MT@ifempty{#1}\relax{\gdef\MT@nl@ligatures{#1}}%
+ \xdef\MT@active@features{\MT@active@features,nl}%
+ \global\MT@noligaturestrue
+ \MT@declare@sets{nl}{no ligatures}{#2}%
+ \gdef\MT@nl@setname{no ligatures}%
+ \MT@end@catcodes
+}
+\def\SetProtrusion{%
+ \MT@begin@catcodes
+ \MT@SetProtrusion
+}
+\newcommand*\MT@SetProtrusion[3][]{%
+ \let\MT@extra@context\@empty
+ \MT@set@named@keys{MT@pr@c}{#1}%
+ \def\MT@permutelist{pr@c}%
+ \setkeys{MT@cfg}{#2}%
+ \MT@permute
+ \MT@gdef@n{MT@pr@c@\MT@pr@c@name}{#3}%
+ \MT@end@catcodes
+}
+\def\SetExpansion{%
+ \MT@begin@catcodes
+ \MT@SetExpansion
+}
+\newcommand*\MT@SetExpansion[3][]{%
+ \let\MT@extra@context\@empty
+ \MT@set@named@keys{MT@ex@c}{#1}%
+ \MT@ifdefined@n@T{MT@ex@c@\MT@ex@c@name @factor}{%
+ \ifnum\csname MT@ex@c@\MT@ex@c@name @factor\endcsname > \@m
+ \MT@warning@nl{Expansion factor \number\@nameuse{MT@ex@c@\MT@ex@c@name @factor}
+ too large in list\MessageBreak `\MT@ex@c@name'. Setting it to the
+ maximum of 1000}%
+ \MT@glet@nc{MT@ex@c@\MT@ex@c@name @factor}\@m
+ \fi
+ }%
+ \def\MT@permutelist{ex@c}%
+ \setkeys{MT@cfg}{#2}%
+ \MT@permute
+ \MT@gdef@n{MT@ex@c@\MT@ex@c@name}{#3}%
+ \MT@end@catcodes
+}
+\def\SetTracking{%
+ \MT@begin@catcodes
+ \MT@SetTracking
+}
+\newcommand*\MT@SetTracking[3][]{%
+ \let\MT@extra@context\@empty
+ \MT@set@named@keys{MT@tr@c}{#1}%
+ \def\MT@permutelist{tr@c}%
+ \setkeys{MT@cfg}{#2}%
+ \MT@permute
+ \KV@@sp@def\@tempa{#3}%
+ \MT@ifempty\@tempa\relax{%
+ \MT@ifint\@tempa
+ {\MT@xdef@n{MT@tr@c@\MT@tr@c@name}{\@tempa}}%
+ {\MT@warning{Value `\@tempa' is not a number in\MessageBreak
+ tracking set `\MT@curr@set@name'}}}%
+ \MT@end@catcodes
+}
+ \define@key{MT@ex@c}{context}[]{%
+ \MT@ifempty{#1}\relax{%
+ \MT@glet\MT@copy@font\MT@copy@font@
+ \def\MT@extra@context{#1}%
+ }%
+ }
+ \MT@addto@setup{%
+ \define@key{MT@ex@c}{context}[]{%
+ \ifx\MT@copy@font\MT@copy@font@
+ \MT@ifempty{#1}\relax{\def\MT@extra@context{#1}}%
+ \else
+ \MT@error{\MT@MT\space isn't set up for expansion contexts.\MessageBreak
+ Ignoring `context' key\on@line}%
+ {Either move the settings inside the preamble,\MessageBreak
+ or load the package with the `copyfonts' option.}%
+ \fi
+ }%
+ }
+ \define@key{MT@pr@c}{context}[]{%
+ \MT@ifempty{#1}\relax{%
+ \MT@glet\MT@copy@font\MT@copy@font@
+ \def\MT@extra@context{#1}%
+ }%
+ }
+ \MT@addto@setup{%
+ \define@key{MT@pr@c}{context}[]{%
+ \MT@ifempty{#1}\relax{\def\MT@extra@context{#1}}%
+ \ifx\MT@copy@font\MT@copy@font@\else
+ \MT@warning@nl{If protrusion contexts don't work as expected,
+ \MessageBreak load the package with the `copyfonts' option}%
+ \fi
+ }%
+ }
+\define@key{MT@pr@c}{unit}[character]{%
+ \MT@glet@nc{MT@pr@c@\MT@curr@set@name @unit}\@empty
+ \def\@tempa{#1}%
+ \MT@ifstreq\@tempa{character}\relax{%
+ \MT@ifdimen\@tempa
+ {\MT@glet@nc{MT@pr@c@\MT@curr@set@name @unit}\@tempa}%
+ {\MT@warn@nodim{character widths}}%
+ }%
+}
+\define@key{MT@tr@c}{unit}[1em]{%
+ \MT@glet@nc{MT@tr@c@\MT@curr@set@name @unit}\@empty
+ \def\@tempa{#1}%
+ \MT@ifdimen\@tempa
+ {\MT@glet@nc{MT@tr@c@\MT@curr@set@name @unit}\@tempa}%
+ {\MT@warn@nodim{1em}%
+ \MT@gdef@n{MT@tr@c@\MT@curr@set@name @unit}{1em}}%
+}
+\MT@map@clist@n{stretch,shrink,step}{%
+ \define@key{MT@ex@c}{#1}[]{%
+ \MT@ifempty{##1}\relax{%
+ \MT@ifint{##1}{%
+ \MT@gdef@n{MT@ex@c@\MT@curr@set@name @#1}{##1 }%
+ }{%
+ \MT@warning{%
+ Value `##1' for option `#1' is not a number.\MessageBreak
+ Ignoring it}%
+ }%
+ }%
+ }%
+}
+\define@key{MT@ex@c}{auto}[true]{%
+ \def\@tempa{#1}%
+ \csname if\@tempa\endcsname
+ \MT@gdef@n{MT@ex@c@\MT@curr@set@name @auto}{autoexpand}%
+ \else
+ \MT@glet@nc{MT@ex@c@\MT@curr@set@name @auto}\@empty
+ \fi
+}
+\MT@define@opt@key{tr}{spacing}
+\MT@define@opt@key{tr}{outerspacing}
+\MT@define@opt@key{tr}{outerkerning}
+\define@key{MT@tr@c}{noligatures}[]%
+ {\MT@xdef@n{MT@tr@c@\MT@curr@set@name @noligatures}{#1}}
+\define@key{MT@tr@c}{outer spacing}[]{\setkeys{MT@tr@c}{outerspacing={#1}}}
+\define@key{MT@tr@c}{outer kerning}[]{\setkeys{MT@tr@c}{outerkerning={#1}}}
+\define@key{MT@tr@c}{no ligatures}[]{\setkeys{MT@tr@c}{noligatures={#1}}}
+\def\MT@inh@split#1=#2=#3\relax{%
+ \def\@tempa{#1}%
+ \ifx\@tempa\@empty \else
+ \MT@get@slot
+ \ifnum\MT@char > \m@ne
+ \let\MT@val\MT@char
+ \MT@map@clist@n{#2}{%
+ \def\@tempa{##1}%
+ \ifx\@tempa\@empty \else
+ \MT@get@slot
+ \ifnum\MT@char > \m@ne
+ \MT@exp@cs\MT@xadd{MT@inh@\MT@listname @\MT@val @}{{\MT@char}}%
+ \fi
+ \fi
+ }%
+ \fi
+ \fi
+}
+\MT@def@bool@opt{DVIoutput}{%
+ \csname if\@tempa\endcsname
+ \ifnum\pdfoutput>\z@ \MT@opt@DVItrue \fi
+ \pdfoutput\z@
+ \else
+ \ifnum\pdfoutput<\@ne \MT@opt@DVItrue \fi
+ \pdfoutput\@ne
+ \fi
+}
+ \MT@def@bool@opt{copyfonts}{%
+ \csname if\@tempa\endcsname
+ \MT@glet\MT@copy@font\MT@copy@font@
+ \else
+ \MT@glet\MT@copy@font\relax
+ \fi
+ }
+\ifnum\pdfoutput<\@ne \else
+ \MT@expansiontrue
+ \MT@autotrue
+\fi
+\def\MT@define@optionX#1#2{%
+ \define@key{MTX}{#1}[true]{%
+ \edef\@tempb{\csname MT@rbba@#1\endcsname}%
+ \MT@map@clist@n{##1}{%
+ \KV@@sp@def\MT@val{####1}%
+ \MT@ifempty\MT@val\relax{%
+ \@tempcnta=\m@ne
+ \MT@ifstreq\MT@val{true}{%
+ \MT@checksetup{#1}{%
+ \@tempcnta=\csname MT@\@tempb @level\endcsname
+ \MT@vinfo{Enabling #1
+ (level \number\csname MT@\@tempb @level\endcsname)\on@line}%
+ }%
+ }{%
+ \MT@ifstreq\MT@val{false}{%
+ \@tempcnta=\z@
+ \MT@vinfo{Disabling #1\on@line}%
+ }{%
+ \MT@ifstreq\MT@val{compatibility}{%
+ \MT@checksetup{#1}{%
+ \@tempcnta=\@ne
+ \MT@let@nc{MT@\@tempb @level}\@ne
+ \MT@vinfo{Setting #1 to level 1\on@line}%
+ }%
+ }{%
+ \MT@ifstreq\MT@val{nocompatibility}{%
+ \MT@checksetup{#1}{%
+ \@tempcnta=\tw@
+ \MT@let@nc{MT@\@tempb @level}\tw@
+ \MT@vinfo{Setting #1 to level 2\on@line}%
+ }%
+ }{\MT@error{Value `\MT@val' for key `#1' not recognised}
+ {Use any of `true', `false', `compatibility' or
+ `nocompatibility'.}%
+ }%
+ }%
+ }%
+ }%
+ \ifnum\@tempcnta>\m@ne
+ #2\@tempcnta\relax
+ \fi
+ }%
+ }%
+ }%
+}
+\def\MT@checksetup#1{%
+ \csname ifMT@#1\endcsname
+ \expandafter\@firstofone
+ \else
+ \MT@error{You cannot enable #1 if it was disabled\MessageBreak
+ in the package options}{Load microtype with #1 enabled.}%
+ \expandafter\@gobble
+ \fi
+}
+\MT@define@optionX{protrusion}\MT@protrudechars
+\MT@define@optionX{expansion}\MT@adjustspacing
+\let\MT@protrudechars\pdfprotrudechars
+\let\MT@adjustspacing\pdfadjustspacing
+\MT@requires@luatex3{
+ \def\MT@define@optionX@#1#2{%
+ \define@key{MTX}{#1}[true]{%
+ \MT@map@clist@n{##1}{%
+ \KV@@sp@def\MT@val{####1}%
+ \MT@ifempty\MT@val\relax{%
+ \@tempcnta=\m@ne
+ \MT@ifstreq\MT@val{true}{%
+ \MT@checksetup{#1}{%
+ \@tempcnta=\@ne
+ \MT@vinfo{Enabling #1\on@line}%
+ }%
+ }{%
+ \MT@ifstreq\MT@val{false}{%
+ \@tempcnta=\z@
+ \MT@vinfo{Disabling #1\on@line}%
+ }{\MT@error{Value `\MT@val' for key `#1' not recognised}
+ {Use either `true' or `false'}%
+ }%
+ }%
+ \ifnum\@tempcnta>\m@ne
+ #2\relax
+ \fi
+ }%
+ }%
+ }%
+ }
+ \MT@define@optionX@{tracking}{\ifnum\@tempcnta=\z@ \let\MT@tracking\MT@set@tr@zero
+ \else \let\MT@tracking\MT@tracking@ \fi}
+ \MT@define@optionX@{spacing}{\pdfadjustinterwordglue\@tempcnta}
+ \MT@define@optionX@{kerning}{\pdfprependkern\@tempcnta
+ \pdfappendkern \@tempcnta}
+}{
+\define@key{MTX}{tracking}[true]{\MT@warning{Ignoring tracking setup}}
+}
+\define@key{MTX}{kerning}[true]{\MT@warning{Ignoring kerning setup}}
+\define@key{MTX}{spacing}[true]{\MT@warning{Ignoring spacing setup}}
+\define@key{MTX}{activate}[true]{%
+ \setkeys{MTX}{protrusion={#1}}%
+ \setkeys{MTX}{expansion={#1}}%
+}
+\def\MT@setup@PDF{%
+ \MT@info@nl{Generating \ifnum\pdfoutput<\@ne DVI \else PDF \fi output%
+ \ifMT@opt@DVI\space (changed by \MT@MT)\fi}%
+}
+\def\MT@setup@copies{%
+ \ifx\MT@copy@font\relax\else \MT@info@nl{Using font copies for contexts}\fi
+}
+\def\MT@setup@protrusion{%
+ \ifMT@protrusion
+ \edef\MT@active@features{\MT@active@features,pr}%
+ \MT@protrudechars\MT@pr@level
+ \MT@info@nl{Character protrusion enabled (level \number\MT@pr@level)%
+ \ifnum\MT@pr@factor=\MT@factor@default \else,\MessageBreak
+ factor: \number\MT@pr@factor\fi
+ \ifx\MT@pr@unit\@empty \else,\MessageBreak unit: \MT@pr@unit\fi}%
+ \MT@check@active@set{pr}%
+ \else
+ \let\MT@protrusion\relax
+ \MT@info@nl{No character protrusion}%
+ \fi
+}
+\def\MT@setup@expansion{%
+ \ifnum\pdfoutput<\@ne
+ \ifMT@opt@expansion \else
+ \MT@expansionfalse
+ \fi
+ \fi
+ \ifMT@expansion
+ \ifnum\MT@stretch=\m@ne
+ \let\MT@stretch\MT@stretch@default
+ \fi
+ \ifnum\MT@shrink=\m@ne
+ \let\MT@shrink\MT@stretch
+ \fi
+ \ifnum\MT@step=\m@ne
+ \def\MT@step{1 }%
+ \fi
+ \ifnum\MT@step=\z@
+ \MT@warning@nl{The expansion step cannot be set to zero.\MessageBreak
+ Setting it to one}%
+ \def\MT@step{1 }%
+ \fi
+ \let\MT@auto\@empty
+ \ifMT@auto
+ \ifnum\pdfoutput<\@ne
+ \ifMT@opt@auto
+ \MT@error{%
+ Automatic font expansion only works for PDF output.\MessageBreak
+ However, you are creating a DVI file}
+ {If you have created expanded fonts instances, remove `auto' from%
+ \MessageBreak the package options. Otherwise, you have to switch
+ off expansion\MessageBreak completely.}%
+ \fi
+ \MT@autofalse
+ \else
+ \def\MT@auto{autoexpand}%
+ \fi
+ \else
+ \fi
+ \ifMT@selected
+ \let\MT@set@ex@codes\MT@set@ex@codes@s
+ \else
+ \let\MT@set@ex@codes\MT@set@ex@codes@n
+ \fi
+ \ifnum\MT@stretch=\z@
+ \ifnum\MT@shrink=\z@
+ \MT@warning@nl{%
+ Both the stretch and shrink limit are set to zero.\MessageBreak
+ Disabling font expansion}%
+ \MT@expansionfalse
+ \fi
+ \fi
+ \fi
+ \ifMT@expansion
+ \edef\MT@active@features{\MT@active@features,ex}%
+ \MT@adjustspacing\MT@ex@level
+ \MT@info@nl{\ifMT@auto A\else Non-a\fi utomatic font expansion enabled
+ (level \number\MT@ex@level),\MessageBreak
+ stretch: \number\MT@stretch, shrink: \number\MT@shrink,
+ step: \number\MT@step, \ifMT@selected\else non-\fi selected}%
+ \def\MT@check@step##1{%
+ \@tempcnta=\csname MT@##1\endcsname
+ \divide\@tempcnta \MT@step
+ \multiply\@tempcnta \MT@step
+ \ifnum\@tempcnta=\csname MT@##1\endcsname\else
+ \MT@warning@nl{The ##1 amount is not a multiple of step.\MessageBreak
+ The effective maximum ##1 is \the\@tempcnta\space
+ (step \number\MT@step)}%
+ \fi
+ }%
+ \MT@check@step{stretch}%
+ \MT@check@step{shrink}%
+ \MT@check@active@set{ex}%
+ \CheckCommand*\showhyphens[1]{\setbox0\vbox{%
+ \color@begingroup\everypar{}\parfillskip\z@skip
+ \hsize\maxdimen\normalfont\pretolerance\m@ne\tolerance\m@ne
+ \hbadness\z@\showboxdepth\z@\ ##1\color@endgroup}}%
+ \gdef\showhyphens##1{\setbox0\vbox{%
+ \color@begingroup\pdfadjustspacing\z@\everypar{}\parfillskip\z@skip
+ \hsize\maxdimen\normalfont\pretolerance\m@ne\tolerance\m@ne
+ \hbadness\z@\showboxdepth\z@\ ##1\color@endgroup}}%
+ \else
+ \let\MT@expansion\relax
+ \MT@info@nl{No font expansion}%
+ \fi
+}
+\MT@requires@luatex3{%
+ \def\MT@setup@tracking{%
+ \ifMT@tracking
+ \edef\MT@active@features{\MT@active@features,tr}%
+ \MT@info@nl{Tracking enabled}%
+ \MT@check@active@set{tr}%
+ \ifMT@protrusion\else\MT@protrudechars\@ne\fi
+ \else
+ \let\MT@tracking\relax
+ \MT@info@nl{No adjustment of tracking}%
+ \fi
+ }
+}{
+ \def\MT@setup@tracking{%
+ \ifMT@tracking
+ \MT@error{The tracking feature only works with luatex 0.62\MessageBreak
+ or newer. Switching it off}{Upgrade luatex.}%
+ \MT@trackingfalse
+ \MT@let@nc{MT@tracking}\relax
+ \else
+ \MT@info@nl{No adjustment of tracking (luatex too old)}%
+ \fi
+ }
+}
+ \def\MT@error@doesnt@work#1{%
+ \csname ifMT@#1\endcsname
+ \MT@error{The #1 feature only works with pdftex 1.40\MessageBreak
+ or newer. Switching it off}
+ {Use pdftex instead.}%
+ \csname MT@#1false\endcsname
+ \MT@let@nc{MT@#1}\relax
+ \else
+ \MT@info@nl{No adjustment of #1%
+ }%
+ \fi
+ }
+ \def\MT@setup@kerning {\MT@error@doesnt@work{kerning}}
+ \def\MT@setup@spacing {\MT@error@doesnt@work{spacing}}
+\def\MT@setup@warntracking
+{%
+ \ifnum\pdfoutput<\@ne
+ \def\MT@warn@tracking@DVI{%
+ \MT@warning@nl{%
+ You are using tracking/letterspacing in DVI mode.\MessageBreak
+ This will probably not work, unless the post-\MessageBreak
+ processing program (dvips, dvipdfm(x), ...) is\MessageBreak
+ able to create the virtual fonts on the fly}%
+ \MT@glet\MT@warn@tracking@DVI\relax
+ }%
+ \else
+ \def\MT@warn@tracking@DVI{%
+ \ifnum\pdfprotrudechars<\@ne \global\pdfprotrudechars\@ne \fi
+ \MT@glet\MT@warn@tracking@DVI\relax
+ }%
+ \fi
+ \ifnum\MT@letterspace=\m@ne
+ \let\MT@letterspace\MT@letterspace@default
+ \else
+ \MT@ls@too@large\MT@letterspace
+ \fi
+}
+\def\MT@setup@noligatures{%
+ \ifMT@noligatures \else
+ \let\MT@noligatures\relax
+ \fi
+}
+\endinput
+%%
+%% End of file `microtype-luatex.def'.
diff --git a/Master/texmf-dist/tex/latex/microtype/microtype-pdftex.def b/Master/texmf-dist/tex/latex/microtype/microtype-pdftex.def
new file mode 100644
index 00000000000..be537a1ff4b
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/microtype/microtype-pdftex.def
@@ -0,0 +1,1568 @@
+%%
+%% This is file `microtype-pdftex.def',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% microtype.dtx (with options: `pdftex-def')
+%%
+%% ------------------------------------------------------------------------
+%%
+%% The `microtype' package
+%% Subliminal refinements towards typographical perfection
+%% Copyright (c) 2004--2013 R Schlicht <w.m.l@gmx.net>
+%%
+%% This work may be distributed and/or modified under the conditions of the
+%% LaTeX Project Public License, either version 1.3c 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.3c or later is part
+%% of all distributions of LaTeX version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `author-maintained'.
+%%
+%% This work consists of the files microtype.dtx and microtype.ins and the
+%% derived files microtype.sty, microtype-pdftex.def, microtype-xetex.def,
+%% microtype-luatex.def, microtype.lua and letterspace.sty.
+%%
+%% ------------------------------------------------------------------------
+%% This file contains enginge-specific definitions.
+%% ------------------------------------------------------------------------
+%%
+\ProvidesFile
+ {microtype-pdftex.def}
+ [2013/03/13 v2.5
+ Definitions specific to
+ pdftex
+ (RS)]
+\def\MT@pdftex@no{7}
+\ifnum\pdftexversion = 140
+ \ifnum\pdftexrevision < 4
+ \def\MT@pdftex@no{6}
+ \fi
+\else
+ \ifnum\pdftexversion < 140
+ \def\MT@pdftex@no{5}
+ \ifnum\pdftexversion < 130
+ \def\MT@pdftex@no{4}
+ \ifnum\pdftexversion < 120
+ \def\MT@pdftex@no{3}
+ \ifnum\pdftexversion = 14
+ \ifnum \expandafter`\pdftexrevision < `h
+ \def\MT@pdftex@no{2}
+ \ifnum \expandafter`\pdftexrevision < `f
+ \def\MT@pdftex@no{1}
+ \fi
+ \fi
+ \else
+ \ifnum\pdftexversion < 14
+ \def\MT@pdftex@no{1}
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+\fi
+\ifnum
+ \csname MT@\MT@engine tex@no\endcsname < 2
+ \MT@warning@nl{You
+ are using a \MT@engine tex version older than
+ 0.14f%
+ .\MessageBreak
+ `\MT@MT' does not work with this version.\MessageBreak
+ Please install a newer version of \MT@engine tex%
+ .\MessageBreak I will quit now}
+ \MT@clear@options
+\endinput\fi
+\def
+ \MT@requires@pdftex%
+ #1{\ifnum
+ \MT@pdftex@no
+ <#1 \expandafter\@secondoftwo\else\expandafter\@firstoftwo\fi}
+\MT@requires@pdftex6{
+\def\MT@ifint#1{%
+ \ifcase\pdfmatch{^-*[0-9]+ *$}{#1}\relax
+ \expandafter\@secondoftwo
+ \else
+ \expandafter\@firstoftwo
+ \fi
+}
+}{
+\def\MT@ifint#1{%
+ \if!\ifnum9<1#1!\else?\fi
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+}
+}
+\MT@requires@pdftex6{
+\def\MT@ifdimen#1{%
+ \ifcase\pdfmatch{^([0-9]+([.,][0-9]+)?|[.,][0-9]+)%
+ (em|ex|cm|mm|in|pc|pt|dd|cc|bp|sp|nd|nc|px)? *$}{#1}\relax
+ \expandafter\@secondoftwo
+ \else
+ \expandafter\@firstoftwo
+ \fi
+}
+}{
+\def\MT@ifdimen#1{%
+ \setbox\z@=\hbox{%
+ \MT@count=1#1\relax
+ \ifnum\MT@count=\@ne
+ \aftergroup\@secondoftwo
+ \else
+ \aftergroup\@firstoftwo
+ \fi
+ }%
+}
+}
+\MT@requires@pdftex5{
+\def\MT@ifstreq#1#2{%
+ \ifcase\pdfstrcmp{#1}{#2}\relax
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+}
+}{
+\def\MT@ifstreq#1#2{%
+ \edef\MT@res@a{#1}%
+ \edef\MT@res@b{#2}%
+ \ifx\MT@res@a\MT@res@b
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+}
+}
+\def\MT@do@font{\MT@while@num\z@
+ \@cclvi
+}
+\MT@requires@pdftex5{
+ \def\MT@ledmac@setup{%
+ \ifMT@protrusion
+ \MT@ifdefined@c@TF\l@dunhbox@line{%
+ \MT@info@nl{Patching ledmac to enable character protrusion}%
+ \newdimen\MT@led@kern
+ \let\MT@led@unhbox@line\l@dunhbox@line
+ \renewcommand*{\l@dunhbox@line}[1]{%
+ \ifhbox##1%
+ \MT@led@kern=\rightmarginkern##1%
+ \kern\leftmarginkern##1%
+ \MT@led@unhbox@line##1%
+ \kern\MT@led@kern
+ \fi
+ }%
+ }{%
+ \MT@warning@nl{%
+ Character protrusion in paragraphs with line\MessageBreak
+ numbering will only work if you update ledmac}%
+ }%
+ \fi
+ }
+}{
+ \def\MT@ledmac@setup{%
+ \ifMT@protrusion
+ \MT@warning@nl{%
+ The pdftex version you are using does not allow\MessageBreak
+ character protrusion in paragraphs with line\MessageBreak
+ numbering by the `ledmac' package.\MessageBreak
+ Upgrade pdftex to version 1.30 or later}%
+ \fi
+ }
+}
+\def\MT@setupfont{\MT@setupfont@hook}
+\MT@requires@pdftex7{
+\g@addto@macro\MT@setupfont\MT@copy@font
+}\relax
+\g@addto@macro\MT@setupfont{%
+ \MT@exp@two@c\MT@split@name\string\MT@font/\@nil
+ \MT@exp@one@n\MT@find@file\MT@family
+ \ifx\MT@familyalias\@empty \else
+ \MT@exp@one@n\MT@find@file\MT@familyalias\fi
+}
+\MT@requires@pdftex6
+ {\g@addto@macro\MT@setupfont\MT@tracking}\relax
+\g@addto@macro\MT@setupfont{%
+ \MT@check@font
+ \ifMT@inlist@
+ \else
+ \MT@vinfo{Setting up font `\MT@@font'\on@line}%
+ \MT@protrusion
+ \MT@expansion
+}
+\MT@requires@pdftex6{
+\g@addto@macro\MT@setupfont{\MT@spacing\MT@kerning}
+}\relax
+\MT@requires@pdftex5{
+\g@addto@macro\MT@setupfont\MT@noligatures
+}\relax
+\g@addto@macro\MT@setupfont{%
+ \MT@register@font
+ \fi
+}
+\let\MT@copy@font\relax
+\MT@requires@pdftex7{
+\def\MT@copy@font@{%
+ \xdef\MT@font@copy{\csname\MT@@font/\MT@pr@context/\MT@ex@context\endcsname}%
+ \expandafter\ifx\MT@font@copy\relax
+ \edef\MT@font@orig{\csname\expandafter\string\font@name @orig\endcsname}%
+ \expandafter\ifx\MT@font@orig\relax
+ \MT@exp@two@c\MT@glet\MT@font@orig\font@name
+ \else
+ \MT@exp@two@c\let\font@name\MT@font@orig
+ \fi
+ \global\MT@exp@two@c\pdfcopyfont\MT@font@copy\font@name
+ \MT@map@clist@c\MT@active@features{%
+ \MT@exp@cs\ifx{MT@\@nameuse{MT@abbr@##1}}\relax\else
+ \def\@tempa{##1}%
+ \MT@exp@cs\MT@map@tlist@c{MT@##1@doc@contexts}\MT@rem@from@list
+ \fi
+ }%
+ \fi
+ \MT@exp@two@c\let\MT@font\MT@font@copy
+ \let\font@name\MT@font@copy
+ \aftergroup\let\aftergroup\font@name\aftergroup\MT@font@copy
+}
+\def\MT@rem@from@list#1{%
+ \MT@exp@cs\ifx{MT@\@tempa @#1font@list}\relax\else
+ \expandafter\MT@exp@one@n\expandafter\MT@rem@from@clist\expandafter
+ \MT@font \csname MT@\@tempa @#1font@list\endcsname
+ \fi
+}
+}\relax
+\def\MT@protrusion{\MT@maybe@do{pr}}
+\def\MT@set@pr@codes{%
+ \MT@nofamilyfalse
+ \MT@if@list@exists{%
+ \ifMT@nofamily
+ \MT@ifdefined@n@TF{\MT@encoding-\MT@family-settings}\relax{%
+ \MT@info@nl{Loading generic settings for font family\MessageBreak
+ `\MT@family' (encoding: \MT@encoding).\MessageBreak
+ For optimal results, create family-specific settings.\MessageBreak
+ See the microtype manual for details}%
+ \MT@glet@nc{\MT@encoding-\MT@family-settings}\@empty
+ }%
+ \fi
+ \MT@get@font@dimen@six{%
+ \MT@get@opt
+ \MT@reset@pr@codes
+ \MT@get@inh@list
+ \MT@set@inputenc{c}%
+ \MT@load@list\MT@pr@c@name
+ \MT@set@listname
+ \MT@let@cn\@tempc{MT@pr@c@\MT@pr@c@name}%
+ \expandafter\MT@set@codes\@tempc,\relax,}%
+ }\MT@reset@pr@codes
+}
+\def\MT@get@font@dimen@six{%
+ \ifnum\fontdimen6\MT@font=\z@
+ \MT@warning@nl{%
+ Font `\MT@@font' does not specify its\MessageBreak
+ \@backslashchar fontdimen 6 (width of an `em')! Therefore,\MessageBreak
+ \@nameuse{MT@abbr@\MT@feat} will not work with this font}%
+ \expandafter\@gobble
+ \else
+ \edef\MT@dimen@six{\number\fontdimen6\MT@font}%
+ \expandafter\@firstofone
+ \fi
+}
+\def\MT@set@all@pr#1#2{%
+ \let\MT@temp\@empty
+ \MT@ifempty{#1}\relax{\g@addto@macro\MT@temp{\lpcode\MT@font\@tempcnta=#1}}%
+ \MT@ifempty{#2}\relax{\g@addto@macro\MT@temp{\rpcode\MT@font\@tempcnta=#2}}%
+ \MT@do@font\MT@temp
+}
+\def\MT@reset@pr@codes@{\MT@set@all@pr\z@\z@}
+\let\MT@reset@pr@codes\relax
+\def\MT@the@pr@code{\@tempcntb}
+\MT@requires@pdftex6
+ {\def\MT@the@pr@code@tr{%
+ \numexpr\@tempcntb+\MT@letterspace@/2\relax
+ }
+}\relax
+\def\MT@set@codes#1,{%
+ \ifx\relax#1\@empty\else
+ \MT@split@codes #1==\relax
+ \expandafter\MT@set@codes
+ \fi
+}
+\def\MT@split@codes#1=#2=#3\relax{%
+ \def\@tempa{#1}%
+ \ifx\@tempa\@empty \else
+ \MT@get@slot
+ \ifnum\MT@char > \m@ne
+ \MT@get@char@unit
+ \csname MT@\MT@feat @split@val\endcsname#2\relax
+ \fi
+ \fi
+}
+\def\MT@pr@split@val#1,#2\relax{%
+ \def\@tempb{#1}%
+ \MT@ifempty\@tempb\relax{%
+ \MT@scale@to@em
+ \lpcode\MT@font\MT@char=\MT@the@pr@code
+ }%
+ \def\@tempb{#2}%
+ \MT@ifempty\@tempb\relax{%
+ \MT@scale@to@em
+ \rpcode\MT@font\MT@char=\MT@the@pr@code
+ }%
+ \MT@ifdefined@c@T\MT@pr@inh@name{%
+ \MT@ifdefined@n@T{MT@inh@\MT@pr@inh@name @\MT@char @}{%
+ \MT@exp@cs\MT@map@tlist@c
+ {MT@inh@\MT@pr@inh@name @\MT@char @}%
+ \MT@set@pr@heirs
+ }%
+ }%
+}
+\MT@requires@pdftex3{
+\def\MT@scale@to@em{%
+ \@tempcntb=\MT@count\relax
+ \MT@scale\@tempcntb \@tempb \MT@dimen@six
+ \ifnum\@tempcntb=\z@ \else
+ \MT@scale@factor
+ \fi
+}
+\def\MT@get@charwd{%
+^^X \MT@count=\fontcharwd\MT@font\MT@char\relax
+^^Q \setbox\z@=\hbox{\MT@font \char\MT@char}%
+^^Q \MT@count=\wd\z@
+ \ifnum\MT@count=\z@ \MT@info@missing@char \fi
+}
+\MT@requires@pdftex6{
+ \g@addto@macro\MT@get@charwd{%
+ \MT@ifdefined@c@T\MT@letterspace@
+ {\advance\MT@count -\dimexpr\MT@letterspace@ sp *\dimexpr 1em/1000\relax}%
+ }
+}\relax
+}{
+\def\MT@scale@to@em{%
+ \MT@count=\@tempb\relax
+ \ifnum\MT@count=\z@ \else
+ \MT@scale@factor
+ \fi
+}
+\def\MT@get@charwd{\MT@count=\MT@dimen@six}
+}
+\def\MT@set@pr@heirs#1{%
+ \lpcode\MT@font #1 =\lpcode\MT@font\MT@char\relax
+ \rpcode\MT@font #1 =\rpcode\MT@font\MT@char\relax
+}
+\def\MT@preset@pr{%
+ \expandafter\expandafter\expandafter\MT@preset@pr@
+ \csname MT@pr@c@\MT@pr@c@name @preset\endcsname\@nil
+}
+\def\MT@preset@pr@#1,#2\@nil{%
+ \ifx\MT@pr@unit@\@empty
+ \MT@warn@preset@towidth{pr}%
+ \let\MT@preset@aux\MT@preset@aux@factor
+ \else
+ \def\MT@preset@aux{\MT@preset@aux@space2}%
+ \fi
+ \MT@ifempty{#1}{\let\@tempa\@empty}{\MT@preset@aux{#1}\@tempa}%
+ \MT@ifempty{#2}{\let\@tempb\@empty}{\MT@preset@aux{#2}\@tempb}%
+ \MT@set@all@pr\@tempa\@tempb
+}
+\def\MT@preset@aux@factor#1#2{%
+ \@tempcntb=#1\relax
+ \MT@scale@factor
+ \edef#2{\number\@tempcntb}%
+}
+\def\MT@preset@aux@space#1#2#3{%
+ \def\@tempb{#2}%
+ \MT@get@space@unit#1%
+ \MT@scale@to@em
+ \edef#3{\number\@tempcntb}%
+}
+\def\MT@warn@preset@towidth#1{%
+ \MT@warning@nl{%
+ Cannot preset characters relative to their widths\MessageBreak
+ for \@nameuse{MT@abbr@#1} list `\@nameuse{MT@#1@c@name}'. Presetting them%
+ \MessageBreak relative to 1em instead}%
+}
+\def\MT@expansion{\MT@maybe@do{ex}}
+\def\MT@set@ex@codes@s{%
+ \MT@if@list@exists{%
+ \MT@get@ex@opt
+ \let\MT@get@char@unit\relax
+ \MT@reset@ef@codes
+ \MT@get@inh@list
+ \MT@set@inputenc{c}%
+ \MT@load@list\MT@ex@c@name
+ \MT@set@listname
+ \MT@let@cn\@tempc{MT@ex@c@\MT@ex@c@name}%
+ \expandafter\MT@set@codes\@tempc,\relax,%
+ \MT@expandfont
+ }\relax
+}
+\def\MT@set@ex@codes@n{%
+ \MT@nonselectedtrue
+ \MT@if@list@exists
+ \MT@get@ex@opt
+ {%
+ \let\MT@stretch@ \MT@stretch
+ \let\MT@shrink@ \MT@shrink
+ \let\MT@step@ \MT@step
+ \let\MT@auto@ \MT@auto
+ \let\MT@ex@factor@\MT@ex@factor
+ }%
+ \MT@reset@ef@codes
+ \MT@expandfont
+ \MT@nonselectedfalse
+}
+\let\MT@set@ex@codes\MT@set@ex@codes@n
+\def\MT@expandfont{%
+ \pdffontexpand\MT@font \MT@stretch@ \MT@shrink@ \MT@step@ \MT@auto@\relax
+}
+\def\MT@set@all@ex#1{%
+ \MT@do@font{\efcode\MT@font\@tempcnta=#1\relax}%
+}
+\def\MT@reset@ef@codes@{\MT@set@all@ex\MT@ex@factor@}
+\MT@requires@pdftex4{
+ \def\MT@reset@ef@codes{%
+ \ifnum\MT@ex@factor@=\@m \else
+ \MT@reset@ef@codes@
+ \fi
+ }
+}{
+ \let\MT@reset@ef@codes\MT@reset@ef@codes@
+}
+\def\MT@ex@split@val#1\relax{%
+ \@tempcntb=#1\relax
+ \ifnum\MT@ex@factor@=\@m \else
+ \MT@scale\@tempcntb \MT@ex@factor@ \@m
+ \fi
+ \ifnum\@tempcntb > \MT@ex@max
+ \MT@warn@ex@too@large\MT@ex@max
+ \else
+ \ifnum\@tempcntb < \MT@ex@min
+ \MT@warn@ex@too@large\MT@ex@min
+ \fi
+ \fi
+ \efcode\MT@font\MT@char=\@tempcntb
+ \MT@ifdefined@c@T\MT@ex@inh@name{%
+ \MT@ifdefined@n@T{MT@inh@\MT@ex@inh@name @\MT@char @}{%
+ \MT@exp@cs\MT@map@tlist@c{MT@inh@\MT@ex@inh@name @\MT@char @}\MT@set@ex@heirs
+ }%
+ }%
+}
+\def\MT@warn@ex@too@large#1{%
+ \MT@warning@nl{Expansion factor \number\@tempcntb\space too large for
+ character\MessageBreak `\the\MT@toks' in \MT@curr@list@name.\MessageBreak
+ Setting it to the maximum of \number#1}%
+ \@tempcntb=#1\relax
+}
+\def\MT@get@ex@opt{%
+ \MT@set@listname
+ \MT@ifdefined@n@TF{MT@ex@c@\MT@ex@c@name @factor}{%
+ \MT@let@cn\MT@ex@factor@{MT@ex@c@\MT@ex@c@name @factor}%
+ \MT@vinfo{... : Multiplying expansion factors by \number\MT@ex@factor@/1000}%
+ }{%
+ \let\MT@ex@factor@\MT@ex@factor
+ }%
+ \MT@get@ex@opt@{stretch}{Setting stretch limit to \number\MT@stretch@}%
+ \MT@get@ex@opt@{shrink} {Setting shrink limit to \number\MT@shrink@}%
+ \MT@get@ex@opt@{step} {Setting expansion step to \number\MT@step@}%
+ \def\@tempa{autoexpand}%
+ \MT@get@ex@opt@{auto}{\ifx\@tempa\MT@auto@ En\else Dis\fi abling automatic expansion}%
+ \MT@ifdefined@n@T{MT@ex@c@\MT@ex@c@name @preset}{%
+ \MT@preset@ex
+ \let\MT@reset@ef@codes\relax
+ }%
+}
+\def\MT@get@ex@opt@#1#2{%
+ \MT@ifdefined@n@TF{MT@ex@c@\MT@ex@c@name @#1}{%
+ \MT@let@nn{MT@#1@}{MT@ex@c@\MT@ex@c@name @#1}%
+ \MT@vinfo{... : #2}%
+ }{%
+ \MT@let@nn{MT@#1@}{MT@#1}%
+ }%
+}
+\def\MT@set@ex@heirs#1{%
+ \efcode\MT@font#1=\efcode\MT@font\MT@char
+}
+\def\MT@preset@ex{%
+ \@tempcntb=\csname MT@ex@c@\MT@ex@c@name @preset\endcsname\relax
+ \MT@scale@factor
+ \MT@set@all@ex\@tempcntb
+}
+\MT@requires@pdftex6{
+\def\MT@spacing{\MT@maybe@do{sp}}
+\def\MT@set@sp@codes{%
+ \MT@if@list@exists{%
+ \MT@get@font@dimen@six{%
+ \MT@get@opt
+ \MT@reset@sp@codes
+ \MT@get@inh@list
+ \MT@set@inputenc{c}%
+ \MT@load@list\MT@sp@c@name
+ \MT@set@listname
+ \MT@let@cn\@tempc{MT@sp@c@\MT@sp@c@name}%
+ \expandafter\MT@set@codes\@tempc,\relax,}%
+ }\MT@reset@sp@codes
+}
+\def\MT@sp@split@val#1,#2,#3\relax{%
+ \def\@tempb{#1}%
+ \MT@ifempty\@tempb\relax{%
+ \MT@get@space@unit2%
+ \MT@scale@to@em
+ \knbscode\MT@font\MT@char=\@tempcntb
+ }%
+ \def\@tempb{#2}%
+ \MT@ifempty\@tempb\relax{%
+ \MT@get@space@unit3%
+ \MT@scale@to@em
+ \stbscode\MT@font\MT@char=\@tempcntb
+ }%
+ \def\@tempb{#3}%
+ \MT@ifempty\@tempb\relax{%
+ \MT@get@space@unit4%
+ \MT@scale@to@em
+ \shbscode\MT@font\MT@char=\@tempcntb
+ }%
+ \MT@ifdefined@c@T\MT@sp@inh@name{%
+ \MT@ifdefined@n@T{MT@inh@\MT@sp@inh@name @\MT@char @}{%
+ \MT@exp@cs\MT@map@tlist@c{MT@inh@\MT@sp@inh@name @\MT@char @}\MT@set@sp@heirs
+ }%
+ }%
+}
+\def\MT@set@sp@heirs#1{%
+ \knbscode\MT@font#1=\knbscode\MT@font\MT@char
+ \stbscode\MT@font#1=\stbscode\MT@font\MT@char
+ \shbscode\MT@font#1=\shbscode\MT@font\MT@char
+}
+\def\MT@set@all@sp#1#2#3{%
+ \let\MT@temp\@empty
+ \MT@ifempty{#1}\relax{\g@addto@macro\MT@temp{\knbscode\MT@font\@tempcnta=#1\relax}}%
+ \MT@ifempty{#2}\relax{\g@addto@macro\MT@temp{\stbscode\MT@font\@tempcnta=#2\relax}}%
+ \MT@ifempty{#3}\relax{\g@addto@macro\MT@temp{\shbscode\MT@font\@tempcnta=#3\relax}}%
+ \MT@do@font\MT@temp
+}
+\def\MT@reset@sp@codes@{\MT@set@all@sp\z@\z@\z@}
+\let\MT@reset@sp@codes\relax
+\def\MT@preset@sp{%
+ \expandafter\expandafter\expandafter\MT@preset@sp@
+ \csname MT@sp@c@\MT@sp@c@name @preset\endcsname\@nil
+}
+\def\MT@preset@sp@#1,#2,#3\@nil{%
+ \ifx\MT@sp@unit@\@empty
+ \MT@warn@preset@towidth{sp}%
+ \MT@ifempty{#1}{\let\@tempa\@empty}{\MT@preset@aux@factor{#1}\@tempa}%
+ \MT@ifempty{#2}{\let\@tempc\@empty}{\MT@preset@aux@factor{#2}\@tempc}%
+ \MT@ifempty{#3}{\let\@tempb\@empty}{\MT@preset@aux@factor{#3}\@tempb}%
+ \else
+ \MT@ifempty{#1}{\let\@tempa\@empty}{\MT@preset@aux@space2{#1}\@tempa}%
+ \MT@ifempty{#2}{\let\@tempc\@empty}{\MT@preset@aux@space3{#2}\@tempc}%
+ \MT@ifempty{#3}{\let\@tempb\@empty}{\MT@preset@aux@space4{#3}\@tempb}%
+ \fi
+ \MT@set@all@sp\@tempa\@tempc\@tempb
+}
+}\relax
+\MT@requires@pdftex6{
+\def\MT@kerning{\MT@maybe@do{kn}}
+\def\MT@set@kn@codes{%
+ \MT@if@list@exists{%
+ \MT@get@font@dimen@six{%
+ \MT@get@opt
+ \MT@reset@kn@codes
+ \MT@get@inh@list
+ \MT@set@inputenc{c}%
+ \MT@load@list\MT@kn@c@name
+ \MT@set@listname
+ \MT@let@cn\@tempc{MT@kn@c@\MT@kn@c@name}%
+ \expandafter\MT@set@codes\@tempc,\relax,}%
+ }\MT@reset@kn@codes
+}
+\def\MT@kn@split@val#1,#2\relax{%
+ \def\@tempb{#1}%
+ \MT@ifempty\@tempb\relax{%
+ \MT@get@space@unit2%
+ \MT@scale@to@em
+ \knbccode\MT@font\MT@char=\@tempcntb
+ }%
+ \def\@tempb{#2}%
+ \MT@ifempty\@tempb\relax{%
+ \MT@get@space@unit2%
+ \MT@scale@to@em
+ \knaccode\MT@font\MT@char=\@tempcntb
+ }%
+ \MT@ifdefined@c@T\MT@kn@inh@name{%
+ \MT@ifdefined@n@T{MT@inh@\MT@kn@inh@name @\MT@char @}{%
+ \MT@exp@cs\MT@map@tlist@c{MT@inh@\MT@kn@inh@name @\MT@char @}\MT@set@kn@heirs
+ }%
+ }%
+}
+\def\MT@set@kn@heirs#1{%
+ \knbccode\MT@font#1=\knbccode\MT@font\MT@char
+ \knaccode\MT@font#1=\knaccode\MT@font\MT@char
+}
+\def\MT@set@all@kn#1#2{%
+ \let\MT@temp\@empty
+ \MT@ifempty{#1}\relax{\g@addto@macro\MT@temp{\knbccode\MT@font\@tempcnta=#1\relax}}%
+ \MT@ifempty{#2}\relax{\g@addto@macro\MT@temp{\knaccode\MT@font\@tempcnta=#2\relax}}%
+ \MT@do@font\MT@temp
+}
+\def\MT@reset@kn@codes@{\MT@set@all@kn\z@\z@}
+\let\MT@reset@kn@codes\relax
+\def\MT@preset@kn{%
+ \expandafter\expandafter\expandafter\MT@preset@kn@
+ \csname MT@kn@c@\MT@kn@c@name @preset\endcsname\@nil
+}
+\def\MT@preset@kn@#1,#2\@nil{%
+ \ifx\MT@kn@unit@\@empty
+ \MT@warn@preset@towidth{kn}%
+ \let\MT@preset@aux\MT@preset@aux@factor
+ \else
+ \def\MT@preset@aux{\MT@preset@aux@space2}%
+ \fi
+ \MT@ifempty{#1}{\let\@tempa\@empty}{\MT@preset@aux{#1}\@tempa}%
+ \MT@ifempty{#2}{\let\@tempb\@empty}{\MT@preset@aux{#2}\@tempb}%
+ \MT@set@all@kn\@tempa\@tempb
+}
+}\relax
+\MT@requires@pdftex6
+{
+\let\MT@tr@font@list\@empty
+\def\MT@tracking@{%
+ \MT@exp@one@n\MT@in@clist\MT@font\MT@tr@font@list
+ \ifMT@inlist@\else
+ \MT@maybe@do{tr}%
+ \ifMT@do\else
+ \xdef\MT@tr@font@list{\MT@tr@font@list\MT@font,}%
+ \fi
+ \fi
+}
+\let\MT@tracking
+ \MT@tracking@
+\def\MT@set@tr@codes{%
+ \MT@vinfo{Tracking font `\MT@@font'\on@line}%
+ \MT@get@font@dimen@six{%
+ \MT@if@list@exists
+ \MT@get@tr@opt
+ \relax
+ \MT@ifdefined@c@TF\MT@letterspace@\relax{\let\MT@letterspace@\MT@letterspace}%
+ \ifnum\MT@letterspace@=\z@
+ \MT@set@tr@zero
+ \else
+ \MT@vinfo{... Tracking by \number\MT@letterspace@}%
+ \MT@warn@tracking@DVI
+ \xdef\MT@lsfont{\csname\expandafter\string\font@name
+ /\number\MT@letterspace@ ls\endcsname}%
+ \expandafter\ifx\MT@lsfont\relax
+ \MT@get@ls@basefont
+ \global\expandafter\letterspacefont\MT@lsfont\font@name\MT@letterspace@
+ \MT@ifdefined@c@TF\MT@tr@ispace
+ {\let\@tempa\MT@tr@ispace}%
+ {\edef\@tempa{\MT@letterspace@*,,}}%
+ \MT@ifdefined@c@TF\MT@tr@ospace
+ {\edef\@tempa{\@tempa,\MT@tr@ospace}}%
+ {\edef\@tempa{\@tempa,,,}}%
+ \expandafter\MT@tr@set@space\@tempa,%
+ \MT@ifdefined@c@TF\MT@tr@okern{\let\@tempa\MT@tr@okern}{\def\@tempa{*,*}}%
+ \expandafter\MT@tr@set@okern\@tempa,%
+ \MT@ifdefined@c@T\MT@tr@ligatures\MT@tr@noligatures
+ \MT@do@font{\lpcode\MT@lsfont\@tempcnta=\numexpr\MT@letterspace@/2\relax
+ \rpcode\MT@lsfont\@tempcnta=\numexpr\MT@letterspace@/2\relax}%
+ \let\MT@the@pr@code\MT@the@pr@code@tr
+ \fi
+ \aftergroup\MT@set@lsfont
+ \let\MT@font\MT@lsfont
+ \xdef\MT@set@curr@ls{\def\noexpand\MT@curr@ls{\MT@letterspace@}}%
+ \aftergroup\MT@set@curr@ls
+ \MT@outer@space=\csname MT@outer@space\expandafter\string\font@name\endcsname\relax
+ \xdef\MT@set@curr@os{\MT@outer@space=\the\MT@outer@space\relax}%
+ \MT@tr@outer@l
+ \ifx\MT@ls@adjust\@empty
+ \MT@outer@kern=-\dimexpr\MT@letterspace@ sp * \fontdimen6\font@name/2000\relax
+ \MT@ls@outer@k
+ \else
+ \MT@outer@kern=\expandafter\expandafter\expandafter\@firstoftwo
+ \csname MT@outer@kern\expandafter\string\font@name\endcsname\relax
+ \ifdim\MT@outer@kern=\z@\else \MT@ls@outer@k \fi
+ \MT@outer@kern=\expandafter\expandafter\expandafter\@secondoftwo
+ \csname MT@outer@kern\expandafter\string\font@name\endcsname\relax
+ \fi
+ \xdef\MT@set@curr@ok{\MT@outer@kern=\the\MT@outer@kern\relax}%
+ \aftergroup\aftergroup\aftergroup\MT@ls@aftergroup
+ \fi
+ }%
+}
+\def\MT@get@tr@opt{%
+ \MT@set@listname
+ \MT@ifdefined@n@T{MT@tr@c@\MT@tr@c@name}{%
+ \MT@let@cn\MT@letterspace{MT@tr@c@\MT@tr@c@name}%
+ \MT@ifdefined@n@T{MT@tr@c@\MT@tr@c@name @unit}{%
+ \MT@let@cn\MT@tr@unit@{MT@tr@c@\MT@tr@c@name @unit}%
+ \ifdim\MT@tr@unit@=1em
+ \let\MT@tr@unit@\@undefined
+ \else
+ \MT@let@cn\@tempb{MT@tr@c@\MT@tr@c@name}%
+ \MT@get@unit\MT@tr@unit@
+ \let\MT@tr@factor@\@m
+ \MT@scale@to@em
+ \edef\MT@letterspace{\number\@tempcntb}%
+ \fi
+ }%
+ }%
+ \MT@get@tr@opt@{spacing} {ispace}%
+ \MT@get@tr@opt@{outerspacing}{ospace}%
+ \MT@get@tr@opt@{outerkerning}{okern}%
+ \MT@get@tr@opt@{noligatures} {ligatures}%
+}
+\def\MT@get@tr@opt@#1#2{%
+ \MT@ifdefined@n@T{MT@tr@c@\MT@tr@c@name @#1}%
+ {\MT@let@nn{MT@tr@#2}{MT@tr@c@\MT@tr@c@name @#1}}%
+}
+\def\MT@set@lsfont{\MT@exp@two@c\let\font@name\MT@lsfont}
+\DeclareRobustCommand\lsstyle{%
+ \not@math@alphabet\lsstyle\textls
+ \let\glb@currsize\@empty
+ \def\MT@feat{tr}%
+ \let\MT@tracking\MT@set@tr@codes
+ \selectfont
+}
+\DeclareRobustCommand\lslig[1]{%
+ {\MT@ifdefined@c@TF\MT@curr@ls{%
+ \escapechar\m@ne
+ \MT@get@ls@basefont
+ \MT@outer@kern=\dimexpr\MT@curr@ls sp * \fontdimen6\font@name/2000\relax
+ \kern\MT@outer@kern
+ \font@name #1%
+ \kern\MT@outer@kern%
+ }{#1}}%
+}
+\def\MT@get@ls@basefont{%
+ \xdef\MT@ls@basefont{\csname\expandafter\string\font@name @base\endcsname}%
+ \expandafter\ifx\MT@ls@basefont\relax
+ \MT@exp@two@c\MT@glet\MT@ls@basefont\font@name
+ \else
+ \MT@exp@two@c\let\font@name\MT@ls@basefont
+ \fi
+}
+\def\MT@set@lsbasefont{\MT@exp@two@c\let\font@name\MT@ls@basefont}
+\def\MT@set@tr@zero{%
+ \xdef\MT@ls@basefont{\csname\expandafter\string\font@name @base\endcsname}%
+ \expandafter\ifx\MT@ls@basefont\relax \else
+ \aftergroup\MT@set@lsbasefont
+ \fi
+}
+\MT@requires@pdftex7{
+ \def\MT@tr@noligatures{%
+ \ifx\MT@tr@ligatures\@empty
+ \MT@noligatures@\MT@lsfont\@undefined
+ \else
+ \MT@noligatures@\MT@lsfont\MT@tr@ligatures
+ \fi
+ }
+}{
+ \def\MT@tr@noligatures{%
+ \MT@warning@nl{%
+ Disabling selected ligatures is only possible since\MessageBreak
+ pdftex 1.40.4. Disabling all ligatures instead}%
+ \MT@glet\MT@tr@noligatures\relax
+ }
+}
+\newskip\MT@outer@space
+\def\MT@tr@set@space#1,#2,#3,#4,#5,#6,{%
+ \let\MT@temp\@empty
+ \MT@tr@set@space@{#1}{#4}{2}\@empty
+ \MT@tr@set@space@{#2}{#5}{3}\@plus
+ \MT@tr@set@space@{#3}{#6}{4}\@minus
+ \MT@glet@nc{MT@outer@space\expandafter\string\font@name}\MT@temp
+}
+\def\MT@tr@set@space@#1#2#3#4{%
+ \MT@ifempty{#2}{%
+ \MT@ifempty{#1}{%
+ \edef\MT@temp{\MT@temp#4\the\fontdimen#3\MT@lsfont}%
+ }{%
+ \MT@tr@set@space@@{#1}{#3}{1000}%
+ \edef\MT@temp{\MT@temp#4\the\@tempdima}%
+ \fontdimen#3\MT@lsfont=\@tempdima
+ }%
+ }{%
+ \MT@tr@set@space@@{#2}{#3}{2000}%
+ \edef\MT@temp{\MT@temp#4\the\@tempdima}%
+ \MT@ifempty{#1}\relax{%
+ \MT@tr@set@space@@{#1}{#3}{1000}%
+ \fontdimen#3\MT@lsfont=\@tempdima
+ }%
+ }%
+}
+\def\MT@tr@set@space@@#1#2#3{%
+ \MT@test@ast#1*\@nil{%
+ \MT@ifdefined@c@TF\MT@tr@unit@
+ {\edef\@tempb{#1}\MT@scale@to@em}
+ {\@tempcntb=#1\relax}%
+ \@tempdima=\dimexpr \dimexpr\@tempcntb sp*\MT@dimen@six/1000\relax
+ -\fontdimen#2\MT@lsfont\relax
+ \ifnum#2=\tw@
+ \advance\@tempdima -\dimexpr\MT@letterspace@ sp*\MT@dimen@six/#3\relax
+ \fi
+ \@tempdima=\dimexpr \fontdimen#2\MT@lsfont+\@tempdima\relax
+ }{%
+ \MT@ifempty\@tempa{\let\@tempa\MT@letterspace@}\relax
+ \@tempdima=\dimexpr \numexpr1000+\@tempa sp *\fontdimen#2\MT@lsfont/1000\relax
+ }%
+}
+\def\MT@tr@outer@l{%
+ \ifhmode
+ \ifdim\lastskip>5sp
+ \edef\x{\the\lastskip minus 0pt}%
+ \setbox\z@\hbox{\MT@outer@space=\x}%
+ \ifdim\wd\z@>\z@
+ \unskip \hskip\MT@outer@space\relax
+ \let\MT@ls@outer@k\relax
+ \else
+ \ifdim\lastskip=%
+ \ifnum\spacefactor<2000
+ \spaceskip
+ \else
+ \ifdim\xspaceskip=\z@
+ \dimexpr\spaceskip+\fontdimen7\font@name\relax
+ \else
+ \xspaceskip
+ \fi
+ \fi
+ \unskip \hskip\MT@outer@space\relax
+ \let\MT@ls@outer@k\relax
+ \fi
+ \fi
+ \fi
+ \fi
+}
+\def\MT@tr@outer@r{%
+ \futurelet\MT@tr@outer@next\MT@tr@outer@r@
+}
+\def\MT@if@outer@next#1{%
+ \ifx\MT@tr@outer@next#1\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi
+}
+\def\MT@tr@outer@r@{%
+ \def\MT@temp*{}%
+ \ifmmode \else
+ \ifnum\currentgrouptype=10 \else
+ \def\MT@temp*##1{\ifhmode\hskip\MT@outer@space
+ \fi}%
+ \expandafter\ifcat\expandafter\noexpand\csname MT@tr@outer@next\endcsname\egroup
+ \ifhmode\unkern\fi\egroup
+ \MT@set@curr@ok \MT@set@curr@os
+ \def\MT@temp*{\afterassignment\MT@tr@outer@r\let\MT@temp=}%
+ \else
+ \MT@if@outer@next\maybe@ic{%
+ \MT@set@curr@ok \MT@set@curr@os
+ \def\MT@temp*{\afterassignment\MT@tr@outer@icr\let\MT@temp=}%
+ }{%
+ \MT@if@outer@next\check@icr{%
+ \def\MT@temp*{\aftergroup\MT@tr@outer@r\check@icr\let\MT@temp=}%
+ }{%
+ \MT@if@outer@next\@sptoken{%
+ \def\MT@temp* {\ifhmode\hskip\MT@outer@space
+ \fi}%
+ }{%
+ \MT@if@outer@next~{%
+ \def\MT@temp*~{\nobreak\hskip\MT@outer@space
+ }%
+ }{%
+ \MT@if@outer@next\ \relax{%
+ \MT@if@outer@next\space\relax{%
+ \MT@if@outer@next\@xobeysp\relax{%
+ \def\MT@temp*{\ifdim\MT@outer@kern=\z@\else\MT@ls@outer@k
+ \fi}%
+ \MT@let@nc{MT@tr@outer@next}\relax
+ }}}}}}}\fi
+ \fi\fi
+ \MT@temp*%
+}
+\def\MT@tr@outer@icr{\afterassignment\MT@tr@outer@icr@\MT@tr@outer@r}
+\def\MT@tr@outer@icr@{%
+ \let\@let@token= \MT@tr@outer@next
+ \maybe@ic@
+}
+}{
+ \DeclareRobustCommand\lsstyle{%
+ \MT@error{Letterspacing only works with \MT@engine tex version
+ 1.40%
+ \MessageBreak or newer}
+ {Upgrade \MT@engine tex, or try the `soul' package instead.}%
+ \MT@glet\lsstyle\relax
+ }
+}
+\def\MT@tr@set@okern#1,#2,{%
+ \let\MT@temp\@empty
+ \MT@ifempty{#1}{\MT@tr@set@okern@{*}}{\MT@tr@set@okern@{#1}}%
+ \MT@ifempty{#2}{\MT@tr@set@okern@{*}}{\MT@tr@set@okern@{#2}}%
+ \MT@glet@nc{MT@outer@kern\expandafter\string\font@name}\MT@temp
+}
+\def\MT@tr@set@okern@#1{%
+ \MT@test@ast#1*\@nil{%
+ \MT@ifdefined@c@TF\MT@tr@unit@
+ {\edef\@tempb{#1}\MT@scale@to@em}
+ {\@tempcntb=#1\relax}%
+ \@tempdima=\dimexpr \@tempcntb sp * \MT@dimen@six/1000\relax
+ }{%
+ \MT@ifempty\@tempa{\let\@tempa\@m}\relax
+ \@tempdima=\dimexpr \numexpr\@tempa*\MT@letterspace@/1000\relax sp
+ * \fontdimen6\MT@lsfont/2000\relax
+ }%
+ \advance\@tempdima -\dimexpr \MT@letterspace@ sp
+ * \fontdimen6\MT@lsfont/2000\relax
+ \edef\MT@temp{\MT@temp{\the\@tempdima}}%
+}
+\def\MT@ls@outer@k{\ifhmode\kern\MT@outer@kern\relax\fi}
+\MT@requires@pdftex5{
+\def\MT@noligatures{%
+ \MT@dotrue
+ \let\@tempa\MT@nl@setname
+ \MT@map@clist@n{font,encoding,family,series,shape,size}{%
+ \MT@ifdefined@n@TF{MT@checklist@##1}%
+ {\csname MT@checklist@##1\endcsname}%
+ {\MT@checklist@{##1}}%
+ {nl}%
+ }%
+ \ifMT@do
+ \MT@noligatures@\MT@font\MT@nl@ligatures
+ \fi
+}
+\def\MT@noligatures@#1#2{%
+ \MT@ifdefined@c@TF#2{%
+ \MT@ifdefined@c@TF\tagcode{%
+ \let\MT@warn@maybe@inputenc\@empty
+ \def\MT@curr@list@name{\@backslashchar DisableLigatures}%
+ \MT@map@clist@c#2{%
+ \KV@@sp@def\@tempa{##1}\MT@get@slot
+ \ifnum\MT@char>\m@ne \tagcode#1\MT@char=\m@ne \fi}%
+ \MT@vinfo{... Disabling ligatures for characters: #2}%
+ }{%
+ \pdfnoligatures#1%
+ \MT@warning{Cannot disable selected ligatures (pdftex doesn't\MessageBreak
+ know \@backslashchar tagcode). Disabling all ligatures of\MessageBreak
+ the font instead}%
+ }%
+ }{%
+ \pdfnoligatures#1%
+ \MT@vinfo{... Disabling ligatures}%
+ }%
+}
+}\relax
+\def\MT@get@slot@{%
+ \ifnum\MT@char > \m@ne
+ \ifMT@norest \else
+ \MT@warn@rest
+ \let\MT@char\m@ne
+ \fi
+ \else
+ \MT@warn@unknown
+ \fi
+}
+\def\MT@max@char
+ {127 }
+\def\MT@max@slot
+ {255 }
+\MT@requires@pdftex5{
+\def\DisableLigatures{%
+ \MT@begin@catcodes
+ \MT@DisableLigatures
+}
+\newcommand*\MT@DisableLigatures[2][]{%
+ \MT@ifempty{#1}\relax{\gdef\MT@nl@ligatures{#1}}%
+ \xdef\MT@active@features{\MT@active@features,nl}%
+ \global\MT@noligaturestrue
+ \MT@declare@sets{nl}{no ligatures}{#2}%
+ \gdef\MT@nl@setname{no ligatures}%
+ \MT@end@catcodes
+}
+}{
+\renewcommand*\DisableLigatures[2][]{%
+ \MT@error{Disabling ligatures of a font is only possible\MessageBreak
+ with pdftex version 1.30 or newer.\MessageBreak
+ Ignoring \string\DisableLigatures}{%
+ Upgrade
+ pdftex.}%
+}
+}
+\def\SetProtrusion{%
+ \MT@begin@catcodes
+ \MT@SetProtrusion
+}
+\newcommand*\MT@SetProtrusion[3][]{%
+ \let\MT@extra@context\@empty
+ \MT@set@named@keys{MT@pr@c}{#1}%
+ \def\MT@permutelist{pr@c}%
+ \setkeys{MT@cfg}{#2}%
+ \MT@permute
+ \MT@gdef@n{MT@pr@c@\MT@pr@c@name}{#3}%
+ \MT@end@catcodes
+}
+\def\SetExpansion{%
+ \MT@begin@catcodes
+ \MT@SetExpansion
+}
+\newcommand*\MT@SetExpansion[3][]{%
+ \let\MT@extra@context\@empty
+ \MT@set@named@keys{MT@ex@c}{#1}%
+ \MT@ifdefined@n@T{MT@ex@c@\MT@ex@c@name @factor}{%
+ \ifnum\csname MT@ex@c@\MT@ex@c@name @factor\endcsname > \@m
+ \MT@warning@nl{Expansion factor \number\@nameuse{MT@ex@c@\MT@ex@c@name @factor}
+ too large in list\MessageBreak `\MT@ex@c@name'. Setting it to the
+ maximum of 1000}%
+ \MT@glet@nc{MT@ex@c@\MT@ex@c@name @factor}\@m
+ \fi
+ }%
+ \def\MT@permutelist{ex@c}%
+ \setkeys{MT@cfg}{#2}%
+ \MT@permute
+ \MT@gdef@n{MT@ex@c@\MT@ex@c@name}{#3}%
+ \MT@end@catcodes
+}
+\def\SetTracking{%
+ \MT@begin@catcodes
+ \MT@SetTracking
+}
+\newcommand*\MT@SetTracking[3][]{%
+ \let\MT@extra@context\@empty
+ \MT@set@named@keys{MT@tr@c}{#1}%
+ \def\MT@permutelist{tr@c}%
+ \setkeys{MT@cfg}{#2}%
+ \MT@permute
+ \KV@@sp@def\@tempa{#3}%
+ \MT@ifempty\@tempa\relax{%
+ \MT@ifint\@tempa
+ {\MT@xdef@n{MT@tr@c@\MT@tr@c@name}{\@tempa}}%
+ {\MT@warning{Value `\@tempa' is not a number in\MessageBreak
+ tracking set `\MT@curr@set@name'}}}%
+ \MT@end@catcodes
+}
+\def\SetExtraSpacing{%
+ \MT@begin@catcodes
+ \MT@SetExtraSpacing
+}
+\newcommand*\MT@SetExtraSpacing[3][]{%
+ \let\MT@extra@context\@empty
+ \MT@set@named@keys{MT@sp@c}{#1}%
+ \def\MT@permutelist{sp@c}%
+ \setkeys{MT@cfg}{#2}%
+ \MT@permute
+ \MT@gdef@n{MT@sp@c@\MT@sp@c@name}{#3}%
+ \MT@end@catcodes
+}
+\def\SetExtraKerning{%
+ \MT@begin@catcodes
+ \MT@SetExtraKerning
+}
+\newcommand*\MT@SetExtraKerning[3][]{%
+ \let\MT@extra@context\@empty
+ \MT@set@named@keys{MT@kn@c}{#1}%
+ \def\MT@permutelist{kn@c}%
+ \setkeys{MT@cfg}{#2}%
+ \MT@permute
+ \MT@gdef@n{MT@kn@c@\MT@kn@c@name}{#3}%
+ \MT@end@catcodes
+}
+\MT@requires@pdftex7{
+ \define@key{MT@ex@c}{context}[]{%
+ \MT@ifempty{#1}\relax{%
+ \MT@glet\MT@copy@font\MT@copy@font@
+ \def\MT@extra@context{#1}%
+ }%
+ }
+ \MT@addto@setup{%
+ \define@key{MT@ex@c}{context}[]{%
+ \ifx\MT@copy@font\MT@copy@font@
+ \MT@ifempty{#1}\relax{\def\MT@extra@context{#1}}%
+ \else
+ \MT@error{\MT@MT\space isn't set up for expansion contexts.\MessageBreak
+ Ignoring `context' key\on@line}%
+ {Either move the settings inside the preamble,\MessageBreak
+ or load the package with the `copyfonts' option.}%
+ \fi
+ }%
+ }
+ \define@key{MT@pr@c}{context}[]{%
+ \MT@ifempty{#1}\relax{%
+ \MT@glet\MT@copy@font\MT@copy@font@
+ \def\MT@extra@context{#1}%
+ }%
+ }
+ \MT@addto@setup{%
+ \define@key{MT@pr@c}{context}[]{%
+ \MT@ifempty{#1}\relax{\def\MT@extra@context{#1}}%
+ \ifx\MT@copy@font\MT@copy@font@\else
+ \MT@warning@nl{If protrusion contexts don't work as expected,
+ \MessageBreak load the package with the `copyfonts' option}%
+ \fi
+ }%
+ }
+}{
+ \define@key{MT@ex@c}{context}[]{%
+ \MT@error{Expansion contexts only work with pdftex 1.40.4\MessageBreak
+ or later. Ignoring `context' key\on@line}%
+ {Upgrade pdftex.}%
+ }
+ \define@key{MT@pr@c}{context}[]{%
+ \MT@error{Protrusion contexts only work with pdftex
+ 1.40.4\MessageBreak or later.
+ Ignoring `context' key\on@line}%
+ {Upgrade pdftex.}%
+ }
+}
+\define@key{MT@pr@c}{unit}[character]{%
+ \MT@glet@nc{MT@pr@c@\MT@curr@set@name @unit}\@empty
+ \def\@tempa{#1}%
+ \MT@ifstreq\@tempa{character}\relax{%
+ \MT@ifdimen\@tempa
+ {\MT@glet@nc{MT@pr@c@\MT@curr@set@name @unit}\@tempa}%
+ {\MT@warn@nodim{character widths}}%
+ }%
+}
+\define@key{MT@tr@c}{unit}[1em]{%
+ \MT@glet@nc{MT@tr@c@\MT@curr@set@name @unit}\@empty
+ \def\@tempa{#1}%
+ \MT@ifdimen\@tempa
+ {\MT@glet@nc{MT@tr@c@\MT@curr@set@name @unit}\@tempa}%
+ {\MT@warn@nodim{1em}%
+ \MT@gdef@n{MT@tr@c@\MT@curr@set@name @unit}{1em}}%
+}
+\MT@map@clist@n{sp,kn}{%
+ \define@key{MT@#1@c}{unit}[space]{%
+ \MT@glet@nc{MT@#1@c@\MT@curr@set@name @unit}\@empty
+ \def\@tempa{##1}%
+ \MT@ifstreq\@tempa{character}\relax{%
+ \MT@glet@nc{MT@#1@c@\MT@curr@set@name @unit}\m@ne
+ \MT@ifstreq\@tempa{space}\relax{%
+ \MT@ifdimen\@tempa
+ {\MT@glet@nc{MT@#1@c@\MT@curr@set@name @unit}\@tempa}%
+ {\MT@warn@nodim{width of space}}%
+ }%
+ }%
+ }%
+}
+\MT@map@clist@n{stretch,shrink,step}{%
+ \define@key{MT@ex@c}{#1}[]{%
+ \MT@ifempty{##1}\relax{%
+ \MT@ifint{##1}{%
+ \MT@gdef@n{MT@ex@c@\MT@curr@set@name @#1}{##1 }%
+ }{%
+ \MT@warning{%
+ Value `##1' for option `#1' is not a number.\MessageBreak
+ Ignoring it}%
+ }%
+ }%
+ }%
+}
+\define@key{MT@ex@c}{auto}[true]{%
+ \def\@tempa{#1}%
+ \csname if\@tempa\endcsname
+ \MT@requires@pdftex4{%
+ \MT@gdef@n{MT@ex@c@\MT@curr@set@name @auto}{autoexpand}%
+ }{%
+ \MT@warning{pdftex too old for automatic font expansion}%
+ }
+ \else
+ \MT@requires@pdftex4{%
+ \MT@glet@nc{MT@ex@c@\MT@curr@set@name @auto}\@empty
+ }\relax
+ \fi
+}
+\MT@define@opt@key{tr}{spacing}
+\MT@define@opt@key{tr}{outerspacing}
+\MT@define@opt@key{tr}{outerkerning}
+\define@key{MT@tr@c}{noligatures}[]%
+ {\MT@xdef@n{MT@tr@c@\MT@curr@set@name @noligatures}{#1}}
+\define@key{MT@tr@c}{outer spacing}[]{\setkeys{MT@tr@c}{outerspacing={#1}}}
+\define@key{MT@tr@c}{outer kerning}[]{\setkeys{MT@tr@c}{outerkerning={#1}}}
+\define@key{MT@tr@c}{no ligatures}[]{\setkeys{MT@tr@c}{noligatures={#1}}}
+\def\MT@inh@split#1=#2=#3\relax{%
+ \def\@tempa{#1}%
+ \ifx\@tempa\@empty \else
+ \MT@get@slot
+ \ifnum\MT@char > \m@ne
+ \let\MT@val\MT@char
+ \MT@map@clist@n{#2}{%
+ \def\@tempa{##1}%
+ \ifx\@tempa\@empty \else
+ \MT@get@slot
+ \ifnum\MT@char > \m@ne
+ \MT@exp@cs\MT@xadd{MT@inh@\MT@listname @\MT@val @}{{\MT@char}}%
+ \fi
+ \fi
+ }%
+ \fi
+ \fi
+}
+\MT@def@bool@opt{DVIoutput}{%
+ \csname if\@tempa\endcsname
+ \ifnum\pdfoutput>\z@ \MT@opt@DVItrue \fi
+ \pdfoutput\z@
+ \else
+ \ifnum\pdfoutput<\@ne \MT@opt@DVItrue \fi
+ \pdfoutput\@ne
+ \fi
+}
+\MT@requires@pdftex7{
+ \MT@def@bool@opt{copyfonts}{%
+ \csname if\@tempa\endcsname
+ \MT@glet\MT@copy@font\MT@copy@font@
+ \else
+ \MT@glet\MT@copy@font\relax
+ \fi
+ }
+}{
+ \MT@def@bool@opt{copyfonts}{%
+ \csname if\@tempa\endcsname
+ \MT@error
+ {The pdftex version you are using is too old\MessageBreak
+ to use the `copyfonts' option}{Upgrade pdftex.}%
+ \fi
+ }
+}
+\ifnum\pdfoutput<\@ne \else
+ \MT@requires@pdftex4{
+ \MT@expansiontrue
+ \MT@autotrue
+ }\relax
+\fi
+\def\MT@define@optionX#1#2{%
+ \define@key{MTX}{#1}[true]{%
+ \edef\@tempb{\csname MT@rbba@#1\endcsname}%
+ \MT@map@clist@n{##1}{%
+ \KV@@sp@def\MT@val{####1}%
+ \MT@ifempty\MT@val\relax{%
+ \@tempcnta=\m@ne
+ \MT@ifstreq\MT@val{true}{%
+ \MT@checksetup{#1}{%
+ \@tempcnta=\csname MT@\@tempb @level\endcsname
+ \MT@vinfo{Enabling #1
+ (level \number\csname MT@\@tempb @level\endcsname)\on@line}%
+ }%
+ }{%
+ \MT@ifstreq\MT@val{false}{%
+ \@tempcnta=\z@
+ \MT@vinfo{Disabling #1\on@line}%
+ }{%
+ \MT@ifstreq\MT@val{compatibility}{%
+ \MT@checksetup{#1}{%
+ \@tempcnta=\@ne
+ \MT@let@nc{MT@\@tempb @level}\@ne
+ \MT@vinfo{Setting #1 to level 1\on@line}%
+ }%
+ }{%
+ \MT@ifstreq\MT@val{nocompatibility}{%
+ \MT@checksetup{#1}{%
+ \@tempcnta=\tw@
+ \MT@let@nc{MT@\@tempb @level}\tw@
+ \MT@vinfo{Setting #1 to level 2\on@line}%
+ }%
+ }{\MT@error{Value `\MT@val' for key `#1' not recognised}
+ {Use any of `true', `false', `compatibility' or
+ `nocompatibility'.}%
+ }%
+ }%
+ }%
+ }%
+ \ifnum\@tempcnta>\m@ne
+ #2\@tempcnta\relax
+ \fi
+ }%
+ }%
+ }%
+}
+\def\MT@checksetup#1{%
+ \csname ifMT@#1\endcsname
+ \expandafter\@firstofone
+ \else
+ \MT@error{You cannot enable #1 if it was disabled\MessageBreak
+ in the package options}{Load microtype with #1 enabled.}%
+ \expandafter\@gobble
+ \fi
+}
+\MT@define@optionX{protrusion}\MT@protrudechars
+\MT@define@optionX{expansion}\MT@adjustspacing
+\let\MT@protrudechars\pdfprotrudechars
+\let\MT@adjustspacing\pdfadjustspacing
+\MT@requires@pdftex6{
+ \def\MT@define@optionX@#1#2{%
+ \define@key{MTX}{#1}[true]{%
+ \MT@map@clist@n{##1}{%
+ \KV@@sp@def\MT@val{####1}%
+ \MT@ifempty\MT@val\relax{%
+ \@tempcnta=\m@ne
+ \MT@ifstreq\MT@val{true}{%
+ \MT@checksetup{#1}{%
+ \@tempcnta=\@ne
+ \MT@vinfo{Enabling #1\on@line}%
+ }%
+ }{%
+ \MT@ifstreq\MT@val{false}{%
+ \@tempcnta=\z@
+ \MT@vinfo{Disabling #1\on@line}%
+ }{\MT@error{Value `\MT@val' for key `#1' not recognised}
+ {Use either `true' or `false'}%
+ }%
+ }%
+ \ifnum\@tempcnta>\m@ne
+ #2\relax
+ \fi
+ }%
+ }%
+ }%
+ }
+ \MT@define@optionX@{tracking}{\ifnum\@tempcnta=\z@ \let\MT@tracking\MT@set@tr@zero
+ \else \let\MT@tracking\MT@tracking@ \fi}
+ \MT@define@optionX@{spacing}{\pdfadjustinterwordglue\@tempcnta}
+ \MT@define@optionX@{kerning}{\pdfprependkern\@tempcnta
+ \pdfappendkern \@tempcnta}
+}{
+\define@key{MTX}{tracking}[true]{\MT@warning{Ignoring tracking setup}}
+\define@key{MTX}{kerning}[true]{\MT@warning{Ignoring kerning setup}}
+\define@key{MTX}{spacing}[true]{\MT@warning{Ignoring spacing setup}}
+}
+\define@key{MTX}{activate}[true]{%
+ \setkeys{MTX}{protrusion={#1}}%
+ \setkeys{MTX}{expansion={#1}}%
+}
+\def\MT@setup@PDF{%
+ \MT@info@nl{Generating \ifnum\pdfoutput<\@ne DVI \else PDF \fi output%
+ \ifMT@opt@DVI\space (changed by \MT@MT)\fi}%
+}
+\def\MT@setup@copies{%
+ \ifx\MT@copy@font\relax\else \MT@info@nl{Using font copies for contexts}\fi
+}
+\def\MT@setup@protrusion{%
+ \ifMT@protrusion
+ \edef\MT@active@features{\MT@active@features,pr}%
+ \MT@protrudechars\MT@pr@level
+ \MT@info@nl{Character protrusion enabled (level \number\MT@pr@level)%
+ \ifnum\MT@pr@factor=\MT@factor@default \else,\MessageBreak
+ factor: \number\MT@pr@factor\fi
+ \ifx\MT@pr@unit\@empty \else,\MessageBreak unit: \MT@pr@unit\fi}%
+ \MT@check@active@set{pr}%
+ \else
+ \let\MT@protrusion\relax
+ \MT@info@nl{No character protrusion}%
+ \fi
+}
+\def\MT@setup@expansion{%
+ \ifnum\pdfoutput<\@ne
+ \ifMT@opt@expansion \else
+ \MT@expansionfalse
+ \fi
+ \fi
+ \ifMT@expansion
+ \ifnum\MT@stretch=\m@ne
+ \let\MT@stretch\MT@stretch@default
+ \fi
+ \ifnum\MT@shrink=\m@ne
+ \let\MT@shrink\MT@stretch
+ \fi
+ \ifnum\MT@step=\m@ne
+ \MT@requires@pdftex6{%
+ \def\MT@step{1 }%
+ }{%
+ \ifnum\MT@stretch>\MT@shrink
+ \ifnum\MT@shrink=\z@
+ \@tempcnta=\MT@stretch
+ \else
+ \@tempcnta=\MT@shrink
+ \fi
+ \else
+ \ifnum\MT@stretch=\z@
+ \@tempcnta=\MT@shrink
+ \else
+ \@tempcnta=\MT@stretch
+ \fi
+ \fi
+ \divide\@tempcnta 5\relax
+ \ifnum\@tempcnta=\z@ \@tempcnta=\@ne \fi
+ \edef\MT@step{\number\@tempcnta\space}%
+ }%
+ \fi
+ \ifnum\MT@step=\z@
+ \MT@warning@nl{The expansion step cannot be set to zero.\MessageBreak
+ Setting it to one}%
+ \def\MT@step{1 }%
+ \fi
+ \let\MT@auto\@empty
+ \ifMT@auto
+ \MT@requires@pdftex4{%
+ \ifnum\pdfoutput<\@ne
+ \ifMT@opt@auto
+ \MT@error{%
+ Automatic font expansion only works for PDF output.\MessageBreak
+ However, you are creating a DVI file}
+ {If you have created expanded fonts instances, remove `auto' from%
+ \MessageBreak the package options. Otherwise, you have to switch
+ off expansion\MessageBreak completely.}%
+ \fi
+ \MT@autofalse
+ \else
+ \def\MT@auto{autoexpand}%
+ \fi
+ }{%
+ \MT@error{%
+ The pdftex version you are using is too old for\MessageBreak
+ automatic font expansion}%
+ {If you have created expanded fonts instances, remove `auto' from\MessageBreak
+ the package options. Otherwise, you have to switch off expansion\MessageBreak
+ completely, or upgrade pdftex to version 1.20 or newer.}%
+ \MT@autofalse
+ \def\MT@auto{1000 }%
+ }%
+ \else
+ \MT@requires@pdftex4\relax{%
+ \def\MT@auto{1000 }%
+ }%
+ \fi
+ \ifMT@selected
+ \let\MT@set@ex@codes\MT@set@ex@codes@s
+ \else
+ \let\MT@set@ex@codes\MT@set@ex@codes@n
+ \fi
+ \ifnum\MT@stretch=\z@
+ \ifnum\MT@shrink=\z@
+ \MT@warning@nl{%
+ Both the stretch and shrink limit are set to zero.\MessageBreak
+ Disabling font expansion}%
+ \MT@expansionfalse
+ \fi
+ \fi
+ \fi
+ \ifMT@expansion
+ \edef\MT@active@features{\MT@active@features,ex}%
+ \MT@adjustspacing\MT@ex@level
+ \MT@info@nl{\ifMT@auto A\else Non-a\fi utomatic font expansion enabled
+ (level \number\MT@ex@level),\MessageBreak
+ stretch: \number\MT@stretch, shrink: \number\MT@shrink,
+ step: \number\MT@step, \ifMT@selected\else non-\fi selected}%
+ \def\MT@check@step##1{%
+ \@tempcnta=\csname MT@##1\endcsname
+ \divide\@tempcnta \MT@step
+ \multiply\@tempcnta \MT@step
+ \ifnum\@tempcnta=\csname MT@##1\endcsname\else
+ \MT@warning@nl{The ##1 amount is not a multiple of step.\MessageBreak
+ The effective maximum ##1 is \the\@tempcnta\space
+ (step \number\MT@step)}%
+ \fi
+ }%
+ \MT@check@step{stretch}%
+ \MT@check@step{shrink}%
+ \MT@check@active@set{ex}%
+ \CheckCommand*\showhyphens[1]{\setbox0\vbox{%
+ \color@begingroup\everypar{}\parfillskip\z@skip
+ \hsize\maxdimen\normalfont\pretolerance\m@ne\tolerance\m@ne
+ \hbadness\z@\showboxdepth\z@\ ##1\color@endgroup}}%
+ \gdef\showhyphens##1{\setbox0\vbox{%
+ \color@begingroup\pdfadjustspacing\z@\everypar{}\parfillskip\z@skip
+ \hsize\maxdimen\normalfont\pretolerance\m@ne\tolerance\m@ne
+ \hbadness\z@\showboxdepth\z@\ ##1\color@endgroup}}%
+ \else
+ \let\MT@expansion\relax
+ \MT@info@nl{No font expansion}%
+ \fi
+}
+\MT@requires@pdftex6{%
+ \def\MT@setup@tracking{%
+ \ifMT@tracking
+ \edef\MT@active@features{\MT@active@features,tr}%
+ \MT@info@nl{Tracking enabled}%
+ \MT@check@active@set{tr}%
+ \ifMT@protrusion\else\MT@protrudechars\@ne\fi
+ \else
+ \let\MT@tracking\relax
+ \MT@info@nl{No adjustment of tracking}%
+ \fi
+ }
+ \def\MT@setup@spacing{%
+ \ifMT@spacing
+ \edef\MT@active@features{\MT@active@features,sp}%
+ \pdfadjustinterwordglue\@ne
+ \MT@info@nl{Adjustment of interword spacing enabled}%
+ \MT@with@package@T{ragged2e}{%
+ \MT@warning@nl{You are using the `ragged2e' package.\MessageBreak
+ Adjustment of interword spacing may lead to\MessageBreak
+ undesired results when used with `ragged2e'.\MessageBreak
+ In this case, disable the `spacing' option}%
+ }%
+ \MT@check@active@set{sp}%
+ \else
+ \let\MT@spacing\relax
+ \MT@info@nl{No adjustment of interword spacing}%
+ \fi
+ }
+ \def\MT@setup@spacing@check{%
+ \ifMT@spacing
+ \ifMT@babel \else
+ \ifnum\sfcode`\. > 1500
+ \MT@ifstreq\MT@sp@context{nonfrench}\relax{%
+ \MT@warning@nl{%
+ \string\nonfrenchspacing\space is active. Adjustment of\MessageBreak
+ interword spacing will disable it. You might want\MessageBreak
+ to add `\@backslashchar\MT@MT context{spacing=nonfrench}'\MessageBreak
+ to your preamble}%
+ }%
+ \fi
+ \fi
+ \fi
+ }
+ \def\MT@setup@kerning{%
+ \ifMT@kerning
+ \edef\MT@active@features{\MT@active@features,kn}%
+ \pdfprependkern\@ne
+ \pdfappendkern\@ne
+ \MT@info@nl{Adjustment of character kerning enabled}%
+ \MT@check@active@set{kn}%
+ \else
+ \let\MT@kerning\relax
+ \MT@info@nl{No adjustment of character kerning}%
+ \fi
+ }
+}{
+ \def\MT@error@doesnt@work#1{%
+ \csname ifMT@#1\endcsname
+ \MT@error{The #1 feature only works with pdftex 1.40\MessageBreak
+ or newer. Switching it off}
+ {Upgrade pdftex.}%
+ \csname MT@#1false\endcsname
+ \MT@let@nc{MT@#1}\relax
+ \else
+ \MT@info@nl{No adjustment of #1%
+ \space(pdftex too old)%
+ }%
+ \fi
+ }
+ \def\MT@setup@tracking{\MT@error@doesnt@work{tracking}}
+ \def\MT@setup@kerning {\MT@error@doesnt@work{kerning}}
+ \def\MT@setup@spacing {\MT@error@doesnt@work{spacing}}
+}
+\def\MT@setup@warntracking
+{%
+ \ifnum\pdfoutput<\@ne
+ \def\MT@warn@tracking@DVI{%
+ \MT@warning@nl{%
+ You are using tracking/letterspacing in DVI mode.\MessageBreak
+ This will probably not work, unless the post-\MessageBreak
+ processing program (dvips, dvipdfm(x), ...) is\MessageBreak
+ able to create the virtual fonts on the fly}%
+ \MT@glet\MT@warn@tracking@DVI\relax
+ }%
+ \else
+ \def\MT@warn@tracking@DVI{%
+ \ifnum\pdfprotrudechars<\@ne \global\pdfprotrudechars\@ne \fi
+ \MT@glet\MT@warn@tracking@DVI\relax
+ }%
+ \fi
+ \ifnum\MT@letterspace=\m@ne
+ \let\MT@letterspace\MT@letterspace@default
+ \else
+ \MT@ls@too@large\MT@letterspace
+ \fi
+}
+\def\MT@setup@noligatures{%
+ \MT@requires@pdftex5{%
+ \ifMT@noligatures \else
+ \let\MT@noligatures\relax
+ \fi
+ }\relax
+}
+\endinput
+%%
+%% End of file `microtype-pdftex.def'.
diff --git a/Master/texmf-dist/tex/latex/microtype/microtype-xetex.def b/Master/texmf-dist/tex/latex/microtype/microtype-xetex.def
new file mode 100644
index 00000000000..581695e43d5
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/microtype/microtype-xetex.def
@@ -0,0 +1,480 @@
+%%
+%% This is file `microtype-xetex.def',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% microtype.dtx (with options: `xetex-def')
+%%
+%% ------------------------------------------------------------------------
+%%
+%% The `microtype' package
+%% Subliminal refinements towards typographical perfection
+%% Copyright (c) 2004--2013 R Schlicht <w.m.l@gmx.net>
+%%
+%% This work may be distributed and/or modified under the conditions of the
+%% LaTeX Project Public License, either version 1.3c 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.3c or later is part
+%% of all distributions of LaTeX version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `author-maintained'.
+%%
+%% This work consists of the files microtype.dtx and microtype.ins and the
+%% derived files microtype.sty, microtype-pdftex.def, microtype-xetex.def,
+%% microtype-luatex.def, microtype.lua and letterspace.sty.
+%%
+%% ------------------------------------------------------------------------
+%% This file contains enginge-specific definitions.
+%% ------------------------------------------------------------------------
+%%
+\ProvidesFile
+ {microtype-xetex.def}
+ [2013/03/13 v2.5
+ Definitions specific to
+ xetex
+ (RS)]
+\ifdim 0\XeTeXrevision pt < 0.9997pt
+ \def\MT@xetex@no{1}
+\else
+ \def\MT@xetex@no{2}
+\fi
+\ifnum
+ \csname MT@\MT@engine tex@no\endcsname < 2
+ \MT@warning@nl{You
+ are using a \MT@engine tex version older than
+ 0.9997%
+ .\MessageBreak
+ `\MT@MT' does not work with this version.\MessageBreak
+ Please install a newer version of \MT@engine tex%
+ .\MessageBreak I will quit now}
+ \MT@clear@options
+\endinput\fi
+\def\MT@ifint#1{%
+ \if!\ifnum9<1#1!\else?\fi
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+}
+\def\MT@ifdimen#1{%
+ \setbox\z@=\hbox{%
+ \MT@count=1#1\relax
+ \ifnum\MT@count=\@ne
+ \aftergroup\@secondoftwo
+ \else
+ \aftergroup\@firstoftwo
+ \fi
+ }%
+}
+\def\MT@ifstreq#1#2{%
+ \edef\MT@res@a{#1}%
+ \edef\MT@res@b{#2}%
+ \ifx\MT@res@a\MT@res@b
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+}
+\def\MT@do@font#1{%
+ \@tempcnta=\z@
+ \MT@loop #1%
+ \advance\@tempcnta \@ne
+ \ifnum\@tempcnta < \XeTeXcountglyphs\MT@font \MT@repeat
+}
+ \def\MT@ledmac@setup{%
+ \ifMT@protrusion
+ \MT@ifdefined@c@TF\l@dunhbox@line{%
+ \MT@info@nl{Patching ledmac to enable character protrusion}%
+ \newdimen\MT@led@kern
+ \let\MT@led@unhbox@line\l@dunhbox@line
+ \renewcommand*{\l@dunhbox@line}[1]{%
+ \ifhbox##1%
+ \MT@led@kern=\rightmarginkern##1%
+ \kern\leftmarginkern##1%
+ \MT@led@unhbox@line##1%
+ \kern\MT@led@kern
+ \fi
+ }%
+ }{%
+ \MT@warning@nl{%
+ Character protrusion in paragraphs with line\MessageBreak
+ numbering will only work if you update ledmac}%
+ }%
+ \fi
+ }
+\def\MT@setupfont{\MT@setupfont@hook}
+\g@addto@macro\MT@setupfont{%
+ \MT@exp@two@c\MT@split@name\string\MT@font/\@nil
+ \MT@exp@one@n\MT@find@file\MT@family
+ \ifx\MT@familyalias\@empty \else
+ \MT@exp@one@n\MT@find@file\MT@familyalias\fi
+}
+\g@addto@macro\MT@setupfont{%
+ \MT@check@font
+ \ifMT@inlist@
+ \else
+ \MT@vinfo{Setting up font `\MT@@font'\on@line}%
+ \MT@protrusion
+}
+\g@addto@macro\MT@setupfont{%
+ \MT@register@font
+ \fi
+}
+\def\MT@protrusion{\MT@maybe@do{pr}}
+\def\MT@set@pr@codes{%
+ \MT@nofamilyfalse
+ \MT@if@list@exists{%
+ \ifMT@nofamily
+ \MT@ifdefined@n@TF{\MT@encoding-\MT@family-settings}\relax{%
+ \MT@info@nl{Loading generic settings for font family\MessageBreak
+ `\MT@family' (encoding: \MT@encoding).\MessageBreak
+ For optimal results, create family-specific settings.\MessageBreak
+ See the microtype manual for details}%
+ \MT@glet@nc{\MT@encoding-\MT@family-settings}\@empty
+ }%
+ \fi
+ \MT@get@font@dimen@six{%
+ \MT@get@opt
+ \MT@reset@pr@codes
+ \MT@get@inh@list
+ \MT@set@inputenc{c}%
+ \MT@load@list\MT@pr@c@name
+ \MT@set@listname
+ \MT@let@cn\@tempc{MT@pr@c@\MT@pr@c@name}%
+ \expandafter\MT@set@codes\@tempc,\relax,}%
+ }\MT@reset@pr@codes
+}
+\def\MT@get@font@dimen@six{%
+ \ifnum\fontdimen6\MT@font=\z@
+ \MT@warning@nl{%
+ Font `\MT@@font' does not specify its\MessageBreak
+ \@backslashchar fontdimen 6 (width of an `em')! Therefore,\MessageBreak
+ \@nameuse{MT@abbr@\MT@feat} will not work with this font}%
+ \expandafter\@gobble
+ \else
+ \edef\MT@dimen@six{\number\fontdimen6\MT@font}%
+ \expandafter\@firstofone
+ \fi
+}
+\def\MT@set@all@pr#1#2{%
+ \let\MT@temp\@empty
+ \MT@ifempty{#1}\relax{\g@addto@macro\MT@temp{\lpcode\MT@font\@tempcnta=#1}}%
+ \MT@ifempty{#2}\relax{\g@addto@macro\MT@temp{\rpcode\MT@font\@tempcnta=#2}}%
+ \MT@do@font\MT@temp
+}
+\def\MT@reset@pr@codes@{\MT@set@all@pr\z@\z@}
+\let\MT@reset@pr@codes\relax
+\def\MT@the@pr@code{\@tempcntb}
+\def\MT@set@codes#1,{%
+ \ifx\relax#1\@empty\else
+ \MT@split@codes #1==\relax
+ \expandafter\MT@set@codes
+ \fi
+}
+\def\MT@split@codes#1=#2=#3\relax{%
+ \def\@tempa{#1}%
+ \ifx\@tempa\@empty \else
+ \MT@get@slot
+ \ifx\MT@char\@empty \else
+ \MT@get@char@unit
+ \csname MT@\MT@feat @split@val\endcsname#2\relax
+ \fi
+ \fi
+}
+\def\MT@pr@split@val#1,#2\relax{%
+ \def\@tempb{#1}%
+ \MT@ifempty\@tempb\relax{%
+ \MT@scale@to@em
+ \lpcode\MT@font\MT@char=\MT@the@pr@code
+ }%
+ \def\@tempb{#2}%
+ \MT@ifempty\@tempb\relax{%
+ \MT@scale@to@em
+ \rpcode\MT@font\MT@char=\MT@the@pr@code
+ }%
+ \MT@ifdefined@c@T\MT@pr@inh@name{%
+ \MT@ifdefined@n@T{MT@inh@\MT@pr@inh@name @\MT@char @}{%
+ \MT@exp@cs\MT@map@tlist@c
+ {MT@inh@\MT@pr@inh@name @\MT@char @}%
+ \MT@set@pr@heirs
+ }%
+ }%
+}
+\def\MT@scale@to@em{%
+ \@tempcntb=\MT@count\relax
+ \MT@scale\@tempcntb \@tempb \MT@dimen@six
+ \ifnum\@tempcntb=\z@ \else
+ \MT@scale@factor
+ \fi
+}
+\def\MT@get@charwd{%
+ \ifnum\MT@char@<\z@
+ \setbox\z@=\hbox{\MT@font \XeTeXglyph-\MT@char@}%
+ \MT@count=\wd\z@
+ \else
+ \MT@count=\fontcharwd\MT@font\MT@char@\relax
+ \fi
+ \ifnum\MT@count=\z@ \MT@info@missing@char \fi
+}
+\def\MT@set@pr@heirs#1{%
+ \lpcode\MT@font #1 =\lpcode\MT@font\MT@char\relax
+ \rpcode\MT@font #1 =\rpcode\MT@font\MT@char\relax
+}
+\def\MT@preset@pr{%
+ \expandafter\expandafter\expandafter\MT@preset@pr@
+ \csname MT@pr@c@\MT@pr@c@name @preset\endcsname\@nil
+}
+\def\MT@preset@pr@#1,#2\@nil{%
+ \ifx\MT@pr@unit@\@empty
+ \MT@warn@preset@towidth{pr}%
+ \let\MT@preset@aux\MT@preset@aux@factor
+ \else
+ \def\MT@preset@aux{\MT@preset@aux@space2}%
+ \fi
+ \MT@ifempty{#1}{\let\@tempa\@empty}{\MT@preset@aux{#1}\@tempa}%
+ \MT@ifempty{#2}{\let\@tempb\@empty}{\MT@preset@aux{#2}\@tempb}%
+ \MT@set@all@pr\@tempa\@tempb
+}
+\def\MT@preset@aux@factor#1#2{%
+ \@tempcntb=#1\relax
+ \MT@scale@factor
+ \edef#2{\number\@tempcntb}%
+}
+\def\MT@preset@aux@space#1#2#3{%
+ \def\@tempb{#2}%
+ \MT@get@space@unit#1%
+ \MT@scale@to@em
+ \edef#3{\number\@tempcntb}%
+}
+\def\MT@warn@preset@towidth#1{%
+ \MT@warning@nl{%
+ Cannot preset characters relative to their widths\MessageBreak
+ for \@nameuse{MT@abbr@#1} list `\@nameuse{MT@#1@c@name}'. Presetting them%
+ \MessageBreak relative to 1em instead}%
+}
+\DeclareRobustCommand\lsstyle{%
+ \MT@error{Letterspacing currently doesn't work with xetex}
+ {Run pdftex or luatex, or use the `soul' package instead.}%
+ \MT@glet\lsstyle\relax
+}
+\def\MT@get@slot@{%
+ \ifnum\XeTeXfonttype\MT@font=\z@
+ \ifnum\MT@char > \m@ne
+ \ifMT@norest \else
+ \MT@warn@rest
+ \let\MT@char\@empty
+ \fi
+ \else
+ \MT@warn@unknown
+ \fi
+ \else
+ \ifnum\MT@char=47\relax
+ \ifMT@norest \edef\MT@char{U47}%
+ \else
+ \@tempcnta=\XeTeXglyphindex"\expandafter\@gobble\@tempa"\relax
+ \ifnum\@tempcnta=\z@
+ \MT@warn@unknown
+ \let\MT@char\@empty
+ \else
+ \edef\MT@char{\@tempa\space}%
+ \edef\MT@char@{-\the\@tempcnta}%
+ \fi
+ \fi
+ \else
+ \ifnum\MT@char > \m@ne
+ \ifMT@norest
+ \@tempcnta=\XeTeXcharglyph\MT@char\relax
+ \ifnum\@tempcnta=\z@
+ \MT@info@missing@char
+ \let\MT@char\@empty
+ \else
+ \edef\MT@char{U\MT@char}%
+ \fi
+ \else
+ \MT@warn@rest
+ \let\MT@char\@empty
+ \fi
+ \else
+ \MT@warn@unknown
+ \let\MT@char\@empty
+ \fi
+ \fi
+ \fi
+}
+\def\MT@max@char
+ {1114111 }
+\def\MT@max@slot
+ {1114111 }
+\renewcommand*\DisableLigatures[2][]{%
+ \MT@error{Disabling ligatures of a font is only possible\MessageBreak
+ with pdftex version 1.30 or newer.\MessageBreak
+ Ignoring \string\DisableLigatures}{%
+ Use
+ pdftex.}%
+}
+\def\SetProtrusion{%
+ \MT@begin@catcodes
+ \MT@SetProtrusion
+}
+\newcommand*\MT@SetProtrusion[3][]{%
+ \let\MT@extra@context\@empty
+ \MT@set@named@keys{MT@pr@c}{#1}%
+ \def\MT@permutelist{pr@c}%
+ \setkeys{MT@cfg}{#2}%
+ \MT@permute
+ \MT@gdef@n{MT@pr@c@\MT@pr@c@name}{#3}%
+ \MT@end@catcodes
+}
+ \define@key{MT@pr@c}{context}[]{%
+ \MT@error{Protrusion contexts only work with pdftex
+ \MessageBreak or luatex.
+ Ignoring `context' key\on@line}%
+ {Use pdftex or luatex.}%
+ }
+\define@key{MT@pr@c}{unit}[character]{%
+ \MT@glet@nc{MT@pr@c@\MT@curr@set@name @unit}\@empty
+ \def\@tempa{#1}%
+ \MT@ifstreq\@tempa{character}\relax{%
+ \MT@ifdimen\@tempa
+ {\MT@glet@nc{MT@pr@c@\MT@curr@set@name @unit}\@tempa}%
+ {\MT@warn@nodim{character widths}}%
+ }%
+}
+\def\MT@inh@split#1=#2=#3\relax{%
+ \def\@tempa{#1}%
+ \ifx\@tempa\@empty \else
+ \MT@get@slot
+ \ifx\MT@char\@empty\else
+ \let\MT@val\MT@char
+ \MT@map@clist@n{#2}{%
+ \def\@tempa{##1}%
+ \ifx\@tempa\@empty \else
+ \MT@get@slot
+ \ifx\MT@char\@empty\else
+ \MT@exp@cs\MT@xadd{MT@inh@\MT@listname @\MT@val @}{{\MT@char}}%
+ \fi
+ \fi
+ }%
+ \fi
+ \fi
+}
+\MT@def@bool@opt{DVIoutput}{%
+ \csname if\@tempa\endcsname
+ \MT@warning@nl{Ignoring `DVIoutput' option}%
+ \fi
+}
+ \MT@def@bool@opt{copyfonts}{%
+ \csname if\@tempa\endcsname
+ \MT@error
+ {The `copyfonts' option does not work with xetex}
+ {Use pdftex or luatex instead.}%
+ \fi
+ }
+\def\MT@define@optionX#1#2{%
+ \define@key{MTX}{#1}[true]{%
+ \edef\@tempb{\csname MT@rbba@#1\endcsname}%
+ \MT@map@clist@n{##1}{%
+ \KV@@sp@def\MT@val{####1}%
+ \MT@ifempty\MT@val\relax{%
+ \@tempcnta=\m@ne
+ \MT@ifstreq\MT@val{true}{%
+ \MT@checksetup{#1}{%
+ \@tempcnta=\csname MT@\@tempb @level\endcsname
+ \MT@vinfo{Enabling #1
+ (level \number\csname MT@\@tempb @level\endcsname)\on@line}%
+ }%
+ }{%
+ \MT@ifstreq\MT@val{false}{%
+ \@tempcnta=\z@
+ \MT@vinfo{Disabling #1\on@line}%
+ }{%
+ \MT@ifstreq\MT@val{compatibility}{%
+ \MT@checksetup{#1}{%
+ \@tempcnta=\@ne
+ \MT@let@nc{MT@\@tempb @level}\@ne
+ \MT@vinfo{Setting #1 to level 1\on@line}%
+ }%
+ }{%
+ \MT@ifstreq\MT@val{nocompatibility}{%
+ \MT@checksetup{#1}{%
+ \@tempcnta=\tw@
+ \MT@let@nc{MT@\@tempb @level}\tw@
+ \MT@vinfo{Setting #1 to level 2\on@line}%
+ }%
+ }{\MT@error{Value `\MT@val' for key `#1' not recognised}
+ {Use any of `true', `false', `compatibility' or
+ `nocompatibility'.}%
+ }%
+ }%
+ }%
+ }%
+ \ifnum\@tempcnta>\m@ne
+ #2\@tempcnta\relax
+ \fi
+ }%
+ }%
+ }%
+}
+\def\MT@checksetup#1{%
+ \csname ifMT@#1\endcsname
+ \expandafter\@firstofone
+ \else
+ \MT@error{You cannot enable #1 if it was disabled\MessageBreak
+ in the package options}{Load microtype with #1 enabled.}%
+ \expandafter\@gobble
+ \fi
+}
+\MT@define@optionX{protrusion}\MT@protrudechars
+\let\MT@protrudechars\XeTeXprotrudechars
+\define@key{MTX}{expansion}[true]{\MT@warning{Ignoring expansion setup}}
+\define@key{MTX}{tracking}[true]{\MT@warning{Ignoring tracking setup}}
+\define@key{MTX}{kerning}[true]{\MT@warning{Ignoring kerning setup}}
+\define@key{MTX}{spacing}[true]{\MT@warning{Ignoring spacing setup}}
+\define@key{MTX}{activate}[true]{%
+ \setkeys{MTX}{protrusion={#1}}%
+}
+\let\MT@setup@PDF\relax
+\let\MT@setup@copies\relax
+\def\MT@setup@protrusion{%
+ \ifMT@protrusion
+ \edef\MT@active@features{\MT@active@features,pr}%
+ \MT@protrudechars\MT@pr@level
+ \MT@info@nl{Character protrusion enabled (level \number\MT@pr@level)%
+ \ifnum\MT@pr@factor=\MT@factor@default \else,\MessageBreak
+ factor: \number\MT@pr@factor\fi
+ \ifx\MT@pr@unit\@empty \else,\MessageBreak unit: \MT@pr@unit\fi}%
+ \MT@check@active@set{pr}%
+ \else
+ \let\MT@protrusion\relax
+ \MT@info@nl{No character protrusion}%
+ \fi
+}
+\def\MT@setup@expansion{%
+ \ifMT@expansion
+ \ifMT@opt@expansion
+ \MT@error{Font expansion does not work with xetex}
+ {Use pdftex or luatex instead.}%
+ \fi
+ \fi
+}
+ \def\MT@error@doesnt@work#1{%
+ \csname ifMT@#1\endcsname
+ \MT@error{The #1 feature only works with pdftex 1.40\MessageBreak
+ or newer. Switching it off}
+ {Use pdftex instead.}%
+ \csname MT@#1false\endcsname
+ \MT@let@nc{MT@#1}\relax
+ \else
+ \MT@info@nl{No adjustment of #1%
+ }%
+ \fi
+ }
+ \def\MT@setup@tracking{\MT@error@doesnt@work{tracking}}
+ \def\MT@setup@kerning {\MT@error@doesnt@work{kerning}}
+ \def\MT@setup@spacing {\MT@error@doesnt@work{spacing}}
+\let\MT@setup@warntracking\relax
+\let\MT@setup@noligatures\relax
+\endinput
+%%
+%% End of file `microtype-xetex.def'.
diff --git a/Master/texmf-dist/tex/latex/microtype/microtype.cfg b/Master/texmf-dist/tex/latex/microtype/microtype.cfg
index c0b735f6294..f1d91115c63 100644
--- a/Master/texmf-dist/tex/latex/microtype/microtype.cfg
+++ b/Master/texmf-dist/tex/latex/microtype/microtype.cfg
@@ -9,8 +9,8 @@
%% ------------------------------------------------------------------------
%%
%% The `microtype' package
-%% An interface to the micro-typographic extensions of pdfTeX
-%% Copyright (c) 2004--2010 R Schlicht <w.m.l@gmx.net>
+%% Subliminal refinements towards typographical perfection
+%% Copyright (c) 2004--2013 R Schlicht <w.m.l@gmx.net>
%%
%% This work may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License, either version 1.3c of this license or (at
@@ -21,7 +21,8 @@
%% This work has the LPPL maintenance status `author-maintained'.
%%
%% This work consists of the files microtype.dtx and microtype.ins and the
-%% derived files microtype.sty, microtype.lua and letterspace.sty.
+%% derived files microtype.sty, microtype-pdftex.def, microtype-xetex.def,
+%% microtype-luatex.def, microtype.lua and letterspace.sty.
%%
%% ------------------------------------------------------------------------
%% This is the main configuration file for the `microtype' package.
@@ -39,7 +40,7 @@
%%
\ProvidesFile
{microtype.cfg}
- [2010/01/10 v2.4
+ [2013/03/13 v2.5
microtype main configuration file
(RS)]
@@ -50,37 +51,37 @@
{ }
\DeclareMicrotypeSet{allmath}
- { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,TS1,OML,OMS,U} }
+ { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,EU1,EU2,TS1,OML,OMS,U} }
\DeclareMicrotypeSet{alltext}
- { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,TS1} }
+ { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,TS1,EU1,EU2} }
\DeclareMicrotypeSet{basicmath}
- { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,OML,OMS},
+ { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,EU1,EU2,OML,OMS},
family = {rm*,sf*},
series = {md*},
size = {normalsize,footnotesize,small,large}
}
\DeclareMicrotypeSet{basictext}
- { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5},
+ { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,EU1,EU2},
family = {rm*,sf*},
series = {md*},
size = {normalsize,footnotesize,small,large}
}
\DeclareMicrotypeSet{smallcaps}
- { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,TS1},
+ { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,TS1,EU1,EU2},
shape = {sc*}
}
\DeclareMicrotypeSet{footnotesize}
- { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,TS1},
+ { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,TS1,EU1,EU2},
size = {-small}
}
\DeclareMicrotypeSet{scriptsize}
- { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,TS1},
+ { encoding = {OT1,T1,T2A,LY1,OT4,QX,T5,TS1,EU1,EU2},
size = {-footnotesize}
}
@@ -101,7 +102,13 @@
\DeclareMicrotypeVariants{x,j,w,a,d,0,1}
+\ifMT@fontspec
+\DeclareMicrotypeAlias{lmr} {Latin Modern Roman}
+\else
\DeclareMicrotypeAlias{lmr} {cmr} % lmodern
+\fi
+\DeclareMicrotypeAlias{lmsy}{cmsy}
+\DeclareMicrotypeAlias{lmm} {cmm}
\DeclareMicrotypeAlias{aer} {cmr} % ae
\DeclareMicrotypeAlias{zer} {cmr} % zefonts
\DeclareMicrotypeAlias{cmor}{cmr} % eco
@@ -112,11 +119,19 @@
\DeclareMicrotypeAlias{fp9j}{pplj} % "
\DeclareMicrotypeAlias{txr} {ptm} % txfonts
\DeclareMicrotypeAlias{qtm} {ptm} % TeX Gyre Termes (formerly: qfonts/QuasiTimes)
+\DeclareMicrotypeAlias{TeX Gyre Pagella}{Palatino Linotype}
+\DeclareMicrotypeAlias{Palatino LT Std} {Palatino Linotype}
+\DeclareMicrotypeAlias{Palatino} {Palatino Linotype}
+\DeclareMicrotypeAlias{Asana Math} {Palatino Linotype}
\DeclareMicrotypeAlias{zeur}{eur} % Euler VM
\DeclareMicrotypeAlias{zeus}{eus} % "
\DeclareMicrotypeAlias{chr} {bch} % CH Math
\DeclareMicrotypeAlias{mdbch}{bch} % mathdesign/Charter
\DeclareMicrotypeAlias{mdugm}{ugm} % mathdesign/URW Garamond
+\DeclareMicrotypeAlias{zgmx}{ugm} % garamondx
+\DeclareMicrotypeAlias{zgmj}{ugm} % "
+\DeclareMicrotypeAlias{zgmI}{ugm} % "
+\DeclareMicrotypeAlias{zgmq}{ugm} % "
\DeclareMicrotypeAlias{ulg} {blg} % URW LetterGothic -> Bitstream LetterGothic12Pitch
\DeclareMicrotypeAlias{zpeus} {zpeu} % Adobe Euro sans -> serif
\DeclareMicrotypeAlias{eurosans}{zpeu} % Adobe Euro sans -> serif
@@ -298,13 +313,47 @@
y = {\`y,\'y,\~y,\h y,\d y}
}
+\DeclareCharacterInheritance
+ { encoding = {EU1,EU2} }
+ { A = {\`A,\'A,\^A,\~A,\"A,\r A,\k A,\u A},
+ a = {\`a,\'a,\^a,\~a,\"a,\r a,\k a,\u a},
+ C = {\'C,\c C,\v C},
+ c = {\'c,\c c,\v c},
+ D = {\v D,\DH},
+ d = {\v d,\dj},
+ E = {\`E,\'E,\^E,\"E,\k E,\v E},
+ e = {\`e,\'e,\^e,\"e,\k e,\v e},
+ G = {\u G},
+ g = {\u g},
+ I = {\`I,\'I,\^I,\"I,\.I},
+ i = {\`i,\'i,\^i,\"i,\i},
+ L = {\L,\'L,\v L},
+ l = {\l,\'l,\v l},
+ N = {\'N,\~N,\v N},
+ n = {\'n,\~n,\v n},
+ O = {\O,\`O,\'O,\^O,\~O,\"O,\H O},
+ o = {\o,\`o,\'o,\^o,\~o,\"o,\H o},
+ R = {\'R,\v R},
+ r = {\'r,\v r},
+ S = {\'S,\c S,\v S}, % \SS
+ s = {\'s,\c s,\v s},
+ T = {\c T,\v T},
+ t = {\c t,\v t},
+ U = {\`U,\'U,\^U,\"U,\H U,\r U},
+ u = {\`u,\'u,\^u,\"u,\H u,\r u},
+ Y = {\'Y,\"Y},
+ y = {\'y,\"y},
+ Z = {\'Z,\.Z,\v Z},
+ z = {\'z,\.z,\v z}
+ }
+
%%% -----------------------------------------------------------------------
%%% TRACKING/LETTERSPACING
\SetTracking
[ name = default,
no ligatures = {f} ]
- { encoding = {OT1,T1,T2A,LY1,OT4,QX} }
+ { encoding = {OT1,T1,T2A,LY1,OT4,QX,EU2} }
{ }
%%% -----------------------------------------------------------------------
@@ -490,7 +539,7 @@
\SetProtrusion
[ name = T1-default,
load = default ]
- { encoding = {T1,LY1} }
+ { encoding = {T1,LY1,EU1,EU2} }
{
\AE = {50, },
_ = {100,100},
diff --git a/Master/texmf-dist/tex/latex/microtype/microtype.lua b/Master/texmf-dist/tex/latex/microtype/microtype.lua
index 7590e2095b4..8f800c38598 100644
--- a/Master/texmf-dist/tex/latex/microtype/microtype.lua
+++ b/Master/texmf-dist/tex/latex/microtype/microtype.lua
@@ -9,8 +9,8 @@
-- ------------------------------------------------------------------------
--
-- The `microtype' package
--- An interface to the micro-typographic extensions of pdfTeX
--- Copyright (c) 2004--2010 R Schlicht <w.m.l@gmx.net>
+-- Subliminal refinements towards typographical perfection
+-- Copyright (c) 2004--2013 R Schlicht <w.m.l@gmx.net>
--
-- This work may be distributed and/or modified under the conditions of the
-- LaTeX Project Public License, either version 1.3c of this license or (at
@@ -21,7 +21,8 @@
-- This work has the LPPL maintenance status `author-maintained'.
--
-- This work consists of the files microtype.dtx and microtype.ins and the
--- derived files microtype.sty, microtype.lua and letterspace.sty.
+-- derived files microtype.sty, microtype-pdftex.def, microtype-xetex.def,
+-- microtype-luatex.def, microtype.lua and letterspace.sty.
--
-- ------------------------------------------------------------------------
-- This file contains auxiliary lua functions.
@@ -36,11 +37,11 @@ microtype = {}
microtype.module = {
name = "microtype",
- version = 2.4,
- date = "2010/01/10",
+ version = 2.5,
+ date = "2013/03/13",
description = "microtype module.",
- author = "R Schlicht",
- copyright = "R Schlicht",
+ author = "Elie Roux & R Schlicht",
+ copyright = "Elie Roux & R Schlicht",
license = "LPPL",
}
@@ -48,7 +49,7 @@ if luatextra and luatextra.provides_module then
luatextra.provides_module(microtype.module)
end
-function microtype.ifint(s)
+function microtype.if_int(s)
if string.find(s,"^-*[0-9]+ *$") then
tex.write("@firstoftwo")
else
@@ -56,7 +57,7 @@ function microtype.ifint(s)
end
end
-function microtype.ifdimen(s)
+function microtype.if_dimen(s)
if (string.find(s, "^-*[0-9]+(%a*) *$") or
string.find(s, "^-*[0-9]*[.,][0-9]+(%a*) *$")) then
tex.write("@firstoftwo")
@@ -65,7 +66,7 @@ function microtype.ifdimen(s)
end
end
-function microtype.ifstreq(s1, s2)
+function microtype.if_str_eq(s1, s2)
if s1 == s2 then
tex.write("@firstoftwo")
else
@@ -73,6 +74,17 @@ function microtype.ifstreq(s1, s2)
end
end
+function microtype.name_to_slot(name)
+ if fonts then
+ local tfmdata = fonts.ids[font.current()]
+ if tfmdata and tfmdata.shared then
+ local otfdata = tfmdata.shared.otfdata
+ local unicode = otfdata.luatex.unicodes[name]
+ return unicode and (type(unicode) == "number" and unicode or unicode[1])
+ end
+ end
+end
+
end
--
--
diff --git a/Master/texmf-dist/tex/latex/microtype/microtype.sty b/Master/texmf-dist/tex/latex/microtype/microtype.sty
index 018f1f958ac..5c925868330 100644
--- a/Master/texmf-dist/tex/latex/microtype/microtype.sty
+++ b/Master/texmf-dist/tex/latex/microtype/microtype.sty
@@ -4,13 +4,13 @@
%%
%% The original source files were:
%%
-%% microtype.dtx (with options: `package,lua')
+%% microtype.dtx (with options: `package')
%%
%% ------------------------------------------------------------------------
%%
%% The `microtype' package
-%% An interface to the micro-typographic extensions of pdfTeX
-%% Copyright (c) 2004--2010 R Schlicht <w.m.l@gmx.net>
+%% Subliminal refinements towards typographical perfection
+%% Copyright (c) 2004--2013 R Schlicht <w.m.l@gmx.net>
%%
%% This work may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License, either version 1.3c of this license or (at
@@ -21,15 +21,16 @@
%% This work has the LPPL maintenance status `author-maintained'.
%%
%% This work consists of the files microtype.dtx and microtype.ins and the
-%% derived files microtype.sty, microtype.lua and letterspace.sty.
+%% derived files microtype.sty, microtype-pdftex.def, microtype-xetex.def,
+%% microtype-luatex.def, microtype.lua and letterspace.sty.
%%
%% ------------------------------------------------------------------------
%%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage
{microtype}
- [2010/01/10 v2.4
- Micro-typography with pdfTeX
+ [2013/03/13 v2.5
+ Micro-typographical refinements
(RS)]
\def\MT@MT
{microtype}
@@ -90,6 +91,7 @@
\@onlypreamble\DisableLigatures
\@onlypreamble\DeclareMicrotypeVariants
\@onlypreamble\DeclareMicrotypeBabelHook
+\expandafter\let\csname ver@letterspace.sty\endcsname\@empty
\def\MT@old@cmd#1#2{%
\newcommand*#1{\MT@warning{%
\string#1 is deprecated. Please use\MessageBreak
@@ -109,66 +111,43 @@
This error message appears because you loaded the `\MT@MT'\MessageBreak
package with the option `verbose=errors'. Consult the documentation\MessageBreak
in \MT@MT.pdf to find out what went wrong.}}
-\def\MT@pdftex@no{0}
+\ifcase 0%
+ \ifx\eTeXversion\@undefined 1\else
+ \ifx\eTeXversion\relax 1\else
+ \ifcase\eTeXversion 1\fi
+ \fi
+ \fi
+\else
+ \catcode`\^^Q=9 \catcode`\^^X=14
+\fi
+\def\MT@clear@options{%
+ \AtEndOfPackage{\let\@unprocessedoptions\relax\MT@restore@catcodes}%
+ \let\CurrentOption\@empty
+ \let\MT@endinput\endinput
+}
\ifx\normalpdftexversion\@undefined \else
\let\pdftexversion \normalpdftexversion
\let\pdftexrevision\normalpdftexrevision
\let\pdfoutput \normalpdfoutput
\fi
+\let\MT@engine\relax
\ifx\pdftexversion\@undefined \else
\ifx\pdftexversion\relax \else
- \def\MT@pdftex@no{7}
- \ifnum\pdftexversion = 140
- \ifnum\pdftexrevision < 4
- \def\MT@pdftex@no{6}
- \fi
- \else
- \ifnum\pdftexversion < 140
- \def\MT@pdftex@no{5}
- \ifnum\pdftexversion < 130
- \def\MT@pdftex@no{4}
- \ifnum\pdftexversion < 120
- \def\MT@pdftex@no{3}
- \ifnum\pdftexversion = 14
- \ifnum \expandafter`\pdftexrevision < `h
- \def\MT@pdftex@no{2}
- \ifnum \expandafter`\pdftexrevision < `f
- \def\MT@pdftex@no{1}
- \fi
- \fi
- \else
- \ifnum\pdftexversion < 14
- \def\MT@pdftex@no{1}
- \fi
- \fi
- \fi
- \fi
+ \def\MT@engine{pdf}
+ \ifx\directlua\@undefined \else
+ \ifx\directlua\relax \else
+ \def\MT@engine{lua}
\fi
\fi
\fi
\fi
-\def\MT@clear@options{%
- \AtEndOfPackage{\let\@unprocessedoptions\relax}%
- \let\CurrentOption\@empty
-}
-\ifnum\MT@pdftex@no <
- 2
- \MT@warning@nl{You
- \ifcase\MT@pdftex@no
- don't seem to be using pdftex.\MessageBreak
- `\MT@MT' only works with pdftex.\MessageBreak
- Try running `pdflatex' instead of
- `\ifx\XeTeXversion\@undefined\else xe\fi latex'%
- \else
- are using a pdftex version older than
- 0.14f%
- .\MessageBreak
- `\MT@MT' does not work with this version.\MessageBreak
- Please install a newer version of pdftex%
+\ifx\MT@engine\relax
+ \ifx\XeTeXversion\@undefined \else
+ \ifx\XeTeXversion\relax \else
+ \def\MT@engine{xe}
\fi
- }
- \MT@clear@options\MT@restore@catcodes
-\endinput\fi
+ \fi
+\fi
\RequirePackage{keyval}[1997/11/10]
\newtoks\MT@toks
\newif\ifMT@if@
@@ -207,41 +186,9 @@
\def\MT@factor@default{1000 }
\def\MT@stretch@default{20 }
\def\MT@shrink@default{20 }
-\def\MT@step@default{4 }
\let\MT@letterspace\m@ne
\def\MT@letterspace@default{100}
\newif\ifMT@document
-\ifcase 0%
- \ifx\eTeXversion\@undefined 1\else
- \ifx\eTeXversion\relax 1\else
- \ifcase\eTeXversion 1\fi
- \fi
- \fi
-\else
- \catcode`\^^Q=9 \catcode`\^^X=14
-\fi
-\def\MT@requires@pdftex#1{%
- \ifnum\MT@pdftex@no<#1 \expandafter\@secondoftwo\else\expandafter\@firstoftwo\fi
-}
-\let\MT@requires@luatex\@secondoftwo
-\ifx\directlua\@undefined \else
- \ifx\directlua\relax \else
- \let\MT@requires@luatex\@firstoftwo
- \fi
-\fi
-\MT@requires@luatex{
-\ifnum\luatexversion<36
- \def\MT@lua{\directlua0}
-\else
- \def\MT@lua{\directlua}
-\fi
-\MT@lua{
- if (luatextra and luatextra.use_module) then
- luatextra.use_module("microtype")
- else
- dofile(kpse.find_file("microtype.lua"))
- end}
-}\relax
\def\MT@glet{\global\let}
\def\MT@exp@cs#1#2{\expandafter#1\csname#2\endcsname}
\def\MT@exp@gcs#1#2{\begingroup\expandafter\endgroup\expandafter#1\csname#2\endcsname}
@@ -303,52 +250,6 @@
\fi
}
\endgroup
-\MT@requires@pdftex6{
- \MT@requires@luatex{
- \def\MT@ifint#1{\csname\MT@lua{microtype.ifint([[#1]])}\endcsname}
- }{
- \def\MT@ifint#1{%
- \ifcase\pdfmatch{^-*[0-9]+ *$}{#1}\relax
- \expandafter\@secondoftwo
- \else
- \expandafter\@firstoftwo
- \fi
- }
- }
-}{
- \def\MT@ifint#1{%
- \if!\ifnum9<1#1!\else?\fi
- \expandafter\@firstoftwo
- \else
- \expandafter\@secondoftwo
- \fi
- }
-}
-\MT@requires@pdftex6{
- \MT@requires@luatex{
- \def\MT@ifdimen#1{\csname\MT@lua{microtype.ifdimen([[#1]])}\endcsname}
- }{
- \def\MT@ifdimen#1{%
- \ifcase\pdfmatch{^([0-9]+([.,][0-9]+)?|[.,][0-9]+)%
- (em|ex|cm|mm|in|pc|pt|dd|cc|bp|sp|nd|nc|px)? *$}{#1}\relax
- \expandafter\@secondoftwo
- \else
- \expandafter\@firstoftwo
- \fi
- }
- }
-}{
- \def\MT@ifdimen#1{%
- \setbox\z@=\hbox{%
- \MT@count=1#1\relax
- \ifnum\MT@count=\@ne
- \aftergroup\@secondoftwo
- \else
- \aftergroup\@firstoftwo
- \fi
- }%
- }
-}
\def\MT@ifdim#1#2#3{%
\ifdim #1\p@ #2 #3\p@
\expandafter\@firstoftwo
@@ -356,29 +257,6 @@
\expandafter\@secondoftwo
\fi
}
-\MT@requires@pdftex5{
- \MT@requires@luatex{
- \def\MT@ifstreq#1#2{\csname\MT@lua{microtype.ifstreq([[#1]],[[#2]])}\endcsname}
- }{
- \def\MT@ifstreq#1#2{%
- \ifcase\pdfstrcmp{#1}{#2}\relax
- \expandafter\@firstoftwo
- \else
- \expandafter\@secondoftwo
- \fi
- }
- }
-}{
- \def\MT@ifstreq#1#2{%
- \edef\MT@res@a{#1}%
- \edef\MT@res@b{#2}%
- \ifx\MT@res@a\MT@res@b
- \expandafter\@firstoftwo
- \else
- \expandafter\@secondoftwo
- \fi
- }
-}
\def\MT@xadd#1#2{%
\ifx#1\relax
\xdef#1{#2}%
@@ -480,7 +358,6 @@
\advance\@tempcnta \@ne
\ifnum\@tempcnta < #2\MT@repeat
}
-\def\MT@do@font{\MT@while@num\z@\@cclvi}
\newcount\MT@count
\def\MT@increment#1{%
^^X \edef#1{\number\numexpr #1 + 1\relax}%
@@ -532,7 +409,7 @@
\@ifl@aded{tex}{wordcount}{%
\MT@warning@nl{Detected the `wordcount' utility.\MessageBreak
Disabling `\MT@MT', since it wouldn't work}%
- \MT@clear@options\MT@restore@catcodes\endinput}\relax
+ \MT@clear@options\endinput}\relax
\let\MT@setup@\@empty
\def\MT@addto@setup{\g@addto@macro\MT@setup@}
\def\MT@with@package@T#1{\@ifpackageloaded{#1}\@firstofone\@gobble}
@@ -543,42 +420,13 @@
\ifMT@inlist@\expandafter\@gobble\fi
}\@gobble
}
-\MT@let@nc{ver@letterspace.sty}\@empty
-\MT@requires@pdftex5{
- \def\MT@ledmac@setup{%
- \ifMT@protrusion
- \MT@ifdefined@c@TF\l@dunhbox@line{%
- \MT@info@nl{Patching ledmac to enable character protrusion}%
- \newdimen\MT@led@kern
- \let\MT@led@unhbox@line\l@dunhbox@line
- \renewcommand*{\l@dunhbox@line}[1]{%
- \ifhbox##1%
- \MT@led@kern=\rightmarginkern##1%
- \kern\leftmarginkern##1%
- \MT@led@unhbox@line##1%
- \kern\MT@led@kern
- \fi
- }%
- }{%
- \MT@warning@nl{%
- Character protrusion in paragraphs with line\MessageBreak
- numbering will only work if you update ledmac}%
- }%
- \fi
- }
-}{
- \def\MT@ledmac@setup{%
- \ifMT@protrusion
- \MT@warning@nl{%
- The pdftex version you are using does not allow\MessageBreak
- character protrusion in paragraphs with line\MessageBreak
- numbering by the `ledmac' package.\MessageBreak
- Upgrade pdftex to version 1.30 or later}%
- \fi
- }
-}
\def\MT@restore@p@h{\chardef\%`\% \chardef\#`\# }
+\newif\ifMT@xunicode
+\newif\ifMT@fontspec
+\MT@with@package@T{xunicode}\MT@xunicodetrue
+\MT@with@package@T{fontspec}\MT@fontspectrue
\def\MT@setupfont@hook{%
+ \ifMT@fontspec\MT@font\fi
\MT@if@false
\MT@with@babel@and@T{spanish} \MT@if@true
\MT@with@babel@and@T{galician}\MT@if@true
@@ -587,8 +435,9 @@
\MT@with@package@T{csquotes}{%
\@ifpackagelater{csquotes}{2005/05/11}\@disablequotes\relax}%
\MT@if@false
- \MT@with@package@T{hyperref}\MT@if@true
- \MT@with@package@T{tex4ht} \MT@if@true
+ \MT@with@package@T{hyperref} \MT@if@true
+ \MT@with@package@T{tex4ht} \MT@if@true
+ \MT@with@package@T{mathastext}\MT@if@true
\ifMT@if@\MT@restore@p@h\fi
}
\MT@addto@setup{%
@@ -600,7 +449,12 @@ So does the `\MT@MT' package. Using both packages at the same\MessageBreak
time will almost certainly lead to undesired results. Have your choice!}%
}%
\MT@with@package@T{ledmac}\MT@ledmac@setup
+ \MT@with@package@T{xunicode}\MT@xunicodetrue
+ \MT@with@package@T{fontspec}\MT@fontspectrue
\let\MT@setupfont@hook\@empty
+ \ifMT@fontspec
+ \g@addto@macro\MT@setupfont@hook{\MT@font}%
+ \fi
\MT@if@false
\MT@with@babel@and@T{spanish} \MT@if@true
\MT@with@babel@and@T{galician}\MT@if@true
@@ -630,6 +484,7 @@ time will almost certainly lead to undesired results. Have your choice!}%
\MT@if@true
}%
\MT@with@package@T{tex4ht}\MT@if@true
+ \MT@with@package@T{mathastext}\MT@if@true
\ifMT@if@\g@addto@macro\MT@setupfont@hook\MT@restore@p@h\fi
\MT@with@package@T{listings}{%
\g@addto@macro\MT@cfg@catcodes{%
@@ -639,6 +494,7 @@ time will almost certainly lead to undesired results. Have your choice!}%
}%
\g@addto@macro\MT@setupfont@hook{%
\catcode`\\\z@
+ \def\space{ }%
\let\lst@ProcessLetter\@empty
}%
}%
@@ -662,66 +518,13 @@ time will almost certainly lead to undesired results. Have your choice!}%
}%
}
\expandafter\ifx\the\font\nullfont\normalfont\fi
-\def\MT@setupfont{\MT@setupfont@hook}
-\MT@requires@pdftex7
- {\g@addto@macro\MT@setupfont\MT@copy@font}\relax
-\g@addto@macro\MT@setupfont{%
- \MT@exp@two@c\MT@split@name\string\MT@font/\@nil
- \MT@exp@one@n\MT@find@file\MT@family
- \ifx\MT@familyalias\@empty \else
- \MT@exp@one@n\MT@find@file\MT@familyalias\fi
-}
-\MT@requires@pdftex6
- {\g@addto@macro\MT@setupfont\MT@tracking}\relax
-\g@addto@macro\MT@setupfont{%
- \MT@check@font
- \ifMT@inlist@
- \else
- \MT@vinfo{Setting up font `\MT@@font'\on@line}%
- \MT@protrusion
- \MT@expansion
-}
-\MT@requires@pdftex6
- {\g@addto@macro\MT@setupfont{\MT@spacing\MT@kerning}}\relax
-\MT@requires@pdftex5
- {\g@addto@macro\MT@setupfont\MT@noligatures}\relax
-\g@addto@macro\MT@setupfont{%
- \MT@register@font
- \fi
-}
-\let\MT@copy@font\relax
-\MT@requires@pdftex7{
-\def\MT@copy@font@{%
- \xdef\MT@font@copy{\csname\MT@@font/\MT@pr@context/\MT@ex@context\endcsname}%
- \expandafter\ifx\MT@font@copy\relax
- \edef\MT@font@orig{\csname\expandafter\string\font@name @orig\endcsname}%
- \expandafter\ifx\MT@font@orig\relax
- \MT@exp@two@c\MT@glet\MT@font@orig\font@name
- \else
- \MT@exp@two@c\let\font@name\MT@font@orig
- \fi
- \global\MT@exp@two@c\pdfcopyfont\MT@font@copy\font@name
- \MT@map@clist@c\MT@active@features{%
- \MT@exp@cs\ifx{MT@\@nameuse{MT@abbr@##1}}\relax\else
- \def\@tempa{##1}%
- \MT@exp@cs\MT@map@tlist@c{MT@##1@doc@contexts}\MT@rem@from@list
- \fi
- }%
- \fi
- \MT@exp@two@c\let\MT@font\MT@font@copy
- \let\font@name\MT@font@copy
- \aftergroup\let\aftergroup\font@name\aftergroup\MT@font@copy
-}
-\def\MT@rem@from@list#1{%
- \MT@exp@cs\ifx{MT@\@tempa @#1font@list}\relax\else
- \expandafter\MT@exp@one@n\expandafter\MT@rem@from@clist\expandafter
- \MT@font \csname MT@\@tempa @#1font@list\endcsname
- \fi
-}
-}\relax
\def\MT@split@name#1/#2/#3/#4/#5/#6\@nil{%
\def\MT@encoding{#1}%
- \def\MT@family {#2}%
+ \ifMT@fontspec
+ \edef\MT@family{\MT@scrubfeature#2()\relax}%
+ \else
+ \def\MT@family{#2}%
+ \fi
\def\MT@series {#3}%
\def\MT@shape {#4}%
\def\MT@size {#5}%
@@ -729,6 +532,13 @@ time will almost certainly lead to undesired results. Have your choice!}%
{\MT@let@cn\MT@familyalias{MT@\MT@family @alias}}%
{\let\MT@familyalias\@empty}%
}
+\def\MT@scrubfeature#1(#2)#3\relax{#1}
+\def\MT@scrubfeatures#1(#2)#3\relax{%
+ #1%
+ \ifx\relax#3\relax\else
+ \MT@scrubfeatures#3\relax
+ \fi
+}
\newif\ifMT@do
\def\MT@maybe@do#1{%
\csname ifMT@\csname MT@abbr@#1\endcsname\endcsname
@@ -811,110 +621,7 @@ time will almost certainly lead to undesired results. Have your choice!}%
\fi
}%
}
-\def\MT@protrusion{\MT@maybe@do{pr}}
-\def\MT@set@pr@codes{%
- \MT@if@list@exists{%
- \MT@get@font@dimen@six{%
- \MT@get@opt
- \MT@reset@pr@codes
- \MT@get@inh@list
- \MT@set@inputenc{c}%
- \MT@load@list\MT@pr@c@name
- \MT@set@listname
- \MT@let@cn\@tempc{MT@pr@c@\MT@pr@c@name}%
- \expandafter\MT@set@codes\@tempc,\relax,}%
- }\MT@reset@pr@codes
-}
-\def\MT@get@font@dimen@six{%
- \ifnum\fontdimen6\MT@font=\z@
- \MT@warning@nl{%
- Font `\MT@@font' does not specify its\MessageBreak
- \@backslashchar fontdimen 6 (width of an `em')! Therefore,\MessageBreak
- \@nameuse{MT@abbr@\MT@feat} will not work with this font}%
- \expandafter\@gobble
- \else
- \edef\MT@dimen@six{\number\fontdimen6\MT@font}%
- \expandafter\@firstofone
- \fi
-}
-\def\MT@set@all@pr#1#2{%
- \let\MT@temp\@empty
- \MT@ifempty{#1}\relax{\g@addto@macro\MT@temp{\lpcode\MT@font\@tempcnta=#1\relax}}%
- \MT@ifempty{#2}\relax{\g@addto@macro\MT@temp{\rpcode\MT@font\@tempcnta=#2\relax}}%
- \MT@do@font\MT@temp
-}
-\def\MT@reset@pr@codes@{\MT@set@all@pr\z@\z@}
-\let\MT@reset@pr@codes\relax
-\def\MT@the@pr@code{\@tempcntb}
-\MT@requires@pdftex6{
- \def\MT@the@pr@code@tr{%
- \numexpr\@tempcntb+\MT@letterspace@/2\relax
- }
-}\relax
-\def\MT@set@codes#1,{%
- \ifx\relax#1\@empty\else
- \MT@split@codes #1==\relax
- \expandafter\MT@set@codes
- \fi
-}
-\def\MT@split@codes#1=#2=#3\relax{%
- \def\@tempa{#1}%
- \ifx\@tempa\@empty \else
- \MT@get@slot
- \ifnum\MT@char > \m@ne
- \MT@get@char@unit
- \csname MT@\MT@feat @split@val\endcsname#2\relax
- \fi
- \fi
-}
-\def\MT@pr@split@val#1,#2\relax{%
- \def\@tempb{#1}%
- \MT@ifempty\@tempb\relax{%
- \MT@scale@to@em
- \lpcode\MT@font\MT@char=\MT@the@pr@code
- }%
- \def\@tempb{#2}%
- \MT@ifempty\@tempb\relax{%
- \MT@scale@to@em
- \rpcode\MT@font\MT@char=\MT@the@pr@code
- }%
- \MT@ifdefined@c@T\MT@pr@inh@name{%
- \MT@ifdefined@n@T{MT@inh@\MT@pr@inh@name @\MT@char @}{%
- \MT@exp@cs\MT@map@tlist@c
- {MT@inh@\MT@pr@inh@name @\MT@char @}%
- \MT@set@pr@heirs
- }%
- }%
-}
-\MT@requires@pdftex3{
- \def\MT@scale@to@em{%
- \@tempcntb=\MT@count\relax
- \MT@scale\@tempcntb \@tempb \MT@dimen@six
- \ifnum\@tempcntb=\z@ \else
- \MT@scale@factor
- \fi
- }
- \def\MT@get@charwd{%
-^^X \MT@count=\fontcharwd\MT@font\MT@char\relax
-^^Q \setbox\z@=\hbox{\MT@font \char\MT@char}%
-^^Q \MT@count=\wd\z@
- \ifnum\MT@count=\z@ \MT@info@missing@char \fi
- }
- \MT@requires@pdftex6{
- \g@addto@macro\MT@get@charwd{%
- \MT@ifdefined@c@T\MT@letterspace@
- {\advance\MT@count -\dimexpr\MT@letterspace@ sp *\dimexpr 1em/1000\relax}%
- }
- }\relax
-}{
- \def\MT@scale@to@em{%
- \MT@count=\@tempb\relax
- \ifnum\MT@count=\z@ \else
- \MT@scale@factor
- \fi
- }
- \def\MT@get@charwd{\MT@count=\MT@dimen@six}
-}
+\newif\ifMT@nofamily
\def\MT@get@font@dimen#1{%
\ifnum\fontdimen#1\MT@font=\z@
\MT@warning@nl{Font `\MT@@font' does not specify its\MessageBreak
@@ -926,7 +633,7 @@ time will almost certainly lead to undesired results. Have your choice!}%
}
\def\MT@info@missing@char{%
\MT@info@nl{Character `\the\MT@toks'
-^^X \iffontchar\MT@font\MT@char
+^^X \iffontchar\MT@font\MT@char@
has a width of 0pt
^^X \else is missing\fi
^^Q \MessageBreak (it's probably missing)
@@ -1054,554 +761,13 @@ time will almost certainly lead to undesired results. Have your choice!}%
\MT@cfg@catcodes
\inputencoding{\@nameuse{\@tempa}}%
}
-\def\MT@set@pr@heirs#1{%
- \lpcode\MT@font#1=\lpcode\MT@font\MT@char
- \rpcode\MT@font#1=\rpcode\MT@font\MT@char
-}
-\def\MT@preset@pr{%
- \expandafter\expandafter\expandafter\MT@preset@pr@
- \csname MT@pr@c@\MT@pr@c@name @preset\endcsname\@nil
-}
-\def\MT@preset@pr@#1,#2\@nil{%
- \ifx\MT@pr@unit@\@empty
- \MT@warn@preset@towidth{pr}%
- \let\MT@preset@aux\MT@preset@aux@factor
- \else
- \def\MT@preset@aux{\MT@preset@aux@space2}%
- \fi
- \MT@ifempty{#1}{\let\@tempa\@empty}{\MT@preset@aux{#1}\@tempa}%
- \MT@ifempty{#2}{\let\@tempb\@empty}{\MT@preset@aux{#2}\@tempb}%
- \MT@set@all@pr\@tempa\@tempb
-}
-\def\MT@preset@aux@factor#1#2{%
- \@tempcntb=#1\relax
- \MT@scale@factor
- \edef#2{\number\@tempcntb}%
-}
-\def\MT@preset@aux@space#1#2#3{%
- \def\@tempb{#2}%
- \MT@get@space@unit#1%
- \MT@scale@to@em
- \edef#3{\number\@tempcntb}%
-}
-\def\MT@warn@preset@towidth#1{%
- \MT@warning@nl{%
- Cannot preset characters relative to their widths\MessageBreak
- for \@nameuse{MT@abbr@#1} list `\@nameuse{MT@#1@c@name}'. Presetting them%
- \MessageBreak relative to 1em instead}%
-}
-\def\MT@expansion{\MT@maybe@do{ex}}
-\def\MT@set@ex@codes@s{%
- \MT@if@list@exists{%
- \MT@get@ex@opt
- \let\MT@get@char@unit\relax
- \MT@reset@ef@codes
- \MT@get@inh@list
- \MT@set@inputenc{c}%
- \MT@load@list\MT@ex@c@name
- \MT@set@listname
- \MT@let@cn\@tempc{MT@ex@c@\MT@ex@c@name}%
- \expandafter\MT@set@codes\@tempc,\relax,%
- \MT@expandfont
- }\relax
-}
\newif\ifMT@nonselected
-\def\MT@set@ex@codes@n{%
- \MT@nonselectedtrue
- \MT@if@list@exists
- \MT@get@ex@opt
- {%
- \let\MT@stretch@ \MT@stretch
- \let\MT@shrink@ \MT@shrink
- \let\MT@step@ \MT@step
- \let\MT@auto@ \MT@auto
- \let\MT@ex@factor@\MT@ex@factor
- }%
- \MT@reset@ef@codes
- \MT@expandfont
- \MT@nonselectedfalse
-}
-\let\MT@set@ex@codes\MT@set@ex@codes@n
-\def\MT@expandfont{%
- \pdffontexpand\MT@font \MT@stretch@ \MT@shrink@ \MT@step@ \MT@auto@\relax
-}
-\def\MT@set@all@ex#1{%
- \MT@do@font{\efcode\MT@font\@tempcnta=#1\relax}%
-}
-\def\MT@reset@ef@codes@{\MT@set@all@ex\MT@ex@factor@}
-\MT@requires@pdftex4{
- \def\MT@reset@ef@codes{%
- \ifnum\MT@ex@factor@=\@m \else
- \MT@reset@ef@codes@
- \fi
- }
-}{
- \let\MT@reset@ef@codes\MT@reset@ef@codes@
-}
-\def\MT@ex@split@val#1\relax{%
- \@tempcntb=#1\relax
- \ifnum\MT@ex@factor@=\@m \else
- \MT@scale\@tempcntb \MT@ex@factor@ \@m
- \fi
- \ifnum\@tempcntb > \MT@ex@max
- \MT@warn@ex@too@large\MT@ex@max
- \else
- \ifnum\@tempcntb < \MT@ex@min
- \MT@warn@ex@too@large\MT@ex@min
- \fi
- \fi
- \efcode\MT@font\MT@char=\@tempcntb
- \MT@ifdefined@c@T\MT@ex@inh@name{%
- \MT@ifdefined@n@T{MT@inh@\MT@ex@inh@name @\MT@char @}{%
- \MT@exp@cs\MT@map@tlist@c{MT@inh@\MT@ex@inh@name @\MT@char @}\MT@set@ex@heirs
- }%
- }%
-}
-\def\MT@warn@ex@too@large#1{%
- \MT@warning@nl{Expansion factor \number\@tempcntb\space too large for
- character\MessageBreak `\the\MT@toks' in \MT@curr@list@name.\MessageBreak
- Setting it to the maximum of \number#1}%
- \@tempcntb=#1\relax
-}
-\def\MT@get@ex@opt{%
- \MT@set@listname
- \MT@ifdefined@n@TF{MT@ex@c@\MT@ex@c@name @factor}{%
- \MT@let@cn\MT@ex@factor@{MT@ex@c@\MT@ex@c@name @factor}%
- \MT@vinfo{... : Multiplying expansion factors by \number\MT@ex@factor@/1000}%
- }{%
- \let\MT@ex@factor@\MT@ex@factor
- }%
- \MT@get@ex@opt@{stretch}{Setting stretch limit to \number\MT@stretch@}%
- \MT@get@ex@opt@{shrink} {Setting shrink limit to \number\MT@shrink@}%
- \MT@get@ex@opt@{step} {Setting expansion step to \number\MT@step@}%
- \def\@tempa{autoexpand}%
- \MT@get@ex@opt@{auto}{\ifx\@tempa\MT@auto@ En\else Dis\fi abling automatic expansion}%
- \MT@ifdefined@n@T{MT@ex@c@\MT@ex@c@name @preset}{%
- \MT@preset@ex
- \let\MT@reset@ef@codes\relax
- }%
-}
-\def\MT@get@ex@opt@#1#2{%
- \MT@ifdefined@n@TF{MT@ex@c@\MT@ex@c@name @#1}{%
- \MT@let@nn{MT@#1@}{MT@ex@c@\MT@ex@c@name @#1}%
- \MT@vinfo{... : #2}%
- }{%
- \MT@let@nn{MT@#1@}{MT@#1}%
- }%
-}
-\def\MT@set@ex@heirs#1{%
- \efcode\MT@font#1=\efcode\MT@font\MT@char
-}
-\def\MT@preset@ex{%
- \@tempcntb=\csname MT@ex@c@\MT@ex@c@name @preset\endcsname\relax
- \MT@scale@factor
- \MT@set@all@ex\@tempcntb
-}
-\MT@requires@pdftex6{
-\def\MT@spacing{\MT@maybe@do{sp}}
-\def\MT@set@sp@codes{%
- \MT@if@list@exists{%
- \MT@get@font@dimen@six{%
- \MT@get@opt
- \MT@reset@sp@codes
- \MT@get@inh@list
- \MT@set@inputenc{c}%
- \MT@load@list\MT@sp@c@name
- \MT@set@listname
- \MT@let@cn\@tempc{MT@sp@c@\MT@sp@c@name}%
- \expandafter\MT@set@codes\@tempc,\relax,}%
- }\MT@reset@sp@codes
-}
-\def\MT@sp@split@val#1,#2,#3\relax{%
- \def\@tempb{#1}%
- \MT@ifempty\@tempb\relax{%
- \MT@get@space@unit2%
- \MT@scale@to@em
- \knbscode\MT@font\MT@char=\@tempcntb
- }%
- \def\@tempb{#2}%
- \MT@ifempty\@tempb\relax{%
- \MT@get@space@unit3%
- \MT@scale@to@em
- \stbscode\MT@font\MT@char=\@tempcntb
- }%
- \def\@tempb{#3}%
- \MT@ifempty\@tempb\relax{%
- \MT@get@space@unit4%
- \MT@scale@to@em
- \shbscode\MT@font\MT@char=\@tempcntb
- }%
- \MT@ifdefined@c@T\MT@sp@inh@name{%
- \MT@ifdefined@n@T{MT@inh@\MT@sp@inh@name @\MT@char @}{%
- \MT@exp@cs\MT@map@tlist@c{MT@inh@\MT@sp@inh@name @\MT@char @}\MT@set@sp@heirs
- }%
- }%
-}
-\def\MT@set@sp@heirs#1{%
- \knbscode\MT@font#1=\knbscode\MT@font\MT@char
- \stbscode\MT@font#1=\stbscode\MT@font\MT@char
- \shbscode\MT@font#1=\shbscode\MT@font\MT@char
-}
-\def\MT@set@all@sp#1#2#3{%
- \let\MT@temp\@empty
- \MT@ifempty{#1}\relax{\g@addto@macro\MT@temp{\knbscode\MT@font\@tempcnta=#1\relax}}%
- \MT@ifempty{#2}\relax{\g@addto@macro\MT@temp{\stbscode\MT@font\@tempcnta=#2\relax}}%
- \MT@ifempty{#3}\relax{\g@addto@macro\MT@temp{\shbscode\MT@font\@tempcnta=#3\relax}}%
- \MT@do@font\MT@temp
-}
-\def\MT@reset@sp@codes@{\MT@set@all@sp\z@\z@\z@}
-\let\MT@reset@sp@codes\relax
-\def\MT@preset@sp{%
- \expandafter\expandafter\expandafter\MT@preset@sp@
- \csname MT@sp@c@\MT@sp@c@name @preset\endcsname\@nil
-}
-\def\MT@preset@sp@#1,#2,#3\@nil{%
- \ifx\MT@sp@unit@\@empty
- \MT@warn@preset@towidth{sp}%
- \MT@ifempty{#1}{\let\@tempa\@empty}{\MT@preset@aux@factor{#1}\@tempa}%
- \MT@ifempty{#2}{\let\@tempc\@empty}{\MT@preset@aux@factor{#2}\@tempc}%
- \MT@ifempty{#3}{\let\@tempb\@empty}{\MT@preset@aux@factor{#3}\@tempb}%
- \else
- \MT@ifempty{#1}{\let\@tempa\@empty}{\MT@preset@aux@space2{#1}\@tempa}%
- \MT@ifempty{#2}{\let\@tempc\@empty}{\MT@preset@aux@space3{#2}\@tempc}%
- \MT@ifempty{#3}{\let\@tempb\@empty}{\MT@preset@aux@space4{#3}\@tempb}%
- \fi
- \MT@set@all@sp\@tempa\@tempc\@tempb
-}
-}\relax
-\MT@requires@pdftex6{
-\def\MT@kerning{\MT@maybe@do{kn}}
-\def\MT@set@kn@codes{%
- \MT@if@list@exists{%
- \MT@get@font@dimen@six{%
- \MT@get@opt
- \MT@reset@kn@codes
- \MT@get@inh@list
- \MT@set@inputenc{c}%
- \MT@load@list\MT@kn@c@name
- \MT@set@listname
- \MT@let@cn\@tempc{MT@kn@c@\MT@kn@c@name}%
- \expandafter\MT@set@codes\@tempc,\relax,}%
- }\MT@reset@kn@codes
-}
-\def\MT@kn@split@val#1,#2\relax{%
- \def\@tempb{#1}%
- \MT@ifempty\@tempb\relax{%
- \MT@get@space@unit2%
- \MT@scale@to@em
- \knbccode\MT@font\MT@char=\@tempcntb
- }%
- \def\@tempb{#2}%
- \MT@ifempty\@tempb\relax{%
- \MT@get@space@unit2%
- \MT@scale@to@em
- \knaccode\MT@font\MT@char=\@tempcntb
- }%
- \MT@ifdefined@c@T\MT@kn@inh@name{%
- \MT@ifdefined@n@T{MT@inh@\MT@kn@inh@name @\MT@char @}{%
- \MT@exp@cs\MT@map@tlist@c{MT@inh@\MT@kn@inh@name @\MT@char @}\MT@set@kn@heirs
- }%
- }%
-}
-\def\MT@set@kn@heirs#1{%
- \knbccode\MT@font#1=\knbccode\MT@font\MT@char
- \knaccode\MT@font#1=\knaccode\MT@font\MT@char
-}
-\def\MT@set@all@kn#1#2{%
- \let\MT@temp\@empty
- \MT@ifempty{#1}\relax{\g@addto@macro\MT@temp{\knbccode\MT@font\@tempcnta=#1\relax}}%
- \MT@ifempty{#2}\relax{\g@addto@macro\MT@temp{\knaccode\MT@font\@tempcnta=#2\relax}}%
- \MT@do@font\MT@temp
-}
-\def\MT@reset@kn@codes@{\MT@set@all@kn\z@\z@}
-\let\MT@reset@kn@codes\relax
-\def\MT@preset@kn{%
- \expandafter\expandafter\expandafter\MT@preset@kn@
- \csname MT@kn@c@\MT@kn@c@name @preset\endcsname\@nil
-}
-\def\MT@preset@kn@#1,#2\@nil{%
- \ifx\MT@kn@unit@\@empty
- \MT@warn@preset@towidth{kn}%
- \let\MT@preset@aux\MT@preset@aux@factor
- \else
- \def\MT@preset@aux{\MT@preset@aux@space2}%
- \fi
- \MT@ifempty{#1}{\let\@tempa\@empty}{\MT@preset@aux{#1}\@tempa}%
- \MT@ifempty{#2}{\let\@tempb\@empty}{\MT@preset@aux{#2}\@tempb}%
- \MT@set@all@kn\@tempa\@tempb
-}
-}\relax
-\MT@requires@pdftex6{
-\let\MT@tr@font@list\@empty
-\def\MT@tracking@{%
- \MT@exp@one@n\MT@in@clist\MT@font\MT@tr@font@list
- \ifMT@inlist@\else
- \MT@maybe@do{tr}%
- \ifMT@do\else
- \xdef\MT@tr@font@list{\MT@tr@font@list\MT@font,}%
- \fi
- \fi
-}
-\let\MT@tracking
- \MT@tracking@
-\def\MT@set@tr@codes{%
- \MT@vinfo{Tracking font `\MT@@font'\on@line}%
- \MT@get@font@dimen@six{%
- \MT@if@list@exists
- \MT@get@tr@opt
- \relax
- \MT@ifdefined@c@TF\MT@letterspace@\relax{\let\MT@letterspace@\MT@letterspace}%
- \ifnum\MT@letterspace@=\z@
- \MT@set@tr@zero
- \else
- \MT@vinfo{... Tracking by \number\MT@letterspace@}%
- \MT@warn@tracking@DVI
- \xdef\MT@lsfont{\csname\expandafter\string\font@name
- /\number\MT@letterspace@ ls\endcsname}%
- \expandafter\ifx\MT@lsfont\relax
- \MT@get@ls@basefont
- \global\expandafter\letterspacefont\MT@lsfont\font@name\MT@letterspace@
- \MT@ifdefined@c@TF\MT@tr@ispace
- {\let\@tempa\MT@tr@ispace}%
- {\edef\@tempa{\MT@letterspace@*,,}}%
- \MT@ifdefined@c@TF\MT@tr@ospace
- {\edef\@tempa{\@tempa,\MT@tr@ospace}}%
- {\edef\@tempa{\@tempa,,,}}%
- \expandafter\MT@tr@set@space\@tempa,%
- \MT@ifdefined@c@TF\MT@tr@okern{\let\@tempa\MT@tr@okern}{\def\@tempa{*,*}}%
- \expandafter\MT@tr@set@okern\@tempa,%
- \MT@ifdefined@c@T\MT@tr@ligatures\MT@tr@noligatures
- \MT@do@font{\lpcode\MT@lsfont\@tempcnta=\numexpr\MT@letterspace@/2\relax
- \rpcode\MT@lsfont\@tempcnta=\numexpr\MT@letterspace@/2\relax}%
- \let\MT@the@pr@code\MT@the@pr@code@tr
- \fi
- \aftergroup\MT@set@lsfont
- \let\MT@font\MT@lsfont
- \xdef\MT@set@curr@ls{\def\noexpand\MT@curr@ls{\MT@letterspace@}}%
- \aftergroup\MT@set@curr@ls
- \MT@outer@space=\csname MT@outer@space\expandafter\string\font@name\endcsname\relax
- \xdef\MT@set@curr@os{\MT@outer@space=\the\MT@outer@space\relax}%
- \MT@tr@outer@l
- \ifx\MT@ls@adjust\@empty
- \MT@outer@kern=-\dimexpr\MT@letterspace@ sp * \fontdimen6\font@name/2000\relax
- \MT@ls@outer@k
- \else
- \MT@outer@kern=\expandafter\expandafter\expandafter\@firstoftwo
- \csname MT@outer@kern\expandafter\string\font@name\endcsname\relax
- \ifdim\MT@outer@kern=\z@\else \MT@ls@outer@k \fi
- \MT@outer@kern=\expandafter\expandafter\expandafter\@secondoftwo
- \csname MT@outer@kern\expandafter\string\font@name\endcsname\relax
- \fi
- \xdef\MT@set@curr@ok{\MT@outer@kern=\the\MT@outer@kern\relax}%
- \aftergroup\aftergroup\aftergroup\MT@ls@aftergroup
- \fi
- }%
-}
\MT@addto@setup{%
\@ifpackageloaded{tikz}
{\def\MT@ls@aftergroup{%
\ifnum\tikz@expandcount>\z@ \else
\MT@set@curr@os\MT@set@curr@ok\expandafter\MT@tr@outer@r\fi}}
{\def\MT@ls@aftergroup{\MT@set@curr@os\MT@set@curr@ok\MT@tr@outer@r}}}
-\def\MT@get@tr@opt{%
- \MT@set@listname
- \MT@ifdefined@n@T{MT@tr@c@\MT@tr@c@name}{%
- \MT@let@cn\MT@letterspace{MT@tr@c@\MT@tr@c@name}%
- \MT@ifdefined@n@T{MT@tr@c@\MT@tr@c@name @unit}{%
- \MT@let@cn\MT@tr@unit@{MT@tr@c@\MT@tr@c@name @unit}%
- \ifdim\MT@tr@unit@=1em
- \let\MT@tr@unit@\@undefined
- \else
- \MT@let@cn\@tempb{MT@tr@c@\MT@tr@c@name}%
- \MT@get@unit\MT@tr@unit@
- \let\MT@tr@factor@\@m
- \MT@scale@to@em
- \edef\MT@letterspace{\number\@tempcntb}%
- \fi
- }%
- }%
- \MT@get@tr@opt@{spacing} {ispace}%
- \MT@get@tr@opt@{outerspacing}{ospace}%
- \MT@get@tr@opt@{outerkerning}{okern}%
- \MT@get@tr@opt@{noligatures} {ligatures}%
-}
-\def\MT@get@tr@opt@#1#2{%
- \MT@ifdefined@n@T{MT@tr@c@\MT@tr@c@name @#1}%
- {\MT@let@nn{MT@tr@#2}{MT@tr@c@\MT@tr@c@name @#1}}%
-}
-\def\MT@set@lsfont{\MT@exp@two@c\let\font@name\MT@lsfont}
-\DeclareRobustCommand\lsstyle{%
- \not@math@alphabet\lsstyle\textls
- \def\MT@feat{tr}%
- \let\MT@tracking\MT@set@tr@codes
- \selectfont
-}
-\DeclareRobustCommand\lslig[1]{%
- {\MT@ifdefined@c@TF\MT@curr@ls{%
- \escapechar\m@ne
- \MT@get@ls@basefont
- \MT@outer@kern=\dimexpr\MT@curr@ls sp * \fontdimen6\font@name/2000\relax
- \kern\MT@outer@kern
- \font@name #1%
- \kern\MT@outer@kern%
- }{#1}}%
-}
-\def\MT@get@ls@basefont{%
- \xdef\MT@ls@basefont{\csname\expandafter\string\font@name @base\endcsname}%
- \expandafter\ifx\MT@ls@basefont\relax
- \MT@exp@two@c\MT@glet\MT@ls@basefont\font@name
- \else
- \MT@exp@two@c\let\font@name\MT@ls@basefont
- \fi
-}
-\def\MT@set@lsbasefont{\MT@exp@two@c\let\font@name\MT@ls@basefont}
-\def\MT@set@tr@zero{%
- \xdef\MT@ls@basefont{\csname\expandafter\string\font@name @base\endcsname}%
- \expandafter\ifx\MT@ls@basefont\relax \else
- \aftergroup\MT@set@lsbasefont
- \fi
-}
-\MT@requires@pdftex7{
- \def\MT@tr@noligatures{%
- \ifx\MT@tr@ligatures\@empty
- \MT@noligatures@\MT@lsfont\@undefined
- \else
- \MT@noligatures@\MT@lsfont\MT@tr@ligatures
- \fi
- }
-}{
- \def\MT@tr@noligatures{%
- \MT@warning@nl{%
- Disabling selected ligatures is only possible since\MessageBreak
- pdftex 1.40.4. Disabling all ligatures instead}%
- \MT@glet\MT@tr@noligatures\relax
- }
-}
-\newskip\MT@outer@space
-\def\MT@tr@set@space#1,#2,#3,#4,#5,#6,{%
- \let\MT@temp\@empty
- \MT@tr@set@space@{#1}{#4}{2}\@empty
- \MT@tr@set@space@{#2}{#5}{3}\@plus
- \MT@tr@set@space@{#3}{#6}{4}\@minus
- \MT@glet@nc{MT@outer@space\expandafter\string\font@name}\MT@temp
-}
-\def\MT@tr@set@space@#1#2#3#4{%
- \MT@ifempty{#2}{%
- \MT@ifempty{#1}{%
- \edef\MT@temp{\MT@temp#4\the\fontdimen#3\MT@lsfont}%
- }{%
- \MT@tr@set@space@@{#1}{#3}{1000}%
- \edef\MT@temp{\MT@temp#4\the\@tempdima}%
- \fontdimen#3\MT@lsfont=\@tempdima
- }%
- }{%
- \MT@tr@set@space@@{#2}{#3}{2000}%
- \edef\MT@temp{\MT@temp#4\the\@tempdima}%
- \MT@ifempty{#1}\relax{%
- \MT@tr@set@space@@{#1}{#3}{1000}%
- \fontdimen#3\MT@lsfont=\@tempdima
- }%
- }%
-}
-\def\MT@tr@set@space@@#1#2#3{%
- \MT@test@ast#1*\@nil{%
- \MT@ifdefined@c@TF\MT@tr@unit@
- {\edef\@tempb{#1}\MT@scale@to@em}
- {\@tempcntb=#1\relax}%
- \@tempdima=\dimexpr \dimexpr\@tempcntb sp*\MT@dimen@six/1000\relax
- -\fontdimen#2\MT@lsfont\relax
- \ifnum#2=\tw@
- \advance\@tempdima -\dimexpr\MT@letterspace@ sp*\MT@dimen@six/#3\relax
- \fi
- \@tempdima=\dimexpr \fontdimen#2\MT@lsfont+\@tempdima\relax
- }{%
- \MT@ifempty\@tempa{\let\@tempa\MT@letterspace@}\relax
- \@tempdima=\dimexpr \numexpr1000+\@tempa sp *\fontdimen#2\MT@lsfont/1000\relax
- }%
-}
-\def\MT@tr@outer@l{%
- \ifhmode
- \ifdim\lastskip>5sp
- \edef\x{\the\lastskip minus 0pt}%
- \setbox\z@\hbox{\MT@outer@space=\x}%
- \ifdim\wd\z@>\z@
- \unskip \hskip\MT@outer@space\relax
- \let\MT@ls@outer@k\relax
- \else
- \ifdim\lastskip=%
- \ifnum\spacefactor<2000
- \spaceskip
- \else
- \ifdim\xspaceskip=\z@
- \dimexpr\spaceskip+\fontdimen7\font@name\relax
- \else
- \xspaceskip
- \fi
- \fi
- \unskip \hskip\MT@outer@space\relax
- \let\MT@ls@outer@k\relax
- \fi
- \fi
- \fi
- \fi
-}
-\def\MT@tr@outer@r{%
- \futurelet\MT@tr@outer@next\MT@tr@outer@r@
-}
-\def\MT@tr@outer@r@{%
- \def\MT@temp*{}%
- \ifmmode \else
- \ifnum\currentgrouptype=10 \else
- \def\MT@temp*##1{\ifhmode\hskip\MT@outer@space
- \fi}%
- \ifcat\egroup\noexpand\MT@tr@outer@next
- \ifhmode\unkern\fi\egroup
- \MT@set@curr@ok \MT@set@curr@os
- \def\MT@temp*{\afterassignment\MT@tr@outer@r\let\MT@temp=}%
- \else
- \ifx\maybe@ic\MT@tr@outer@next
- \MT@set@curr@ok \MT@set@curr@os
- \def\MT@temp*{\afterassignment\MT@tr@outer@icr\let\MT@temp=}%
- \else
- \ifx\check@icr\MT@tr@outer@next
- \def\MT@temp*{\aftergroup\MT@tr@outer@r\check@icr\let\MT@temp=}%
- \else
- \ifx\@sptoken\MT@tr@outer@next
- \def\MT@temp* {\ifhmode\hskip\MT@outer@space
- \fi}%
- \else
- \ifx~\MT@tr@outer@next
- \def\MT@temp*~{\nobreak\hskip\MT@outer@space
- }%
- \else
- \ifx\ \MT@tr@outer@next \else
- \ifx\space\MT@tr@outer@next \else
- \ifx\@xobeysp\MT@tr@outer@next \else
- \def\MT@temp*{\ifdim\MT@outer@kern=\z@\else\MT@ls@outer@k
- \fi}%
- \let\MT@tr@outer@next\relax
- \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
- \MT@temp*%
-}
-\def\MT@tr@outer@icr{\afterassignment\MT@tr@outer@icr@\MT@tr@outer@r}
-\def\MT@tr@outer@icr@{%
- \let\@let@token= \MT@tr@outer@next
- \maybe@ic@
-}
-}{
- \DeclareRobustCommand\lsstyle{%
- \MT@error{Letterspacing only works with pdftex version 1.40\MessageBreak
- or newer}{Upgrade pdftex, or use the `soul' package instead.}%
- \MT@glet\lsstyle\relax
- }
-}
-\MT@requires@luatex{
- \DeclareRobustCommand\lsstyle{%
- \MT@error{Letterspacing currently doesn't work with luatex}
- {Run pdftex, or use the `soul' package instead.}%
- \MT@glet\lsstyle\relax
- }
-}\relax
\DeclareRobustCommand\textls{%
\@ifstar{\let\MT@ls@adjust@\MT@ls@adjust@empty\MT@textls}%
{\let\MT@ls@adjust@\MT@ls@adjust@relax\MT@textls}%
@@ -1623,6 +789,7 @@ time will almost certainly lead to undesired results. Have your choice!}%
\MT@ifempty{#1}%
{\let\MT@letterspace@\@undefined}%
{\KV@@sp@def\MT@letterspace@{#1}%
+ \edef\MT@letterspace@{\number\MT@letterspace@}%
\MT@ls@too@large\MT@letterspace@}%
\MT@ls@adjust@
}
@@ -1638,63 +805,6 @@ time will almost certainly lead to undesired results. Have your choice!}%
\fi
}
\newdimen\MT@outer@kern
-\def\MT@tr@set@okern#1,#2,{%
- \let\MT@temp\@empty
- \MT@ifempty{#1}{\MT@tr@set@okern@{*}}{\MT@tr@set@okern@{#1}}%
- \MT@ifempty{#2}{\MT@tr@set@okern@{*}}{\MT@tr@set@okern@{#2}}%
- \MT@glet@nc{MT@outer@kern\expandafter\string\font@name}\MT@temp
-}
-\def\MT@tr@set@okern@#1{%
- \MT@test@ast#1*\@nil{%
- \MT@ifdefined@c@TF\MT@tr@unit@
- {\edef\@tempb{#1}\MT@scale@to@em}
- {\@tempcntb=#1\relax}%
- \@tempdima=\dimexpr \@tempcntb sp * \MT@dimen@six/1000\relax
- }{%
- \MT@ifempty\@tempa{\let\@tempa\@m}\relax
- \@tempdima=\dimexpr \numexpr\@tempa*\MT@letterspace@/1000\relax sp
- * \fontdimen6\MT@lsfont/2000\relax
- }%
- \advance\@tempdima -\dimexpr \MT@letterspace@ sp
- * \fontdimen6\MT@lsfont/2000\relax
- \edef\MT@temp{\MT@temp{\the\@tempdima}}%
-}
-\def\MT@ls@outer@k{\ifhmode\kern\MT@outer@kern\relax\fi}
-\MT@requires@pdftex5{
-\def\MT@noligatures{%
- \MT@dotrue
- \let\@tempa\MT@nl@setname
- \MT@map@clist@n{font,encoding,family,series,shape,size}{%
- \MT@ifdefined@n@TF{MT@checklist@##1}%
- {\csname MT@checklist@##1\endcsname}%
- {\MT@checklist@{##1}}%
- {nl}%
- }%
- \ifMT@do
- \MT@noligatures@\MT@font\MT@nl@ligatures
- \fi
-}
-\def\MT@noligatures@#1#2{%
- \MT@ifdefined@c@TF#2{%
- \MT@ifdefined@c@TF\tagcode{%
- \let\MT@warn@maybe@inputenc\@empty
- \def\MT@curr@list@name{\@backslashchar DisableLigatures}%
- \MT@map@clist@c#2{%
- \KV@@sp@def\@tempa{##1}\MT@get@slot
- \ifnum\MT@char>\m@ne \tagcode#1\MT@char=\m@ne \fi}%
- \MT@vinfo{... Disabling ligatures for characters: #2}%
- }{%
- \pdfnoligatures#1%
- \MT@warning{Cannot disable selected ligatures (pdftex doesn't\MessageBreak
- know \@backslashchar tagcode). Disabling all ligatures of\MessageBreak
- the font instead}%
- }%
- }{%
- \pdfnoligatures#1%
- \MT@vinfo{... Disabling ligatures}%
- }%
-}
-}\relax
\def\MT@load@list#1{%
\edef\@tempa{#1}%
\MT@let@cn\@tempb{MT@\MT@feat @c@\@tempa @load}%
@@ -1799,11 +909,12 @@ time will almost certainly lead to undesired results. Have your choice!}%
{0111}{0110}{0101}{0100}{0011}{0010}{0001}{0000}%
}
\def\MT@next@listname#1#2#3#4{%
+ \ifnum#1=\z@\MT@nofamilytrue\fi
\edef\@tempa{\MT@encoding
- /\ifnum#1=\@ne \MT@family\fi
- /\ifnum#2=\@ne \MT@series\fi
- /\ifnum#3=\@ne \MT@shape\fi
- /\ifnum#4=\@ne *\fi
+/\ifnum#1=\@ne \MT@family \fi
+/\ifnum#2=\@ne \MT@series \fi
+/\ifnum#3=\@ne \MT@shape \fi
+/\ifnum#4=\@ne *\fi
\MT@context}%
\MT@ifdefined@n@TF{MT@\@tempb @\@tempa}{%
\MT@next@listname@#4%
@@ -1895,14 +1006,7 @@ time will almost certainly lead to undesired results. Have your choice!}%
\fi
\fi
\let\MT@char\MT@char@
- \ifnum\MT@char < \z@
- \MT@warn@unknown
- \else
- \ifMT@norest \else
- \MT@warn@rest
- \let\MT@char\m@ne
- \fi
- \fi
+ \MT@get@slot@
\escapechar\m@ne
}
\newif\ifMT@norest
@@ -1917,7 +1021,7 @@ time will almost certainly lead to undesired results. Have your choice!}%
\ifcat !\noexpand#1\relax
\edef\MT@char@{\number`#1}%
\ifx\\#2\\%
- \ifnum\MT@char@ > 127 \MT@warn@ascii \fi
+ \ifnum\MT@char@ > \MT@max@char \MT@warn@ascii \fi
\else
\MT@norestfalse
\expandafter\MT@is@number#1#2\relax\relax
@@ -1940,7 +1044,7 @@ time will almost certainly lead to undesired results. Have your choice!}%
}\MT@norestfalse
\fi
\fi
- \ifnum\MT@char@ > \@cclv
+ \ifnum\MT@char@ > \MT@max@slot
\MT@warn@number@too@large{\noexpand#1\noexpand#2\noexpand#3}%
\let\MT@char@\m@ne
\fi
@@ -1976,18 +1080,35 @@ time will almost certainly lead to undesired results. Have your choice!}%
}
\begingroup
\catcode`\/=\z@
- /MT@map@tlist@n{/\CHAR}/@makeother
+ /MT@map@tlist@n{/\CHARLEX}/@makeother
/lowercase{%
/def/x{/endgroup
/def/MT@charstring{\CHAR"}%
/def/MT@is@char##1\CHAR"##2##3##4/relax{%
+ /ifx/relax##4/relax
+ /ifMT@xunicode
+ /expandafter/MT@is@charx/MT@strip@prefix##1>/relax\CHAR "%
+ /relax/relax/relax/relax/relax
+ /fi
+ /else
+ /ifx/relax##1/relax
+ /if##3\/relax
+ /edef/MT@char@{/number"##2}%
+ /MT@ifstreq/MT@charstring{##3##4}/relax/MT@norestfalse
+ /else
+ /edef/MT@char@{/number"##2##3}%
+ /MT@ifstreq/MT@charstring{##4}/relax/MT@norestfalse
+ /fi
+ /fi
+ /fi
+ }%
+ /def/MT@charxstring{\CHAR "}%
+ /def/MT@strip@prefix##1>##2/relax{##2}%
+ /def/MT@is@charx##1\CHAR "##2##3##4##5##6/relax{%
/ifx/relax##1/relax
- /if##3\/relax
- /edef/MT@char@{/number"##2}%
- /MT@ifstreq/MT@charstring{##3##4}/relax/MT@norestfalse
- /else
- /edef/MT@char@{/number"##2##3}%
- /MT@ifstreq/MT@charstring{##4}/relax/MT@norestfalse
+ /ifx/relax##6/relax/else
+ /edef/MT@char@{/number"##2##3##4##5}%
+ /MT@ifstreq{\RELAX >\CHAR "}{##6}/relax/MT@norestfalse
/fi
/fi
}%
@@ -2000,6 +1121,13 @@ time will almost certainly lead to undesired results. Have your choice!}%
\string\csname\MT@encoding\endcsname
\MT@detokenize@n{#1}-\MT@detokenize@n{#2}\endcsname}%
\expandafter\expandafter\expandafter\MT@is@letter\MT@char\relax\relax
+ \ifnum\MT@char@ < \z@
+ \ifMT@xunicode
+ \edef\MT@char{\MT@exp@two@c\MT@strip@prefix\meaning\MT@char>\relax}%
+ \expandafter\MT@exp@two@c\expandafter\MT@is@charx\expandafter
+ \MT@char\MT@charxstring\relax\relax\relax\relax\relax
+ \fi
+ \fi
\fi
}
\def\MT@set@listname{%
@@ -2103,8 +1231,9 @@ time will almost certainly lead to undesired results. Have your choice!}%
}%
}
\def\MT@check@font{\MT@exp@one@n\MT@in@clist\MT@font\MT@font@list}
-\def\MT@register@subst@font{\xdef\MT@font@list{\MT@font@list\font@name,}}
\def\MT@register@font{\xdef\MT@font@list{\MT@font@list\MT@font,}}
+\def\MT@register@subst@font{\MT@exp@one@n\MT@in@clist\font@name\MT@font@list
+ \ifMT@inlist@\else\xdef\MT@font@list{\MT@font@list\font@name,}\fi}
\let\MT@active@features\@empty
\def\MT@check@font@cx{%
\MT@if@true
@@ -2121,9 +1250,13 @@ time will almost certainly lead to undesired results. Have your choice!}%
}
\def\MT@register@subst@font@cx{%
\MT@map@clist@c\MT@active@features{%
- \MT@exp@cs\MT@xadd
- {MT@##1@\csname MT@##1@context\endcsname font@list}%
- {\font@name,}%
+ \expandafter\MT@exp@one@n\expandafter\MT@in@clist\expandafter\font@name
+ \csname MT@##1@\csname MT@##1@context\endcsname font@list\endcsname
+ \ifMT@inlist@ \else
+ \MT@exp@cs\MT@xadd
+ {MT@##1@\csname MT@##1@context\endcsname font@list}%
+ {\font@name,}%
+ \fi
}%
}
\def\MT@register@font@cx{%
@@ -2148,6 +1281,7 @@ time will almost certainly lead to undesired results. Have your choice!}%
\DeclareRobustCommand\microtypecontext[1]{%
\MT@setup@contexts
\let\MT@reset@context\relax
+ \let\glb@currsize\@empty
\setkeys{MTC}{#1}%
\selectfont
\MT@reset@context
@@ -2256,6 +1390,9 @@ time will almost certainly lead to undesired results. Have your choice!}%
\let\MT@font@sets\@empty
\def\MT@fix@font@set#1{%
\xdef#1{#1}%
+ \ifMT@fontspec
+ \xdef#1{\expandafter\MT@scrubfeatures#1()\relax}%
+ \fi
\global\@onelevel@sanitize#1%
}
\def\MT@define@set@key@size#1{%
@@ -2459,8 +1596,8 @@ time will almost certainly lead to undesired results. Have your choice!}%
}%
}
\renewcommand*\DeclareMicrotypeAlias[2]{%
- \KV@@sp@def\@tempa{#1}%
- \KV@@sp@def\@tempb{#2}%
+ \edef\@tempa{\zap@space#1 \@empty}%
+ \edef\@tempb{\zap@space#2 \@empty}%
\@onelevel@sanitize\@tempb
\MT@ifdefined@n@T{MT@\@tempa @alias}{%
\MT@warning{Alias font family `\@tempb' will override
@@ -2472,7 +1609,7 @@ time will almost certainly lead to undesired results. Have your choice!}%
}%
}
\def\LoadMicrotypeFile#1{%
- \KV@@sp@def\@tempa{#1}%
+ \edef\@tempa{\zap@space#1 \@empty}%
\@onelevel@sanitize\@tempa
\MT@exp@one@n\MT@in@clist\@tempa\MT@file@list
\ifMT@inlist@
@@ -2490,110 +1627,12 @@ time will almost certainly lead to undesired results. Have your choice!}%
\MT@end@catcodes
\fi
}
-\MT@requires@pdftex5{
-\def\DisableLigatures{%
- \MT@begin@catcodes
- \MT@DisableLigatures
-}
-\newcommand*\MT@DisableLigatures[2][]{%
- \MT@ifempty{#1}\relax{\gdef\MT@nl@ligatures{#1}}%
- \xdef\MT@active@features{\MT@active@features,nl}%
- \global\MT@noligaturestrue
- \MT@declare@sets{nl}{no ligatures}{#2}%
- \gdef\MT@nl@setname{no ligatures}%
- \MT@end@catcodes
-}
-}{
-\renewcommand*\DisableLigatures[2][]{%
- \MT@error{Disabling ligatures of a font is only possible\MessageBreak
- with pdftex version 1.30 or newer.\MessageBreak
- Ignoring \string\DisableLigatures}{Upgrade pdftex.}%
-}
-}
\def\DeclareMicrotypeBabelHook#1#2{%
\MT@map@clist@n{#1}{%
\KV@@sp@def\@tempa{##1}%
\MT@gdef@n{MT@babel@\@tempa}{#2}%
}%
}
-\def\SetProtrusion{%
- \MT@begin@catcodes
- \MT@SetProtrusion
-}
-\newcommand*\MT@SetProtrusion[3][]{%
- \let\MT@extra@context\@empty
- \MT@set@named@keys{MT@pr@c}{#1}%
- \def\MT@permutelist{pr@c}%
- \setkeys{MT@cfg}{#2}%
- \MT@permute
- \MT@gdef@n{MT@pr@c@\MT@pr@c@name}{#3}%
- \MT@end@catcodes
-}
-\def\SetExpansion{%
- \MT@begin@catcodes
- \MT@SetExpansion
-}
-\newcommand*\MT@SetExpansion[3][]{%
- \let\MT@extra@context\@empty
- \MT@set@named@keys{MT@ex@c}{#1}%
- \MT@ifdefined@n@T{MT@ex@c@\MT@ex@c@name @factor}{%
- \ifnum\csname MT@ex@c@\MT@ex@c@name @factor\endcsname > \@m
- \MT@warning@nl{Expansion factor \number\@nameuse{MT@ex@c@\MT@ex@c@name @factor}
- too large in list\MessageBreak `\MT@ex@c@name'. Setting it to the
- maximum of 1000}%
- \MT@glet@nc{MT@ex@c@\MT@ex@c@name @factor}\@m
- \fi
- }%
- \def\MT@permutelist{ex@c}%
- \setkeys{MT@cfg}{#2}%
- \MT@permute
- \MT@gdef@n{MT@ex@c@\MT@ex@c@name}{#3}%
- \MT@end@catcodes
-}
-\def\SetTracking{%
- \MT@begin@catcodes
- \MT@SetTracking
-}
-\newcommand*\MT@SetTracking[3][]{%
- \let\MT@extra@context\@empty
- \MT@set@named@keys{MT@tr@c}{#1}%
- \def\MT@permutelist{tr@c}%
- \setkeys{MT@cfg}{#2}%
- \MT@permute
- \KV@@sp@def\@tempa{#3}%
- \MT@ifempty\@tempa\relax{%
- \MT@ifint\@tempa
- {\MT@xdef@n{MT@tr@c@\MT@tr@c@name}{\@tempa}}%
- {\MT@warning{Value `\@tempa' is not a number in\MessageBreak
- tracking set `\MT@curr@set@name'}}}%
- \MT@end@catcodes
-}
-\def\SetExtraSpacing{%
- \MT@begin@catcodes
- \MT@SetExtraSpacing
-}
-\newcommand*\MT@SetExtraSpacing[3][]{%
- \let\MT@extra@context\@empty
- \MT@set@named@keys{MT@sp@c}{#1}%
- \def\MT@permutelist{sp@c}%
- \setkeys{MT@cfg}{#2}%
- \MT@permute
- \MT@gdef@n{MT@sp@c@\MT@sp@c@name}{#3}%
- \MT@end@catcodes
-}
-\def\SetExtraKerning{%
- \MT@begin@catcodes
- \MT@SetExtraKerning
-}
-\newcommand*\MT@SetExtraKerning[3][]{%
- \let\MT@extra@context\@empty
- \MT@set@named@keys{MT@kn@c}{#1}%
- \def\MT@permutelist{kn@c}%
- \setkeys{MT@cfg}{#2}%
- \MT@permute
- \MT@gdef@n{MT@kn@c@\MT@kn@c@name}{#3}%
- \MT@end@catcodes
-}
\def\MT@set@named@keys#1#2{%
\def\x##1name=##2,##3\@nil{%
\setkeys{#1}{name=##2}%
@@ -2614,6 +1653,20 @@ time will almost certainly lead to undesired results. Have your choice!}%
}%
}%
}
+\def\MT@define@code@key@family#1{%
+ \define@key{MT@#1}{family}[]{%
+ \@tempcnta=\@ne
+ \MT@map@clist@n{##1}{%
+ \KV@@sp@def\MT@val{####1}%
+ \MT@get@highlevel{family}%
+ \ifMT@fontspec
+ \edef\x{\edef\noexpand\MT@val{\noexpand\MT@scrubfeature\MT@val()\relax}}\x
+ \fi
+ \MT@edef@n{MT@tempfamily\the\@tempcnta}{\MT@val}%
+ \advance\@tempcnta \@ne
+ }%
+ }%
+}
\def\MT@define@code@key@size#1{%
\define@key{MT@#1}{size}[]{%
\MT@map@clist@n{##1}{%
@@ -2632,6 +1685,9 @@ time will almost certainly lead to undesired results. Have your choice!}%
\KV@@sp@def\MT@val{####1}%
\MT@ifstreq\MT@val*{\def\MT@val{*/*/*/*/*}}\relax
\expandafter\MT@get@font@and@size\MT@val/////\@nil
+ \ifMT@fontspec
+ \edef\@tempb{\expandafter\MT@scrubfeatures\@tempb()\relax}%
+ \fi
\MT@xdef@n{MT@\MT@permutelist @\@tempb\MT@extra@context}%
{\csname MT@\MT@permutelist @name\endcsname}%
\MT@exp@cs\MT@xaddb
@@ -2644,7 +1700,7 @@ time will almost certainly lead to undesired results. Have your choice!}%
\MT@get@font@{#1}{#2}{#3}{#4}{#5}{1}%
}
\MT@define@code@key{encoding}{cfg}
-\MT@define@code@key{family} {cfg}
+\MT@define@code@key@family {cfg}
\MT@define@code@key{series} {cfg}
\MT@define@code@key{shape} {cfg}
\MT@define@code@key@size {cfg}
@@ -2653,10 +1709,17 @@ time will almost certainly lead to undesired results. Have your choice!}%
\define@key{MT@#1@c}{#2}[]{\MT@ifempty{##1}\relax{%
\MT@xdef@n{MT@#1@c@\MT@curr@set@name @#2}{##1}}}%
}
+\newcount\MT@listname@count
\MT@map@clist@c\MT@features{%
\define@key{MT@#1@c}{name}[]{%
\MT@ifempty{##1}{%
- \MT@edef@n{MT@#1@c@name}{\MT@curr@file/\the\inputlineno}%
+ \MT@ifdefined@n@TF{MT@#1@c@\MT@curr@file/\the\inputlineno}{%
+ \global\advance\MT@listname@count\@ne
+ \MT@edef@n{MT@#1@c@name}{\MT@curr@file/\the\inputlineno
+ (\number\MT@listname@count)}%
+ }{%
+ \MT@edef@n{MT@#1@c@name}{\MT@curr@file/\the\inputlineno}%
+ }%
}{%
\MT@edef@n{MT@#1@c@name}{##1}%
\MT@ifdefined@n@T{MT@#1@c@\csname MT@#1@c@name\endcsname}{%
@@ -2671,125 +1734,10 @@ time will almost certainly lead to undesired results. Have your choice!}%
\MT@define@opt@key{#1}{inputenc}%
\define@key{MT@#1@c}{context}[]{\MT@ifempty{##1}\relax{\def\MT@extra@context{##1}}}%
}
-\MT@requires@pdftex7{
- \MT@requires@luatex{
- \define@key{MT@ex@c}{context}[]{%
- \MT@error{Expansion contexts currently don't work with luatex.\MessageBreak
- Ignoring `context' key\on@line}%
- {Use pdftex instead.}%
- }
- }{
- \define@key{MT@ex@c}{context}[]{%
- \MT@ifempty{#1}\relax{%
- \MT@glet\MT@copy@font\MT@copy@font@
- \def\MT@extra@context{#1}%
- }%
- }
- \MT@addto@setup{%
- \define@key{MT@ex@c}{context}[]{%
- \ifx\MT@copy@font\MT@copy@font@
- \MT@ifempty{#1}\relax{\def\MT@extra@context{#1}}%
- \else
- \MT@error{\MT@MT\space isn't set up for expansion contexts.\MessageBreak
- Ignoring `context' key\on@line}%
- {Either move the settings inside the preamble,\MessageBreak
- or load the package with the `copyfonts' option.}%
- \fi
- }%
- }
- \define@key{MT@pr@c}{context}[]{%
- \MT@ifempty{#1}\relax{%
- \MT@glet\MT@copy@font\MT@copy@font@
- \def\MT@extra@context{#1}%
- }%
- }
- \MT@addto@setup{%
- \define@key{MT@pr@c}{context}[]{%
- \MT@ifempty{#1}\relax{\def\MT@extra@context{#1}}%
- \ifx\MT@copy@font\MT@copy@font@\else
- \MT@warning@nl{If protrusion contexts don't work as expected,
- \MessageBreak load the package with the `copyfonts' option}%
- \fi
- }%
- }
- }
-}{
- \define@key{MT@ex@c}{context}[]{%
- \MT@error{Expansion contexts only work with pdftex 1.40.4\MessageBreak
- or later. Ignoring `context' key\on@line}%
- {Upgrade pdftex.}%
- }
-}
\def\MT@warn@nodim#1{%
\MT@warning{`\@tempa' is not a dimension.\MessageBreak
Ignoring it and setting values relative to\MessageBreak #1}%
}
-\define@key{MT@pr@c}{unit}[character]{%
- \MT@glet@nc{MT@pr@c@\MT@curr@set@name @unit}\@empty
- \def\@tempa{#1}%
- \MT@ifstreq\@tempa{character}\relax{%
- \MT@ifdimen\@tempa
- {\MT@glet@nc{MT@pr@c@\MT@curr@set@name @unit}\@tempa}%
- {\MT@warn@nodim{character widths}}%
- }%
-}
-\define@key{MT@tr@c}{unit}[1em]{%
- \MT@glet@nc{MT@tr@c@\MT@curr@set@name @unit}\@empty
- \def\@tempa{#1}%
- \MT@ifdimen\@tempa
- {\MT@glet@nc{MT@tr@c@\MT@curr@set@name @unit}\@tempa}%
- {\MT@warn@nodim{1em}%
- \MT@gdef@n{MT@tr@c@\MT@curr@set@name @unit}{1em}}%
-}
-\MT@map@clist@n{sp,kn}{%
- \define@key{MT@#1@c}{unit}[space]{%
- \MT@glet@nc{MT@#1@c@\MT@curr@set@name @unit}\@empty
- \def\@tempa{##1}%
- \MT@ifstreq\@tempa{character}\relax{%
- \MT@glet@nc{MT@#1@c@\MT@curr@set@name @unit}\m@ne
- \MT@ifstreq\@tempa{space}\relax{%
- \MT@ifdimen\@tempa
- {\MT@glet@nc{MT@#1@c@\MT@curr@set@name @unit}\@tempa}%
- {\MT@warn@nodim{width of space}}%
- }%
- }%
- }%
-}
-\MT@map@clist@n{stretch,shrink,step}{%
- \define@key{MT@ex@c}{#1}[]{%
- \MT@ifempty{##1}\relax{%
- \MT@ifint{##1}{%
- \MT@gdef@n{MT@ex@c@\MT@curr@set@name @#1}{##1 }%
- }{%
- \MT@warning{%
- Value `##1' for option `#1' is not a number.\MessageBreak
- Ignoring it}%
- }%
- }%
- }%
-}
-\define@key{MT@ex@c}{auto}[true]{%
- \def\@tempa{#1}%
- \csname if\@tempa\endcsname
- \MT@requires@pdftex4{%
- \MT@gdef@n{MT@ex@c@\MT@curr@set@name @auto}{autoexpand}%
- }{%
- \MT@warning{pdftex too old for automatic font expansion}%
- }
- \else
- \MT@requires@pdftex4{%
- \MT@glet@nc{MT@ex@c@\MT@curr@set@name @auto}\@empty
- }\relax
- \fi
-}
-\MT@define@opt@key{tr}{spacing}
-\MT@define@opt@key{tr}{outerspacing}
-\MT@define@opt@key{tr}{outerkerning}
-\define@key{MT@tr@c}{noligatures}[]%
- {\MT@xdef@n{MT@tr@c@\MT@curr@set@name @noligatures}{#1}}
-\define@key{MT@tr@c}{outer spacing}[]{\setkeys{MT@tr@c}{outerspacing={#1}}}
-\define@key{MT@tr@c}{outer kerning}[]{\setkeys{MT@tr@c}{outerkerning={#1}}}
-\define@key{MT@tr@c}{no ligatures}[]{\setkeys{MT@tr@c}{noligatures={#1}}}
\renewcommand*\DeclareCharacterInheritance[1][]{%
\let\MT@extra@context\@empty
\let\MT@extra@inputenc\@undefined
@@ -2826,48 +1774,18 @@ time will almost certainly lead to undesired results. Have your choice!}%
\setkeys{MT@inh}{#2}%
\MT@permute
}
-\define@key{MT@inh}{encoding}[]{%
- \def\MT@val{#1}%
- \expandafter\MT@encoding@check\MT@val,\@nil
- \MT@get@highlevel{encoding}%
- \MT@edef@n{MT@tempencoding1}{\MT@val}%
-}
-\def\MT@encoding@check#1,#2\@nil{%
- \MT@ifempty{#2}\relax{%
- \edef\MT@val{#1}%
- \MT@warning{You may only specify one encoding for character\MessageBreak
- inheritance lists. Ignoring encoding(s) #2}%
- }%
-}
-\MT@define@code@key{family}{inh}
-\MT@define@code@key{series}{inh}
-\MT@define@code@key{shape} {inh}
-\MT@define@code@key@size {inh}
-\MT@define@code@key@font {inh}
+\MT@define@code@key{encoding}{inh}
+\MT@define@code@key@family {inh}
+\MT@define@code@key{series} {inh}
+\MT@define@code@key{shape} {inh}
+\MT@define@code@key@size {inh}
+\MT@define@code@key@font {inh}
\def\MT@inh@do#1,{%
\ifx\relax#1\@empty \else
\MT@inh@split #1==\relax
\expandafter\MT@inh@do
\fi
}
-\def\MT@inh@split#1=#2=#3\relax{%
- \def\@tempa{#1}%
- \ifx\@tempa\@empty \else
- \MT@get@slot
- \ifnum\MT@char > \m@ne
- \let\MT@val\MT@char
- \MT@map@clist@n{#2}{%
- \def\@tempa{##1}%
- \ifx\@tempa\@empty \else
- \MT@get@slot
- \ifnum\MT@char > \m@ne
- \MT@exp@cs\MT@xadd{MT@inh@\MT@listname @\MT@val @}{{\MT@char}}%
- \fi
- \fi
- }%
- \fi
- \fi
-}
\def\MT@permute{%
\let\MT@cnt@encoding\@ne
\MT@permute@
@@ -3093,15 +2011,6 @@ time will almost certainly lead to undesired results. Have your choice!}%
\MT@map@clist@n{draft,selected,babel}{%
\MT@def@bool@opt{#1}{\csname MT@#1\@tempa\endcsname}}
\MT@def@bool@opt{auto}{\csname MT@auto\@tempa\endcsname \MT@opt@autotrue}
-\MT@def@bool@opt{DVIoutput}{%
- \csname if\@tempa\endcsname
- \ifnum\pdfoutput>\z@ \MT@opt@DVItrue \fi
- \pdfoutput\z@
- \else
- \ifnum\pdfoutput<\@ne \MT@opt@DVItrue \fi
- \pdfoutput\@ne
- \fi
-}
\MT@def@bool@opt{defersetup}{%
\csname if\@tempa\endcsname \else
\AtEndOfPackage{%
@@ -3111,31 +2020,6 @@ time will almost certainly lead to undesired results. Have your choice!}%
}%
\fi
}
-\MT@requires@pdftex7{
- \MT@requires@luatex{
- \MT@def@bool@opt{copyfonts}{%
- \csname if\@tempa\endcsname
- \MT@error{The `copyfonts' option doesn't work with luatex}
- {Use pdftex instead.}%
- \fi
- }
- }{
- \MT@def@bool@opt{copyfonts}{%
- \csname if\@tempa\endcsname
- \MT@glet\MT@copy@font\MT@copy@font@
- \else
- \MT@glet\MT@copy@font\relax
- \fi
- }
- }
-}{
- \MT@def@bool@opt{copyfonts}{%
- \csname if\@tempa\endcsname
- \MT@error{The pdftex version you are using is too old\MessageBreak
- to use the `copyfonts' option}{Upgrade pdftex.}%
- \fi
- }
-}
\MT@def@bool@opt{final}{%
\csname if\@tempa\endcsname
\MT@draftfalse
@@ -3187,13 +2071,17 @@ time will almost certainly lead to undesired results. Have your choice!}%
character widths}}%
}%
}
-\MT@protrusiontrue
-\ifnum\pdfoutput<\@ne \else
- \MT@requires@pdftex4{
- \MT@expansiontrue
- \MT@autotrue
- }\relax
+\let\MT@endinput\relax
+\ifx\MT@engine\relax
+ \MT@warning@nl{You don't seem to be using either pdftex, luatex, or xetex.\MessageBreak
+ `\MT@MT' only works with these engines.\MessageBreak
+ I will quit now.}
+ \MT@clear@options
+\else
+ \input{microtype-\MT@engine tex.def}
\fi
+\MT@endinput
+\MT@protrusiontrue
\define@key{MT}{config}[]{\relax}
\def\MT@get@config#1config=#2,#3\@nil{%
\MT@ifempty{#2}%
@@ -3235,106 +2123,6 @@ time will almost certainly lead to undesired results. Have your choice!}%
\MT@ifdefined@c@T\Microtype@Hook\Microtype@Hook
\def\microtypesetup{\setkeys{MT}}
\MT@addto@setup{\def\microtypesetup#1{\setkeys{MTX}{#1}\selectfont}}
-\def\MT@define@optionX#1#2{%
- \define@key{MTX}{#1}[true]{%
- \edef\@tempb{\csname MT@rbba@#1\endcsname}%
- \MT@map@clist@n{##1}{%
- \KV@@sp@def\MT@val{####1}%
- \MT@ifempty\MT@val\relax{%
- \@tempcnta=\m@ne
- \MT@ifstreq\MT@val{true}{%
- \MT@checksetup{#1}{%
- \@tempcnta=\csname MT@\@tempb @level\endcsname
- \MT@vinfo{Enabling #1
- (level \number\csname MT@\@tempb @level\endcsname)\on@line}%
- }%
- }{%
- \MT@ifstreq\MT@val{false}{%
- \@tempcnta=\z@
- \MT@vinfo{Disabling #1\on@line}%
- }{%
- \MT@ifstreq\MT@val{compatibility}{%
- \MT@checksetup{#1}{%
- \@tempcnta=\@ne
- \MT@let@nc{MT@\@tempb @level}\@ne
- \MT@vinfo{Setting #1 to level 1\on@line}%
- }%
- }{%
- \MT@ifstreq\MT@val{nocompatibility}{%
- \MT@checksetup{#1}{%
- \@tempcnta=\tw@
- \MT@let@nc{MT@\@tempb @level}\tw@
- \MT@vinfo{Setting #1 to level 2\on@line}%
- }%
- }{\MT@error{Value `\MT@val' for key `#1' not recognised}
- {Use any of `true', `false', `compatibility' or
- `nocompatibility'.}%
- }%
- }%
- }%
- }%
- \ifnum\@tempcnta>\m@ne
- #2\@tempcnta\relax
- \fi
- }%
- }%
- }%
-}
-\def\MT@checksetup#1{%
- \csname ifMT@#1\endcsname
- \expandafter\@firstofone
- \else
- \MT@error{You cannot enable #1 if it was disabled\MessageBreak
- in the package options}{Load microtype with #1 enabled.}%
- \expandafter\@gobble
- \fi
-}
-\MT@define@optionX{protrusion}\pdfprotrudechars
-\MT@define@optionX{expansion}\pdfadjustspacing
-\MT@requires@pdftex6{
- \MT@requires@luatex\@firstofone{
- \def\MT@define@optionX@#1#2{%
- \define@key{MTX}{#1}[true]{%
- \MT@map@clist@n{##1}{%
- \KV@@sp@def\MT@val{####1}%
- \MT@ifempty\MT@val\relax{%
- \@tempcnta=\m@ne
- \MT@ifstreq\MT@val{true}{%
- \MT@checksetup{#1}{%
- \@tempcnta=\@ne
- \MT@vinfo{Enabling #1\on@line}%
- }%
- }{%
- \MT@ifstreq\MT@val{false}{%
- \@tempcnta=\z@
- \MT@vinfo{Disabling #1\on@line}%
- }{\MT@error{Value `\MT@val' for key `#1' not recognised}
- {Use either `true' or `false'}%
- }%
- }%
- \ifnum\@tempcnta>\m@ne
- #2\relax
- \fi
- }%
- }%
- }%
- }
- \MT@define@optionX@{tracking}{\ifnum\@tempcnta=\z@ \let\MT@tracking\MT@set@tr@zero
- \else \let\MT@tracking\MT@tracking@ \fi}
- \MT@define@optionX@{spacing}{\pdfadjustinterwordglue\@tempcnta}
- \MT@define@optionX@{kerning}{\pdfprependkern\@tempcnta
- \pdfappendkern \@tempcnta}
- \@gobble
- }
-}\@firstofone
-{\define@key{MTX}{tracking}[true]{\MT@warning{Ignoring tracking setup}}
- \define@key{MTX}{kerning}[true]{\MT@warning{Ignoring kerning setup}}
- \define@key{MTX}{spacing}[true]{\MT@warning{Ignoring spacing setup}}
-}
-\define@key{MTX}{activate}[true]{%
- \setkeys{MTX}{protrusion={#1}}%
- \setkeys{MTX}{expansion={#1}}%
-}
\let\MT@saved@setupfont\MT@setupfont
\define@key{MTX}{disable}[]{%
\MT@info{Inactivate `\MT@MT' package}%
@@ -3373,229 +2161,17 @@ time will almost certainly lead to undesired results. Have your choice!}%
\renewcommand*\microtypecontext[1]{}%
\renewcommand*\lsstyle{}%
\else
- \ifnum\pdfoutput<\@ne
- \ifMT@opt@expansion \else
- \MT@expansionfalse
- \fi
- \fi
- \MT@info@nl{Generating \ifnum\pdfoutput<\@ne DVI \else PDF \fi output%
- \ifMT@opt@DVI\space (changed by \MT@MT)\fi}%
- \ifx\MT@copy@font\relax\else \MT@info@nl{Using font copies for contexts}\fi
+ \MT@setup@PDF
+ \MT@setup@copies
\MT@map@tlist@c\MT@font@sets\MT@fix@font@set
- \ifMT@protrusion
- \edef\MT@active@features{\MT@active@features,pr}%
- \pdfprotrudechars\MT@pr@level
- \MT@info@nl{Character protrusion enabled (level \number\MT@pr@level)%
- \ifnum\MT@pr@factor=\MT@factor@default \else,\MessageBreak
- factor: \number\MT@pr@factor\fi
- \ifx\MT@pr@unit\@empty \else,\MessageBreak unit: \MT@pr@unit\fi}%
- \MT@check@active@set{pr}%
- \else
- \let\MT@protrusion\relax
- \MT@info@nl{No character protrusion}%
- \fi
- \ifMT@expansion
- \ifnum\MT@stretch=\m@ne
- \let\MT@stretch\MT@stretch@default
- \fi
- \ifnum\MT@shrink=\m@ne
- \let\MT@shrink\MT@stretch
- \fi
- \MT@requires@pdftex6{\def\MT@step{1 }}{%
- \ifnum\MT@step=\m@ne
- \ifnum\MT@stretch>\MT@shrink
- \ifnum\MT@shrink=\z@
- \@tempcnta=\MT@stretch
- \else
- \@tempcnta=\MT@shrink
- \fi
- \else
- \ifnum\MT@stretch=\z@
- \@tempcnta=\MT@shrink
- \else
- \@tempcnta=\MT@stretch
- \fi
- \fi
- \divide\@tempcnta 5\relax
- \else
- \@tempcnta=\MT@step
- \ifnum\@tempcnta=\z@
- \MT@warning@nl{The expansion step cannot be set to zero.\MessageBreak
- Setting it to one}
- \fi
- \fi
- \ifnum\@tempcnta=\z@ \@tempcnta=\@ne \fi
- \edef\MT@step{\number\@tempcnta\space}}%
- \let\MT@auto\@empty
- \ifMT@auto
- \MT@requires@pdftex4{%
- \ifnum\pdfoutput<\@ne
- \ifMT@opt@auto
- \MT@error{%
- Automatic font expansion only works for PDF output.\MessageBreak
- However, you are creating a DVI file}
- {If you have created expanded fonts instances, remove `auto' from%
- \MessageBreak the package options. Otherwise, you have to switch
- off expansion\MessageBreak completely.}%
- \fi
- \MT@autofalse
- \else
- \def\MT@auto{autoexpand}%
- \fi
- }{%
- \MT@error{%
- The pdftex version you are using is too old for\MessageBreak
- automatic font expansion}%
- {If you have created expanded fonts instances, remove `auto' from\MessageBreak
- the package options. Otherwise, you have to switch off expansion\MessageBreak
- completely, or upgrade pdftex to version 1.20 or newer.}%
- \MT@autofalse
- \def\MT@auto{1000 }%
- }%
- \else
- \MT@requires@pdftex4\relax{%
- \def\MT@auto{1000 }%
- }%
- \fi
- \ifMT@selected
- \let\MT@set@ex@codes\MT@set@ex@codes@s
- \else
- \let\MT@set@ex@codes\MT@set@ex@codes@n
- \fi
- \ifnum\MT@stretch=\z@
- \ifnum\MT@shrink=\z@
- \MT@warning@nl{%
- Both the stretch and shrink limit are set to zero.\MessageBreak
- Disabling font expansion}%
- \MT@expansionfalse
- \fi
- \fi
- \fi
- \ifMT@expansion
- \edef\MT@active@features{\MT@active@features,ex}%
- \pdfadjustspacing\MT@ex@level
- \MT@info@nl{\ifMT@auto A\else Non-a\fi utomatic font expansion enabled
- (level \number\MT@ex@level),\MessageBreak
- stretch: \number\MT@stretch, shrink: \number\MT@shrink,
- step: \number\MT@step, \ifMT@selected\else non-\fi selected}%
- \def\MT@check@step#1{%
- \@tempcnta=\csname MT@#1\endcsname
- \divide\@tempcnta \MT@step
- \multiply\@tempcnta \MT@step
- \ifnum\@tempcnta=\csname MT@#1\endcsname\else
- \MT@warning@nl{The #1 amount is not a multiple of step.\MessageBreak
- The effective maximum #1 is \the\@tempcnta\space
- (step \number\MT@step)}%
- \fi
- }%
- \MT@check@step{stretch}%
- \MT@check@step{shrink}%
- \MT@check@active@set{ex}%
- \CheckCommand*\showhyphens[1]{\setbox0\vbox{%
- \color@begingroup\everypar{}\parfillskip\z@skip
- \hsize\maxdimen\normalfont\pretolerance\m@ne\tolerance\m@ne
- \hbadness\z@\showboxdepth\z@\ #1\color@endgroup}}%
- \gdef\showhyphens#1{\setbox0\vbox{%
- \color@begingroup\pdfadjustspacing\z@\everypar{}\parfillskip\z@skip
- \hsize\maxdimen\normalfont\pretolerance\m@ne\tolerance\m@ne
- \hbadness\z@\showboxdepth\z@\ #1\color@endgroup}}%
- \else
- \let\MT@expansion\relax
- \MT@info@nl{No font expansion}%
- \fi
+ \MT@setup@protrusion
+ \MT@setup@expansion
+ \MT@setup@tracking
+ \MT@setup@warntracking
+ \MT@setup@spacing
+ \MT@setup@kerning
+ \MT@setup@noligatures
}
-\MT@requires@pdftex6{
- \def\MT@warn@lua#1{%
- \MT@error{The `#1' feature doesn't currently work\MessageBreak with luatex}
- {Use pdftex instead.}%
- \csname MT@#1false\endcsname
- \MT@let@nc{MT@#1}\relax
- }
- \MT@addto@setup{%
- \ifMT@tracking
- \MT@requires@luatex{\MT@warn@lua{tracking}}{%
- \edef\MT@active@features{\MT@active@features,tr}%
- \MT@info@nl{Tracking enabled}%
- \MT@check@active@set{tr}%
- \ifMT@protrusion\else\pdfprotrudechars\@ne\fi
- }%
- \else
- \let\MT@tracking\relax
- \MT@info@nl{No tracking}%
- \fi
- \ifMT@spacing
- \MT@requires@luatex{\MT@warn@lua{spacing}}{%
- \edef\MT@active@features{\MT@active@features,sp}%
- \pdfadjustinterwordglue\@ne
- \MT@info@nl{Adjustment of interword spacing enabled}%
- \MT@check@active@set{sp}%
- }%
- \else
- \let\MT@spacing\relax
- \MT@info@nl{No adjustment of interword spacing}%
- \fi
- \ifMT@kerning
- \MT@requires@luatex{\MT@warn@lua{kerning}}{%
- \edef\MT@active@features{\MT@active@features,kn}%
- \pdfprependkern\@ne
- \pdfappendkern\@ne
- \MT@info@nl{Adjustment of character kerning enabled}%
- \MT@check@active@set{kn}%
- }%
- \else
- \let\MT@kerning\relax
- \MT@info@nl{No adjustment of character kerning}%
- \fi
- \ifnum\pdfoutput<\@ne
- \def\MT@warn@tracking@DVI{%
- \MT@warning@nl{%
- You are using tracking/letterspacing in DVI mode.\MessageBreak
- This will probably not work, unless the post-\MessageBreak
- processing program (dvips, dvipdfm(x), ...) is\MessageBreak
- able to create the virtual fonts on the fly}%
- \MT@glet\MT@warn@tracking@DVI\relax
- }%
- \else
- \def\MT@warn@tracking@DVI{%
- \ifnum\pdfprotrudechars<\@ne \global\pdfprotrudechars\@ne \fi
- \MT@glet\MT@warn@tracking@DVI\relax
- }%
- \fi
- \ifnum\MT@letterspace=\m@ne
- \let\MT@letterspace\MT@letterspace@default
- \else
- \MT@ls@too@large\MT@letterspace
- \fi
- }%
-}{
- \MT@addto@setup{%
- \ifMT@tracking
- \MT@error{Tracking only works with pdftex version 1.40\MessageBreak
- or newer. Switching it off}{Upgrade pdftex.}%
- \else
- \MT@info@nl{No tracking (pdftex too old)}%
- \fi
- \ifMT@spacing
- \MT@error{Adjustment of interword spacing only works with\MessageBreak
- pdftex version 1.40 or newer. Switching it off}{Upgrade pdftex.}%
- \else
- \MT@info@nl{No adjustment of interword spacing (pdftex too old)}%
- \fi
- \ifMT@kerning
- \MT@error{Character kerning only works with\MessageBreak
- pdftex version 1.40 or newer. Switching it off}{Upgrade pdftex.}%
- \else
- \MT@info@nl{No adjustment of character kerning (pdftex too old)}%
- \fi
- }
-}
-\MT@requires@pdftex5{
- \MT@addto@setup{%
- \ifMT@noligatures \else
- \let\MT@noligatures\relax
- \fi
- }
-}\relax
\MT@addto@setup{%
\ifx\MT@active@features\@empty \else
\edef\MT@active@features{\expandafter\@gobble\MT@active@features}%
@@ -3658,23 +2234,8 @@ time will almost certainly lead to undesired results. Have your choice!}%
\selectfont}
\edef\MT@curr@file{\jobname.tex}
\AtBeginDocument{\MT@setup@ \MT@glet\MT@setup@\@empty}
-\MT@requires@pdftex6{
- \AtBeginDocument{%
- \ifMT@spacing
- \ifMT@babel \else
- \ifnum\sfcode`\. > 1500
- \MT@ifstreq\MT@sp@context{nonfrench}\relax{%
- \MT@warning@nl{%
- \string\nonfrenchspacing\space is active. Adjustment of\MessageBreak
- interword spacing will disable it. You might want\MessageBreak
- to add `\@backslashchar\MT@MT context{spacing=nonfrench}'\MessageBreak
- to your preamble}%
- }%
- \fi
- \fi
- \fi
- }
-}\relax
+\MT@ifdefined@c@T\MT@setup@spacing@check
+ {\AtBeginDocument{\MT@setup@spacing@check}}
\MT@restore@catcodes
\endinput
%%
diff --git a/Master/texmf-dist/tex/latex/microtype/mt-CharisSIL.cfg b/Master/texmf-dist/tex/latex/microtype/mt-CharisSIL.cfg
new file mode 100755
index 00000000000..c8388555dfb
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/microtype/mt-CharisSIL.cfg
@@ -0,0 +1,476 @@
+%%
+%% This is file `mt-CharisSIL.cfg'.
+%%
+%% ------------------------------------------------------------------------
+%%
+%% The `microtype' package
+%% Subliminal refinements towards typographical perfection
+%% Copyright (c) 2004--2013 R Schlicht <w.m.l@gmx.net>
+%%
+%% This work may be distributed and/or modified under the conditions of the
+%% LaTeX Project Public License, either version 1.3c 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.3c or later is part
+%% of all distributions of LaTeX version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `author-maintained'.
+%%
+%% This work consists of the files microtype.dtx and microtype.ins and the
+%% derived files microtype.sty, microtype-pdftex.def, microtype-xetex.def,
+%% microtype-luatex.def, microtype.lua and letterspace.sty.
+%%
+%% ------------------------------------------------------------------------
+%% This is a font-specific configuration file for the `microtype' package.
+%% It may contain settings for font expansion and character protrusion,
+%% tracking, interword spacing and additional kerning, as well as
+%% character inheritance declarations.
+%% Please consult the documentation for details.
+%%
+%% If you think you have found improvements to these settings, please
+%% let me know.
+%%
+%% When modifying this file, also change the identification line below.
+%% ------------------------------------------------------------------------
+%%
+\ProvidesFile
+ {mt-CharisSIL.cfg}[2013/03/13 v1.0 microtype config. file: Charis SIL (RS)]
+
+%%% -----------------------------------------------------------------------
+%%% INHERITANCE
+
+% for xetex (EU1) and luatex (EU2)
+\DeclareCharacterInheritance
+ { encoding = {EU1,EU2},
+ family = Charis SIL }
+ { A = {À,Á,Â,Ã,Ä,Å,Ā,Ă,Ą,Ǎ,Ǟ,Ǡ,Ȧ,Ǻ,Ȁ,Ȃ,Ḁ,Ạ,Ả,Ấ,Ầ,Ẩ,Ẫ,Ậ,Ắ,Ằ,Ẳ,Ẵ,Ặ,Ꜳ,
+ А,Ӑ,Ӓ}, % Cyrillic
+ Æ = {Ǣ,
+ Ǽ,Ӕ}, % Cyrillic
+ B = {Ḃ,Ḅ,Ḇ,
+ В}, % Cyr
+ C = {Ç,Ć,Ĉ,Ḉ,Ċ,Č,
+ С,Ҫ}, % Cyr
+ D = {Ď,Ḋ,Ḍ,Ḏ,Ḑ,Ḓ,Đ},
+ E = {È,É,Ê,Ë,Ē,Ĕ,Ė,Ę,Ě,Ȅ,Ȩ,Ȇ,Ḕ,Ḗ,Ḙ,Ḛ,Ḝ,Ẹ,Ẻ,Ẽ,Ế,Ề,Ể,Ễ,Ệ,
+ Е,Ѐ,Ё,Ӗ}, % Cyr
+ F = {Ḟ},
+ G = {Ĝ,Ğ,Ġ,Ģ,Ǧ,Ǵ,Ḡ,Ԍ},
+ H = {Ĥ,Ȟ,Ḣ,Ḥ,Ḧ,Ḩ,Ḫ,
+ Н,Ң,Ҥ,Ӈ,Ӊ}, % Cyr
+ I = {Ì,Í,Î,Ȉ,Ï,Į,Ĩ,Ị,Ī,İ,Ǐ,Ỉ,Ȋ,Ĭ,Ḭ,Ï,
+ І,Ї,Ӏ,ӏ}, % Cyr
+ J = {Ĵ,
+ Ј}, % Cyr
+ K = {Ķ,Ǩ,Ḱ,Ḳ,Ḵ,
+ К,Ќ,Қ,Ҝ,Ҟ,Ҡ,Ӄ,Ԟ}, % Cyr
+ L = {Ĺ,Ļ,Ľ,Ḷ,Ḹ,Ḻ,Ḽ}, % L·
+ M = {Ḿ,Ṁ,Ṃ,
+ М,Ӎ}, % Cyr
+ N = {Ñ,Ń,Ņ,Ň,Ǹ,Ṅ,Ṇ,Ṉ,Ṋ,
+ И,Й,Ѝ,Ҋ,Ӣ,Ӥ}, % Cyr
+ O = {Ò,Ó,Ô,Õ,Ö,Ō,Ŏ,Ő,Ǒ,Ǫ,Ǭ,Ȍ,Ȏ,Ȫ,Ȭ,Ȯ,Ȱ,Ṍ,Ṏ,Ṑ,Ṓ,Ọ,Ỏ,Ố,Ồ,Ổ,Ỗ,Ộ,Ớ,Ờ,Ở,Ỡ,Ơ,
+ О,Ѳ,Ӧ,Ө,Ӫ, % Cyr
+ Θ}, % Greek
+ P = {Ṕ,Ṗ,
+ Р,Ҏ}, % Cyr
+ Q = {Ԛ}, % Cyr
+ R = {Ŕ,Ŗ,Ř,Ȑ,Ȓ,Ṙ,Ṛ,Ṝ,Ṟ},
+ S = {Ś,Ŝ,Ş,Š,Ș,Ṡ,Ṣ,Ṥ,Ṧ,Ṩ,
+ Ѕ}, % Cyr
+ T = {Ţ,Ť,Ț,Ṫ,Ṭ,Ṯ,Ṱ,
+ Т,Ҭ}, % Cyr
+ U = {Ù,Ú,Û,Ü,Ũ,Ū,Ŭ,Ů,Ű,Ų,Ǔ,Ǖ,Ǘ,Ǚ,Ǜ,Ȕ,Ȗ,Ṳ,Ṵ,Ṷ,Ṹ,Ṻ,Ụ,Ủ,Ứ,Ừ,Ử,Ữ,Ự},
+ V = {Ṽ,Ṿ},
+ W = {Ŵ,Ẁ,Ẃ,Ẅ,Ẇ,Ẉ,
+ Ԝ}, % Cyr
+ X = {Ẋ,Ẍ,
+ Х,Ҳ,Ӽ,Ӿ}, % Cyr
+ Y = {Ý,Ŷ,Ÿ,Ȳ,Ẏ,Ỳ,Ỵ,Ỷ,Ỹ,
+ Ү,Ұ}, % Cyr
+ Z = {Ź,Ż,Ž,Ẑ,Ẓ,Ẕ},
+ a = {à,á,â,ã,ä,å,ā,ă,ą,ǎ,ǟ,ǡ,ȧ,ǻ,ȁ,ȃ,ḁ,ạ,ả,ầ,ấ,ẩ,ẫ,ậ,ắ,ằ,ẳ,ẵ,ặ, % aʾ
+ а,ӑ,ӓ}, % Cyr
+ æ = {ǽ,
+ ӕ}, % Cyr
+ b = {ḃ,ḅ,ḇ},
+ c = {ç,ć,ĉ,ċ,č,ḉ,
+ с,ҫ}, % Cyr
+ d = {ď,ḋ,ḍ,ḏ,ḑ,ḓ},
+ e = {è,é,ê,ë,ē,ĕ,ė,ę,ě,ȅ,ȩ,ȇ,ḕ,ḗ,ḙ,ḛ,ḝ,ẹ,ẻ,ẽ,ề,ế,ể,ễ,ệ,
+ е,ѐ,ё,ӗ}, % Cyr
+ f = {ḟ,ff}, % /f_f
+ g = {ĝ,ğ,ġ,ģ,ǧ,ǵ,ḡ},
+ h = {ĥ,ȟ,ḣ,ḥ,ḧ,ḩ,ḫ,ẖ,
+ Һ,һ}, % Cyr
+ i = {ı,ì,í,î,ȉ,ǐ,ï,į,ī,ị,ĩ,ḭ,ḯ,ỉ,ȋ,ĭ,
+ і,ї}, % Cyr
+ j = {ĵ,ǰ,
+ ј}, % Cyr
+ k = {ķ,ǩ,ḱ,ḳ,ḵ},
+ l = {ĺ,ļ,ḻ,ḷ,ḹ,ḽ}, % ľ,l·
+ m = {ḿ,ṁ,ṃ},
+ n = {ñ,ń,ņ,ň,ǹ,ṅ,ṇ,ṉ,ṋ}, % ʼn
+ o = {ò,ó,ô,õ,ö,ō,ŏ,ő,ǒ,ǫ,ǭ,ȍ,ȏ,ȫ,ȭ,ȯ,ȱ,ṍ,ṏ,ṑ,ṓ,ọ,ỏ,ồ,ố,ổ,ỗ,ộ,ớ,ờ,ở,ỡ,ợ,
+ о,ѳ,ӧ,ө,ӫ}, % Cyr
+ p = {ṕ,ṗ,
+ р,ҏ}, % Cyr
+ q = {ԛ}, % Cyr
+ r = {ŕ,ŗ,ř,ȑ,ȓ,ṙ,ṛ,ṝ,ṟ},
+ s = {ś,ŝ,ş,š,ș,ṡ,ṣ,ṥ,ṧ,ṩ,
+ ѕ}, % Cyr
+ t = {ţ,ț,ṫ,ṭ,ṯ,ṱ,ẗ}, % ť
+ u = {ù,ú,û,ü,ũ,ū,ŭ,ů,ű,ų,ǔ,ǖ,ǘ,ǚ,ǜ,ȕ,ȗ,ṳ,ṵ,ṷ,ṹ,ṻ,ụ,ủ,ứ,ừ,ử,ữ,ự},
+ v = {ṽ,ṿ},
+ w = {ŵ,ẁ,ẃ,ẅ,ẇ,ẉ,ẘ,
+ ԝ}, % Cyr
+ x = {ẋ,ẍ,
+ х,ҳ}, % Cyr
+ y = {ý,ÿ,ŷ,ȳ,ẏ,ẙ,ỳ,ỵ,ỷ,ỹ,
+ у,ў,ӯ,ӱ,ӳ}, % Cyr
+ z = {ź,ż,ž,ẑ,ẓ,ẕ},
+ % Cyrillic
+ Г = {Ѓ,Ґ,Ғ,Ӷ,Ӻ},
+ Ж = {Җ,Ӝ,Ӂ},
+ З = {Ӟ,Ҙ},
+ Л = {Ӆ},
+ П = {Ԥ},
+ У = {Ў,Ӯ,Ӱ,Ӳ},
+ Ч = {Ҷ,Ҹ,Ӌ,Ӵ},
+ Ы = {Ӹ},
+ Ә = {Ӛ},
+ Ҽ = {Ҿ},
+ г = {ѓ,ґ,ғ,ӷ,ӻ},
+ ж = {җ,ӂ,ӝ},
+ з = {ҙ,ӟ},
+ и = {й,ѝ,ҋ,ӣ,ӥ},
+ к = {ќ,қ,ҝ,ҟ,ҡ,ӄ,ԟ},
+ л = {ӆ},
+ м = {ӎ},
+ н = {ң,ҥ,ӈ,ӊ},
+ п = {ԥ},
+ т = {ҭ},
+ х = {ӽ,ӿ},
+ ч = {ҷ,ҹ,ӌ,ӵ},
+ ш = {щ},
+ ы = {ӹ},
+ э = {ӭ},
+ ҽ = {ҿ},
+ ә = {ӛ},
+ ү = {ұ},
+ Г = {Γ}, % Greek
+ П = {Π}, % Greek
+ }
+
+% missing: tipa, math, symbols, ...
+
+%%% -----------------------------------------------------------------------
+%%% PROTRUSION
+
+\SetProtrusion
+ [ name = Charis-default ]
+ { encoding = {EU1,EU2},
+ family = Charis SIL }
+ {
+ A = {50,50},
+ Æ = {50,50},
+ C = {50, },
+ D = { ,50},
+ F = { ,50},
+ G = {50, },
+ J = {100, },
+ K = { ,50},
+ L = { ,50},
+ Ŀ = { ,100},
+ O = {50,50},
+ Π= {50, },
+ P = { ,50},
+ Q = {50,70},
+ R = { ,50},
+ ẞ = { ,40}, % capital sharp s
+ T = {50,50},
+ V = {50,50},
+ W = {50,50},
+ X = {50,50},
+ Y = {50,50},
+ k = { ,50},
+ ŀ = { ,150},
+ r = { ,50},
+ t = { ,50},
+ v = {50,50},
+ w = {50,50},
+ x = {50,50},
+ y = { ,50},
+ 1 = {150,150},
+ 2 = {50,50},
+ 3 = {50, },
+ 4 = {100,50},
+ 6 = {50, },
+ 7 = {50,80},
+ 9 = {50,50},
+ . = { ,600},
+ {,}= { ,500},
+ : = { ,400},
+ ; = { ,300},
+ ! = { ,100},
+ ? = { ,200},
+ @ = {50,50},
+ ~ = {200,250},
+ \% = { ,50},
+ * = {300,300},
+ + = {200,250},
+ / = { ,200},
+ /backslash = {150,200},
+ | = {200,200},
+ - = {400,500}, % hyphen
+ – = {200,300}, % endash
+ — = {150,250}, % emdash
+ ― = {200,200}, % Horizontal Bar = \texttwelveudash
+ ‒ = {150,150}, % Figure Dash = \textthreequartersemdash
+ _ = {100,100},
+ {=} = {100,100},
+ ‘ = {300,400}, ’ = {300,400},
+ “ = {300,300}, ” = {300,300},
+ ‚ = {400,400}, „ = {300,300},
+ ‹ = {400,300}, › = {300,400},
+ « = {200,200}, » = {150,300},
+ ¡ = {100, }, ¿ = {100, },
+ ( = {200, }, ) = { ,200},
+ < = {200,150}, > = {100,200},
+ [ = {100, }, ] = { ,100},
+ /braceleft = {200, }, /braceright = { ,300},
+ † = { 80, 80},
+ ‡ = {100,100},
+ • = {200,200},
+ ° = {150,200},
+ ™ = {150,150},
+ ¢ = { 50, },
+ £ = { 50, },
+ ¦ = {200,200},
+ © = {100,100},
+ ® = {100,100},
+ ª = {100,200},
+ º = {200,200},
+ ¬ = {200, 50},
+ µ = { ,100},
+ ¶ = { ,100},
+ · = {300,400},
+ ¹ = {200,300},
+ ² = {100,200},
+ ³ = {100,200},
+ € = {100, },
+ ± = {150,200},
+ × = {200,200},
+ ÷ = {250,250},
+ /minus = {200,200},
+ − = {200,200},
+ % Cyrillic
+ Б = { ,50},
+ Г = { ,130},
+ Ж = {50,50},
+ З = {30,50},
+ Л = {50, },
+ У = {50,50},
+ Ф = {50,50},
+ Ч = {100, },
+ Ъ = { ,50},
+ Ь = { ,50},
+ Э = {50,50},
+ Ю = { ,40},
+ Я = {50, },
+ Ѵ = {50,50},
+ Ҽ = {50, },
+ Ђ = {50,100},
+ Є = {50, },
+ Љ = {50,50},
+ Њ = { ,50},
+ Ћ = {50,50},
+ Ԅ = {100,100},
+ Ԇ = {50,50},
+ Ѣ = { ,50},
+ Ҍ = { ,50},
+ Ԉ = {50,80},
+ Ԋ = { ,80},
+ Ԏ = {50,50},
+ Ԓ = {50, },
+ Ԕ = {50,40},
+ Ԗ = { ,50},
+ Ԙ = {50, },
+ Ԡ = { ,50},
+ Ԣ = { ,50},
+ Ԃ = { ,100},
+ б = {50,50},
+ г = { ,70},
+ к = { ,50},
+ л = {50, },
+ т = {50,50},
+ ф = {50,50},
+ ч = {50, },
+ ъ = { ,50},
+ ь = { ,50},
+ э = { ,50},
+ я = {50, },
+ љ = {50, },
+ њ = { ,50},
+ ѣ = { ,50},
+ ѵ = {50,50},
+ ҽ = {50, },
+ ҍ = { ,50},
+ ү = {50,50},
+ ҕ = { ,50},
+ ҧ = { ,50},
+ ԃ = { ,100},
+ ԅ = {100,100},
+ ԇ = {50,50},
+ ԉ = {50,70},
+ ԋ = { ,70},
+ ԙ = {50,30},
+ ԡ = { ,50},
+ ԣ = { ,50},
+ % Д П Ц Ш Щ Ы Ҕ Ҧ Ҩ Ә Ҵ Џ Ӭ Ӡ Ԑ Ԁ
+ % в д ж з и м н п ц ш ы ю ђ є ћ џ ә ԑ ҩ ҵ ӡ ԁ ԍ ԏ ԓ ԕ ԗ
+ % Greek
+ Δ = {50,50},
+ Ψ = {50,50},
+ γ = {70,70},
+ λ = {40,70},
+ π = {40,50},
+ ρ = { ,50},
+ σ = { ,50},
+ χ = {50,50},
+}
+
+\SetProtrusion
+ [ name = Charis-it ]
+ { encoding = {EU1,EU2},
+ family = Charis SIL,
+ shape = {it,sl} }
+ {
+ C = {50, },
+ G = {50, },
+ J = {50, },
+ L = {50,50},
+ O = {50, },
+ Π= {50, },
+ Q = {50, },
+ S = {50, },
+ $ = {50, },
+ T = {70, },
+ o = {50,50},
+ p = { ,50},
+ q = {50, },
+ t = { ,50},
+ w = { ,50},
+ y = { ,50},
+ 1 = {150,100},
+ 3 = {50, },
+ 4 = {100, },
+ 6 = {50, },
+ 7 = {100, },
+ . = { ,700},
+ {,}= { ,600},
+ : = { ,400},
+ ; = { ,400},
+ ? = { ,150},
+ & = { ,80},
+ \% = {50,50},
+ * = {300,200},
+ + = {250,250},
+ @ = {80,50},
+ ~ = {150,150},
+ / = { ,150},
+ /backslash = {150,150},
+ - = {300,400}, % hyphen
+ – = {200,300}, % endash
+ — = {150,200}, % emdash
+ _ = { ,100},
+ {=} = {200,200},
+ ± = {150,200},
+ × = {250,250},
+ ÷ = {250,250},
+ ° = {150,200},
+ · = {300,400},
+ ‘ = {400,200}, ’ = {400,200},
+ “ = {300,200}, ” = {400,200},
+ ‚ = {200,500}, „ = {150,500},
+ ‹ = {300,400}, › = {200,500},
+ « = {200,300}, » = {150,400},
+ ( = {200, }, ) = { ,200},
+ < = {200,200}, > = {200,200},
+ /braceleft = {300, }, /braceright = { ,200},
+ % Cyrillic
+ Ж = {50,30},
+ Л = {50, },
+ У = {50,30},
+ Ф = {50, },
+ Ч = {100, },
+ Ъ = { ,50},
+ Ь = { ,50},
+ Э = {50,50},
+ Я = {50, },
+ Ѵ = {50,50},
+ Љ = {50,50},
+ Ԅ = {140,100},
+ Ԇ = {70,50},
+ Ԉ = {50,80},
+ Ԋ = { ,80},
+ Ԏ = {50,50},
+ г = {50,50},
+ д = {50,30},
+ м = {50, },
+ ф = {50, },
+ ч = {50, },
+ ъ = { ,50},
+ ь = { ,50},
+ э = { ,50},
+ я = {50, },
+ љ = {50,50},
+ њ = { ,50},
+ ѵ = {50,50},
+ ҍ = { ,50},
+ ԅ = {140,100},
+ ԇ = {70,50},
+ ԉ = {50,70},
+ ԋ = { ,70},
+ % Greek
+ Γ = { ,130},
+ Δ = {50,50},
+ Ψ = {50,50},
+ γ = {70,70},
+ λ = {40,70},
+ π = {40,50},
+ ρ = { ,50},
+ σ = { ,50},
+ χ = {50,50},
+ }
+
+\SetProtrusion
+ [ name = Charis-sc,
+ load = Charis-default ]
+ { encoding = {EU1,EU2},
+ family = Charis SIL,
+ shape = {sc} }
+ {
+% ᴀ = {100,100}, % etc., doesn't work with \textsc
+ /a.SC = {100,100},
+ /c.SC = {50, },
+ /d.SC = { ,50},
+ /f.SC = { ,50},
+ /g.SC = {50, },
+ /j.SC = {100, },
+ /k.SC = { ,50},
+ /l.SC = { ,50},
+ /f_l.SC = { ,50},
+ /o.SC = {50,50},
+ /oe.SC = {50, },
+ /q.SC = {50,70},
+ /r.SC = { ,50},
+ /t.SC = {50,100},
+ /v.SC = {50,50},
+ /w.SC = {50,50},
+ /x.SC = {50,50},
+ /y.SC = {50,50}
+ }
+
+\endinput
+%%
+%% End of file `mt-CharisSIL.cfg'.
diff --git a/Master/texmf-dist/tex/latex/microtype/mt-LatinModernRoman.cfg b/Master/texmf-dist/tex/latex/microtype/mt-LatinModernRoman.cfg
new file mode 100755
index 00000000000..8f142d8f849
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/microtype/mt-LatinModernRoman.cfg
@@ -0,0 +1,349 @@
+%%
+%% This is file `mt-LatinModernRoman.cfg'.
+%%
+%% ------------------------------------------------------------------------
+%%
+%% The `microtype' package
+%% Subliminal refinements towards typographical perfection
+%% Copyright (c) 2004--2013 R Schlicht <w.m.l@gmx.net>
+%%
+%% This work may be distributed and/or modified under the conditions of the
+%% LaTeX Project Public License, either version 1.3c 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.3c or later is part
+%% of all distributions of LaTeX version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `author-maintained'.
+%%
+%% This work consists of the files microtype.dtx and microtype.ins and the
+%% derived files microtype.sty, microtype-pdftex.def, microtype-xetex.def,
+%% microtype-luatex.def, microtype.lua and letterspace.sty.
+%%
+%% ------------------------------------------------------------------------
+%% This is a font-specific configuration file for the `microtype' package.
+%% It may contain settings for font expansion and character protrusion,
+%% tracking, interword spacing and additional kerning, as well as
+%% character inheritance declarations.
+%% Please consult the documentation for details.
+%%
+%% If you think you have found improvements to these settings, please
+%% let me know.
+%%
+%% When modifying this file, also change the identification line below.
+%% ------------------------------------------------------------------------
+%%
+\ProvidesFile
+ {mt-LatinModernRoman.cfg}[2013/03/13 v1.0 microtype config. file: Latin Modern Roman (RS)]
+
+%%% -----------------------------------------------------------------------
+%%% INHERITANCE
+
+% for xetex (EU1) and luatex (EU2)
+\DeclareCharacterInheritance
+ { encoding = {EU1,EU2},
+ family = Latin Modern Roman }
+ { A = {À,Á,Â,Ã,Ä,Å,Ā,Ă,Ą,Ǻ,Ȁ,Ạ,Ả,Ấ,Ầ,Ẩ,Ẫ,Ậ,Ắ,Ằ,Ẳ,Ặ,
+ Α}, % Greek
+ Æ = {Ǽ},
+ B = {฿,
+ Β}, % Greek
+ C = {Ç,Ć,Ĉ,Ċ,Č},
+ D = {Ð,Ď,Đ,Ḍ,Ḏ},
+ E = {È,É,Ê,Ë,Ē,Ĕ,Ė,Ę,Ě,Ȅ,Ẹ,Ẻ,Ẽ,Ề,Ế,Ễ,Ể,Ệ,
+ Ε}, % Greek
+ G = {Ĝ,Ğ,Ġ,Ģ,Ǧ,Ǵ},
+ H = {Ĥ,Ħ,Ḥ,Ḧ,Ḫ,
+ Η}, % Greek
+ I = {Ì,Í,Î,Ï,Ĩ,Ī,Ĭ,Į,İ,Ȉ,Ỉ,Ị,
+ Ι}, % Greek
+ J = {Ĵ},
+ K = {Ķ,
+ Κ}, % Greek
+ L = {Ĺ,Ļ,Ł,Ḷ}, % Ľ,Ŀ,Ḹ
+ M = {Μ}, % Greek
+ N = {Ñ,Ń,Ņ,Ň,Ṅ,Ṇ,
+ Ν}, % Greek
+ O = {Ò,Ó,Ô,Õ,Ö,Ø,Ō,Ŏ,Ő,Ọ,Ơ,Ǫ,Ǿ,Ȍ,Ỏ,Ố,Ồ,Ổ,Ỗ,Ộ,Ớ,Ờ,Ỡ,Ở,Ợ,
+ Ο}, % Greek
+ P = {Ρ}, % Greek
+ R = {Ŕ,Ŗ,Ř,Ȑ,Ṛ,Ṙ,Ṝ},
+ S = {Ś,Ŝ,Ş,Š,Ș,Ṣ},
+ T = {Ţ,Ť,Ț,Ṭ,Ṯ,
+ Τ}, % Greek
+ U = {Ù,Ú,Û,Ü,Ũ,Ū,Ŭ,Ů,Ű,Ų,Ư,Ȕ,Ụ,Ủ,Ứ,Ừ,Ử,Ữ,Ự},
+ W = {Ŵ,Ẁ,Ẃ,Ẅ},
+ X = {Χ}, % Greek
+ Y = {Ý,Ŷ,Ÿ,Ỵ,Ỷ,Ỹ},
+ Z = {Ź,Ż,Ž,Ẓ,
+ Ζ}, % Greek
+ a = {à,á,â,ã,ä,å,ā,ă,ą,ǻ,ȁ,ạ,ả,ấ,ầ,ẩ,ẫ,ậ,ắ,ằ,ẳ,ẵ},
+ æ = {ǽ},
+ c = {ç,ć,ĉ,ċ,č},
+ d = {đ,ḍ,ḏ},
+ e = {è,é,ê,ë,ē,ĕ,ė,ę,ě,ȅ,ẹ,ẻ,ẽ,ế,ề,ể,ễ,ệ},
+ f = {/f_f},
+ g = {ĝ,ğ,ġ,ģ,ǧ,ǵ},
+ h = {ĥ,ħ,ḥ,ḧ,ḫ},
+ i = {ì,í,î,ï,ĩ,ī,ĭ,į,ı,ȉ,ỉ,ị},
+ j = {ĵ},
+ k = {ķ},
+ l = {ĺ,ļ,ł,ḷ,ḹ}, % ľ,l·
+ n = {ñ,ń,ņ,ň,ṅ,ṇ},
+ o = {ò,ó,ô,õ,ö,ø,ō,ŏ,ő,ọ,ơ,ǫ,ǿ,ȍ,ỏ,ố,ồ,ổ,ỗ,ộ,ớ,ờ,ỡ,ở,ợ},
+ r = {ŕ,ŗ,ř,ȑ,ṛ,ṙ,ṝ},
+ s = {ś,ŝ,ş,š,ș,ṣ},
+ t = {ţ,ț,ṭ,ṯ,ẗ}, % ť
+ u = {ù,ú,û,ü,ũ,ū,ŭ,ů,ű,ų,ư,ȕ,ụ,ủ,ứ,ừ,ử,ữ,ự},
+ w = {ŵ,ẁ,ẃ,ẅ},
+ y = {ý,ŷ,ÿ,ỳ,ỵ,ỷ,ỹ},
+ z = {ź,ż,ž,ẓ},
+ }
+
+%%% -----------------------------------------------------------------------
+%%% PROTRUSION
+
+\SetProtrusion
+ [ name = LMR-default ]
+ { encoding = {EU1,EU2},
+ family = Latin Modern Roman }
+ {
+ A = {50,50},
+ Æ = {50, },
+ F = { ,50},
+ J = {50, },
+ K = { ,50},
+ L = { ,50},
+ T = {50,50},
+ V = {50,50},
+ W = {50,50},
+ X = {50,50},
+ Y = {50,50},
+ k = { ,50},
+ r = { ,50},
+ t = { ,70},
+ v = {50,50},
+ w = {50,50},
+ x = {50,50},
+ y = {50,70},
+ 0 = { ,50},
+ 1 = {100,200},
+ 2 = {50,50},
+ 3 = {50,50},
+ 4 = {70,70},
+ 5 = { ,50},
+ 6 = { ,50},
+ 7 = {50,100},
+ 8 = { ,50},
+ 9 = { ,50},
+ . = { ,700},
+ {,}= { ,500},
+ : = { ,500},
+ ; = { ,500},
+ ! = { ,100},
+ ? = { ,200},
+ @ = {50,50},
+ ~ = {200,250},
+ \% = {50,50},
+ * = {300,300},
+ + = {250,250},
+ - = {400,500}, % /hyphen
+ – = {400,300}, % /endash
+ — = {300,200}, % /emdash
+ _ = {200,200}, % /underscore
+ / = {200,300},
+ /backslash = {200,300},
+ ' = {300,400}, % /quotesingle
+ ‘ = {500,700}, ’ = {500,600},
+ “ = {500,300}, ” = {200,600},
+ ‚ = {400,400}, „ = {400,400},
+ ‹ = {400,400}, › = {300,500},
+ « = {300,200}, » = {100,400},
+ ¡ = {100, }, ¿ = {100, },
+ ( = {300, }, ) = { ,300},
+ < = {200,100}, > = {100,200},
+ /braceleft = {400,200}, /braceright = {200,400},
+ /angleleft = {400, }, /angleright = { ,400},
+ † = {100,100},
+ ‡ = { 80, 80},
+ • = {200,200},
+ · = {400,450}, % / periodcentered
+ ℃ = { 80, 50},
+ ₡ = { , 50},
+ ° = {400,400},
+ ™ = {100,200},
+ © = {100,100},
+ ® = {100,100},
+ ª = {100,200},
+ º = {100,200},
+ ¹ = {200,250},
+ ² = { 50,100},
+ ³ = { 50,100},
+ ¬ = {200, },
+ − = {300,300},
+ ± = {150,200},
+ × = {150,250},
+ ÷ = {150,250},
+ € = {100, },
+ /one.oldstyle = {100,100},
+ /two.oldstyle = { 50, 50},
+ /three.oldstyle = { 30, 80},
+ /four.oldstyle = { 50, 50},
+ /seven.oldstyle = { 50, 80},
+ Γ = { ,180}, % /Gamma
+ Δ = {100,100}, % /Delta
+ Θ = { 50, 50}, % /Theta
+ Λ = {100,100}, % /Lambda
+% Ξ = {,}, % /Xi
+% Π = {,}, % /Pi
+ Σ = { 50, 50}, % /Sigma
+ Υ = {100,100}, % /Upsilon
+ Φ = { 50, 50}, % /Phi
+ Ψ = { 50, 50}, % /Psi
+% Ω = {,}, % /Omega
+ }
+
+\SetProtrusion
+ [ name = LMR-it ]
+ { encoding = {EU1,EU2},
+ family = Latin Modern Roman,
+ shape = {it,sl} }
+ {
+ A = {125,100},
+ Æ = {125,-55},
+ B = {90,-40},
+ C = {145,-75},
+ D = {75, -28},
+ E = {80,-55},
+ F = {85,-80},
+ G = {153,-15},
+ H = {73,-60},
+ I = {140,-120},
+ IJ = {140,-80},
+ J = {135,-80},
+ K = {70,-30},
+ L = {87, 40},
+ M = {67,-45},
+ N = {75,-55},
+ O = {150,-30},
+ Π= {150,-55},
+ P = {82,-50},
+ Q = {150,-30},
+ R = {75, 15},
+ S = {90,-65},
+ $ = {100,-20},
+ T = {220,-85},
+ U = {230,-55},
+ V = {260,-60},
+ W = {185,-55},
+ X = {70,-30},
+ Y = {250,-60},
+ Z = {90,-60},
+ a = {150,-10},
+ b = {170, },
+ c = {173,-10},
+ d = {150,-55},
+ e = {180, },
+ f = { ,-250},
+ g = {150,-10},
+ h = {100, },
+ i = {210, },
+ ij = {210,-40},
+ j = { ,-40},
+ k = {110,-50},
+ l = {240,-110},
+ m = {80, },
+ n = {115, },
+ o = {155, },
+ q = {170,-40},
+ r = {155,-40},
+ s = {130, },
+ t = {230,-10},
+ u = {120, },
+ v = {140,-25},
+ w = {98,-20},
+ x = {65,-40},
+ y = {130,-20},
+ z = {110,-80},
+ 0 = {170,-85},
+ 1 = {230,110},
+ 2 = {130,-70},
+ 3 = {140,-70},
+ 4 = {130,80},
+ 5 = {160, },
+ 6 = {175,-30},
+ 7 = {250,-150},
+ 8 = {130,-40},
+ 9 = {155,-80},
+ . = { ,500},
+ {,}= { ,450},
+ : = { ,300},
+ ; = { ,300},
+ & = {130,30},
+ \% = {180,50},
+ * = {380,20},
+ + = {180,200},
+ @ = {180,10},
+ ~ = {200,150},
+ ( = {300, }, ) = { ,70},
+ / = {100,100},
+ - = {500,300}, % /hyphen
+ – = {500,300}, % /endash
+ — = {400,170}, % /emdash
+ _ = {100,200}, % /underscore
+ ' = {300,400}, % /quotesingle
+ " = {500,300},
+ ‘ = {800,200}, ’ = {800,-20},
+ “ = {540,100}, ” = {500,100},
+ ‚ = {300,700}, „ = {200,600},
+ ‹ = {500,300}, › = {400,400},
+ « = {400,100}, » = {200,300},
+ ¡ = {200, }, ¿ = {200, },
+ < = {300,100}, > = {200,100},
+ /backslash = {300,300},
+ /braceleft = {400,100}, /braceright = {200,200},
+ † = {200, 80},
+ ‡ = {120, 80},
+ • = {220,100},
+ · = {550,300}, % / periodcentered
+ ℃ = {170, },
+ ₡ = {100, 50},
+ ¶ = {200, },
+ ° = {500,300},
+ ™ = {200, 70},
+ © = { 50, 70},
+ ® = { 50, 70},
+ ª = {140,100},
+ º = {140,100},
+ ¹ = {400,150},
+ ² = {250, 80},
+ ³ = {250, 80},
+ ¬ = {250, 80},
+ − = {300,200},
+ ± = {150,170},
+ × = {200,200},
+ ÷ = {200,200},
+ € = {150, },
+ /one.oldstyle = {100,100},
+ /two.oldstyle = {100, 80},
+ /three.oldstyle = { 80, 50},
+ /four.oldstyle = { 80, 80},
+ /five.oldstyle = { 50, },
+ /six.oldstyle = { 50, },
+ /seven.oldstyle = { 80, 80},
+ /eight.oldstyle = { 50, },
+ Γ = {100,120}, % /Gamma
+ Δ = {120,100}, % /Delta
+ Θ = {120, 50}, % /Theta
+ Λ = {130,100}, % /Lambda
+ Ξ = {100,}, % /Xi
+ Π = {100,}, % /Pi
+ Σ = {100, 50}, % /Sigma
+ Υ = {180,100}, % /Upsilon
+ Φ = {130, 70}, % /Phi
+ Ψ = {130, 50}, % /Psi
+ Ω = { 50,}, % /Omega
+ }
+
+\endinput
+%%
+%% End of file `mt-LatinModernRoman.cfg'.
diff --git a/Master/texmf-dist/tex/latex/microtype/mt-PalatinoLinotype.cfg b/Master/texmf-dist/tex/latex/microtype/mt-PalatinoLinotype.cfg
new file mode 100755
index 00000000000..e92feeaa8cf
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/microtype/mt-PalatinoLinotype.cfg
@@ -0,0 +1,293 @@
+%% mt-PalatinoLinotype.cfg:
+%% Microtype configuration file for
+%% Hermann Zapf’s Palatino font and
+%% close substitutes
+%%
+%% Copyright © 2012 Loren B. Davis. ALL RIGHTS RESERVED. This is a derived
+%% work and a modified component of R. Schlicht’s microtype package. The na-
+%% ture of the changes to the mt-ppl.cfg component is: supporting character
+%% protrusion for Unicode versions of Palatino and similar fonts.
+%%
+%% This work may be distributed and/or modified under the conditions of the
+%% LaTeX Project Public License, either version 1.3c 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.3c or later is part
+%% of all distributions of LaTeX version 2005/12/01 or later.
+%%
+%% Palatino is a registered trademark of Linotype GmbH. Used without permis-
+%% sion.
+
+\ProvidesFile
+ {mt-PalatinoLinotype.cfg}[2012/03/10 v1.0 microtype config. file: Palatino Linotype and similar fonts (LBD)]
+
+\DeclareCharacterInheritance
+ { encoding = {EU1,EU2},
+ family = {PalatinoLinotype} }
+ { A = {À,Á,Â,Ã,Ä,Ā,Ă,Ą,Ǎ,Ǟ,Ǡ,Ȧ,Ǻ,Ȁ,Ȃ,Ḁ,Ạ,Ả,Ấ,Ầ,Ẩ,Ẫ,Ậ,Ắ,Ằ,Ẳ,Ẵ,Ặ,Ꜳ},
+ B = {Ḃ,Ḅ,Ḇ},
+ C = {Ç,Ć,Ĉ,Ḉ,Ċ,Č},
+ D = {Ď,Ḋ,Ḍ,Ḏ,Ḑ,Ḓ},
+ E = {È,É,Ê,Ë,Ē,Ĕ,Ė,Ę,Ě,Ȅ,Ȩ,Ȇ,Ḕ,Ḗ,Ḙ,Ḛ,Ḝ,Ẹ,Ẻ,Ẽ,Ế,Ề,Ể,Ễ,Ệ},
+ F = {Ḟ},
+ G = {Ĝ,Ğ,Ġ,Ģ,Ǧ,Ǵ,Ḡ},
+ H = {Ĥ,Ȟ,Ḣ,Ḥ,Ḧ,Ḩ,Ḫ},
+ I = {Ì,Í,Î,Ȉ,Ï,Į,Ĩ,Ị,Ī,İ,Ǐ,Ỉ,Ȋ,Ĭ,Ḭ,Ï},
+ J = {Ĵ},
+ K = {Ķ,Ǩ,Ḱ,Ḳ,Ḵ},
+ L = {Ĺ,Ļ,Ľ,Ḷ,Ḹ,Ḻ,Ḽ,Ỻ,Ŀ,Ł}, % L·
+ M = {Ḿ,Ṁ,Ṃ},
+ N = {Ñ,Ń,Ņ,Ň,Ǹ,Ṅ,Ṇ,Ṉ,Ṋ},
+ O = {Ò,Ó,Ô,Õ,Ö,Ō,Ŏ,Ő,Ǒ,Ǫ,Ǭ,Ȍ,Ȏ,Ȫ,Ȭ,Ȯ,Ȱ,Ṍ,Ṏ,Ṑ,Ṓ,Ọ,Ỏ,Ố,Ồ,Ổ,Ỗ,Ộ,Ớ,Ờ,Ở,Ỡ,Ơ},
+ P = {Ṕ,Ṗ},
+ R = {Ŕ,Ŗ,Ř,Ȑ,Ȓ,Ṙ,Ṛ,Ṝ,Ṟ},
+ S = {Ś,Ŝ,Ş,Š,Ș,Ṡ,Ṣ,Ṥ,Ṧ,Ṩ},
+ T = {Ţ,Ť,Ț,Ṫ,Ṭ,Ṯ,Ṱ},
+ U = {Ù,Ú,Û,Ü,Ũ,Ū,Ŭ,Ů,Ű,Ų,Ǔ,Ǖ,Ǘ,Ǚ,Ǜ,Ȕ,Ȗ,Ṳ,Ṵ,Ṷ,Ṹ,Ṻ,Ụ,Ủ,Ứ,Ừ,Ử,Ữ,Ự},
+ V = {Ṽ,Ṿ},
+ W = {Ŵ,Ẁ,Ẃ,Ẅ,Ẇ,Ẉ},
+ X = {Ẋ,Ẍ},
+ Y = {Ý,Ŷ,Ÿ,Ȳ,Ẏ,Ỳ,Ỵ,Ỷ,Ỹ},
+ Z = {Ź,Ż,Ž,Ẑ,Ẓ,Ẕ},
+ a = {à,á,â,ã,ä,å,ā,ă,ą,ǎ,ǟ,ǡ,ȧ,ǻ,ȁ,ȃ,ḁ,ạ,ả,ầ,ấ,ẩ,ẫ,ậ,ắ,ằ,ẳ,ẵ,ặ}, % aʾ
+ b = {ḃ,ḅ,ḇ},
+ c = {ç,ć,ĉ,ċ,č,ḉ},
+ d = {ď,ḋ,ḍ,ḏ,ḑ,ḓ},
+ e = {è,é,ê,ë,ē,ĕ,ė,ę,ě,ȅ,ȩ,ȇ,ḕ,ḗ,ḙ,ḛ,ḝ,ẹ,ẻ,ẽ,ề,ế,ể,ễ,ệ},
+ f = {ḟ,ff},
+ g = {ĝ,ğ,ġ,ģ,ǧ,ǵ,ḡ},
+ h = {ĥ,ȟ,ḣ,ḥ,ḧ,ḩ,ḫ,ẖ},
+ i = {ı,ì,í,î,ȉ,ǐ,ï,į,ī,ị,ĩ,ḭ,ḯ,ỉ,ȋ,ĭ},
+ j = {ĵ,ǰ},
+ k = {ķ,ǩ,ḱ,ḳ,ḵ},
+ l = {ĺ,ļ,ḻ,ḷ,ḹ,ḽ}, % ľ,l·
+ m = {ḿ,ṁ,ṃ},
+ n = {ñ,ń,ņ,ň,ǹ,ṅ,ṇ,ṉ,ṋ}, % ʼn
+ o = {ò,ó,ô,õ,ö,ō,ŏ,ő,ǒ,ǫ,ǭ,ȍ,ȏ,ȫ,ȭ,ȯ,ȱ,ṍ,ṏ,ṑ,ṓ,ọ,ỏ,ồ,ố,ổ,ỗ,ộ,ớ,ờ,ở,ỡ,ợ},
+ p = {ṕ,ṗ},
+ r = {ŕ,ŗ,ř,ȑ,ȓ,ṙ,ṛ,ṝ,ṟ},
+ s = {ś,ŝ,ş,š,ș,ṡ,ṣ,ṥ,ṧ,ṩ},
+ t = {ţ,ț,ṫ,ṭ,ṯ,ṱ,ẗ}, % ť
+ u = {ù,ú,û,ü,ũ,ū,ŭ,ů,ű,ų,ǔ,ǖ,ǘ,ǚ,ǜ,ȕ,ȗ,ṳ,ṵ,ṷ,ṹ,ṻ,ụ,ủ,ứ,ừ,ử,ữ,ự},
+ v = {ṽ,ṿ},
+ w = {ŵ,ẁ,ẃ,ẅ,ẇ,ẉ,ẘ},
+ x = {ẋ,ẍ},
+ y = {ý,ÿ,ŷ,ȳ,ẏ,ẙ,ỳ,ỵ,ỷ,ỹ},
+ z = {ź,ż,ž,ẑ,ẓ,ẕ},
+ }
+
+\SetProtrusion
+ [ name = palatino-default ]
+ { encoding = {EU1,EU2},
+ family = {PalatinoLinotype} }
+ {
+ A = {50,50},
+ D = { ,50},
+ J = {50, },
+ K = { ,50},
+ L = { ,50},
+ O = {25, },
+ T = {50,50},
+ V = {50,50},
+ W = {50,50},
+ X = {50,50},
+ Y = {50,50},
+ b = { ,25},
+ d = {25,30},
+ f = { ,50},
+ g = { ,100},
+ k = { ,50},
+ p = { ,50},
+ q = {50, },
+ r = { ,50},
+ t = { ,50}, st = { ,50}, ſt = { ,50},
+ v = {75,50},
+ w = {50,50},
+ x = {50,50},
+ y = {50,70},
+ 1 = {100,50},
+ 2 = {25,50},
+ 4 = {50, },
+ 6 = {50, },
+ 9 = {25, },
+ Æ = {100, },
+ Π= {25, },
+ . = { ,700}, ‥ = { ,350}, … = {,150},
+ {,}= { ,500},
+ : = { ,500},
+ ; = { ,500},
+ ! = { ,100}, ‼ = { ,100},
+ ? = { ,200}, ‽ = { ,200},
+ @ = {50,50},
+ ~ = {200,250},
+ & = {50,100},
+ \% = {100,100},
+ * = {200,200},
+ + = {250,250},
+ ( = {100, }, ) = { ,300},
+ / = {200,300},
+ - = {400,500},
+ \textendash = {300,300}, \textemdash = {200,200},
+ \textquoteleft = {500,700}, \textquoteright = {500,700},
+ \textquotedblleft = {300,400}, \textquotedblright = {300,400},
+ \textbackslash = {200,300},
+ \quotesinglbase = {400,400}, \quotedblbase = {400,400},
+ \guilsinglleft = {400,400}, \guilsinglright = {300,500},
+ \guillemotleft = {300,300}, \guillemotright = {200,400},
+ \textexclamdown = {100, }, \textquestiondown = {100, },
+ \textbraceleft = {400,200}, \textbraceright = {200,400},
+ \textless = {200,100}, \textgreater = {100,200},
+ ≤ = {200,100}, ≥ = {100,200},
+ \textminus = {300,300},
+ \texttrademark = {200,200},
+ \textcopyright = {200,200},
+ \textregistered = {200,200},
+ \textdegree = {300,300},
+ ¦ = {450,500}, ¬ = {250,150},
+ ⌐ = {150,250},
+ · = {850, 700},
+ ¶ = {100,0},
+ × = {150, 300},
+ ª = {300,300}, º = {300,300},
+ ⁰ = {200,400},
+ ¹ = {400,350}, ² = {200,300}, ³ = {250,400},
+ ⁴ = {250,350}, ⁵ = {200,300}, ⁶ = {250,400},
+ ⁷ = {200,450}, ⁸ = {250,400}, ⁹ = {200,350},
+ ₀ = {200,400},
+ ₁ = {400,250}, ₂ = {200,300}, ₃ = {250,400},
+ ₄ = {250,350}, ₅ = {200,300}, ₆ = {250,400},
+ ₇ = {200,450}, ₈ = {250,400}, ₉ = {200,350},
+ ± = {150,100}, ÷ = {300,300},
+ þ = { ,25},
+ ₊ = {300,450}, ₋ = {300,450},
+ ⁺ = {300,450}, ⁻ = {300,450},
+ † = {200,250}, ‡ = {200,250},
+ π = {50, },
+ ſ = { ,50},
+ № = {100,150},
+ \textservicemark = {100,200},
+ ‐ = {400,500}, ‑ = {400,500}, ‒ = {200,300},
+ – = {205,305}, — = {200,300}, ― = {50,150},
+ • = {125,200},
+% /a.sc = {50,50},
+ }
+
+\SetProtrusion
+ [ name = palatino-it ]
+ { encoding = {EU1,EU2},
+ family = {PalatinoLinotype},
+ shape = {it,sl} }
+ {
+ A = {50,50},
+ Æ = {50, },
+ B = {50, },
+ C = {50, },
+ D = {50,50},
+ E = {50, },
+ F = {50, },
+ G = {50, },
+ H = {50, },
+ K = {50, },
+ L = {50, },
+ O = {50, },
+ Π= {50, },
+ P = {50, },
+ Q = {50, },
+ R = {50, },
+ S = {50, },
+ $ = {50, },
+ T = {100, },
+ U = {50, },
+ V = {100,50},
+ W = {50, },
+ X = {50, },
+ Y = {100,50},
+ b = { ,50},
+ c = {25, },
+ g = {75, },
+ i = {25, },
+ m = { ,50},
+ n = { ,50},
+ p = { ,25},
+ q = {25, },
+ x = { ,50},
+ 1 = {100, },
+ 2 = {50, },
+ 4 = {50, },
+ 7 = {50, },
+ . = { ,500}, ‥ = { ,350}, … = { ,200},
+ {,}= { ,500},
+ : = { ,300},
+ ; = { ,300},
+ ? = { ,300}, ‽ = { ,300},
+ & = {50,50},
+ \% = {100,100},
+ * = {200,200},
+ + = {150,200},
+ @ = {50,50},
+ ~ = {200,150},
+ ( = {200, }, ) = { ,200},
+ / = {100,200},
+ - = {300,500},
+ \textendash = {300,300}, \textemdash = {200,200},
+ \textquoteleft = {700,400}, \textquoteright = {700,400},
+ \textquotedblleft = {500,300}, \textquotedblright = {500,300},
+ _ = {100,100},
+ \textbackslash = {100,200},
+ \quotesinglbase = {500,500}, \quotedblbase = {400,400},
+ \guilsinglleft = {400,400}, \guilsinglright = {300,500},
+ \guillemotleft = {300,300}, \guillemotright = {300,300},
+ \textexclamdown = {100, }, \textquestiondown = {200, },
+ \textbraceleft = {200,100}, \textbraceright = {200,200},
+ \textless = {300,100}, \textgreater = {200,100},
+ ≤ = {200,100}, ≥ = {100,200},
+ ¦ = {450,500}, ¬ = {250,150},
+ · = {850, 700},
+ ¶ = {100,0},
+ × = {150, 300},
+ ª = {300,250}, ° = {300,300}, º = {300,250},
+ ⁰ = {300,200},
+ ¹ = {300,150}, ² = {350,200}, ³ = {250,150},
+ ⁴ = {350,100}, ⁵ = {300, 50}, ⁶ = {400,100},
+ ⁷ = {400, 50}, ⁸ = {250, 50}, ⁹ = {300, 50},
+ ₀ = {300,300},
+ ₁ = {300,350}, ₂ = {300,150}, ₃ = {250,250},
+ ₄ = {400,200}, ₅ = {300,100}, ₆ = {450,200},
+ ₇ = {450,150}, ₈ = {400,250}, ₉ = {400,200},
+ ± = {150,100}, ÷ = {300,300},
+ þ = { 50, },
+ † = {250,200}, ‡ = {250,200},
+ ₊ = {300,450}, ₋ = {300,450},
+ ⁺ = {300,450}, ⁻ = {300,450},
+ ‐ = {300,500}, ‑ = {300,500}, ‒ = {100,300},
+ – = {125,305}, — = {200,300}, ― = {125,150},
+ • = {125,200}
+ }
+
+\SetProtrusion
+ [ name = palatino-sc,
+ load = palatino-default ]
+ { encoding = {EU1,EU2},
+ family = {PalatinoLinotype},
+ shape = sc }
+ {
+ a = {50,50},
+ æ = {50, },
+ b = { 0, 0},
+ d = { 0, 0},
+ f = { 0, 0},
+ g = { 0, 0},
+ j = {50, },
+ l = { ,50},
+ o = { 0, 0},
+ p = { 0, 0},
+ q = { 0, },
+ r = { , 0},
+ t = {50,50},
+ y = {50,50},
+ fl = { 0,50},
+ ffl = { 0,50},
+ ſt = { 0,50},
+ st = { 0,50}
+ }
+
+\endinput
diff --git a/Master/texmf-dist/tex/latex/microtype/mt-bch.cfg b/Master/texmf-dist/tex/latex/microtype/mt-bch.cfg
index 795a8e1653f..7cd6391674a 100644
--- a/Master/texmf-dist/tex/latex/microtype/mt-bch.cfg
+++ b/Master/texmf-dist/tex/latex/microtype/mt-bch.cfg
@@ -9,8 +9,8 @@
%% ------------------------------------------------------------------------
%%
%% The `microtype' package
-%% An interface to the micro-typographic extensions of pdfTeX
-%% Copyright (c) 2004--2010 R Schlicht <w.m.l@gmx.net>
+%% Subliminal refinements towards typographical perfection
+%% Copyright (c) 2004--2013 R Schlicht <w.m.l@gmx.net>
%%
%% This work may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License, either version 1.3c of this license or (at
@@ -21,7 +21,8 @@
%% This work has the LPPL maintenance status `author-maintained'.
%%
%% This work consists of the files microtype.dtx and microtype.ins and the
-%% derived files microtype.sty, microtype.lua and letterspace.sty.
+%% derived files microtype.sty, microtype-pdftex.def, microtype-xetex.def,
+%% microtype-luatex.def, microtype.lua and letterspace.sty.
%%
%% ------------------------------------------------------------------------
%% This is a font-specific configuration file for the `microtype' package.
diff --git a/Master/texmf-dist/tex/latex/microtype/mt-blg.cfg b/Master/texmf-dist/tex/latex/microtype/mt-blg.cfg
index d328a68752e..ec675c344cb 100644
--- a/Master/texmf-dist/tex/latex/microtype/mt-blg.cfg
+++ b/Master/texmf-dist/tex/latex/microtype/mt-blg.cfg
@@ -9,8 +9,8 @@
%% ------------------------------------------------------------------------
%%
%% The `microtype' package
-%% An interface to the micro-typographic extensions of pdfTeX
-%% Copyright (c) 2004--2010 R Schlicht <w.m.l@gmx.net>
+%% Subliminal refinements towards typographical perfection
+%% Copyright (c) 2004--2013 R Schlicht <w.m.l@gmx.net>
%%
%% This work may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License, either version 1.3c of this license or (at
@@ -21,7 +21,8 @@
%% This work has the LPPL maintenance status `author-maintained'.
%%
%% This work consists of the files microtype.dtx and microtype.ins and the
-%% derived files microtype.sty, microtype.lua and letterspace.sty.
+%% derived files microtype.sty, microtype-pdftex.def, microtype-xetex.def,
+%% microtype-luatex.def, microtype.lua and letterspace.sty.
%%
%% ------------------------------------------------------------------------
%% This is a font-specific configuration file for the `microtype' package.
diff --git a/Master/texmf-dist/tex/latex/microtype/mt-cmr.cfg b/Master/texmf-dist/tex/latex/microtype/mt-cmr.cfg
index 569a465f32d..d1560da8983 100644
--- a/Master/texmf-dist/tex/latex/microtype/mt-cmr.cfg
+++ b/Master/texmf-dist/tex/latex/microtype/mt-cmr.cfg
@@ -9,8 +9,8 @@
%% ------------------------------------------------------------------------
%%
%% The `microtype' package
-%% An interface to the micro-typographic extensions of pdfTeX
-%% Copyright (c) 2004--2010 R Schlicht <w.m.l@gmx.net>
+%% Subliminal refinements towards typographical perfection
+%% Copyright (c) 2004--2013 R Schlicht <w.m.l@gmx.net>
%%
%% This work may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License, either version 1.3c of this license or (at
@@ -21,7 +21,8 @@
%% This work has the LPPL maintenance status `author-maintained'.
%%
%% This work consists of the files microtype.dtx and microtype.ins and the
-%% derived files microtype.sty, microtype.lua and letterspace.sty.
+%% derived files microtype.sty, microtype-pdftex.def, microtype-xetex.def,
+%% microtype-luatex.def, microtype.lua and letterspace.sty.
%%
%% ------------------------------------------------------------------------
%% This is a font-specific configuration file for the `microtype' package.
@@ -37,7 +38,7 @@
%% ------------------------------------------------------------------------
%%
\ProvidesFile
- {mt-cmr.cfg}[2009/11/09 v2.0 microtype config. file: Computer Modern Roman (RS)]
+ {mt-cmr.cfg}[2011/04/09 v2.1 microtype config. file: Computer Modern Roman (RS)]
%%% -----------------------------------------------------------------------
%%% PROTRUSION
@@ -180,58 +181,84 @@
[ name = cmr-it ]
{ }
{
- A = {100,50},
- B = {50, },
- C = {100, },
- D = {50,50},
- E = {50, },
- F = {100, },
- G = {100, },
- H = {50, },
- I = {50, },
- J = {100, },
- K = {50, },
- L = {50, },
- M = {50, },
- N = {50, },
- O = {100, },
- P = {50, },
- Q = {100, },
- R = {50, },
- S = {50, },
- $ = {50, },
- T = {100, },
- U = {50, },
- V = {100, },
- W = {100, },
- X = {50, },
- Y = {100, },
- 0 = {100, },
- 1 = {200,50},
- 2 = {100,-100},
- 3 = {100,-100},
- 4 = {150, },
- 5 = {100, },
- 6 = {100, },
- 7 = {200,-150},
- 8 = {50,-50},
- 9 = {100,-100},
+ A = {100,100},
+ B = {83,-40},
+ C = {165,-75},
+ D = {75, -28},
+ E = {80,-55},
+ F = {85,-80},
+ G = {153,-15},
+ H = {73,-60},
+ I = {140,-120},
+ J = {135,-80},
+ K = {70,-30},
+ L = {87, 40},
+ M = {67,-45},
+ N = {75,-55},
+ O = {150,-30},
+ P = {82,-50},
+ Q = {150,-30},
+ R = {75, 15},
+ S = {90,-65},
+ $ = {100,-20},
+ T = {220,-85},
+ U = {230,-55},
+ V = {260,-60},
+ W = {185,-55},
+ X = {70,-30},
+ Y = {250,-60},
+ Z = {90,-60},
+ a = {150,-10},
+ b = {170, },
+ c = {173,-10},
+ d = {150,-55},
+ e = {180, },
+ f = { ,-250},
+ g = {150,-10},
+ h = {100, },
+ i = {210, },
+ j = { ,-40},
+ k = {110,-50},
+ l = {240,-110},
+ m = {80, },
+ n = {115, },
+ o = {155, },
+ q = {170,-40},
+ r = {155,-40},
+ s = {130, },
+ t = {230,-10},
+ u = {120, },
+ v = {140,-25},
+ w = {98,-20},
+ x = {65,-40},
+ y = {130,-20},
+ z = {110,-80},
+ 0 = {170,-85},
+ 1 = {230,110},
+ 2 = {130,-70},
+ 3 = {140,-70},
+ 4 = {130,80},
+ 5 = {160, },
+ 6 = {175,-30},
+ 7 = {250,-150},
+ 8 = {130,-40},
+ 9 = {155,-80},
. = { ,500},
- {,}= { ,500},
+ {,}= { ,450},
: = { ,300},
; = { ,300},
- & = {100,50},
- \% = {100, },
- * = {400,100},
- + = {150,200},
- @ = {200,50},
+ & = {130,30},
+ \% = {180,50},
+ * = {380,20},
+ + = {180,200},
+ @ = {180,10},
~ = {200,150},
- ( = {200, }, ) = { ,200},
- / = {100,200},
+ ( = {300, }, ) = { ,70},
+ / = {100,100},
- = {500,300},
- \textendash = {500,300}, \textemdash = {400,200},
- \textquoteleft = {800,200}, \textquoteright = {800,200},
- \textquotedblleft = {700,100}, \textquotedblright = {500,300}
+ \textendash = {500,300}, \textemdash = {400,170},
+ \textquoteleft = {800,200}, \textquoteright = {800,-20},
+ \textquotedblleft = {540,100}, \textquotedblright = {500,100}
}
\SetProtrusion
diff --git a/Master/texmf-dist/tex/latex/microtype/mt-euf.cfg b/Master/texmf-dist/tex/latex/microtype/mt-euf.cfg
index e9bc49ea379..563f4b94b7d 100644
--- a/Master/texmf-dist/tex/latex/microtype/mt-euf.cfg
+++ b/Master/texmf-dist/tex/latex/microtype/mt-euf.cfg
@@ -9,8 +9,8 @@
%% ------------------------------------------------------------------------
%%
%% The `microtype' package
-%% An interface to the micro-typographic extensions of pdfTeX
-%% Copyright (c) 2004--2010 R Schlicht <w.m.l@gmx.net>
+%% Subliminal refinements towards typographical perfection
+%% Copyright (c) 2004--2013 R Schlicht <w.m.l@gmx.net>
%%
%% This work may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License, either version 1.3c of this license or (at
@@ -21,7 +21,8 @@
%% This work has the LPPL maintenance status `author-maintained'.
%%
%% This work consists of the files microtype.dtx and microtype.ins and the
-%% derived files microtype.sty, microtype.lua and letterspace.sty.
+%% derived files microtype.sty, microtype-pdftex.def, microtype-xetex.def,
+%% microtype-luatex.def, microtype.lua and letterspace.sty.
%%
%% ------------------------------------------------------------------------
%% This is a font-specific configuration file for the `microtype' package.
diff --git a/Master/texmf-dist/tex/latex/microtype/mt-eur.cfg b/Master/texmf-dist/tex/latex/microtype/mt-eur.cfg
index aead497cb7c..c5a1ec24b1c 100644
--- a/Master/texmf-dist/tex/latex/microtype/mt-eur.cfg
+++ b/Master/texmf-dist/tex/latex/microtype/mt-eur.cfg
@@ -9,8 +9,8 @@
%% ------------------------------------------------------------------------
%%
%% The `microtype' package
-%% An interface to the micro-typographic extensions of pdfTeX
-%% Copyright (c) 2004--2010 R Schlicht <w.m.l@gmx.net>
+%% Subliminal refinements towards typographical perfection
+%% Copyright (c) 2004--2013 R Schlicht <w.m.l@gmx.net>
%%
%% This work may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License, either version 1.3c of this license or (at
@@ -21,7 +21,8 @@
%% This work has the LPPL maintenance status `author-maintained'.
%%
%% This work consists of the files microtype.dtx and microtype.ins and the
-%% derived files microtype.sty, microtype.lua and letterspace.sty.
+%% derived files microtype.sty, microtype-pdftex.def, microtype-xetex.def,
+%% microtype-luatex.def, microtype.lua and letterspace.sty.
%%
%% ------------------------------------------------------------------------
%% This is a font-specific configuration file for the `microtype' package.
diff --git a/Master/texmf-dist/tex/latex/microtype/mt-euroitc.cfg b/Master/texmf-dist/tex/latex/microtype/mt-euroitc.cfg
index c550af7a186..8153724ece1 100644
--- a/Master/texmf-dist/tex/latex/microtype/mt-euroitc.cfg
+++ b/Master/texmf-dist/tex/latex/microtype/mt-euroitc.cfg
@@ -9,8 +9,8 @@
%% ------------------------------------------------------------------------
%%
%% The `microtype' package
-%% An interface to the micro-typographic extensions of pdfTeX
-%% Copyright (c) 2004--2010 R Schlicht <w.m.l@gmx.net>
+%% Subliminal refinements towards typographical perfection
+%% Copyright (c) 2004--2013 R Schlicht <w.m.l@gmx.net>
%%
%% This work may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License, either version 1.3c of this license or (at
@@ -21,7 +21,8 @@
%% This work has the LPPL maintenance status `author-maintained'.
%%
%% This work consists of the files microtype.dtx and microtype.ins and the
-%% derived files microtype.sty, microtype.lua and letterspace.sty.
+%% derived files microtype.sty, microtype-pdftex.def, microtype-xetex.def,
+%% microtype-luatex.def, microtype.lua and letterspace.sty.
%%
%% ------------------------------------------------------------------------
%% This is a font-specific configuration file for the `microtype' package.
diff --git a/Master/texmf-dist/tex/latex/microtype/mt-eus.cfg b/Master/texmf-dist/tex/latex/microtype/mt-eus.cfg
index 33f16930902..16e6c8f5f2d 100644
--- a/Master/texmf-dist/tex/latex/microtype/mt-eus.cfg
+++ b/Master/texmf-dist/tex/latex/microtype/mt-eus.cfg
@@ -9,8 +9,8 @@
%% ------------------------------------------------------------------------
%%
%% The `microtype' package
-%% An interface to the micro-typographic extensions of pdfTeX
-%% Copyright (c) 2004--2010 R Schlicht <w.m.l@gmx.net>
+%% Subliminal refinements towards typographical perfection
+%% Copyright (c) 2004--2013 R Schlicht <w.m.l@gmx.net>
%%
%% This work may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License, either version 1.3c of this license or (at
@@ -21,7 +21,8 @@
%% This work has the LPPL maintenance status `author-maintained'.
%%
%% This work consists of the files microtype.dtx and microtype.ins and the
-%% derived files microtype.sty, microtype.lua and letterspace.sty.
+%% derived files microtype.sty, microtype-pdftex.def, microtype-xetex.def,
+%% microtype-luatex.def, microtype.lua and letterspace.sty.
%%
%% ------------------------------------------------------------------------
%% This is a font-specific configuration file for the `microtype' package.
diff --git a/Master/texmf-dist/tex/latex/microtype/mt-msa.cfg b/Master/texmf-dist/tex/latex/microtype/mt-msa.cfg
index f0b954eb8ea..f1d0f86c162 100644
--- a/Master/texmf-dist/tex/latex/microtype/mt-msa.cfg
+++ b/Master/texmf-dist/tex/latex/microtype/mt-msa.cfg
@@ -9,8 +9,8 @@
%% ------------------------------------------------------------------------
%%
%% The `microtype' package
-%% An interface to the micro-typographic extensions of pdfTeX
-%% Copyright (c) 2004--2010 R Schlicht <w.m.l@gmx.net>
+%% Subliminal refinements towards typographical perfection
+%% Copyright (c) 2004--2013 R Schlicht <w.m.l@gmx.net>
%%
%% This work may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License, either version 1.3c of this license or (at
@@ -21,7 +21,8 @@
%% This work has the LPPL maintenance status `author-maintained'.
%%
%% This work consists of the files microtype.dtx and microtype.ins and the
-%% derived files microtype.sty, microtype.lua and letterspace.sty.
+%% derived files microtype.sty, microtype-pdftex.def, microtype-xetex.def,
+%% microtype-luatex.def, microtype.lua and letterspace.sty.
%%
%% ------------------------------------------------------------------------
%% This is a font-specific configuration file for the `microtype' package.
diff --git a/Master/texmf-dist/tex/latex/microtype/mt-msb.cfg b/Master/texmf-dist/tex/latex/microtype/mt-msb.cfg
index 6ed2d1fcc98..d1c8b11eed3 100644
--- a/Master/texmf-dist/tex/latex/microtype/mt-msb.cfg
+++ b/Master/texmf-dist/tex/latex/microtype/mt-msb.cfg
@@ -9,8 +9,8 @@
%% ------------------------------------------------------------------------
%%
%% The `microtype' package
-%% An interface to the micro-typographic extensions of pdfTeX
-%% Copyright (c) 2004--2010 R Schlicht <w.m.l@gmx.net>
+%% Subliminal refinements towards typographical perfection
+%% Copyright (c) 2004--2013 R Schlicht <w.m.l@gmx.net>
%%
%% This work may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License, either version 1.3c of this license or (at
@@ -21,7 +21,8 @@
%% This work has the LPPL maintenance status `author-maintained'.
%%
%% This work consists of the files microtype.dtx and microtype.ins and the
-%% derived files microtype.sty, microtype.lua and letterspace.sty.
+%% derived files microtype.sty, microtype-pdftex.def, microtype-xetex.def,
+%% microtype-luatex.def, microtype.lua and letterspace.sty.
%%
%% ------------------------------------------------------------------------
%% This is a font-specific configuration file for the `microtype' package.
diff --git a/Master/texmf-dist/tex/latex/microtype/mt-mvs.cfg b/Master/texmf-dist/tex/latex/microtype/mt-mvs.cfg
index 666cd337dda..dd6f18e18e3 100644
--- a/Master/texmf-dist/tex/latex/microtype/mt-mvs.cfg
+++ b/Master/texmf-dist/tex/latex/microtype/mt-mvs.cfg
@@ -9,8 +9,8 @@
%% ------------------------------------------------------------------------
%%
%% The `microtype' package
-%% An interface to the micro-typographic extensions of pdfTeX
-%% Copyright (c) 2004--2010 R Schlicht <w.m.l@gmx.net>
+%% Subliminal refinements towards typographical perfection
+%% Copyright (c) 2004--2013 R Schlicht <w.m.l@gmx.net>
%%
%% This work may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License, either version 1.3c of this license or (at
@@ -21,7 +21,8 @@
%% This work has the LPPL maintenance status `author-maintained'.
%%
%% This work consists of the files microtype.dtx and microtype.ins and the
-%% derived files microtype.sty, microtype.lua and letterspace.sty.
+%% derived files microtype.sty, microtype-pdftex.def, microtype-xetex.def,
+%% microtype-luatex.def, microtype.lua and letterspace.sty.
%%
%% ------------------------------------------------------------------------
%% This is a font-specific configuration file for the `microtype' package.
@@ -43,15 +44,10 @@
%%% CHARACTER INHERITANCE
\DeclareCharacterInheritance
- { encoding = OT1,
+ { encoding = {OT1,U},
family = mvs }
{ 164 = {099,100,101} } % \EURhv,\EURcr,\EURtm
-\DeclareCharacterInheritance
- { encoding = U,
- family = mvs }
- { 164 = {099,100,101} }
-
%%% -----------------------------------------------------------------------
%%% PROTRUSION
diff --git a/Master/texmf-dist/tex/latex/microtype/mt-pad.cfg b/Master/texmf-dist/tex/latex/microtype/mt-pad.cfg
index 4ab10ff8359..1325e42f228 100644
--- a/Master/texmf-dist/tex/latex/microtype/mt-pad.cfg
+++ b/Master/texmf-dist/tex/latex/microtype/mt-pad.cfg
@@ -9,8 +9,8 @@
%% ------------------------------------------------------------------------
%%
%% The `microtype' package
-%% An interface to the micro-typographic extensions of pdfTeX
-%% Copyright (c) 2004--2010 R Schlicht <w.m.l@gmx.net>
+%% Subliminal refinements towards typographical perfection
+%% Copyright (c) 2004--2013 R Schlicht <w.m.l@gmx.net>
%%
%% This work may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License, either version 1.3c of this license or (at
@@ -21,7 +21,8 @@
%% This work has the LPPL maintenance status `author-maintained'.
%%
%% This work consists of the files microtype.dtx and microtype.ins and the
-%% derived files microtype.sty, microtype.lua and letterspace.sty.
+%% derived files microtype.sty, microtype-pdftex.def, microtype-xetex.def,
+%% microtype-luatex.def, microtype.lua and letterspace.sty.
%%
%% ------------------------------------------------------------------------
%% This is a font-specific configuration file for the `microtype' package.
diff --git a/Master/texmf-dist/tex/latex/microtype/mt-pmn.cfg b/Master/texmf-dist/tex/latex/microtype/mt-pmn.cfg
index 618c231f7d0..eaa6fbbd3c4 100644
--- a/Master/texmf-dist/tex/latex/microtype/mt-pmn.cfg
+++ b/Master/texmf-dist/tex/latex/microtype/mt-pmn.cfg
@@ -9,8 +9,8 @@
%% ------------------------------------------------------------------------
%%
%% The `microtype' package
-%% An interface to the micro-typographic extensions of pdfTeX
-%% Copyright (c) 2004--2010 R Schlicht <w.m.l@gmx.net>
+%% Subliminal refinements towards typographical perfection
+%% Copyright (c) 2004--2013 R Schlicht <w.m.l@gmx.net>
%%
%% This work may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License, either version 1.3c of this license or (at
@@ -21,7 +21,8 @@
%% This work has the LPPL maintenance status `author-maintained'.
%%
%% This work consists of the files microtype.dtx and microtype.ins and the
-%% derived files microtype.sty, microtype.lua and letterspace.sty.
+%% derived files microtype.sty, microtype-pdftex.def, microtype-xetex.def,
+%% microtype-luatex.def, microtype.lua and letterspace.sty.
%%
%% ------------------------------------------------------------------------
%% This is a font-specific configuration file for the `microtype' package.
diff --git a/Master/texmf-dist/tex/latex/microtype/mt-ppl.cfg b/Master/texmf-dist/tex/latex/microtype/mt-ppl.cfg
index 90ed3babd15..ba214018f7f 100644
--- a/Master/texmf-dist/tex/latex/microtype/mt-ppl.cfg
+++ b/Master/texmf-dist/tex/latex/microtype/mt-ppl.cfg
@@ -9,8 +9,8 @@
%% ------------------------------------------------------------------------
%%
%% The `microtype' package
-%% An interface to the micro-typographic extensions of pdfTeX
-%% Copyright (c) 2004--2010 R Schlicht <w.m.l@gmx.net>
+%% Subliminal refinements towards typographical perfection
+%% Copyright (c) 2004--2013 R Schlicht <w.m.l@gmx.net>
%%
%% This work may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License, either version 1.3c of this license or (at
@@ -21,7 +21,8 @@
%% This work has the LPPL maintenance status `author-maintained'.
%%
%% This work consists of the files microtype.dtx and microtype.ins and the
-%% derived files microtype.sty, microtype.lua and letterspace.sty.
+%% derived files microtype.sty, microtype-pdftex.def, microtype-xetex.def,
+%% microtype-luatex.def, microtype.lua and letterspace.sty.
%%
%% ------------------------------------------------------------------------
%% This is a font-specific configuration file for the `microtype' package.
diff --git a/Master/texmf-dist/tex/latex/microtype/mt-ptm.cfg b/Master/texmf-dist/tex/latex/microtype/mt-ptm.cfg
index a6bfbe3a209..51da99cbcf9 100644
--- a/Master/texmf-dist/tex/latex/microtype/mt-ptm.cfg
+++ b/Master/texmf-dist/tex/latex/microtype/mt-ptm.cfg
@@ -9,8 +9,8 @@
%% ------------------------------------------------------------------------
%%
%% The `microtype' package
-%% An interface to the micro-typographic extensions of pdfTeX
-%% Copyright (c) 2004--2010 R Schlicht <w.m.l@gmx.net>
+%% Subliminal refinements towards typographical perfection
+%% Copyright (c) 2004--2013 R Schlicht <w.m.l@gmx.net>
%%
%% This work may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License, either version 1.3c of this license or (at
@@ -21,7 +21,8 @@
%% This work has the LPPL maintenance status `author-maintained'.
%%
%% This work consists of the files microtype.dtx and microtype.ins and the
-%% derived files microtype.sty, microtype.lua and letterspace.sty.
+%% derived files microtype.sty, microtype-pdftex.def, microtype-xetex.def,
+%% microtype-luatex.def, microtype.lua and letterspace.sty.
%%
%% ------------------------------------------------------------------------
%% This is a font-specific configuration file for the `microtype' package.
diff --git a/Master/texmf-dist/tex/latex/microtype/mt-ugm.cfg b/Master/texmf-dist/tex/latex/microtype/mt-ugm.cfg
index 0037aeed2ed..7fc0bd74f0f 100644
--- a/Master/texmf-dist/tex/latex/microtype/mt-ugm.cfg
+++ b/Master/texmf-dist/tex/latex/microtype/mt-ugm.cfg
@@ -9,8 +9,8 @@
%% ------------------------------------------------------------------------
%%
%% The `microtype' package
-%% An interface to the micro-typographic extensions of pdfTeX
-%% Copyright (c) 2004--2010 R Schlicht <w.m.l@gmx.net>
+%% Subliminal refinements towards typographical perfection
+%% Copyright (c) 2004--2013 R Schlicht <w.m.l@gmx.net>
%%
%% This work may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License, either version 1.3c of this license or (at
@@ -21,7 +21,8 @@
%% This work has the LPPL maintenance status `author-maintained'.
%%
%% This work consists of the files microtype.dtx and microtype.ins and the
-%% derived files microtype.sty, microtype.lua and letterspace.sty.
+%% derived files microtype.sty, microtype-pdftex.def, microtype-xetex.def,
+%% microtype-luatex.def, microtype.lua and letterspace.sty.
%%
%% ------------------------------------------------------------------------
%% This is a font-specific configuration file for the `microtype' package.
diff --git a/Master/texmf-dist/tex/latex/microtype/mt-zpeu.cfg b/Master/texmf-dist/tex/latex/microtype/mt-zpeu.cfg
index 58d41b907cf..3570dae991e 100644
--- a/Master/texmf-dist/tex/latex/microtype/mt-zpeu.cfg
+++ b/Master/texmf-dist/tex/latex/microtype/mt-zpeu.cfg
@@ -9,8 +9,8 @@
%% ------------------------------------------------------------------------
%%
%% The `microtype' package
-%% An interface to the micro-typographic extensions of pdfTeX
-%% Copyright (c) 2004--2010 R Schlicht <w.m.l@gmx.net>
+%% Subliminal refinements towards typographical perfection
+%% Copyright (c) 2004--2013 R Schlicht <w.m.l@gmx.net>
%%
%% This work may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License, either version 1.3c of this license or (at
@@ -21,7 +21,8 @@
%% This work has the LPPL maintenance status `author-maintained'.
%%
%% This work consists of the files microtype.dtx and microtype.ins and the
-%% derived files microtype.sty, microtype.lua and letterspace.sty.
+%% derived files microtype.sty, microtype-pdftex.def, microtype-xetex.def,
+%% microtype-luatex.def, microtype.lua and letterspace.sty.
%%
%% ------------------------------------------------------------------------
%% This is a font-specific configuration file for the `microtype' package.
diff --git a/Master/tlpkg/libexec/ctan2tds b/Master/tlpkg/libexec/ctan2tds
index a4972fc894e..bd16960748f 100755
--- a/Master/tlpkg/libexec/ctan2tds
+++ b/Master/tlpkg/libexec/ctan2tds
@@ -467,6 +467,7 @@ chomp ($Build = `cd $Master/../Build/source && pwd`);
'imprintmtshadow', "die 'skipping, nonfree font support'",
'indxcite', "die 'skipping, too old, license suboptimal'",
'induni-om', "die 'skipping, for omega, use of pua?'",
+ 'intex', "die 'skipping, wants autoconfery'",
'invoice', "&MAKEflatten",
'ipa', "die 'skipping, part of wsuipa'",
'isodoc', "&MAKEflatten",