diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/microtype/microtype-luatex.def')
-rw-r--r-- | Master/texmf-dist/tex/latex/microtype/microtype-luatex.def | 94 |
1 files changed, 69 insertions, 25 deletions
diff --git a/Master/texmf-dist/tex/latex/microtype/microtype-luatex.def b/Master/texmf-dist/tex/latex/microtype/microtype-luatex.def index fe2e8000886..d37b39b7763 100644 --- a/Master/texmf-dist/tex/latex/microtype/microtype-luatex.def +++ b/Master/texmf-dist/tex/latex/microtype/microtype-luatex.def @@ -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 file contains enginge-specific definitions. @@ -30,17 +30,20 @@ %% \ProvidesFile {microtype-luatex.def} - [2013/05/23 v2.5a + [2016/05/01 v2.6 Definitions specific to luatex - (RS)] + (RS)] \def\MT@lua{\directlua} -\def\MT@luatex@no{3} -\ifnum\luatexversion<62 - \def\MT@luatex@no{2} - \ifnum\luatexversion<36 - \def\MT@lua{\directlua0} - \def\MT@luatex@no{1} +\def\MT@luatex@no{4} +\ifnum\luatexversion<85 + \def\MT@luatex@no{3} + \ifnum\luatexversion<62 + \def\MT@luatex@no{2} + \ifnum\luatexversion<36 + \def\MT@lua{\directlua0} + \def\MT@luatex@no{1} + \fi \fi \fi \def @@ -49,17 +52,21 @@ \MT@luatex@no <#1 \expandafter\@secondoftwo\else\expandafter\@firstoftwo\fi} \RequirePackage{luatexbase} +\RequirePackage{luaotfload} \RequireLuaModule{microtype} \def\MT@ifint#1{\csname\MT@lua{microtype.if_int([[#1]])}\endcsname} \def\MT@ifdimen#1{\csname\MT@lua{microtype.if_dimen([[#1]])}\endcsname} \def\MT@ifstreq#1#2{\csname\MT@lua{microtype.if_str_eq([[#1]],[[#2]])}\endcsname} -\def\MT@do@font{\MT@while@num\z@ - \MT@max@slot +\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}}% } \def\MT@ledmac@setup{% \ifMT@protrusion \MT@ifdefined@c@TF\l@dunhbox@line{% - \MT@info@nl{Patching (e)ledmac to enable character protrusion}% + \MT@info@nl{Patching ((r)e)ledmac to enable character protrusion}% \let\MT@led@unhbox@line\l@dunhbox@line \renewcommand*{\l@dunhbox@line}[1]{% \ifhbox##1% @@ -71,7 +78,8 @@ }{% \MT@warning@nl{% Character protrusion in paragraphs with line\MessageBreak - numbering will only work if you update ledmac}% + numbering will only work if you update ledmac,\MessageBreak + or use one of its successors, eledmac or reledmac}% }% \fi } @@ -99,6 +107,7 @@ \fi } \let\MT@copy@font\relax +\MT@requires@luatex4{\let\pdfcopyfont\copyfont}\relax \def\MT@copy@font@{% \xdef\MT@font@copy{\csname\MT@@font/\MT@pr@context/\MT@ex@context\endcsname}% \expandafter\ifx\MT@font@copy\relax @@ -289,6 +298,7 @@ \MT@nonselectedfalse } \let\MT@set@ex@codes\MT@set@ex@codes@n +\MT@requires@luatex4{\let\pdffontexpand\expandglyphsinfont}\relax \def\MT@expandfont{% \pdffontexpand\MT@font \MT@stretch@ \MT@shrink@ \MT@step@ \MT@auto@\relax } @@ -386,7 +396,13 @@ /\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@ + }% \MT@ifdefined@c@TF\MT@tr@ispace {\let\@tempa\MT@tr@ispace}% {\edef\@tempa{\MT@letterspace@*,,}}% @@ -397,12 +413,15 @@ \MT@ifdefined@c@TF\MT@tr@okern{\let\@tempa\MT@tr@okern}{\def\@tempa{*,*}}% \expandafter\MT@tr@set@okern\@tempa,% \MT@ifdefined@c@T\MT@tr@ligatures\MT@tr@noligatures + \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 \let\MT@font\MT@lsfont - \ifMT@fontspec\MT@font\fi + \MT@if@fontspec@font\MT@font\relax \xdef\MT@set@curr@ls{\def\noexpand\MT@curr@ls{\MT@letterspace@}}% \aftergroup\MT@set@curr@ls \MT@outer@space=\csname MT@outer@space\expandafter\string\font@name\endcsname\relax @@ -422,10 +441,10 @@ \MT@afteraftergroup{% \MT@set@curr@os \MT@set@curr@ok + \MT@glet\noexpand\glb@currsize\noexpand\@empty \noexpand\MT@tr@outer@r }% \fi - \MT@protrusionfalse }% } \def\MT@afteraftergroup#1{% @@ -436,6 +455,21 @@ {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 +} \def\MT@get@tr@opt{% \MT@set@listname \MT@ifdefined@n@T{MT@tr@c@\MT@tr@c@name}{% @@ -465,7 +499,7 @@ \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 \def\MT@feat{tr}% \let\MT@tracking\MT@set@tr@codes \selectfont @@ -612,7 +646,7 @@ \MT@if@outer@next\space\relax{% \MT@if@outer@next\@xobeysp\relax{% \MT@if@outer@next\xspace{% - \def\MT@temp*\xspace{\futurelet\@let@token\MT@xspace}% + \def\MT@temp*\xspace{\MT@xspace}% }{% \def\MT@temp*{\ifdim\MT@outer@kern=\z@\else\MT@ls@outer@k \fi}% @@ -626,7 +660,8 @@ \let\@let@token= \MT@tr@outer@next \maybe@ic@ } -\def\MT@xspace{\@xspace@firsttrue\@xspace +\def\MT@xspace{\futurelet\@let@token\MT@xspace@} +\def\MT@xspace@{\@xspace@firsttrue\@xspace \ifdim\lastskip>5sp \unskip \hskip\MT@outer@space \else @@ -690,6 +725,7 @@ \MT@noligatures@\MT@font\MT@nl@ligatures \fi } +\MT@requires@luatex4{\let\pdfnoligatures\ignoreligaturesinfont}\relax \def\MT@noligatures@#1#2{% \MT@ifdefined@c@TF#2{% \MT@ifdefined@c@TF\tagcode{% @@ -697,7 +733,11 @@ \def\MT@curr@list@name{\@backslashchar DisableLigatures}% \MT@map@clist@c#2{% \KV@@sp@def\@tempa{##1}\MT@get@slot - \ifnum\MT@char>\m@ne \tagcode#1\MT@char=\m@ne \fi}% + \ifnum\MT@char>\m@ne + \tagcode#1\MT@char=\m@ne + \MT@if@fontspec@font{\MT@lua{microtype.noligatures([[#1]],[[\MT@char]])}}\relax + \fi + }% \MT@vinfo{... Disabling ligatures for characters: #2}% }{% \pdfnoligatures#1% @@ -707,7 +747,9 @@ }% }{% \pdfnoligatures#1% - \MT@vinfo{... Disabling ligatures}% + \MT@if@fontspec@font + {\MT@lua{microtype.noligatures([[#1]],"_all_")}}\relax + \MT@vinfo{... Disabling all ligatures}% }% } \def\MT@get@slot@{% @@ -902,6 +944,7 @@ \fi \fi } +\MT@requires@luatex4{\let\pdfoutput\outputmode}\relax \MT@def@bool@opt{DVIoutput}{% \csname if\@tempa\endcsname \ifnum\pdfoutput>\z@ \MT@opt@DVItrue \fi @@ -978,6 +1021,10 @@ } \MT@define@optionX{protrusion}\MT@protrudechars \MT@define@optionX{expansion}\MT@adjustspacing +\MT@requires@luatex4{ + \let\pdfprotrudechars\protrudechars + \let\pdfadjustspacing\adjustspacing +}\relax \let\MT@protrudechars\pdfprotrudechars \let\MT@adjustspacing\pdfadjustspacing \MT@requires@luatex3{ @@ -1009,9 +1056,6 @@ } \MT@define@optionX@{tracking}{\ifnum\@tempcnta=\z@ \let\MT@tracking\MT@set@tr@zero \else \let\MT@tracking\MT@tracking@ \fi} - \MT@define@optionX@{spacing}{\pdfadjustinterwordglue\@tempcnta} - \MT@define@optionX@{kerning}{\pdfprependkern\@tempcnta - \pdfappendkern \@tempcnta} }{ \define@key{MTX}{tracking}[true]{\MT@warning{Ignoring tracking setup}} } |