summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/microtype/letterspace.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/microtype/letterspace.sty')
-rw-r--r--Master/texmf-dist/tex/latex/microtype/letterspace.sty155
1 files changed, 87 insertions, 68 deletions
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