summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/microtype/microtype-luatex.def
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/microtype/microtype-luatex.def')
-rw-r--r--Master/texmf-dist/tex/latex/microtype/microtype-luatex.def94
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}}
}