X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=ucwmac2.tex;h=1c29317c8073e402da2f2bca4b07597d72a03f2d;hb=refs%2Ftags%2Fv2.0;hp=bd4ffda22517a98fdfcabd2034df9591ab0ace0a;hpb=7f2c803cc3d90993ec6c5b94d83a0011b3602779;p=ucwmac.git diff --git a/ucwmac2.tex b/ucwmac2.tex index bd4ffda..1c29317 100644 --- a/ucwmac2.tex +++ b/ucwmac2.tex @@ -24,7 +24,7 @@ \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 @@ -44,6 +44,15 @@ \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}}} @@ -52,13 +61,25 @@ \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 @@ -242,6 +263,7 @@ % #. % with a dot behind % #) % with a parenthesis behind % (#) % enclosed in parentheses +% [#] % enclosed in square brackets % % Historic usage: % @@ -309,10 +331,10 @@ \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 } @@ -320,10 +342,12 @@ \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 } @@ -333,9 +357,11 @@ \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 } @@ -361,6 +387,7 @@ \sdef{metaitem:=.}{\markerinner.} \sdef{metaitem:=)}{\markerinner)} \sdef{metaitem:(=)}{(\markerinner)} +\sdef{metaitem:[=]}{[\markerinner]} % Old-style lists