% 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}%
}