diff options
author | Karl Berry <karl@freefriends.org> | 2016-05-02 01:30:05 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2016-05-02 01:30:05 +0000 |
commit | 966c8c981c3264bf82e6c256dc35c7d2d27f49ba (patch) | |
tree | 303845f3b25af7fe42b44c815726a100ad607c51 /Master/texmf-dist/tex/latex/microtype/letterspace.sty | |
parent | f385fb50ed694e9ae7173d5f82f78994a0a610b0 (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.sty | 125 |
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.% |