|
41 | 41 | \_else \_resetnamespace{#1}\_fi
|
42 | 42 | }
|
43 | 43 | \_def\_resetnamespace #1{%
|
| 44 | + \_unless \_ifx \_pkglabel\_empty \_endnamespace \_fi |
44 | 45 | \_ea \_gdef \_csname namesp:#1\_endcsname {}%
|
45 | 46 | \_gdef \_pkglabel{_#1}%
|
46 | 47 | \_directlua{
|
|
156 | 157 |
|
157 | 158 | \_private \string \newtoks \romannumeral ;
|
158 | 159 |
|
| 160 | +\_newtoks\_opt |
159 | 161 | \_def\_optdef#1[#2]{%
|
160 |
| - \_def#1{\_opt={#2}\_isnextchar[{\_cs{_oA:\_string#1}}{\_cs{_oB:\_string#1}}}% |
161 |
| - \_sdef{_oA:\_string#1}[##1]{\_opt={##1}\_cs{_oB:\_string#1\_nospaceafter}}% |
162 |
| - \_sdef{_oB:\_string#1\_nospaceafter}% |
| 162 | + \_def#1{\_opt={#2}\_isnextchar[{\_cs{_oA:\_csstring#1}}{\_cs{_oB:\_csstring#1}}}% |
| 163 | + \_sdef{_oA:\_csstring#1}[##1]{\_opt={##1}\_cs{_oB:\_csstring#1\_nospaceafter}}% |
| 164 | + \_sdef{_oB:\_csstring#1\_nospaceafter}% |
163 | 165 | }
|
164 |
| -\_def\_nospaceafter#1{\_ea#1\_romannumeral-`\.} |
165 |
| -\_newtoks\_opt |
| 166 | +\_def\_nospaceafter#1{\_ea#1\_romannumeral-`\.\_noexpand} |
166 | 167 |
|
167 | 168 | \_private \noexpand \catcode \toksapp ;
|
168 | 169 |
|
|
172 | 173 | \_catcode`!=3 \_catcode`?=3
|
173 | 174 | \_def\_replstring #1#2#3{% \replstring #1{stringA}{stringB}
|
174 | 175 | \_long\_def\_replacestringsA##1#2{\_tmptoks{##1}\_replacestringsB}%
|
175 |
| - \_long\_def\_replacestringsB##1#2{\_ifx!##1\_relax \_else \_toksapp\_tmptoks{#3##1}% |
| 176 | + \_long\_def\_replacestringsB##1#2{\_ifx!##1\_relax \_else \_tmptoks\_ea{\_the\_tmptoks#3##1}% |
176 | 177 | \_ea\_replacestringsB\_fi}%
|
177 | 178 | \_ea\_replacestringsA #1?#2!#2%
|
178 | 179 | \_long\_def\_replacestringsA##1?{\_tmptoks{##1}\_edef#1{\_the\_tmptoks}}%
|
|
233 | 234 | \_immediate\_openout\_reffile={\_jobname.ref}\_relax
|
234 | 235 | \_gdef\_wref ##1##2{\_write\_reffile{\_bslash\_csstring##1##2}}%
|
235 | 236 | \_immediate\_write\_reffile {\_pcent\_pcent\_space pdfextra - REF file}%
|
| 237 | + \_ifx\_refdecldata\_empty \_else \_refdeclwrite \_fi |
236 | 238 | \_gdef\_openref{}%
|
237 | 239 | }
|
238 | 240 | \_def\_ewref #1#2{\_edef\_ewrefA{#2}\_ea\_wref\_ea#1\_ea{\_ewrefA}}
|
239 | 241 |
|
240 | 242 | \_private \ifnum ;
|
241 | 243 |
|
242 |
| -\_def\_refdecl{\_bgroup \_catcode`\#=12 \_refdeclA} |
243 |
| -\_def\_refdeclA #1{\_egroup\_openref |
244 |
| - \_immediate\_write\_reffile {\_pcent\_space \_string \refdecl:}% |
245 |
| - \_immediate\_write\_reffile {\_detokenize{#1}}% |
| 244 | +\_def\_refdecldata{} |
| 245 | +\_def\_refdecl{\_bgroup \_catcode`\#=12 \_catcode`\\=12 \_catcode`\ =12 \_refdeclA} |
| 246 | +\_def\_refdeclA#1{\_egroup |
| 247 | + \_ifx\_refdecldata\_empty\_else \_global\_addto\_refdecldata{^^J}\_fi |
| 248 | + \_global\_addto\_refdecldata{#1}% |
| 249 | + \_ifx\_openref\_empty \_refdeclwrite \_fi |
| 250 | +} |
| 251 | +\_def\_refdeclwrite{% |
| 252 | + \_immediate\_write\_reffile{\_pcent\_space \_string\refdecl:^^J\_detokenize\_ea{\_refdecldata}}% |
| 253 | + \_gdef\_refdecldata{}% |
246 | 254 | }
|
247 | 255 |
|
248 | 256 | %
|
|
0 commit comments