diff options
author | Norbert Preining <preining@logic.at> | 2007-12-25 09:57:38 +0000 |
---|---|---|
committer | Norbert Preining <preining@logic.at> | 2007-12-25 09:57:38 +0000 |
commit | d44531a5d8e2be7f6b19fe5e5110e4b1734cc697 (patch) | |
tree | ce58b67dd82f6bb4bb17f2457af835d2e05abf23 /Master/texmf-dist/tex/latex/microtype/letterspace.sty | |
parent | 49de519af20c652c3b3cfe9ba1dd4df1de06bde8 (diff) |
microtype update 07-12-25
git-svn-id: svn://tug.org/texlive/trunk@5899 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/microtype/letterspace.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/microtype/letterspace.sty | 120 |
1 files changed, 94 insertions, 26 deletions
diff --git a/Master/texmf-dist/tex/latex/microtype/letterspace.sty b/Master/texmf-dist/tex/latex/microtype/letterspace.sty index 84b34e4202f..d26ce3541ff 100644 --- a/Master/texmf-dist/tex/latex/microtype/letterspace.sty +++ b/Master/texmf-dist/tex/latex/microtype/letterspace.sty @@ -4,7 +4,7 @@ %% %% The original source files were: %% -%% microtype.dtx (with options: `letterspace') +%% microtype.dtx (with options: `letterspace,plain') %% %% ------------------------------------------------------------------------ %% @@ -31,15 +31,33 @@ %% \NeedsTeXFormat{LaTeX2e} \ProvidesPackage - {letterspace}[2007/07/14 v1.2 Robust letterspacing (RS)] + {letterspace}[2007/12/23 v1.3 Robust letterspacing (RS)] +\def\MT@MT + {letterspace} \newcommand*\lsstyle{} \newcommand\textls[2][]{} \def\textls#1#{} \newcommand*\lslig[1]{#1} -\def\MT@MT - {letterspace} \def\MT@warning{\PackageWarning\MT@MT} \def\MT@warning@nl#1{\MT@warning{#1\@gobble}} +\def\MT@plain{0} +\ifx\documentclass\@undefined + \def\MT@plain{1} + \def\hmode@bgroup{\leavevmode\bgroup} + \let\@typeset@protect\relax + \ifx\eplain\@undefined + \def\MT@plain{2} + \def\PackageWarning#1#2{% + \begingroup + \newlinechar=10 % + \def\MessageBreak{^^J(#1)\@spaces\@spaces\@spaces\@spaces}% + \immediate\write16{^^JPackage #1 Warning: #2\on@line.^^J}% + \endgroup + } + \def\on@line{ on input line \the\inputlineno} + \def\@spaces{\space\space\space\space} + \fi +\fi \def\MT@pdftex@no{0} \ifx\normalpdftexversion\@undefined \else \let\pdftexversion \normalpdftexversion @@ -55,8 +73,10 @@ \fi \fi \def\MT@clear@options{% + \ifnum\MT@plain<2 \AtEndOfPackage{\let\@unprocessedoptions\relax}% \let\CurrentOption\@empty + \fi } \ifnum\MT@pdftex@no < 6 @@ -133,6 +153,19 @@ X \ifcsname#1\endcsname\expandafter\@firstofone\else\expandafter\@gobble\fi } \let\MT@clist@function\@gobble \def\MT@clist@break#1\@nnil{} +\def\MT@loop#1\MT@repeat{% + \def\MT@iterate{#1\relax\expandafter\MT@iterate\fi}% + \MT@iterate \let\MT@iterate\relax +} +\let\MT@repeat\fi +\def\MT@while@num#1#2#3{% + \@tempcnta#1\relax + \MT@loop #3% + \advance\@tempcnta \@ne + \ifnum\@tempcnta < #2\MT@repeat +} +\def\MT@do@font{\MT@while@num\z@\@cclvi} +\ifnum\MT@plain<2 \let\MT@setup@\@empty \def\MT@addto@setup{\g@addto@macro\MT@setup@} \AtBeginDocument{\MT@setup@ \MT@glet\MT@setup@\@empty} @@ -150,6 +183,9 @@ X \ifcsname#1\endcsname\expandafter\@firstofone\else\expandafter\@gobble\fi \soulregister\textls 1% } } +\else + \let\MT@addto@setup\@firstofone +\fi \let\MT@tracking\relax \def\MT@set@tr@codes{% \MT@ifdefined@c@TF\MT@letterspace@\relax{\let\MT@letterspace@\MT@letterspace}% @@ -165,24 +201,48 @@ X \ifcsname#1\endcsname\expandafter\@firstofone\else\expandafter\@gobble\fi \tagcode\MT@lsfont`f=\m@ne \fi \aftergroup\MT@set@lsfont + \xdef\MT@set@curr@ls{\def\noexpand\MT@curr@ls{\MT@letterspace@}}% + \aftergroup\MT@set@curr@ls + \ifx\MT@ls@adjust\@empty + \MT@outer@kern=-\dimexpr\MT@letterspace@ sp * \fontdimen6\font@name/2000\relax + \MT@ls@outer@k + \xdef\MT@set@curr@ok{\MT@outer@kern=\the\MT@outer@kern\relax}% + \aftergroup\aftergroup\aftergroup\MT@set@curr@ok + \aftergroup\aftergroup\aftergroup\MT@ls@outer@k + \fi + \MT@do@font{\lpcode\MT@lsfont\@tempcnta=\numexpr\MT@letterspace@/2\relax + \rpcode\MT@lsfont\@tempcnta=\numexpr\MT@letterspace@/2\relax}% \fi } +\ifnum\MT@plain=0 \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 } +\else +\def\MT@set@lsfont{\MT@lsfont} +\renewcommand\lsstyle{% + \begingroup + \escapechar\m@ne + \xdef\font@name{\csname\expandafter\string\the\font\endcsname}% + \MT@set@tr@codes + \endgroup +} +\let\textls\@undefined +\let\lslig\@undefined +\fi \DeclareRobustCommand\lslig[1]{% - \kern\MT@lskern - {\MT@get@ls@basefont\font@name #1}% - \kern\MT@lskern + {\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{% - \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 @@ -192,8 +252,8 @@ X \ifcsname#1\endcsname\expandafter\@firstofone\else\expandafter\@gobble\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\@empty\MT@textls}% + {\let\MT@ls@adjust\relax \MT@textls}% } \newcommand\MT@textls[2][]{% \MT@ifempty{#1}% @@ -201,7 +261,6 @@ X \ifcsname#1\endcsname\expandafter\@firstofone\else\expandafter\@gobble\fi {\KV@@sp@def\MT@letterspace@{#1}% \MT@ls@too@large\MT@letterspace@}% \lsstyle #2% - \MT@ls@adjust \egroup } \def\MT@ls@too@large#1{% @@ -215,9 +274,9 @@ X \ifcsname#1\endcsname\expandafter\@firstofone\else\expandafter\@gobble\fi \fi \fi } -\newdimen\MT@lskern -\let\MT@ls@adjust\relax -\def\MT@ls@adjust@{\kern-\MT@lskern} +\newdimen\MT@outer@kern +\def\MT@ls@outer@k{\ifhmode\kern\MT@outer@kern\relax\fi} +\ifnum\MT@plain=0 \MT@addto@setup{% \@ifpackageloaded{CJK}{ \@ifpackagelater{CJK}{2006/10/17} @@ -234,6 +293,7 @@ X \ifcsname#1\endcsname\expandafter\@firstofone\else\expandafter\@gobble\fi \ifx\pickup@font\MT@orig@pickupfont \else \MT@warning@nl{% Command \string\pickup@font\space is not defined as expected.% + \MessageBreak Patching it anyway. Some things may break% } \fi \g@addto@macro\pickup@font{\begingroup} @@ -244,6 +304,7 @@ X \ifcsname#1\endcsname\expandafter\@firstofone\else\expandafter\@gobble\fi \endgroup } } +\fi \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}}% @@ -257,9 +318,11 @@ X \ifcsname#1\endcsname\expandafter\@firstofone\else\expandafter\@gobble\fi {\MT@optwarn@nan{##1}{#1}}% }% } +\ifnum\MT@plain<2 \def\MT@ProcessOptionsWithKV#1{% \let\@tempc\relax \let\MT@temp\@empty + \ifnum\MT@plain=0 \MT@map@clist@c\@classoptionslist{% \def\CurrentOption{##1}% \MT@ifdefined@n@T{KV@#1@\CurrentOption}{% @@ -268,27 +331,32 @@ X \ifcsname#1\endcsname\expandafter\@firstofone\else\expandafter\@gobble\fi \@unusedoptionlist\@unusedoptionlist }% }% - \edef\MT@temp{% - \noexpand\setkeys{#1}{% - \MT@temp\@ptionlist{\@currname.\@currext}% - }% - }% + \edef\MT@temp{\noexpand\setkeys{#1}% + {\MT@temp\@ptionlist{\@currname.\@currext}}}% + \else + \edef\MT@temp{\noexpand\setkeys{#1}% + {\csname usepkg@options@\usepkg@pkg\endcsname}}% + \fi \MT@temp \MT@clear@options } \MT@ProcessOptionsWithKV{MT} +\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 able\MessageBreak - to create the virtual fonts on the fly}% + processing program (dvips, dvipdfm(x), ...) is\MessageBreak + able to create the virtual fonts on the fly}% \MT@glet\MT@warn@tracking@DVI\relax } \else - \let\MT@warn@tracking@DVI\relax + \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 |