diff options
author | Karl Berry <karl@freefriends.org> | 2006-01-13 00:10:06 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2006-01-13 00:10:06 +0000 |
commit | a19be4e43bf70e8ffc076edf81fb0ab53e361d80 (patch) | |
tree | 3394f1ac6aca7bee69e609d0b41e75a2d0f472c8 /Master/texmf-dist/tex/latex | |
parent | 590e6c2dee7fa738e6f5d37271694be8c2c7336d (diff) |
typedref
git-svn-id: svn://tug.org/texlive/trunk@1415 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex')
-rw-r--r-- | Master/texmf-dist/tex/latex/typedref/typedref.sty | 146 |
1 files changed, 146 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/typedref/typedref.sty b/Master/texmf-dist/tex/latex/typedref/typedref.sty new file mode 100644 index 00000000000..8b7ad8f6820 --- /dev/null +++ b/Master/texmf-dist/tex/latex/typedref/typedref.sty @@ -0,0 +1,146 @@ +%% +%% This is file `typedref.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% typedref.dtx (with options: `package') +%% +%% Package `typedref' for use with LaTeX2e +%% Copyright (C) 2001 Gregory Seidman (email `gseidman@acm.org'). +%% All rights reserved. You may not alter the contents of this file unless +%% you also change its name. Please make a bona fide attempt to submit +%% patches to me before changing the name of this file. +%% +%% Modified from package `saferef' +%% Copyright (C) 1997 James Ashton (email `James.Ashton@anu.edu.au'). +%% All rights reserved. You may not alter the contents of this file unless +%% you also change its name. +%% +%% Modifications include proper handling of appendices which are not +%% chapters (i.e. in a document class other than book) and compatibility +%% with hyperref. +%% +\def\fileversion{1.0} +\def\filedate{2001/9/10} +\def\docdate{2001/9/10} +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{typedref}[\filedate\space\fileversion\space A Safer Cross-referencing package] +\typeout{Package `typedref' \fileversion\space<\filedate>} +\AtBeginDocument{% + \let\sr@eqnarray=\eqnarray% + \def\eqnarray{\def\sr@name{\sr@eq}\sr@eqnarray}% + \let\sr@label=\label% + \def\label#1{\sr@label{\sr@name:#1}}% + \let\ltx@label=\label% + \let\sr@ref=\ref% + \def\ref{\@latex@error{\string\ref\space disallowed with the saferefa package.}}% +} +\@ifpackageloaded{hyperref}{% + \let\sr@refstepcounter=\H@refstepcounter% + \def\H@refstepcounter#1{% + \csname sr@nm@#1\endcsname% + \sr@refstepcounter{#1}}% +}{% + \let\sr@refstepcounter=\refstepcounter% + \def\refstepcounter#1{% + \csname sr@nm@#1\endcsname% + \sr@refstepcounter{#1}}% +} +\def\sr@refs<#1,#2>#3#4#5{% + \ifx\relax#2\relax + #4~\sr@ref{#3:#1}% + \else% + #5 \sr@ref{#3:#1}% + \sr@rest<#2>{#3}% + \fi% +} +\def\sr@rest<#1,#2>#3{% + \ifx\relax#2\relax + \ and~\sr@ref{#3:#1}% + \else% + , \sr@ref{#3:#1}% + \sr@rest<#2>{#3}% + \fi% +} +\ifx\eqref\@undefined + \def\eqref#1{\textup{\hbox{\m@th\normalfont(\ignorespaces\ref{#1}\unskip\@@italiccorr)}}} +\fi +\let\sr@eqref=\eqref +\def\eqref#1{{\let\ref=\sr@ref\sr@eqref{equation:#1}}} +\def\refname#1#2#3{% + \expandafter\def\csname#1ref\endcsname##1{\sr@refs<##1,>{#1}{#2}{#3}}} +\def\sr@refname#1#2#3{% + \expandafter\def\csname sr@nm@#1\endcsname{\xdef\sr@name{#1}}% + \refname{#1}{#2}{#3}} +\sr@refname{appendix}{Appendix}{Appendices} +\sr@refname{chapter}{Chapter}{Chapters} +\sr@refname{figure}{Figure}{Figures} +\sr@refname{footnote}{Footnote}{Footnotes} +\sr@refname{item}{Item}{Items} +\sr@refname{paragraph}{Paragraph}{Paragraphs} +\sr@refname{part}{Part}{Parts} +\sr@refname{section}{Section}{Sections} +\sr@refname{table}{Table}{Tables} +\sr@refname{equation}{Equation}{Equations} +\def\sr@nm@subsection{\xdef\sr@name{section}} +\def\sr@nm@subsubsection{\xdef\sr@name{section}} +\def\sr@nm@subparagraph{\xdef\sr@name{paragraph}} +\def\sr@nm@mpfootnote{\xdef\sr@name{footnote}} +\let\sr@appendix=\appendix +\@ifundefined{chapter}{ +\def\appendix{\sr@appendix\def\sr@nm@section{\xdef\sr@name{appendix}}} +}{ +\def\appendix{\sr@appendix\def\sr@nm@chapter{\xdef\sr@name{appendix}}} +} +\def\sr@nm@enumi{\xdef\sr@name{\sr@item}} +\def\sr@nm@enumii{\xdef\sr@name{\sr@item}} +\def\sr@nm@enumiii{\xdef\sr@name{\sr@item}} +\def\sr@nm@enumiv{\xdef\sr@name{\sr@item}} +\def\itemname#1{\def\sr@item{#1}} +\itemname{item} +\def\eqname#1{\def\sr@eq{#1}} +\eqname{equation} +\let\sr@newtheorem=\newtheorem +\def\newtheorem{\@ifstar{\sr@xnthm*}{\sr@xnthm\relax}} +\def\sr@oparg#1[#2]{\@ifnextchar[{#1}{#1[#2]}} +\def\sr@unthm#1#2{\sr@newtheorem*{#1}{#2}} +\def\sr@xnthm#1#2{% + \let\sr@t\relax + \ifx *#1% Handle the amsthm starred form of \newtheorem + \def\sr@t{\sr@unthm{#2}}% + \else + \def\sr@t{\sr@oparg{\sr@ynthm{#2}}[]}% + \fi + \sr@t +} +\def\sr@ynthm#1[#2]#3#4{% + \ifx\relax#2\relax + \def\sr@t{\sr@oparg{\sr@xthm{#1}{#3}{#4}}[]}% + \expandafter\def\csname sr@nm@#1\endcsname{\xdef\sr@name{#1}} + \else + \let\sr@t=\relax + \sr@newtheorem{#1}[#2]{#3} + \refname{#1}{#3}{#4} + \expandafter\let\expandafter\sr@th\csname #1\endcsname + \expandafter\let\csname sr@th@#1\endcsname\sr@th + \let\sr@th\relax + \expandafter\def\csname #1\endcsname{ + \expandafter\def\csname sr@nm@#2\endcsname{\xdef\sr@name{#1}} + \csname sr@th@#1\endcsname + } + \fi + \sr@t +} +\def\sr@xthm#1#2#3[#4]{ + \ifx\relax#4\relax + \sr@newtheorem{#1}{#2} + \refname{#1}{#2}{#3} + \else + \sr@newtheorem{#1}{#2}[#4] + \refname{#1}{#2}{#3} + \fi +} +\endinput +%% +%% End of file `typedref.sty'. |