blob: 218d814f97536462d6000b1cdf002adb11db57e3 (
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
|
% XREF.STY
% Querverweis-Mechanismus fuer mehrbaendige Werke
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{xref}
\RequirePackage{ifthen}
% Kennung fuer eigene Bandnummer, Default: Band I
\newcommand{\@volume}{I}
% Userkommando zum Setzen der Bandzahl
\newcommand{\volume}[1]
{\renewcommand{\@volume}{#1}}
% Vollstaendige Kennzeichnung nach einer
% externen Referenz
\newcommand{\volnotation}[1]
{ (Band~#1)}
% Umdefinition einiger Interna fuer dreiteilige
% Labelinformationen
\long\def\@firstofthree#1#2#3{#1}
\long\def\@secondofthree#1#2#3{#2}
\long\def\@thirdofthree#1#2#3{#3}
% Analog zu \@setref:
% #1 ist dreiteilige Liste (Ref, Seite, Band),
% #2 ist Befehl \@xofthree, #3 ist Labelname
\def\@setbref#1#2#3{%
\ifx#1\relax
\else
\def\tmp{\expandafter#2#1}%
\ifthenelse{\equal{\tmp}{\@volume}}
{}
{\volnotation{\tmp}}%
\fi
}
% Label, das neben Referenznummer und Seitenzahl
% auch die Bandnummer wegschreibt
\def\label#1{\@bsphack
\protected@write\@auxout{}%
{\string\newlabel{#1}%
{{\@currentlabel}{\thepage}{\@volume}}}%
\@esphack}
%% Lies Hilfsfiles fuer die externen Baende ein und
%% generiere Labelinfos daraus
%% -- Einige Zeilen aus File `xr.sty'/tools -------
%% xr.dtx Copyright (C) 1993-1994 David Carlisle
\def\externalaux#1{\makeatletter
\XR@next#1.aux\relax\\}
\def\XR@next#1\relax#2\\{%
\edef\XR@list{#2}%
\XR@loop{#1}}
\def\XR@aux{%
\ifx\XR@list\@empty\else\expandafter\XR@explist\fi}
\def\XR@explist{\expandafter\XR@next\XR@list\\}
\def\XR@loop#1{\openin\@inputcheck#1\relax
\ifeof\@inputcheck
\PackageWarning{xref}%
{^^JNo file #1^^JLABELS NOT IMPORTED.^^J}%
\expandafter\XR@aux
\else
\PackageInfo{xref}{IMPORTING LABELS FROM #1}%
\expandafter\XR@read\fi}
\def\XR@read{%
\read\@inputcheck to\XR@line
\expandafter\XR@test\XR@line...\XR@}
\long\def\XR@test#1#2#3#4\XR@{%
\ifx#1\newlabel
\newlabel{#2}{#3}%
\else\ifx#1\@input
\edef\XR@list{\XR@list#2\relax}%
\fi\fi
\ifeof\@inputcheck\expandafter\XR@aux
\else\expandafter\XR@read\fi}
% ----- Ende des xr-Imports --------
% ---- Hauptbefehle ------
% Zunaechst die normalen Funktionalitaeten: Druck
% der Referenz, Seitenzahl, Bandzahl
% r@name enthaelt liste der drei Daten
\newcommand{\rref}[1]{%
\expandafter\@setref%
\csname r@#1\endcsname\@firstofthree{#1}}
\newcommand{\ppageref}[1]{%
\expandafter\@setref%
\csname r@#1\endcsname\@secondofthree{#1}}
\newcommand{\bref}[1]{%
\expandafter\@setref%
\csname r@#1\endcsname\@thirdofthree{#1}}
% Liefert Referenzzahl und ggf. Hinweis auf den
% zugehoerigen Band, falls extern
\renewcommand{\ref}[1]{%
\expandafter\@setref%
\csname r@#1\endcsname\@firstofthree{#1}%
\expandafter\@setbref%
\csname r@#1\endcsname\@thirdofthree{#1}%
}
% dto. fuer Seitenzahlen
\renewcommand{\pageref}[1]{%
\expandafter\@setref%
\csname r@#1\endcsname\@secondofthree{#1}%
\expandafter\@setbref%
\csname r@#1\endcsname\@thirdofthree{#1}%
}
|