diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/microtype/letterspace.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/microtype/letterspace.sty | 225 |
1 files changed, 126 insertions, 99 deletions
diff --git a/Master/texmf-dist/tex/latex/microtype/letterspace.sty b/Master/texmf-dist/tex/latex/microtype/letterspace.sty index be4de33cbc0..84b34e4202f 100644 --- a/Master/texmf-dist/tex/latex/microtype/letterspace.sty +++ b/Master/texmf-dist/tex/latex/microtype/letterspace.sty @@ -7,6 +7,7 @@ %% microtype.dtx (with options: `letterspace') %% %% ------------------------------------------------------------------------ +%% %% The `microtype' package %% An interface to the micro-typographic extensions of pdfTeX %% Copyright (c) 2004--2007 R Schlicht <w.m.l@gmx.net> @@ -19,7 +20,7 @@ %% %% This work has the LPPL maintenance status `author-maintained'. %% -%% This work consists of the files microtype.dtx and microtype.ins and the +%% This work consists of the files microtype.dtx and microtype.ins and the %% derived files microtype.sty and letterspace.sty. %% %% ------------------------------------------------------------------------ @@ -30,13 +31,14 @@ %% \NeedsTeXFormat{LaTeX2e} \ProvidesPackage - {letterspace} - [2007/01/21 v1.0 Robust letterspacing (RS)] + {letterspace}[2007/07/14 v1.2 Robust letterspacing (RS)] \newcommand*\lsstyle{} \newcommand\textls[2][]{} -\def\textls#1#{\@firstofone} +\def\textls#1#{} \newcommand*\lslig[1]{#1} -\def\MT@warning{\PackageWarning{letterspace}} +\def\MT@MT + {letterspace} +\def\MT@warning{\PackageWarning\MT@MT} \def\MT@warning@nl#1{\MT@warning{#1\@gobble}} \def\MT@pdftex@no{0} \ifx\normalpdftexversion\@undefined \else @@ -46,22 +48,30 @@ \fi \ifx\pdftexversion\@undefined \else \ifx\pdftexversion\relax \else - \def\MT@pdftex@no{6} - \ifnum\pdftexversion < 140 - \def\MT@pdftex@no{5} + \def\MT@pdftex@no{7} + \ifnum\pdftexversion < 140 + \def\MT@pdftex@no{5} \fi \fi \fi -\ifnum\MT@pdftex@no<6 - \AtEndOfPackage{\let\@unprocessedoptions\relax} +\def\MT@clear@options{% + \AtEndOfPackage{\let\@unprocessedoptions\relax}% \let\CurrentOption\@empty - \MT@warning@nl{% +} +\ifnum\MT@pdftex@no < + 6 + \MT@clear@options + \MT@warning@nl{You \ifcase\MT@pdftex@no - You don't seem to be using pdftex.\MessageBreak + don't seem to be using pdftex.\MessageBreak + `\MT@MT' only works with pdftex.\MessageBreak + Try running `pdflatex' instead of `latex'% \else - You are using a pdftex version older than 1.40.\MessageBreak - Sorry, but robust letterspacing doesn't work with\MessageBreak - this version. Please upgrade% + are using a pdftex version older than + 1.40% + .\MessageBreak + `\MT@MT' does not work with this version.\MessageBreak + Please install a newer version of pdftex% \fi } \endinput\fi @@ -70,17 +80,25 @@ \let\MT@tr@max\@m \let\MT@letterspace\m@ne \def\MT@letterspace@default{100} +\ifx\directlua\@undefined\else + \MT@warning@nl + {`\MT@MT' + doesn't currently work with luatex.\MessageBreak Bye bye% + } + \MT@clear@options\expandafter\endinput +\fi \def\MT@glet{\global\let} \def\MT@edef@n#1{\expandafter\edef\csname #1\endcsname} -\def\MT@let@nc#1{\expandafter\let\csname #1\endcsname} \def\MT@exp@one@n#1#2{\expandafter#1\expandafter{#2}} \def\MT@exp@two@c#1{\expandafter\expandafter\expandafter#1\expandafter} - \def\MT@ifdefined@c@TF#1{\ifdefined#1% - \expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi +\catcode`\X=9 + \def\MT@ifdefined@c@TF#1{% +X \ifdefined#1\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi } - \def\MT@ifdefined@n@T#1{\ifcsname#1\endcsname - \expandafter\@firstofone\else\expandafter\@gobble\fi + \def\MT@ifdefined@n@T#1{% +X \ifcsname#1\endcsname\expandafter\@firstofone\else\expandafter\@gobble\fi } +\catcode`\X=11 \begingroup \catcode`\%=12 \catcode`\&=14 @@ -92,13 +110,13 @@ \fi } \endgroup - \def\MT@ifint#1{% - \ifcase\pdfmatch{^-*[0-9]+ *$}{#1}\relax - \expandafter\@secondoftwo - \else - \expandafter\@firstoftwo - \fi - } + \def\MT@ifint#1{% + \ifcase\pdfmatch{^-*[0-9]+ *$}{#1}\relax + \expandafter\@secondoftwo + \else + \expandafter\@firstoftwo + \fi + } \def\MT@map@clist@n#1#2{% \ifx\@empty#1\else \def\MT@clist@function##1{#2}% @@ -118,77 +136,72 @@ \let\MT@setup@\@empty \def\MT@addto@setup{\g@addto@macro\MT@setup@} \AtBeginDocument{\MT@setup@ \MT@glet\MT@setup@\@empty} -\def\MT@with@package#1{\@ifpackageloaded{#1}\@firstofone\@gobble} +\def\MT@with@package@T#1{\@ifpackageloaded{#1}\@firstofone\@gobble} \MT@addto@setup{% - \@ifpackageloaded{hyperref}{% + \MT@with@package@T + {hyperref}{% \pdfstringdefDisableCommands{% \def\lsstyle{\pdfstringdefWarn\lsstyle}% \def\textls#1#{\pdfstringdefWarn\textls}% }% - }{% } - \MT@with@package{soul}{% + \MT@with@package@T{soul}{% \soulregister\lsstyle 0% \soulregister\textls 1% } } - \DeclareRobustCommand\lsstyle{% - \let\MT@tracking\MT@tracking@ - \MT@let@nc{lslig }\MT@lslig - \selectfont - \MT@lskern=\dimexpr\MT@ifdefined@c@TF\MT@letterspace@ - \MT@letterspace@\MT@letterspace sp - * \fontdimen6\MT@lsfont/2000\relax - \MT@ls@adjust - } - \def\MT@tracking@{% - \MT@set@tr@codes - } - \let\MT@tracking\relax - \def\MT@set@tr@codes{% - \MT@ifdefined@c@TF\MT@letterspace@\relax{% - \let\MT@letterspace@\MT@letterspace - }% - \ifnum\MT@letterspace@=\z@\else - \xdef\MT@lsfont{% - \csname\curr@fontshape\f@size - /\number\MT@letterspace@ ls\endcsname}% - \expandafter\ifx\MT@lsfont\relax - \MT@get@ls@basefont - \global\expandafter\letterspacefont\MT@lsfont\font@name \MT@letterspace@ - \fontdimen2\MT@lsfont=\dimexpr\numexpr 1000+\MT@letterspace@\relax sp - * \fontdimen2\MT@lsfont/1000\relax - \fi - \MT@set@lsfont - \fi - } - \def\MT@set@lsfont{\MT@exp@two@c\let\font@name\MT@lsfont} - \DeclareRobustCommand\lslig{\@firstofone} - \def\MT@lslig#1{% - \MT@get@ls@basefont - \kern\MT@lskern{\font@name #1}\kern\MT@lskern - } - \def\MT@get@ls@basefont{% - \ifcase\pdfmatch{^select font (.*)[+-][0-9]*ls( at .*)?$} - {\expandafter\meaning\font@name}\relax - \else - \global\expandafter\font\font@name - \expandafter\strip@prefix\pdflastmatch1 - \expandafter\strip@prefix\pdflastmatch2\relax +\let\MT@tracking\relax +\def\MT@set@tr@codes{% + \MT@ifdefined@c@TF\MT@letterspace@\relax{\let\MT@letterspace@\MT@letterspace}% + \ifnum\MT@letterspace@=\z@\else + \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@ + \fontdimen2\MT@lsfont=\dimexpr\numexpr 1000+\MT@letterspace@\relax sp + * \fontdimen2\MT@lsfont/1000\relax + \tagcode\MT@lsfont`f=\m@ne \fi - } + \aftergroup\MT@set@lsfont + \fi +} +\def\MT@set@lsfont{\MT@exp@two@c\let\font@name\MT@lsfont} +\DeclareRobustCommand\lsstyle{% + \let\MT@tracking\MT@set@tr@codes + \selectfont + \MT@lskern=\dimexpr\MT@ifdefined@c@TF\MT@letterspace@ + \MT@letterspace@\MT@letterspace sp + * \fontdimen6\MT@lsfont/2000\relax + \MT@ls@adjust +} +\DeclareRobustCommand\lslig[1]{% + \kern\MT@lskern + {\MT@get@ls@basefont\font@name #1}% + \kern\MT@lskern +} +\def\MT@get@ls@basefont{% + \escapechar\m@ne + \edef\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 +} \DeclareRobustCommand\textls{% \hmode@bgroup - \@ifstar{\let\MT@ls@adjust\MT@ls@adjust@\MT@textls}% - {\let\MT@ls@adjust\relax \MT@textls}% + \@ifstar{\let\MT@ls@adjust\MT@ls@adjust@\MT@textls}% + {\let\MT@ls@adjust\relax \MT@textls}% } \newcommand\MT@textls[2][]{% - \MT@ifempty{#1}% - {\let\MT@letterspace@\@undefined}% - {\KV@@sp@def\MT@letterspace@{#1}% - \MT@ls@too@large\MT@letterspace@}% - \lsstyle #2% - \MT@ls@adjust + \MT@ifempty{#1}% + {\let\MT@letterspace@\@undefined}% + {\KV@@sp@def\MT@letterspace@{#1}% + \MT@ls@too@large\MT@letterspace@}% + \lsstyle #2% + \MT@ls@adjust \egroup } \def\MT@ls@too@large#1{% @@ -223,24 +236,27 @@ Command \string\pickup@font\space is not defined as expected.% } \fi + \g@addto@macro\pickup@font{\begingroup} + \MT@with@package@T{trace}{\g@addto@macro\pickup@font{\conditionally@traceoff}} \g@addto@macro\pickup@font{% - \MT@tracking + \escapechar\m@ne + \MT@tracking + \endgroup } } -\def\MT@def@num@opt#1{% - \define@key{MT}{#1}[]{% - \MT@ifempty{##1}% - {\MT@let@cn\@tempa{MT@#1@default}}% - {\def\@tempa{##1 }}% - \MT@ifint\@tempa{% - \MT@edef@n{MT@#1}{\@tempa}% - }{\MT@warning@nl{% - Value `##1' for option `#1' is not a number.\MessageBreak - Using default value of \number\@nameuse{MT@#1@default}}% - }% +\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}}% +} +\MT@map@clist@n{% + letterspace}{% + \define@key{MT}{#1}[\csname MT@#1@default\endcsname]{% + \def\@tempa{##1 }% + \MT@ifint\@tempa + {\MT@edef@n{MT@#1}{\@tempa}}% + {\MT@optwarn@nan{##1}{#1}}% }% } -\MT@def@num@opt{letterspace} \def\MT@ProcessOptionsWithKV#1{% \let\@tempc\relax \let\MT@temp\@empty @@ -258,11 +274,22 @@ }% }% \MT@temp - \AtEndOfPackage{\let\@unprocessedoptions\relax}% - \let\CurrentOption\@empty + \MT@clear@options } \MT@ProcessOptionsWithKV{MT} -\MT@addto@setup{% + \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 able\MessageBreak + to create the virtual fonts on the fly}% + \MT@glet\MT@warn@tracking@DVI\relax + } + \else + \let\MT@warn@tracking@DVI\relax + \fi \ifnum\MT@letterspace=\m@ne \let\MT@letterspace\MT@letterspace@default \else |