summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/microtype/letterspace.sty
diff options
context:
space:
mode:
authorNorbert Preining <preining@logic.at>2007-12-25 09:57:38 +0000
committerNorbert Preining <preining@logic.at>2007-12-25 09:57:38 +0000
commitd44531a5d8e2be7f6b19fe5e5110e4b1734cc697 (patch)
treece58b67dd82f6bb4bb17f2457af835d2e05abf23 /Master/texmf-dist/tex/latex/microtype/letterspace.sty
parent49de519af20c652c3b3cfe9ba1dd4df1de06bde8 (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.sty120
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