OSDN Git Service

microtype
[luatex-ja/luatexja.git] / src / patches / lltjp-microtype.sty
1 %
2 % lltjp-microtype.sty 2019-08-12
3 %
4 % (Work in Progress)
5
6 \NeedsTeXFormat{LaTeX2e}
7
8 \RequirePackage{etoolbox}
9 \makeatletter
10
11 \def\MT@register@font{%
12   \xdef\MT@font@list{\expandonce{\MT@font@list\MT@font},}% !!!
13 }
14 \def\MT@register@subst@font{\MT@exp@one@n\MT@in@clist\font@name\MT@font@list
15   \ifMT@inlist@\else
16         \xdef\MT@font@list{\expandonce{\MT@font@list\font@name},}% !!!
17   \fi}
18 \let\ltj@MT@tracking@\MT@tracking@
19 \def\MT@tracking@{%
20   \MT@exp@one@n\MT@in@clist\MT@font\MT@tr@font@list
21   \ifMT@inlist@\else
22     \MT@maybe@do{tr}%
23     \ifMT@do\else
24       \xdef\MT@tr@font@list{\expandonce{\MT@tr@font@list\MT@font,}}% !!!
25     \fi
26   \fi
27 }
28 \ifx\MT@tracking\ltj@MT@tracking@\let\MT@tracking\MT@tracking@\fi
29
30
31 %\endinput
32 \begingroup
33   \catcode`\/=\z@
34   /MT@map@tlist@n{/\LτJCHAREX}/@makeother /lccode`/τ=`/t
35   /lowercase{%
36     /def/x{/endgroup
37       /def/MT@charstring{\CHAR"}%
38       /def/MT@is@char##1\CHAR"##2##3##4/relax{%
39                 %/message{MIC <##1><##2><##3><##4>}%
40         /ifx/relax##4/relax
41             /expandafter/MT@is@char@ltja/MT@strip@prefix##1>/relax\LτJALCHAR\LτJALCHAR/relax
42         /else
43           /ifx/relax##1/relax
44             /if##3\/relax
45               /edef/MT@char@{/number"##2}%
46               /MT@ifstreq/MT@charstring{##3##4}/relax/MT@norestfalse
47             /else
48               /edef/MT@char@{/number"##2##3}%
49               /MT@ifstreq/MT@charstring{##4}/relax
50                 {/MT@is@xchar##2##3|##4\CHAR"/relax}%
51             /fi
52           /fi
53         /fi
54       }%
55       /def/MT@ltjs@drop@##1>##2/relax{##1}%
56       /def/MT@is@char@ltja##1\LτJALCHAR##2\LτJALCHAR##3/relax{%
57         %/typeout{MICLTJA <##1><##2><##3>}%
58         /ifx/relax##1/relax
59           /ifx/relax##2/relax/else
60             /edef/MT@char@{/expandafter/number/MT@ltjs@drop@##2>/relax}%
61           /fi
62         /fi
63       }%
64     }%
65   }
66 /x
67 \endinput