diff options
author | Karl Berry <karl@freefriends.org> | 2007-01-21 23:13:45 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2007-01-21 23:13:45 +0000 |
commit | 05585a28ee9b922eeb278e6725110d8ea46958a5 (patch) | |
tree | a9dd834dd2be61af3e46a75d2a8c06f3c92f30dd /Master/texmf-dist/tex/latex/microtype | |
parent | d27f0f7cd24de4963d51f0d117fad10e3b3d949d (diff) |
microtype update
git-svn-id: svn://tug.org/texlive/trunk@3668 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/microtype')
-rw-r--r-- | Master/texmf-dist/tex/latex/microtype/letterspace.sty | 148 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/microtype/microtype.sty | 227 |
2 files changed, 221 insertions, 154 deletions
diff --git a/Master/texmf-dist/tex/latex/microtype/letterspace.sty b/Master/texmf-dist/tex/latex/microtype/letterspace.sty index 4ce7fb30824..be4de33cbc0 100644 --- a/Master/texmf-dist/tex/latex/microtype/letterspace.sty +++ b/Master/texmf-dist/tex/latex/microtype/letterspace.sty @@ -31,10 +31,11 @@ \NeedsTeXFormat{LaTeX2e} \ProvidesPackage {letterspace} - [2007/01/14 v1.0 Robust letterspacing (RS)] + [2007/01/21 v1.0 Robust letterspacing (RS)] \newcommand*\lsstyle{} \newcommand\textls[2][]{} \def\textls#1#{\@firstofone} +\newcommand*\lslig[1]{#1} \def\MT@warning{\PackageWarning{letterspace}} \def\MT@warning@nl#1{\MT@warning{#1\@gobble}} \def\MT@pdftex@no{0} @@ -64,15 +65,22 @@ \fi } \endinput\fi +\RequirePackage{keyval}[1997/11/10] +\def\MT@tr@min{-\@m} +\let\MT@tr@max\@m \let\MT@letterspace\m@ne \def\MT@letterspace@default{100} \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 } + \def\MT@ifdefined@n@T#1{\ifcsname#1\endcsname + \expandafter\@firstofone\else\expandafter\@gobble\fi + } \begingroup \catcode`\%=12 \catcode`\&=14 @@ -118,78 +126,98 @@ \def\textls#1#{\pdfstringdefWarn\textls}% }% }{% - }% + } \MT@with@package{soul}{% \soulregister\lsstyle 0% \soulregister\textls 1% - }% -} -\DeclareRobustCommand\lsstyle{% - \let\MT@tracking\MT@tracking@ - \selectfont -} -\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 - \expandafter\MT@exp@two@c\expandafter\MT@is@letterspaced\expandafter - \meaning\expandafter\font@name\MT@lsstring+/\@nil - \global\expandafter\letterspacefont\MT@lsfont\font@name \MT@letterspace@ - \fontdimen2\MT@lsfont=\dimexpr\numexpr1000+\MT@letterspace@\relax - \fontdimen2\MT@lsfont/1000\relax - \fi - \MT@set@lsfont - \fi + } } -\def\MT@set@lsfont{\MT@exp@two@c\let\font@name\MT@lsfont} -\begingroup - \@makeother{L}% - \@makeother{S}% - \lowercase{% - \def\x{% - \def\MT@lsstring{+LS}% - \def\MT@is@letterspaced##1 ##2 ##3+##4LS##5+##6/\@nil{% - \MT@ifempty{##4}{\MT@is@letterspaced@##3-LS-\@nil}{% - \global\expandafter\font\font@name ##3##5\relax - }% - }% - \def\MT@is@letterspaced@##1-##2LS##3-##4\@nil{% - \MT@ifempty{##2}\relax{% - \global\expandafter\font\font@name ##1##3\relax - }% - }% + \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 + \fi } -\expandafter\endgroup\x \DeclareRobustCommand\textls{% - \@ifstar{\let\MT@ls@adjust@\MT@ls@adjust\MT@textls}% - {\let\MT@ls@adjust@\relax \MT@textls}% + \hmode@bgroup + \@ifstar{\let\MT@ls@adjust\MT@ls@adjust@\MT@textls}% + {\let\MT@ls@adjust\relax \MT@textls}% } \newcommand\MT@textls[2][]{% - {\MT@ifempty{#1}% + \MT@ifempty{#1}% {\let\MT@letterspace@\@undefined}% - {\KV@@sp@def\MT@letterspace@{#1}}% - \MT@ls@adjust@ + {\KV@@sp@def\MT@letterspace@{#1}% + \MT@ls@too@large\MT@letterspace@}% \lsstyle #2% - \MT@ls@adjust@}% + \MT@ls@adjust + \egroup } -\def\MT@ls@adjust{% - \@tempdima=\MT@ifdefined@c@TF\MT@letterspace@ - \MT@letterspace@ \MT@letterspace em - \divide\@tempdima 2000 - \kern-\@tempdima\relax +\def\MT@ls@too@large#1{% + \ifnum#1>\MT@tr@max + \MT@warning{Maximum for option `letterspace' is \number\MT@tr@max}% + \let#1\MT@tr@max + \else + \ifnum#1<\MT@tr@min + \MT@warning{Minimum for option `letterspace' is \number\MT@tr@min}% + \let#1\MT@tr@min + \fi + \fi } +\newdimen\MT@lskern +\let\MT@ls@adjust\relax +\def\MT@ls@adjust@{\kern-\MT@lskern} \MT@addto@setup{% - \def\MT@orig@pickupfont{\expandafter\ifx\font@name\relax\define@newfont\fi} + \@ifpackageloaded{CJK}{ + \@ifpackagelater{CJK}{2006/10/17} + {\def\MT@orig@pickupfont{\CJK@ifundefined\CJK@plane}} % 4.7.0 + {\def\MT@orig@pickupfont{\@ifundefined{CJK@plane}}} + \g@addto@macro\MT@orig@pickupfont{% + {\expandafter\ifx\font@name\relax\define@newfont\fi}% + {\expandafter\ifx\csname\curr@fontshape/\f@size/\CJK@plane\endcsname\relax + \define@newfont\else\xdef\font@name + {\csname \curr@fontshape/\f@size/\CJK@plane\endcsname}\fi}} + }{ + \def\MT@orig@pickupfont{\expandafter\ifx\font@name\relax\define@newfont\fi} + } \ifx\pickup@font\MT@orig@pickupfont \else \MT@warning@nl{% Command \string\pickup@font\space is not defined as expected.% @@ -237,6 +265,8 @@ \MT@addto@setup{% \ifnum\MT@letterspace=\m@ne \let\MT@letterspace\MT@letterspace@default + \else + \MT@ls@too@large\MT@letterspace \fi } \endinput diff --git a/Master/texmf-dist/tex/latex/microtype/microtype.sty b/Master/texmf-dist/tex/latex/microtype/microtype.sty index fee60b492e6..eeaf31b5d61 100644 --- a/Master/texmf-dist/tex/latex/microtype/microtype.sty +++ b/Master/texmf-dist/tex/latex/microtype/microtype.sty @@ -27,26 +27,27 @@ \NeedsTeXFormat{LaTeX2e} \ProvidesPackage {microtype} - [2007/01/14 v2.0 Micro-typography with pdfTeX (RS)] + [2007/01/21 v2.0 Micro-typography with pdfTeX (RS)] \newcommand*\DeclareMicrotypeSet[3][]{} \newcommand*\UseMicrotypeSet[2][]{} \newcommand*\DeclareMicrotypeSetDefault[2][]{} -\newcommand*\DeclareMicrotypeAlias[2]{} \newcommand*\SetProtrusion[3][]{} \newcommand*\SetExpansion[3][]{} +\newcommand*\SetExtraSpacing[3][]{} +\newcommand*\SetExtraKerning[3][]{} +\newcommand*\SetTracking[3][]{} \newcommand*\DisableLigatures[1]{} \newcommand*\DeclareCharacterInheritance[3][]{} +\newcommand*\DeclareMicrotypeAlias[2]{} \newcommand*\LoadMicrotypeFile[1]{} +\newcommand*\DeclareMicrotypeBabelHook[2]{} \newcommand*\microtypesetup[1]{} \newcommand*\microtypecontext[1]{} -\newcommand*\SetExtraSpacing[3][]{} -\newcommand*\SetExtraKerning[3][]{} -\newcommand*\SetTracking[3][]{} -\newcommand*\DeclareMicrotypeBabelHook[2]{} \@ifpackageloaded{letterspace}{\let\MT@textls\relax}{% \newcommand*\lsstyle{} \newcommand\textls[2][]{} \def\textls#1#{\@firstofone} +\newcommand*\lslig[1]{#1} } \def\DeclareMicrotypeSet#1#{\@gobbletwo} \@onlypreamble\DeclareMicrotypeSet @@ -156,17 +157,17 @@ \newif\ifMT@tracking \newif\ifMT@babel \let\MT@pr@level\tw@ -\let\MT@pr@factor\@m -\let\MT@pr@unit\@empty \let\MT@ex@level\tw@ +\let\MT@pr@factor\@m \let\MT@ex@factor\@m -\let\MT@stretch\m@ne -\let\MT@shrink \m@ne -\let\MT@step \m@ne \let\MT@sp@factor\@m \let\MT@kn@factor\@m +\let\MT@pr@unit\@empty \let\MT@sp@unit\m@ne \def\MT@kn@unit{1em} +\let\MT@stretch\m@ne +\let\MT@shrink \m@ne +\let\MT@step \m@ne \def\MT@pr@min{-\@m} \let\MT@pr@max\@m \let\MT@ex@min\z@ @@ -553,7 +554,7 @@ time will almost certainly lead to undesired results. Have your choice!}% \MT@with@babel@and{spanish}{% \g@addto@macro\MT@setupfont@hook{% \MT@ifdefined@c@T\percentsign{\let\%\percentsign}}% - }% + } \MT@with@package{csquotes}{% \@ifpackagelater{csquotes}{2005/05/11}{% \g@addto@macro\MT@setupfont@hook\@disablequotes @@ -562,7 +563,7 @@ time will almost certainly lead to undesired results. Have your choice!}% Should you receive warnings about unknown slot\MessageBreak numbers, try upgrading the `csquotes' package}% }% - }% + } \@ifpackageloaded{hyperref}{% \g@addto@macro\MT@setupfont@hook\MT@restore@p@h \pdfstringdefDisableCommands{% @@ -574,7 +575,7 @@ time will almost certainly lead to undesired results. Have your choice!}% \MT@with@package{tex4ht}{% \g@addto@macro\MT@setupfont@hook\MT@restore@p@h }% - }% + } \MT@with@package{listings}{% \g@addto@macro\MT@normal@catcodes{% \MT@while@num{"30}{"3A}{\catcode\@tempcnta 12\relax}% @@ -585,11 +586,25 @@ time will almost certainly lead to undesired results. Have your choice!}% \catcode`\\\z@ \let\lst@ProcessLetter\@empty }% - }% + } \MT@with@package{soul}{% \soulregister\lsstyle 0% \soulregister\textls 1% - }% + } + \MT@with@package{pinyin}{% + \let\MT@py@macron\py@macron + \@ifpackagelater{pinyin}{2006/10/17}{% 4.7.0 + \def\py@macron#1#2{% + \let\pickup@font\MT@orig@pickupfont + \MT@py@macron{#1}{#2}% + \let\pickup@font\MT@pickupfont}% + }{% + \def\py@macron#1{% + \let\pickup@font\MT@orig@pickupfont + \MT@py@macron{#1}% + \let\pickup@font\MT@pickupfont}% + }% + } } \expandafter\ifx\the\font\nullfont\normalfont\fi \def\MT@setupfont{% @@ -1278,54 +1293,72 @@ time will almost certainly lead to undesired results. Have your choice!}% \let\MT@kerning\relax } \MT@requires@pdftex6{ -\DeclareRobustCommand\lsstyle{% - \MT@trackingtrue - \def\MT@tr@setname{all}% + \DeclareRobustCommand\lsstyle{% + \MT@trackingtrue + \def\MT@tr@setname{all}% + \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@{% + \ifMT@tracking\MT@maybe@do{tr}\fi + } \let\MT@tracking\MT@tracking@ - \selectfont -} -\def\MT@tracking@{% - \ifMT@tracking\MT@maybe@do{tr}\fi -} -\let\MT@tracking\MT@tracking@ -\def\MT@set@tr@codes{% - \MT@ifdefined@c@TF\MT@letterspace@\relax{% - \let\MT@letterspace@\MT@letterspace - \MT@if@list@exists{% - \MT@set@listname - \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\else - \MT@get@font@dimen@six - \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 - }% - }\relax - }% - \ifnum\MT@letterspace@=\z@\else - \xdef\MT@lsfont{% - \expandafter\csname\expandafter\string\MT@font - /\number\MT@letterspace@ ls\endcsname}% - \expandafter\ifx\MT@lsfont\relax - \expandafter\MT@exp@two@c\expandafter\MT@is@letterspaced\expandafter - \meaning\expandafter\font@name\MT@lsstring+/\@nil - \global\expandafter\letterspacefont\MT@lsfont\font@name \MT@letterspace@ - \fontdimen2\MT@lsfont=\dimexpr\numexpr1000+\MT@letterspace@\relax - \fontdimen2\MT@lsfont/1000\relax - \fi - \MT@vinfo{Tracking font `\MT@@font' by \number\MT@letterspace@ - \space\on@line}% - \let\MT@font\MT@lsfont - \aftergroup - \MT@set@lsfont - \fi -} -\def\MT@set@lsfont{\MT@exp@two@c\let\font@name\MT@lsfont} + \def\MT@set@tr@codes{% + \MT@ifdefined@c@TF\MT@letterspace@\relax{% + \let\MT@letterspace@\MT@letterspace + \MT@if@list@exists{% + \MT@set@listname + \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\else + \MT@get@font@dimen@six + \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 + }% + }\relax + }% + \ifnum\MT@letterspace@=\z@\else + \xdef\MT@lsfont{% + \expandafter\csname\expandafter\string\MT@font + /\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@vinfo{Tracking font `\MT@@font' by \number\MT@letterspace@ + \space\on@line}% + \let\MT@font\MT@lsfont + \aftergroup + \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 + \fi + } }{ \let\MT@tracking\relax \DeclareRobustCommand\lsstyle{% @@ -1335,43 +1368,34 @@ time will almost certainly lead to undesired results. Have your choice!}% \MT@glet\lsstyle\relax } } -\begingroup - \@makeother{L}% - \@makeother{S}% - \lowercase{% - \def\x{% - \def\MT@lsstring{+LS}% - \def\MT@is@letterspaced##1 ##2 ##3+##4LS##5+##6/\@nil{% - \MT@ifempty{##4}{\MT@is@letterspaced@##3-LS-\@nil}{% - \global\expandafter\font\font@name ##3##5\relax - }% - }% - \def\MT@is@letterspaced@##1-##2LS##3-##4\@nil{% - \MT@ifempty{##2}\relax{% - \global\expandafter\font\font@name ##1##3\relax - }% - }% - }% - } -\expandafter\endgroup\x \DeclareRobustCommand\textls{% - \@ifstar{\let\MT@ls@adjust@\MT@ls@adjust\MT@textls}% - {\let\MT@ls@adjust@\relax \MT@textls}% + \hmode@bgroup + \@ifstar{\let\MT@ls@adjust\MT@ls@adjust@\MT@textls}% + {\let\MT@ls@adjust\relax \MT@textls}% } \newcommand\MT@textls[2][]{% - {\MT@ifempty{#1}% + \MT@ifempty{#1}% {\let\MT@letterspace@\@undefined}% - {\KV@@sp@def\MT@letterspace@{#1}}% - \MT@ls@adjust@ + {\KV@@sp@def\MT@letterspace@{#1}% + \MT@ls@too@large\MT@letterspace@}% \lsstyle #2% - \MT@ls@adjust@}% + \MT@ls@adjust + \egroup } -\def\MT@ls@adjust{% - \@tempdima=\MT@ifdefined@c@TF\MT@letterspace@ - \MT@letterspace@ \MT@letterspace em - \divide\@tempdima 2000 - \kern-\@tempdima\relax +\def\MT@ls@too@large#1{% + \ifnum#1>\MT@tr@max + \MT@warning{Maximum for option `letterspace' is \number\MT@tr@max}% + \let#1\MT@tr@max + \else + \ifnum#1<\MT@tr@min + \MT@warning{Minimum for option `letterspace' is \number\MT@tr@min}% + \let#1\MT@tr@min + \fi + \fi } +\newdimen\MT@lskern +\let\MT@ls@adjust\relax +\def\MT@ls@adjust@{\kern-\MT@lskern} \MT@requires@pdftex5{ \def\MT@noligatures{% \MT@dotrue @@ -1643,7 +1667,7 @@ time will almost certainly lead to undesired results. Have your choice!}% \let\IeC\@firstofone \let\@inpenc@undefined@\MT@undefined@char \def\UTFviii@defined##1{\ifx ##1\relax - \MT@undefined@char{utf8}\else\expandafter##1\fi}% + \MT@undefined@char{utf8}\else\expandafter ##1\fi}% \edef\x{% \def\noexpand\@tempa{\@tempa}% \MT@toks={\the\MT@toks\space(= \@tempa)}% @@ -1732,7 +1756,18 @@ time will almost certainly lead to undesired results. Have your choice!}% \g@addto@macro\do@subst@correction{% \xdef\MT@font{\csname \curr@fontshape/\f@size\endcsname}% } - \def\MT@orig@pickupfont{\expandafter\ifx\font@name\relax\define@newfont\fi} + \@ifpackageloaded{CJK}{ + \@ifpackagelater{CJK}{2006/10/17} + {\def\MT@orig@pickupfont{\CJK@ifundefined\CJK@plane}} % 4.7.0 + {\def\MT@orig@pickupfont{\@ifundefined{CJK@plane}}} + \g@addto@macro\MT@orig@pickupfont{% + {\expandafter\ifx\font@name\relax\define@newfont\fi}% + {\expandafter\ifx\csname\curr@fontshape/\f@size/\CJK@plane\endcsname\relax + \define@newfont\else\xdef\font@name + {\csname \curr@fontshape/\f@size/\CJK@plane\endcsname}\fi}} + }{ + \def\MT@orig@pickupfont{\expandafter\ifx\font@name\relax\define@newfont\fi} + } \ifx\pickup@font\MT@orig@pickupfont \else \MT@warning@nl{% Command \string\pickup@font\space is not defined as expected.% @@ -3161,6 +3196,8 @@ time will almost certainly lead to undesired results. Have your choice!}% \fi \ifnum\MT@letterspace=\m@ne \let\MT@letterspace\MT@letterspace@default + \else + \MT@ls@too@large\MT@letterspace \fi } }{ |