Add package for microtype compatibility
This commit is contained in:
parent
961430ce42
commit
d13bbbc5eb
34
luametalatex-microtype.sty
Normal file
34
luametalatex-microtype.sty
Normal file
@ -0,0 +1,34 @@
|
||||
% To be loaded *after* microtype
|
||||
%
|
||||
% Patching \pickup@font to emulate LuaTeX's font expansion interface using \adjustspacing...
|
||||
\RequirePackage{microtype}% Just to ensure it isn't loaded in the wrong position. Normally this shouldn't be necessary
|
||||
\def\luametalatex@@setexpansion#-#1#2#3#-\relax{%
|
||||
\adjustspacingstretch #1
|
||||
\adjustspacingshrink #2
|
||||
\adjustspacingstep #3
|
||||
}%
|
||||
\newluafunction\luametalatex@@expandglyphsinfont
|
||||
\protected\luadef\pdffontexpand\luametalatex@@expandglyphsinfont
|
||||
\def\luametalatex@@everyjobandnow#1{\toksapp\everyjob{#1}#1}%
|
||||
%
|
||||
\begingroup
|
||||
\catcode`\!=\catcode`\%
|
||||
\catcode`\%=12
|
||||
\expanded{!
|
||||
\endgroup
|
||||
\def\noexpand\pickup@font{!
|
||||
\unexpanded\expandafter{\pickup@font
|
||||
\expandafter\expandafter\expandafter\luametalatex@@setexpansion\csname pickup@font@@hook@luametalatex@microtype@\the\fontid\font@name\endcsname{0}{0}{0}\relax
|
||||
}!
|
||||
}!
|
||||
\noexpand\luametalatex@@everyjobandnow{\noexpand\directlua{!
|
||||
lua.get_functions_table()[\the\luametalatex@@expandglyphsinfont] = function()
|
||||
token.put_next(token.create'fontid')
|
||||
local font = token.scan_int()
|
||||
local stretch = token.scan_int()
|
||||
local shrink = token.scan_int()
|
||||
local step = token.scan_int()
|
||||
token.set_macro('pickup@font@@hook@luametalatex@microtype@' .. font, string.format("{}{%i}{%i}{%i}", stretch, shrink, step), "global")
|
||||
end
|
||||
}}
|
||||
}%
|
Loading…
Reference in New Issue
Block a user