blob: cea0e56aaacd1f3ca9cc9e479db79ec2e739d7b2 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
|
%%
%% This is file `luatexbase-attr.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% luatexbase-attr.dtx (with options: `texpackage')
%%
%% Written in 2009, 2010 by Manuel Pegourie-Gonnard and Elie Roux.
%%
%% This work is under the CC0 license.
%% See source file 'luatexbase-attr.dtx' for details.
%%
\csname lltxb@attr@loaded\endcsname
\expandafter\let\csname lltxb@attr@loaded\endcsname\endinput
\begingroup
\catcode123 1 % {
\catcode125 2 % }
\catcode 35 6 % #
\toks0{}%
\def\x{}%
\def\y#1 #2 {%
\toks0\expandafter{\the\toks0 \catcode#1 \the\catcode#1}%
\edef\x{\x \catcode#1 #2}}%
\y 123 1 % {
\y 125 2 % }
\y 35 6 % #
\y 10 12 % ^^J
\y 34 12 % "
\y 36 3 % $ $
\y 39 12 % '
\y 40 12 % (
\y 41 12 % )
\y 42 12 % *
\y 43 12 % +
\y 44 12 % ,
\y 45 12 % -
\y 46 12 % .
\y 47 12 % /
\y 60 12 % <
\y 61 12 % =
\y 64 11 % @ (letter)
\y 62 12 % >
\y 95 12 % _ (other)
\y 96 12 % `
\edef\y#1{\endgroup\edef#1{\the\toks0\relax}\x}%
\expandafter\y\csname lltxb@attr@AtEnd\endcsname
\begingroup
\expandafter\ifx\csname ProvidesPackage\endcsname\relax
\def\x#1[#2]{\immediate\write16{Package: #1 #2}}
\else
\let\x\ProvidesPackage
\fi
\expandafter\endgroup
\x{luatexbase-attr}[2010/10/10 v0.3 Attributes allocation for LuaTeX]
\begingroup\expandafter\expandafter\expandafter\endgroup
\expandafter\ifx\csname RequirePackage\endcsname\relax
\input ifluatex.sty
\else
\RequirePackage{ifluatex}
\fi
\ifluatex\else
\begingroup
\expandafter\ifx\csname PackageError\endcsname\relax
\def\x#1#2#3{\begingroup \newlinechar10
\errhelp{#3}\errmessage{Package #1 error: #2}\endgroup}
\else
\let\x\PackageError
\fi
\expandafter\endgroup
\x{luatexbase-attr}{LuaTeX is required for this package. Aborting.}{%
This package can only be used with the LuaTeX engine^^J%
(command `lualatex' or `luatex').^^J%
Package loading has been stopped to prevent additional errors.}
\lltxb@attr@AtEnd
\expandafter\endinput
\fi
\begingroup\expandafter\expandafter\expandafter\endgroup
\expandafter\ifx\csname RequirePackage\endcsname\relax
\input luatexbase-compat.sty
\else
\RequirePackage{luatexbase-compat}
\fi
\luatexbase@ensure@primitive{luaescapestring}
\luatexbase@ensure@primitive{attributedef}
\luatexbase@ensure@primitive{attribute}
\begingroup\expandafter\expandafter\expandafter\endgroup
\expandafter\ifx\csname RequirePackage\endcsname\relax
\input luatexbase-loader.sty
\else
\RequirePackage{luatexbase-loader}
\fi
\luatexbase@directlua{require('luatexbase.attr')}
\def\newluatexattribute#1{%
\begingroup\escapechar\m@ne \expandafter\expandafter\expandafter
\endgroup \expandafter\expandafter\expandafter
\allocationnumber \luatexbase@directlua{tex.write(
luatexbase.new_attribute("\luatexluaescapestring{\string#1}", true))}%
\ifnum\allocationnumber>\m@ne
\global\luatexattributedef#1=\allocationnumber
\wlog{\string#1=\string\luatexattribute\the\allocationnumber}%
\else
\errmessage{No room for a new \string\attribute}%
\fi}
\def\unsetluatexattribute#1{%
\begingroup\escapechar\m@ne
\luatexbase@directlua{%
luatexbase.unset_attribute("\luatexluaescapestring{\string#1}")}%
\endgroup}
\def\setluatexattribute#1#2{%
#1=\numexpr#2\relax}
\lltxb@attr@AtEnd
\endinput
%%
%% End of file `luatexbase-attr.sty'.
|