diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/microtype/letterspace.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/microtype/letterspace.sty | 155 |
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 |