% This macro source file is from the four volume series % "TeX in Practice" by Stephan von Bechtolsheim, published % 1993 by Springer-Verlag, New York. % Copyright 1993 Stephan von Bechtolsheim. % No warranty or liability is assumed. % This macro may be copied freely if no fees other than % media cost or shipping charges are charged and as long % as this copyright and the following source code itself % is not changed. Please see the series for further information. % % Version: 1.0 % Date: May 1, 1993 % % % This source code is documented in 30.8.1, p. III-564. % Original source in file "pp1.TEX", starting line 1572. \wlog{L: "part-cr.tip" ["pp1.TEX," l. 1572, p. III-564]}% % This file DOES belong to format "texip." \InputD{gobble.tip} \InputD{pickfs.tip} \InputD{namedef.tip} \InputD{defauarg.tip} \InputD{compst.tip} \InputD{isprefix.tip} \InputD{droppre.tip} \catcode`\@ = 11 \newif\if@LabelsOk \def\@LabelRefPrefix{@REF-} \def\@LabelIsDefined #1{% TT\fi \if\NameDefinedConditional{\@LabelRefPrefix#1}% } \def\@NewLabel #1#2#3{% \if\@LabelIsDefined{#1}% \wlog{\string\@NewLabel: warning: label "#1" already defined.}% \fi \NameGdef{\@LabelRefPrefix #1}{{#2}{#3}}% } \let\Saved@NewLabel = \@NewLabel \def\Ref #1{% \@ref{0}{#1}% \if\StringsEqualConditional{\@TheExpandedLabel}{??}% {??}% \else \@TheExpandedLabel \fi \@PrintAfterLabel } \def\PageRef #1{% \@ref{1}{#1}% \if\StringsEqualConditional{\@TheExpandedLabel}{??}% {??}% \else \@TheExpandedLabel \fi \@PrintAfterLabel } \def\@MostRecentLabel{} \def\@ref #1#2{% \xdef\@PrintAfterLabel{}% \DefaultArg{\@ThisLabel}{#2}{\@MostRecentLabel}% \if\StringsEqualConditional{\@ThisLabel}{.}% \xdef\@ThisLabel{\@MostRecentLabel}% \xdef\@PrintAfterLabel{.}% \fi \if\StringsEqualConditional{\@ThisLabel}{,}% \xdef\@ThisLabel{\@MostRecentLabel}% \xdef\@PrintAfterLabel{,}% \fi \if\StringsEqualConditional{\@ThisLabel}{)}% \xdef\@ThisLabel{\@MostRecentLabel}% \xdef\@PrintAfterLabel{)}% \fi \if\StringsEqualConditional{\@ThisLabel}{;}% \xdef\@ThisLabel{\@MostRecentLabel}% \xdef\@PrintAfterLabel{;}% \fi \xdef\@MostRecentLabel{\@ThisLabel}% \if\@LabelIsDefined{\@ThisLabel}% \edef\@CrefTemp{\NameUse{\@LabelRefPrefix\@ThisLabel}}% \ifcase #1\relax \edef\@TheExpandedLabel{% \expandafter\PickFirstOfTwo\@CrefTemp}% \or \edef\@TheExpandedLabel{% \expandafter\PickSecondOfTwo\@CrefTemp}% \fi \else \def\@TheExpandedLabel{??} \wlog{\string\@ref: Label \@ThisLabel\space undefined.}% \fi } \catcode`\@ = 12