summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/microtype/letterspace.sty
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2016-05-02 01:30:05 +0000
committerKarl Berry <karl@freefriends.org>2016-05-02 01:30:05 +0000
commit966c8c981c3264bf82e6c256dc35c7d2d27f49ba (patch)
tree303845f3b25af7fe42b44c815726a100ad607c51 /Master/texmf-dist/tex/latex/microtype/letterspace.sty
parentf385fb50ed694e9ae7173d5f82f78994a0a610b0 (diff)
microtype (30apr16)
git-svn-id: svn://tug.org/texlive/trunk@40825 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.sty125
1 files changed, 87 insertions, 38 deletions
diff --git a/Master/texmf-dist/tex/latex/microtype/letterspace.sty b/Master/texmf-dist/tex/latex/microtype/letterspace.sty
index 3afa0048c1e..f25a97bc47b 100644
--- a/Master/texmf-dist/tex/latex/microtype/letterspace.sty
+++ b/Master/texmf-dist/tex/latex/microtype/letterspace.sty
@@ -10,7 +10,7 @@
%%
%% The `microtype' package
%% Subliminal refinements towards typographical perfection
-%% Copyright (c) 2004--2013 R Schlicht <w.m.l@gmx.net>
+%% Copyright (c) 2004--2016 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,8 +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-pdftex.def, microtype-xetex.def,
-%% microtype-luatex.def, microtype.lua and letterspace.sty.
+%% derived files microtype.sty, microtype-pdftex.def, microtype-luatex.def,
+%% microtype-xetex.def, microtype.lua and letterspace.sty.
%%
%% ------------------------------------------------------------------------
%% This is a stand-alone version that only provides the letterspacing
@@ -33,9 +33,9 @@
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage
{letterspace}
- [2013/05/23 v2.5a
+ [2016/05/01 v2.6
Robust letterspacing
- (RS)]
+ (RS)]
\def\MT@MT
{letterspace}
\let\MT@restore@catcodes\@empty
@@ -114,11 +114,18 @@
\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
+\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}
+ \else
+ \def\MT@engine@tooold{1}
+ \ifnum\luatexversion > 84
+ \let\pdfoutput\outputmode
+ \let\pdfprotrudechars\protrudechars
\fi
\fi
\fi
@@ -214,14 +221,28 @@
\advance\@tempcnta \@ne
\ifnum\@tempcnta < #2\MT@repeat
}
-\def\MT@do@font{\MT@while@num\z@
- \@cclvi
+\def\MT@do@font#1{%
+ \MT@if@fontspec@font{%
+ \def\MT@dofont@function{#1}%
+ \MT@lua{microtype.do_font()}%
+ }{\MT@while@num\z@\@cclvi{#1}}%
}
\MT@requires@latex1{
\let\MT@setup@\@empty
\def\MT@addto@setup{\g@addto@macro\MT@setup@}
}{\let\MT@addto@setup\@firstofone}
\def\MT@with@package@T#1{\@ifpackageloaded{#1}\@firstofone\@gobble}
+\newif\ifMT@fontspec
+\MT@requires@latex2{
+\MT@with@package@T{fontspec}\MT@fontspectrue
+}{\MT@fontspecfalse}
+\let\MT@if@fontspec@font\@secondoftwo
+\def\MT@fontspec@setup{%
+ \@ifpackagelater{fontspec}{2013/05/23}{
+ \MT@let@cn\MT@if@fontspec@font{fontspec_if_fontspec_font:TF}%
+ }\relax
+}
+\ifMT@fontspec\MT@fontspec@setup\fi
\MT@addto@setup{%
\MT@requires@latex2{
\MT@with@package@T{hyperref}{%
@@ -253,14 +274,23 @@
/\number\MT@letterspace@ ls\endcsname}%
\expandafter\ifx\MT@lsfont\relax
\MT@get@ls@basefont
+ \MT@if@fontspec@font{%
+ \global\expandafter\font\MT@lsfont=%
+ \expandafter\MT@exp@two@c\expandafter\MT@ls@fontspec@font
+ \expandafter\fontname\expandafter\MT@font\space \@nil
+ }{%
\global\expandafter\letterspacefont\MT@lsfont\font@name\MT@letterspace@
+ }%
% spacing = {<letterspace amount>*,,}
\fontdimen2\MT@lsfont=\dimexpr\numexpr 1000+\MT@letterspace@\relax sp
* \fontdimen2\MT@lsfont/1000\relax
% no ligatures = {f}
\tagcode\MT@lsfont`f=\m@ne
+ \MT@if@fontspec@font\relax{%
\MT@do@font{\lpcode\MT@lsfont\@tempcnta=\numexpr\MT@letterspace@/2\relax
\rpcode\MT@lsfont\@tempcnta=\numexpr\MT@letterspace@/2\relax}%
+ \let\MT@the@pr@code\MT@the@pr@code@tr
+ }%
\fi
\aftergroup\MT@set@lsfont
\xdef\MT@set@curr@ls{\def\noexpand\MT@curr@ls{\MT@letterspace@}}%
@@ -285,11 +315,26 @@
{MT@aftergroup@\number\currentgrouplevel}%
}%
}
+\def\MT@ls@fontspec@colon#1:#2:#3\@nil{#1:#2}
+\def\MT@ls@fontspec@font#1 #2\@nil{%
+ "\MT@ls@fontspec@colon#1::\@nil
+ kernfactor=%
+ \ifnum\MT@letterspace@<\z@ -0.%
+ \ifnum-\MT@letterspace@<100 0\fi
+ \ifnum-\MT@letterspace@<10 0\fi
+ \number-\MT@letterspace@
+ \else 0.%
+ \ifnum\MT@letterspace@<100 0\fi
+ \ifnum\MT@letterspace@<10 0\fi
+ \number\MT@letterspace@
+ \fi;"
+ \ifx\\#2\\ at \f@size pt\else#2\fi\relax
+}
\MT@requires@latex2{
\def\MT@set@lsfont{\MT@exp@two@c\let\font@name\MT@lsfont}
\DeclareRobustCommand\lsstyle{%
\not@math@alphabet\lsstyle\textls
- \let\glb@currsize\@empty
+ \MT@glet\glb@currsize\@empty
\let\MT@tracking\MT@set@tr@codes
\selectfont
}
@@ -383,33 +428,37 @@
}
\MT@requires@latex2{
\MT@addto@setup{%
+ \MT@with@package@T{luatexja}{\MT@warn@unknown@once{luatexja}}%
+ \MT@with@package@T{xeCJK} {\MT@warn@unknown@once{xeCJK}}%
\@ifpackageloaded{CJK}{%
- \@ifpackagelater{CJK}{2006/10/17}% 4.7.0
- {\def\MT@orig@pickupfont{\CJK@ifundefined\CJK@plane}}%
- {\def\MT@orig@pickupfont{\@ifundefined{CJK@plane}}}%
- \g@addto@macro\MT@orig@pickupfont
- {{\expandafter\ifx\font@name\relax\define@newfont\fi}}%
- \@ifpackageloaded{CJKutf8}%
- {\@ifpackagelater{CJKutf8}{2008/05/22}% 4.8.0
- {\ifpdf\expandafter\@secondoftwo\else\expandafter\@firstoftwo\fi}%
- {\@firstoftwo}}%
- {\@firstoftwo}%
- {\g@addto@macro\MT@orig@pickupfont{%
- {\expandafter\ifx\csname\curr@fontshape/\f@size/\CJK@plane\endcsname\relax
- \define@newfont\else\xdef\font@name{%
+ \@ifpackageloaded{xeCJK}{\@firstofone}{%
+ \@ifpackagelater{CJK}{2006/10/17}% 4.7.0
+ {\def\MT@orig@pickupfont{\CJK@ifundefined\CJK@plane}}%
+ {\def\MT@orig@pickupfont{\@ifundefined{CJK@plane}}}%
+ \g@addto@macro\MT@orig@pickupfont
+ {{\expandafter\ifx\font@name\relax\define@newfont\fi}}%
+ \@ifpackageloaded{CJKutf8}%
+ {\@ifpackagelater{CJKutf8}{2008/05/22}% 4.8.0
+ {\ifpdf\expandafter\@secondoftwo\else\expandafter\@firstoftwo\fi}%
+ {\@firstoftwo}}%
+ {\@firstoftwo}%
+ {\g@addto@macro\MT@orig@pickupfont{%
+ {\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}}}%
+ {\g@addto@macro\MT@orig@pickupfont{%
+ {\expandafter\ifx\csname \curr@fontshape/\f@size/\CJK@plane\endcsname\relax
+ \define@newfont\def\CJK@temp{v}%
+ \ifx\CJK@temp\CJK@plane
+ \expandafter\ifx\csname CJK@cmap@\f@family\CJK@plane\endcsname\relax
+ \else\csname CJK@cmap@\f@family\CJK@plane\endcsname\fi
+ \else \CJK@addcmap\CJK@plane \fi
+ \else\xdef\font@name{%
\csname \curr@fontshape/\f@size/\CJK@plane\endcsname}\fi}}}%
- {\g@addto@macro\MT@orig@pickupfont{%
- {\expandafter\ifx\csname \curr@fontshape/\f@size/\CJK@plane\endcsname\relax
- \define@newfont\def\CJK@temp{v}%
- \ifx\CJK@temp\CJK@plane
- \expandafter\ifx\csname CJK@cmap@\f@family\CJK@plane\endcsname\relax
- \else\csname CJK@cmap@\f@family\CJK@plane\endcsname\fi
- \else \CJK@addcmap\CJK@plane \fi
- \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}%
- }%
+ \@gobble
+ }%
+ }{\@firstofone}%
+ {\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.%