% Written by Martin Mares <mj@ucw.cz> in 2018 and placed into public domain
% -------------------------------------------------------------------------
-\input ucw-link.tex
+\ucwdefmodule{ref}
+\ucwmodule{link}
% We maintain a collection of objects. Each object has:
% - type (namespace -- e.g., chapter)
\ifx\optarg\relax
\let\currentid\relax
\else
- \edef\currentid{#1\optarg}%
+ \edef\currentid{#1:\optarg}%
\writeid{\currentid}{#2}%
\destpos{\currentid}%
\fi
% A low-level interface for typesetting references: produces a clickable link
% to the identifier #2 of type #1 with a label translated by macro #3 (use \relax
% for no translation).
-\def\reflink#1#2#3{\expandafter\ifx\csname id:#1#2\endcsname\relax
+\def\reflink#1#2#3{\expandafter\ifx\csname id:#1:#2\endcsname\relax
{\ifx\bo\undefined\bf\else\bo\fi ??}%
- \immediate\write16{*** Warning: Reference #1 undefined ***}%
+ \immediate\write16{*** Warning: Reference #1:#2 undefined ***}%
\else
- \link{#1#2}{#3{\csname id:#1#2\endcsname}}%
+ \link{#1:#2}{#3{\csname id:#1:#2\endcsname}}%
\fi
}
\def\ref#1#2{\reflink{#1}{#2}\relax}
% Define an identifier of type page pointing to the current page
-\def\pageid#1{\delayedwriteid{page#1}{\the\count0}\destpage{page#1}}
+\def\pageid#1{\delayedwriteid{page:#1}{\the\count0}\destpage{page:#1}}
\def\pageref{\ref{page}}