2 %% This is file `fancyref.sty',
3 %% generated with the docstrip utility.
5 %% The original source files were:
7 %% fancyref.dtx (with options: `package')
9 %% LaTeX package for fancy cross-referencing.
11 %% Copyright (C) 1999 Axel Reichert
12 %% See the files README and COPYING.
15 %% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
16 %% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
17 %% Digits \0\1\2\3\4\5\6\7\8\9
18 %% Exclamation \! Double quote \" Hash (number) \#
19 %% Dollar \$ Percent \% Ampersand \&
20 %% Acute accent \' Left paren \( Right paren \)
21 %% Asterisk \* Plus \+ Comma \,
22 %% Minus \- Point \. Solidus \/
23 %% Colon \: Semicolon \; Less than \<
24 %% Equals \= Greater than \> Question mark \?
25 %% Commercial at \@ Left bracket \[ Backslash \\
26 %% Right bracket \] Circumflex \^ Underscore \_
27 %% Grave accent \` Left brace \{ Vertical bar \|
28 %% Right brace \} Tilde \~}
29 \NeedsTeXFormat{LaTeX2e}[1995/06/01]%
30 \ProvidesPackage{fancyref}[%
31 1999/02/03 v0.9c Fancy cross-referencing%
33 \newcommand*{\@fancyref@add@to}[2]{%
41 \toks@\expandafter{#1#2}%
47 \newcommand*{\@fancyref@temp}{\@empty}%
48 \newcommand*{\fancyrefaddcaptions}[2]{%
49 \@ifundefined{captions#1}{%
53 \@fancyref@add@to\csname captions#1\endcsname{#2}%
55 \let\@fancyref@temp=\languagename
56 \csname captions#1\endcsname
57 \csname captions\@fancyref@temp\endcsname
58 \let\@fancyref@temp=\@empty
62 \newcommand*{\fancyrefhook}[1]{#1}%
63 \newcommand*{\fancyrefloosespacing}{~}%
64 \newcommand*{\fancyreftightspacing}{\,}%
65 \newcommand*{\fancyrefdefaultformat}{\@empty}%
66 \newcommand*{\Frefchapname}{\@empty}%
67 \newcommand*{\Frefenumname}{\@empty}%
68 \newcommand*{\Frefeqname}{\@empty}%
69 \newcommand*{\Freffigname}{\@empty}%
70 \newcommand*{\Freffnname}{\@empty}%
71 \newcommand*{\Frefonname}{\@empty}%
72 \newcommand*{\Frefpgname}{\@empty}%
73 \newcommand*{\Frefsecname}{\@empty}%
74 \newcommand*{\Frefseename}{\@empty}%
75 \newcommand*{\Freftabname}{\@empty}%
76 \newcommand*{\Freffigshortname}{\@empty}%
77 \newcommand*{\Frefpgshortname}{\@empty}%
78 \newcommand*{\Freftabshortname}{\@empty}%
79 \newcommand*{\frefchapname}{\@empty}%
80 \newcommand*{\frefenumname}{\@empty}%
81 \newcommand*{\frefeqname}{\@empty}%
82 \newcommand*{\freffigname}{\@empty}%
83 \newcommand*{\freffnname}{\@empty}%
84 \newcommand*{\frefonname}{\@empty}%
85 \newcommand*{\frefpgname}{\@empty}%
86 \newcommand*{\frefsecname}{\@empty}%
87 \newcommand*{\frefseename}{\@empty}%
88 \newcommand*{\freftabname}{\@empty}%
89 \newcommand*{\freffigshortname}{\@empty}%
90 \newcommand*{\frefpgshortname}{\@empty}%
91 \newcommand*{\freftabshortname}{\@empty}%
92 \DeclareOption{english}{%
93 \fancyrefaddcaptions{english}{%
94 \providecommand*{\chaptername}{Chapter}%
95 \providecommand*{\figurename}{Figure}%
96 \providecommand*{\pagename}{Page}%
97 \providecommand*{\tablename}{Table}%
98 \renewcommand*{\Frefchapname}{\chaptername}%
99 \renewcommand*{\Frefenumname}{Item}%
100 \renewcommand*{\Frefeqname}{Equation}%
101 \renewcommand*{\Freffigname}{\figurename}%
102 \renewcommand*{\Freffnname}{Footnote}%
103 \renewcommand*{\Frefonname}{On}%
104 \renewcommand*{\Frefpgname}{\pagename}%
105 \renewcommand*{\Frefsecname}{Section}%
106 \renewcommand*{\Frefseename}{See}%
107 \renewcommand*{\Freftabname}{\tablename}%
108 \renewcommand*{\Freffigshortname}{Fig.}%
109 \renewcommand*{\Frefpgshortname}{P.}%
110 \renewcommand*{\Freftabshortname}{Tab.}%
111 \renewcommand*{\frefchapname}{%
112 \MakeLowercase{\Frefchapname}%
114 \renewcommand*{\frefenumname}{%
115 \MakeLowercase{\Frefenumname}%
117 \renewcommand*{\frefeqname}{%
118 \MakeLowercase{\Frefeqname}%
120 \renewcommand*{\freffigname}{%
121 \MakeLowercase{\Freffigname}%
123 \renewcommand*{\freffnname}{%
124 \MakeLowercase{\Freffnname}%
126 \renewcommand*{\frefonname}{%
127 \MakeLowercase{\Frefonname}%
129 \renewcommand*{\frefpgname}{%
130 \MakeLowercase{\Frefpgname}%
132 \renewcommand*{\frefsecname}{%
133 \MakeLowercase{\Frefsecname}%
135 \renewcommand*{\frefseename}{%
136 \MakeLowercase{\Frefseename}%
138 \renewcommand*{\freftabname}{%
139 \MakeLowercase{\Freftabname}%
141 \renewcommand*{\freffigshortname}{%
142 \MakeLowercase{\Freffigshortname}%
144 \renewcommand*{\frefpgshortname}{%
145 \MakeLowercase{\Frefpgshortname}%
147 \renewcommand*{\freftabshortname}{%
148 \MakeLowercase{\Freftabshortname}%
151 \@ifundefined{captionsenglish}{%
153 \selectlanguage{english}%
155 \PassOptionsToPackage{\CurrentOption}{varioref}%
157 \DeclareOption{german}{%
158 \fancyrefaddcaptions{german}{%
159 \providecommand*{\chaptername}{Kapitel}%
160 \providecommand*{\figurename}{Abbildung}%
161 \providecommand*{\pagename}{Seite}%
162 \providecommand*{\tablename}{Tabelle}%
163 \renewcommand*{\Frefchapname}{\chaptername}%
164 \renewcommand*{\Frefenumname}{Punkt}%
165 \renewcommand*{\Frefeqname}{Gleichung}%
166 \renewcommand*{\Freffigname}{\figurename}%
167 \renewcommand*{\Freffigshortname}{Abb.}%
168 \renewcommand*{\Freffnname}{Fu\ss note}%
169 \renewcommand*{\Frefonname}{Auf}%
170 \renewcommand*{\Frefpgname}{\pagename}%
171 \renewcommand*{\Frefpgshortname}{S.}%
172 \renewcommand*{\Frefsecname}{Abschnitt}%
173 \renewcommand*{\Frefseename}{Siehe}%
174 \renewcommand*{\Freftabname}{\tablename}%
175 \renewcommand*{\Freftabshortname}{Tab.}%
176 \renewcommand*{\frefchapname}{\Frefchapname}%
177 \renewcommand*{\frefenumname}{\Frefenumname}%
178 \renewcommand*{\frefeqname}{\Frefeqname}%
179 \renewcommand*{\freffigname}{\Freffigname}%
180 \renewcommand*{\freffigshortname}{\Freffigshortname}%
181 \renewcommand*{\freffnname}{\Freffnname}%
182 \renewcommand*{\frefonname}{%
183 \MakeLowercase{\Frefonname}%
185 \renewcommand*{\frefpgname}{\Frefpgname}%
186 \renewcommand*{\frefpgshortname}{\Frefpgshortname}%
187 \renewcommand*{\frefsecname}{\Frefsecname}%
188 \renewcommand*{\frefseename}{%
189 \MakeLowercase{\Frefseename}%
191 \renewcommand*{\freftabname}{\Freftabname}%
192 \renewcommand*{\freftabshortname}{\Freftabshortname}%
194 \@ifundefined{captionsgerman}{%
196 \selectlanguage{german}%
198 \PassOptionsToPackage{\CurrentOption}{varioref}%
200 \DeclareOption{loose}{%
201 \newcommand*{\fancyrefdefaultspacing}{%
202 \fancyrefloosespacing
205 \DeclareOption{margin}{%
206 \renewcommand{\fancyrefhook}[1]{%
209 \raggedright\hspace{0pt}\footnotesize
210 \ensuremath{\m@th\rightarrow}~#1%
214 \DeclareOption{paren}{%
215 \renewcommand*{\fancyrefhook}[1]{(#1)}%
217 \DeclareOption{plain}{%
218 \renewcommand*{\fancyrefdefaultformat}{plain}%
220 \DeclareOption{tight}{%
221 \renewcommand*{\fancyrefdefaultspacing}{%
222 \fancyreftightspacing
225 \DeclareOption{vario}{%
226 \renewcommand*{\fancyrefdefaultformat}{vario}%
229 \PackageError{fancyref}{%
230 Unknown option ``\CurrentOption''%
232 The option ``\CurrentOption'' was not declared in
233 package ``fancyref'',\MessageBreak
234 perhaps you have only misspelled its name.\MessageBreak
235 Currently only the languages ``english'' and
236 ``german'' are defined.\MessageBreak
237 Try typing <return> to proceed. Most likely your
238 output will be wrong,\MessageBreak
239 e. g. ``Figure'' instead of ``Abbildung''.%
241 \PassOptionsToPackage{\CurrentOption}{varioref}%
243 \ExecuteOptions{english,loose,vario}%
245 \RequirePackage{varioref}%
246 \newcommand*{\fancyrefchaplabelprefix}{chap}%
247 \newcommand*{\fancyrefenumlabelprefix}{enum}%
248 \newcommand*{\fancyrefeqlabelprefix}{eq}%
249 \newcommand*{\fancyreffiglabelprefix}{fig}%
250 \newcommand*{\fancyreffnlabelprefix}{fn}%
251 \newcommand*{\fancyrefseclabelprefix}{sec}%
252 \newcommand*{\fancyreftablabelprefix}{tab}%
253 \newcommand*{\@fancyref@ren}{\@empty}%
254 \newcommand*{\@fancyref@append@ren}[2]{%
256 \def#1{\@fancyref@ren{#2}}%
258 \expandafter\def\expandafter#1%
259 \expandafter{#1\@fancyref@ren{#2}}%
262 \newcommand*{\@fancyref@check@prefix}[1]{%
263 \expandafter\let\expandafter\@fancyref@old@prefix
264 \csname @fancyref@saved@prefix\string#1\endcsname
265 \ifx\@fancyref@old@prefix#1%
267 \def\@fancyref@ren##1{%
269 \let\csname fr@##1@#1\expandafter\endcsname
270 \csname fr@##1@\@fancyref@old@prefix\endcsname
272 \let\csname fr@##1@\@fancyref@old@prefix\endcsname
275 \csname @fr@ren@list\string#1\endcsname
276 \def\@fancyref@ren##1{%
278 \let\csname Fr@##1@#1\expandafter\endcsname
279 \csname Fr@##1@\@fancyref@old@prefix\endcsname
281 \let\csname Fr@##1@\@fancyref@old@prefix\endcsname
284 \csname @Fr@ren@list\string#1\endcsname
286 \csname @fancyref@saved@prefix\string#1\endcsname#1%
289 \newcommand*{\fancyrefchangeprefix}[2]{%
290 \renewcommand*{#1}{#2}%
291 \@fancyref@check@prefix{#1}%
293 \newcommand{\frefformat}[2]{%
294 \@fancyref@check@prefix{#2}%
295 \expandafter\@fancyref@append@ren
296 \csname @fr@ren@list\string#2\endcsname{#1}%
297 \@namedef{fr@#1@#2}##1##2##3%
299 \newcommand{\Frefformat}[2]{%
300 \@fancyref@check@prefix{#2}%
301 \expandafter\@fancyref@append@ren
302 \csname @Fr@ren@list\string#2\endcsname{#1}%
303 \@namedef{Fr@#1@#2}##1##2##3%
305 \frefformat{vario}{\fancyrefchaplabelprefix}{%
306 \frefchapname\fancyrefdefaultspacing#1#3%
308 \frefformat{plain}{\fancyrefchaplabelprefix}{%
309 \frefchapname\fancyrefdefaultspacing#1%
311 \frefformat{vario}{\fancyrefenumlabelprefix}{%
312 \frefenumname\fancyrefdefaultspacing#1#3%
314 \frefformat{plain}{\fancyrefenumlabelprefix}{%
315 \frefenumname\fancyrefdefaultspacing#1%
317 \@ifundefined{tagform@}{%
318 \frefformat{vario}{\fancyrefeqlabelprefix}{%
319 \frefeqname\fancyrefdefaultspacing\textup{(#1)}#3%
321 \frefformat{plain}{\fancyrefeqlabelprefix}{%
322 \frefeqname\fancyrefdefaultspacing\textup{(#1)}%
325 \frefformat{vario}{\fancyrefeqlabelprefix}{%
326 \frefeqname\fancyrefdefaultspacing
327 \textup{\tagform@{#1}}#3%
329 \frefformat{plain}{\fancyrefeqlabelprefix}{%
330 \frefeqname\fancyrefdefaultspacing
331 \textup{\tagform@{#1}}%
334 \frefformat{margin}{\fancyreffiglabelprefix}{%
336 \raggedright\hspace{0pt}\footnotesize
337 \ensuremath{\m@th\rightarrow}~%
338 \Freffigshortname\fancyreftightspacing#1,
339 \frefpgshortname\fancyreftightspacing#2%
342 \frefformat{main}{\fancyreffiglabelprefix}{%
343 \textbf{\freffigname\fancyrefdefaultspacing#1}#3%
345 \frefformat{vario}{\fancyreffiglabelprefix}{%
346 \freffigname\fancyrefdefaultspacing#1#3%
348 \frefformat{plain}{\fancyreffiglabelprefix}{%
349 \freffigname\fancyrefdefaultspacing#1%
351 \frefformat{vario}{\fancyreffnlabelprefix}{%
352 \freffnname\fancyrefdefaultspacing#1#3%
354 \frefformat{plain}{\fancyreffnlabelprefix}{%
355 \freffnname\fancyrefdefaultspacing#1%
357 \frefformat{vario}{\fancyrefseclabelprefix}{%
358 \frefsecname\fancyrefdefaultspacing#1#3%
360 \frefformat{plain}{\fancyrefseclabelprefix}{%
361 \frefsecname\fancyrefdefaultspacing#1%
363 \frefformat{margin}{\fancyreftablabelprefix}{%
365 \raggedright\hspace{0pt}\footnotesize
366 \ensuremath{\m@th\rightarrow}~%
367 \Freftabshortname\fancyreftightspacing#1,
368 \frefpgshortname\fancyreftightspacing#2%
371 \frefformat{main}{\fancyreftablabelprefix}{%
372 \textbf{\freftabname\fancyrefdefaultspacing#1}#3%
374 \frefformat{vario}{\fancyreftablabelprefix}{%
375 \freftabname\fancyrefdefaultspacing#1#3%
377 \frefformat{plain}{\fancyreftablabelprefix}{%
378 \freftabname\fancyrefdefaultspacing#1%
380 \Frefformat{vario}{\fancyrefchaplabelprefix}{%
381 \Frefchapname\fancyrefdefaultspacing#1#3%
383 \Frefformat{plain}{\fancyrefchaplabelprefix}{%
384 \Frefchapname\fancyrefdefaultspacing#1%
386 \Frefformat{vario}{\fancyrefenumlabelprefix}{%
387 \Frefenumname\fancyrefdefaultspacing#1#3%
389 \Frefformat{plain}{\fancyrefenumlabelprefix}{%
390 \Frefenumname\fancyrefdefaultspacing#1%
392 \@ifundefined{tagform@}{%
393 \Frefformat{vario}{\fancyrefeqlabelprefix}{%
394 \Frefeqname\fancyrefdefaultspacing\textup{(#1)}#3%
396 \Frefformat{plain}{\fancyrefeqlabelprefix}{%
397 \Frefeqname\fancyrefdefaultspacing\textup{(#1)}%
400 \Frefformat{vario}{\fancyrefeqlabelprefix}{%
401 \Frefeqname\fancyrefdefaultspacing
402 \textup{\tagform@{#1}}#3%
404 \Frefformat{plain}{\fancyrefeqlabelprefix}{%
405 \Frefeqname\fancyrefdefaultspacing
406 \textup{\tagform@{#1}}%
409 \Frefformat{margin}{\fancyreffiglabelprefix}{%
411 \raggedright\hspace{0pt}\footnotesize
412 \ensuremath{\m@th\rightarrow}~%
413 \Freffigshortname\fancyreftightspacing#1,
414 \frefpgshortname\fancyreftightspacing#2%
417 \Frefformat{main}{\fancyreffiglabelprefix}{%
418 \textbf{\Freffigname\fancyrefdefaultspacing#1}#3%
420 \Frefformat{vario}{\fancyreffiglabelprefix}{%
421 \Freffigname\fancyrefdefaultspacing#1#3%
423 \Frefformat{plain}{\fancyreffiglabelprefix}{%
424 \Freffigname\fancyrefdefaultspacing#1%
426 \Frefformat{vario}{\fancyreffnlabelprefix}{%
427 \Freffnname\fancyrefdefaultspacing#1#3%
429 \Frefformat{plain}{\fancyreffnlabelprefix}{%
430 \Freffnname\fancyrefdefaultspacing#1%
432 \Frefformat{vario}{\fancyrefseclabelprefix}{%
433 \Frefsecname\fancyrefdefaultspacing#1#3%
435 \Frefformat{plain}{\fancyrefseclabelprefix}{%
436 \Frefsecname\fancyrefdefaultspacing#1%
438 \Frefformat{margin}{\fancyreftablabelprefix}{%
440 \raggedright\hspace{0pt}\footnotesize
441 \ensuremath{\m@th\rightarrow}~%
442 \Freftabshortname\fancyreftightspacing#1,
443 \frefpgshortname\fancyreftightspacing#2%
446 \Frefformat{main}{\fancyreftablabelprefix}{%
447 \textbf{\Freftabname\fancyrefdefaultspacing#1}#3%
449 \Frefformat{vario}{\fancyreftablabelprefix}{%
450 \Freftabname\fancyrefdefaultspacing#1#3%
452 \Frefformat{plain}{\fancyreftablabelprefix}{%
453 \Freftabname\fancyrefdefaultspacing#1%
455 \newcommand*{\fancyrefargdelim}{:}%
456 \begingroup \catcode`\|=0 |catcode`|\=12
458 |def|backslashchar{\}}
460 \newcommand*{\@fancyref@page@ref}{
461 \let\vref@space\space
463 \@vpageref{\@vpageref[\unskip]}%
465 \newcommand*{\@f@ref}[4]{%
466 \@ifundefined{#1r@#2@#3}{%
467 \PackageError{fancyref}{%
468 \backslashchar#1ref\space format ``#2''
469 undefined\MessageBreak
470 for label type ``#3''%
472 The format ``#2'' was not defined for the label type
474 and the \backslashchar#1ref\space command. Perhaps
475 you have only misspelled its name.\MessageBreak
476 Otherwise you will have to define it with
477 \protect\new#1refformat\MessageBreak
482 \@nameuse{#1r@#2@#3}%
483 {\ref{#3\fancyrefargdelim#4}}%
484 {\pageref{#3\fancyrefargdelim#4}}%
485 {\@fancyref@page@ref{#3\fancyrefargdelim#4}}%
489 \newcommand*{\@fref}{\@empty}%
490 \newcommand*{\fref}[2][\fancyrefdefaultformat]{%
493 ####1\fancyrefargdelim####2\noexpand\@fref{%
494 \noexpand\@f@ref{f}{#1}{####1}{####2}%
500 \newcommand*{\@Fref}{\@empty}%
501 \newcommand*{\Fref}[2][\fancyrefdefaultformat]{%
504 ####1\fancyrefargdelim####2\noexpand\@Fref{%
505 \noexpand\@f@ref{F}{#1}{####1}{####2}%
513 %% End of file `fancyref.sty'.