]> git.donarmstrong.com Git - lib.git/blob - texmf/tex/latex/fancyref.sty
use yasnippet from straight
[lib.git] / texmf / tex / latex / fancyref.sty
1 %%
2 %% This is file `fancyref.sty',
3 %% generated with the docstrip utility.
4 %%
5 %% The original source files were:
6 %%
7 %% fancyref.dtx  (with options: `package')
8 %% 
9 %% LaTeX package for fancy cross-referencing.
10 %% 
11 %% Copyright (C) 1999  Axel Reichert
12 %% See the files README and COPYING.
13 %% 
14 %% \CharacterTable
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%
32 ]%
33 \newcommand*{\@fancyref@add@to}[2]{%
34   \ifx#1\@undefined
35     \newcommand*{#1}{#2}%
36   \else
37     \ifx#1\relax
38       \newcommand*{#1}{#2}%
39     \else
40       \bgroup
41         \toks@\expandafter{#1#2}%
42         \xdef#1{\the\toks@}%
43       \egroup
44     \fi
45   \fi
46 }%
47 \newcommand*{\@fancyref@temp}{\@empty}%
48 \newcommand*{\fancyrefaddcaptions}[2]{%
49   \@ifundefined{captions#1}{%
50     #2%
51   }{%
52     \expandafter
53       \@fancyref@add@to\csname captions#1\endcsname{#2}%
54     \AtBeginDocument{%
55       \let\@fancyref@temp=\languagename
56       \csname captions#1\endcsname
57       \csname captions\@fancyref@temp\endcsname
58       \let\@fancyref@temp=\@empty
59     }%
60   }%
61 }%
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}%
113     }%
114     \renewcommand*{\frefenumname}{%
115       \MakeLowercase{\Frefenumname}%
116     }%
117     \renewcommand*{\frefeqname}{%
118       \MakeLowercase{\Frefeqname}%
119     }%
120     \renewcommand*{\freffigname}{%
121       \MakeLowercase{\Freffigname}%
122     }%
123     \renewcommand*{\freffnname}{%
124       \MakeLowercase{\Freffnname}%
125     }%
126     \renewcommand*{\frefonname}{%
127       \MakeLowercase{\Frefonname}%
128     }%
129     \renewcommand*{\frefpgname}{%
130       \MakeLowercase{\Frefpgname}%
131     }%
132     \renewcommand*{\frefsecname}{%
133       \MakeLowercase{\Frefsecname}%
134     }%
135     \renewcommand*{\frefseename}{%
136       \MakeLowercase{\Frefseename}%
137     }%
138     \renewcommand*{\freftabname}{%
139       \MakeLowercase{\Freftabname}%
140     }%
141     \renewcommand*{\freffigshortname}{%
142       \MakeLowercase{\Freffigshortname}%
143     }%
144     \renewcommand*{\frefpgshortname}{%
145       \MakeLowercase{\Frefpgshortname}%
146     }%
147     \renewcommand*{\freftabshortname}{%
148       \MakeLowercase{\Freftabshortname}%
149     }%
150   }%
151   \@ifundefined{captionsenglish}{%
152   }{%
153     \selectlanguage{english}%
154   }%
155   \PassOptionsToPackage{\CurrentOption}{varioref}%
156 }%
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}%
184     }%
185     \renewcommand*{\frefpgname}{\Frefpgname}%
186     \renewcommand*{\frefpgshortname}{\Frefpgshortname}%
187     \renewcommand*{\frefsecname}{\Frefsecname}%
188     \renewcommand*{\frefseename}{%
189       \MakeLowercase{\Frefseename}%
190     }%
191     \renewcommand*{\freftabname}{\Freftabname}%
192     \renewcommand*{\freftabshortname}{\Freftabshortname}%
193   }%
194   \@ifundefined{captionsgerman}{%
195   }{%
196     \selectlanguage{german}%
197   }%
198   \PassOptionsToPackage{\CurrentOption}{varioref}%
199 }%
200 \DeclareOption{loose}{%
201   \newcommand*{\fancyrefdefaultspacing}{%
202     \fancyrefloosespacing
203   }%
204 }%
205 \DeclareOption{margin}{%
206   \renewcommand{\fancyrefhook}[1]{%
207     \mbox{}%
208     \marginpar{%
209       \raggedright\hspace{0pt}\footnotesize
210       \ensuremath{\m@th\rightarrow}~#1%
211     }%
212   }%
213 }%
214 \DeclareOption{paren}{%
215   \renewcommand*{\fancyrefhook}[1]{(#1)}%
216 }%
217 \DeclareOption{plain}{%
218   \renewcommand*{\fancyrefdefaultformat}{plain}%
219 }%
220 \DeclareOption{tight}{%
221   \renewcommand*{\fancyrefdefaultspacing}{%
222     \fancyreftightspacing
223   }%
224 }%
225 \DeclareOption{vario}{%
226   \renewcommand*{\fancyrefdefaultformat}{vario}%
227 }%
228 \DeclareOption*{%
229   \PackageError{fancyref}{%
230     Unknown option ``\CurrentOption''%
231   }{%
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''.%
240   }%
241   \PassOptionsToPackage{\CurrentOption}{varioref}%
242 }%
243 \ExecuteOptions{english,loose,vario}%
244 \ProcessOptions*%
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]{%
255   \ifx\relax#1%
256     \def#1{\@fancyref@ren{#2}}%
257   \else
258     \expandafter\def\expandafter#1%
259       \expandafter{#1\@fancyref@ren{#2}}%
260   \fi
261 }%
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%
266   \else
267     \def\@fancyref@ren##1{%
268       \expandafter
269         \let\csname fr@##1@#1\expandafter\endcsname
270           \csname fr@##1@\@fancyref@old@prefix\endcsname
271       \expandafter
272         \let\csname fr@##1@\@fancyref@old@prefix\endcsname
273           \@undefined
274     }%
275     \csname @fr@ren@list\string#1\endcsname
276     \def\@fancyref@ren##1{%
277       \expandafter
278         \let\csname Fr@##1@#1\expandafter\endcsname
279           \csname Fr@##1@\@fancyref@old@prefix\endcsname
280       \expandafter
281         \let\csname Fr@##1@\@fancyref@old@prefix\endcsname
282           \@undefined
283     }%
284     \csname @Fr@ren@list\string#1\endcsname
285     \expandafter\let
286       \csname @fancyref@saved@prefix\string#1\endcsname#1%
287   \fi
288 }%
289 \newcommand*{\fancyrefchangeprefix}[2]{%
290   \renewcommand*{#1}{#2}%
291   \@fancyref@check@prefix{#1}%
292 }%
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%
298 }%
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%
304 }%
305 \frefformat{vario}{\fancyrefchaplabelprefix}{%
306   \frefchapname\fancyrefdefaultspacing#1#3%
307 }%
308 \frefformat{plain}{\fancyrefchaplabelprefix}{%
309   \frefchapname\fancyrefdefaultspacing#1%
310 }%
311 \frefformat{vario}{\fancyrefenumlabelprefix}{%
312   \frefenumname\fancyrefdefaultspacing#1#3%
313 }%
314 \frefformat{plain}{\fancyrefenumlabelprefix}{%
315   \frefenumname\fancyrefdefaultspacing#1%
316 }%
317 \@ifundefined{tagform@}{%
318   \frefformat{vario}{\fancyrefeqlabelprefix}{%
319     \frefeqname\fancyrefdefaultspacing\textup{(#1)}#3%
320   }%
321   \frefformat{plain}{\fancyrefeqlabelprefix}{%
322     \frefeqname\fancyrefdefaultspacing\textup{(#1)}%
323   }%
324 }{%
325   \frefformat{vario}{\fancyrefeqlabelprefix}{%
326     \frefeqname\fancyrefdefaultspacing
327     \textup{\tagform@{#1}}#3%
328   }%
329   \frefformat{plain}{\fancyrefeqlabelprefix}{%
330     \frefeqname\fancyrefdefaultspacing
331     \textup{\tagform@{#1}}%
332   }%
333 }%
334 \frefformat{margin}{\fancyreffiglabelprefix}{%
335   \mbox{}\marginpar{%
336     \raggedright\hspace{0pt}\footnotesize
337     \ensuremath{\m@th\rightarrow}~%
338     \Freffigshortname\fancyreftightspacing#1,
339     \frefpgshortname\fancyreftightspacing#2%
340   }%
341 }%
342 \frefformat{main}{\fancyreffiglabelprefix}{%
343   \textbf{\freffigname\fancyrefdefaultspacing#1}#3%
344 }%
345 \frefformat{vario}{\fancyreffiglabelprefix}{%
346   \freffigname\fancyrefdefaultspacing#1#3%
347 }%
348 \frefformat{plain}{\fancyreffiglabelprefix}{%
349   \freffigname\fancyrefdefaultspacing#1%
350 }%
351 \frefformat{vario}{\fancyreffnlabelprefix}{%
352   \freffnname\fancyrefdefaultspacing#1#3%
353 }%
354 \frefformat{plain}{\fancyreffnlabelprefix}{%
355   \freffnname\fancyrefdefaultspacing#1%
356 }%
357 \frefformat{vario}{\fancyrefseclabelprefix}{%
358   \frefsecname\fancyrefdefaultspacing#1#3%
359 }%
360 \frefformat{plain}{\fancyrefseclabelprefix}{%
361   \frefsecname\fancyrefdefaultspacing#1%
362 }%
363 \frefformat{margin}{\fancyreftablabelprefix}{%
364   \mbox{}\marginpar{%
365     \raggedright\hspace{0pt}\footnotesize
366     \ensuremath{\m@th\rightarrow}~%
367     \Freftabshortname\fancyreftightspacing#1,
368     \frefpgshortname\fancyreftightspacing#2%
369   }%
370 }%
371 \frefformat{main}{\fancyreftablabelprefix}{%
372   \textbf{\freftabname\fancyrefdefaultspacing#1}#3%
373 }%
374 \frefformat{vario}{\fancyreftablabelprefix}{%
375   \freftabname\fancyrefdefaultspacing#1#3%
376 }%
377 \frefformat{plain}{\fancyreftablabelprefix}{%
378   \freftabname\fancyrefdefaultspacing#1%
379 }%
380 \Frefformat{vario}{\fancyrefchaplabelprefix}{%
381   \Frefchapname\fancyrefdefaultspacing#1#3%
382 }%
383 \Frefformat{plain}{\fancyrefchaplabelprefix}{%
384   \Frefchapname\fancyrefdefaultspacing#1%
385 }%
386 \Frefformat{vario}{\fancyrefenumlabelprefix}{%
387   \Frefenumname\fancyrefdefaultspacing#1#3%
388 }%
389 \Frefformat{plain}{\fancyrefenumlabelprefix}{%
390   \Frefenumname\fancyrefdefaultspacing#1%
391 }%
392 \@ifundefined{tagform@}{%
393   \Frefformat{vario}{\fancyrefeqlabelprefix}{%
394     \Frefeqname\fancyrefdefaultspacing\textup{(#1)}#3%
395   }%
396   \Frefformat{plain}{\fancyrefeqlabelprefix}{%
397     \Frefeqname\fancyrefdefaultspacing\textup{(#1)}%
398   }%
399 }{%
400   \Frefformat{vario}{\fancyrefeqlabelprefix}{%
401     \Frefeqname\fancyrefdefaultspacing
402     \textup{\tagform@{#1}}#3%
403   }%
404   \Frefformat{plain}{\fancyrefeqlabelprefix}{%
405     \Frefeqname\fancyrefdefaultspacing
406     \textup{\tagform@{#1}}%
407   }%
408 }%
409 \Frefformat{margin}{\fancyreffiglabelprefix}{%
410   \mbox{}\marginpar{%
411     \raggedright\hspace{0pt}\footnotesize
412     \ensuremath{\m@th\rightarrow}~%
413     \Freffigshortname\fancyreftightspacing#1,
414     \frefpgshortname\fancyreftightspacing#2%
415   }%
416 }%
417 \Frefformat{main}{\fancyreffiglabelprefix}{%
418   \textbf{\Freffigname\fancyrefdefaultspacing#1}#3%
419 }%
420 \Frefformat{vario}{\fancyreffiglabelprefix}{%
421   \Freffigname\fancyrefdefaultspacing#1#3%
422 }%
423 \Frefformat{plain}{\fancyreffiglabelprefix}{%
424   \Freffigname\fancyrefdefaultspacing#1%
425 }%
426 \Frefformat{vario}{\fancyreffnlabelprefix}{%
427   \Freffnname\fancyrefdefaultspacing#1#3%
428 }%
429 \Frefformat{plain}{\fancyreffnlabelprefix}{%
430   \Freffnname\fancyrefdefaultspacing#1%
431 }%
432 \Frefformat{vario}{\fancyrefseclabelprefix}{%
433   \Frefsecname\fancyrefdefaultspacing#1#3%
434 }%
435 \Frefformat{plain}{\fancyrefseclabelprefix}{%
436   \Frefsecname\fancyrefdefaultspacing#1%
437 }%
438 \Frefformat{margin}{\fancyreftablabelprefix}{%
439   \mbox{}\marginpar{%
440     \raggedright\hspace{0pt}\footnotesize
441     \ensuremath{\m@th\rightarrow}~%
442     \Freftabshortname\fancyreftightspacing#1,
443     \frefpgshortname\fancyreftightspacing#2%
444   }%
445 }%
446 \Frefformat{main}{\fancyreftablabelprefix}{%
447   \textbf{\Freftabname\fancyrefdefaultspacing#1}#3%
448 }%
449 \Frefformat{vario}{\fancyreftablabelprefix}{%
450   \Freftabname\fancyrefdefaultspacing#1#3%
451 }%
452 \Frefformat{plain}{\fancyreftablabelprefix}{%
453   \Freftabname\fancyrefdefaultspacing#1%
454 }%
455 \newcommand*{\fancyrefargdelim}{:}%
456 \begingroup \catcode`\|=0 |catcode`|\=12
457 |toks0={|endgroup
458   |def|backslashchar{\}}
459 |the|toks0 \relax
460 \newcommand*{\@fancyref@page@ref}{
461   \let\vref@space\space
462   \@ifnextchar[%]
463   \@vpageref{\@vpageref[\unskip]}%
464 }%
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''%
471     }{%
472       The format ``#2'' was not defined for the label type
473       ``#3''\MessageBreak
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
478       prior to using it.%
479     }%
480   }{%
481     \fancyrefhook{%
482       \@nameuse{#1r@#2@#3}%
483         {\ref{#3\fancyrefargdelim#4}}%
484         {\pageref{#3\fancyrefargdelim#4}}%
485         {\@fancyref@page@ref{#3\fancyrefargdelim#4}}%
486     }%
487   }%
488 }%
489 \newcommand*{\@fref}{\@empty}%
490 \newcommand*{\fref}[2][\fancyrefdefaultformat]{%
491   \edef\@fref{%
492     \def\noexpand\@fref
493       ####1\fancyrefargdelim####2\noexpand\@fref{%
494       \noexpand\@f@ref{f}{#1}{####1}{####2}%
495     }%
496   }%
497   \@fref
498   \@fref#2\@fref
499 }%
500 \newcommand*{\@Fref}{\@empty}%
501 \newcommand*{\Fref}[2][\fancyrefdefaultformat]{%
502   \edef\@Fref{%
503     \def\noexpand\@Fref
504       ####1\fancyrefargdelim####2\noexpand\@Fref{%
505       \noexpand\@f@ref{F}{#1}{####1}{####2}%
506     }%
507   }%
508   \@Fref
509   \@Fref#2\@Fref
510 }%
511 \endinput
512 %%
513 %% End of file `fancyref.sty'.