summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/kuvio/doc-src/macros/carrot/basic/xr.cd
blob: 66edbf0bbcf34b00ee656728b95bc57d8faf62c0 (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
%  xr.cd
%  Anders G S Svensson

%  Source: xr.nw
%          $Revision: 1.5 $
%          $Date: 1996/03/23 18:44:30 $

\usecarrot{auxfile}

\newauxfile{cxr}

\def\definexr#1#2#3{%
   \readcxr \opencxr
   \edef\@action@{%
      \noexpand\writecxr{%
         \noexpand\noexpand\noexpand\xr@definexr@
            {#1}{#2}{#3}{\noexpand\folio}}}%
   \@action@}

\def\xr@definexr@#1#2#3#4{%
   \@gdef@{xr@xr@#1}{\xr@xref@{#3}{#2}{#4}}}

\def\refxr{\relax
   \readcxr \opencxr
   \@ifnextchar@*%
      {\def\xr@xref@{\expandafter\@FirstOfTwo@\@eat@}%
       \expandafter\xr@ref@\@eat@}%
      {\let\xr@xref@\xr@tagcs@ \xr@ref@}}
\def\xr@tagcs@#1#2{%
   \@ifundefined@{#1tag}\@echo@{\@cs@{#1tag}}{#2}\@eat@}
\let\emptytag\@echo@

\def\xr@ref@#1{%
   \@ifundefined@{xr@xr@#1}%
      {\@Warning@{Undefined label: #1}[#1]}%
      {\@cs@{xr@xr@#1}}}

\def\pagexr#1{%
   \readcxr \opencxr
   \@ifundefined@{xr@xr@#1}%
      {\@Warning@{Undefined label: #1}[#1]}%
      {\def\xr@xref@{\expandafter\@SecondOfTwo@\@eat@}\@cs@{xr@xr@#1}}}

\let\pagetag\@echo@
\def\definepage#1{\definexr{#1}{\noexpand\folio}{page}}