\pdfpkresolution=600 % Provide a reasonable default
\fi\fi
-\ifx\directlua\undefined\else
+\ifx\luatexversion\undefined\else
% In LuaTeX \pdfpkresolution is not enough
\directlua{kpse.init_prog("luatex", 600, "ljfour")}
\fi
\def\sdef#1{\expandafter\def\csname#1\endcsname}
\def\slet#1#2{\expandafter\let\csname#1\expandafter\endcsname\csname#2\endcsname}
+% Assign a control sequence given as a string, complain if it is not defined.
+\def\sget#1#2{\ifcsname#2\endcsname
+ \expandafter\let\expandafter#1\csname#2\endcsname
+ \else
+ \errmessage{Undefined control sequence #2}%
+ \let#1\relax
+ \fi
+}
+
% Add \protected to an existing macro
\def\addprotected#1{\protected\edef#1{\expandafter\unexpanded\expandafter{#1}}}
\def\ucwwarn#1{\immediate\write16{*** UCWmac warning: #1 ***}}
+% Replace all occurrences of #1 in \tmpb by #2.
+% Thanks to Petr Olsak's OPmac for an efficient implementation.
+\bgroup \catcode`!=3 \catcode`?=3
+\gdef\replacestrings#1#2{\long\def\replacestringsA##1#1{\def\tmpb{##1}\replacestringsB}%
+ \long\def\replacestringsB##1#1{\ifx!##1\relax \else\appendef\tmpb{#2##1}%
+ \expandafter\replacestringsB\fi}%
+ \expandafter\replacestringsA\tmpb?#1!#1%
+ \long\def\replacestringsA##1?{\def\tmpb{##1}}\expandafter\replacestringsA\tmpb
+}
+\egroup
+
%%% Page size and margins %%%
% If you modify these registers, call \setuppage afterwards
\ifx\luatexversion\undefined
% In LuaTeX, \pagewidth and \pageheight are primitive
- \newdimen\pagewidth
- \newdimen\pageheight
+ % (also, we need \csname here, because \newdimen is \outer)
+ \csname newdimen\endcsname\pagewidth
+ \csname newdimen\endcsname\pageheight
\fi
\newdimen\leftmargin
\newdimen\rightmargin
% #. % with a dot behind
% #) % with a parenthesis behind
% (#) % enclosed in parentheses
+% [#] % enclosed in square brackets
%
% Historic usage:
%
\def\liststyle#1{%
\edef\markertmp{#1}
\ifcsname item:\markertmp\endcsname
- \slet{listmarker}{item:\markertmp}%
+ \sget\listmarker{item:\markertmp}%
\else
- \slet{listmarker}{metaitem:\markertometa#1^^X}%
- \slet{markerinner}{item:\markertoinner#1^^X}%
+ \sget\listmarker{metaitem:\markertometa#1^^X}%
+ \sget\markerinner{item:\markertoinner#1^^X}%
\fi
}
\ifx#1^^X%
\else
\ifx#1((%
+ \else\ifx#1[[%
\else\ifx#1))%
+ \else\ifx#1]]%
\else\ifx#1..%
\else=%
- \fi\fi\fi
+ \fi\fi\fi\fi\fi
\expandafter\markertometa
\fi
}
\else
\ifx#1(%
\else\ifx#1)%
+ \else\ifx#1[%
+ \else\ifx#1]%
\else\ifx#1.%
\else#1%
- \fi\fi\fi
+ \fi\fi\fi\fi\fi
\expandafter\markertoinner
\fi
}
\sdef{metaitem:=.}{\markerinner.}
\sdef{metaitem:=)}{\markerinner)}
\sdef{metaitem:(=)}{(\markerinner)}
+\sdef{metaitem:[=]}{[\markerinner]}
% Old-style lists