From 6a5c8c809990518333962bdfefc346581304ddd1 Mon Sep 17 00:00:00 2001
From: Karl Berry <karl@freefriends.org>
Date: Fri, 13 Jan 2006 00:05:15 +0000
Subject: refstyle

git-svn-id: svn://tug.org/texlive/trunk@1272 c570f23f-e606-0410-a88d-b1316a301751
---
 Master/texmf-dist/tex/latex/refstyle/refstyle.sty | 298 ++++++++++++++++++++++
 1 file changed, 298 insertions(+)
 create mode 100644 Master/texmf-dist/tex/latex/refstyle/refstyle.sty

(limited to 'Master/texmf-dist/tex/latex/refstyle/refstyle.sty')

diff --git a/Master/texmf-dist/tex/latex/refstyle/refstyle.sty b/Master/texmf-dist/tex/latex/refstyle/refstyle.sty
new file mode 100644
index 00000000000..cba88645c90
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/refstyle/refstyle.sty
@@ -0,0 +1,298 @@
+%%
+%% This is file `refstyle.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% refstyle.dtx  (with options: `package')
+%% 
+%% This is a generated file.
+%% 
+%% Copyright (C) 2003 by Danie Els <dnjels@sun.ac.za>
+%% 
+%% This file may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License, either version 1.2 of this license
+%% or (at your option) any later version.  The latest version of this
+%% license is in:
+%% 
+%%    http://www.latex-project.org/lppl.txt
+%% 
+%% and version 1.2 or later is part of all distributions of LaTeX version
+%% 1999/12/01 or later.
+%% 
+
+
+\NeedsTeXFormat{LaTeX2e}[1999/12/01]
+\ProvidesPackage{refstyle}
+   [2003/04/23 v0.1 Reference formatting (DNJ Els)]
+\newcommand*{\RS@pkgname}{refstyle}
+\RequirePackage{keyval}
+\@ifundefined{vref@space}{\let\vref@space\space}{}
+\newcommand*{\RS@namelet}[1]{\expandafter\let\csname #1\endcsname}
+\newcommand*{\RS@nameuse}[1]{\csname #1\endcsname}
+\newcommand*{\RS@namedef}[1]{\expandafter\def\csname #1\endcsname}
+\newcommand*{\RS@robustnamedef}[1]{%
+   \expandafter\edef\csname #1\endcsname{%
+      \noexpand\protect\RS@nameuse{#1 }}%
+   \RS@namedef{#1 }}
+\def\RS@ifundefined#1{%
+   \begingroup\expandafter\expandafter\expandafter\endgroup
+   \expandafter\ifx\csname#1\endcsname\relax
+       \expandafter\@firstoftwo
+   \else
+       \expandafter\@secondoftwo
+   \fi}
+\newcommand*{\RS@removedef}[1]{%
+   \RS@namelet{#1}\@undefined%
+   \RS@ifundefined{#1 }{}{\RS@namelet{#1 }\@undefined}}
+\newcommand*{\RS@testednamedef}[1]{%
+   \RS@ifnamedefinable{#1}\RS@namedef{#1}}
+\newcommand*{\RS@testedrobustnamedef}[1]{%
+   \RS@ifnamedefinable{#1}\RS@robustnamedef{#1}}
+\long\def\RS@ifnamedefinable #1{%
+    \edef\reserved@a{#1}%
+    \RS@ifundefined\reserved@a
+       {\edef\reserved@b{\expandafter\@carcube \reserved@a xxx\@nil}%
+       \ifx \reserved@b\@qend \RS@notdefinable\else
+          \ifx \reserved@a\@qrelax \RS@notdefinable\else
+            \PackageInfo{\RS@pkgname}{\@backslashchar\reserved@a\space created}%
+          \fi
+       \fi}%
+    \RS@notdefinable}
+\gdef\RS@notdefinable{%
+   \PackageError{\RS@pkgname}{%
+      Command \@backslashchar\reserved@a\space
+      already defined.\MessageBreak
+      Or name \@backslashchar\@qend... illegal.\MessageBreak
+      It can not be redefined by the \@backslashchar newref%
+      }{%
+      If \@backslashchar\reserved@a\space is not important\MessageBreak
+      then \protect\let\@backslashchar\reserved@a%
+      =\protect\relax,\MessageBreak
+      else use a different \@backslashchar newref.}%
+      }
+\newcommand*{\RS@setbool}[2]{%
+  \lowercase{\def\@tempa{#2}}%
+  \@ifundefined{@tempswa\@tempa}%
+    {\PackageError{\RS@pkgname}%
+       {You can only set the option to `true' or `false'}\@ehc}%
+    {\csname#1\@tempa\endcsname}}
+\def\RS@firstcap#1#2\@nil{%
+  \iffalse{\fi
+    \uppercase{\edef\RS@cap{\iffalse}\fi#1}#2}}%
+\newif\ifRSstar\RSstarfalse
+\newif\ifRSnameon\RSnameontrue
+\newif\ifRScapname\RScapnamefalse
+\newif\ifRSplural\RSpluralfalse
+\newcommand*{\newref}[1]{%
+   \lowercase{\def\RS@tempa{#1}}%
+   \expandafter\RS@newref\expandafter{\RS@tempa}}
+\newcommand*{\RS@newref}[2]{%
+   \RS@clearref{#1}%
+   \define@key{RS@#1}{key}[#1:]{\RS@namedef{RS@#1@key}{##1}}%
+   \define@key{RS@#1}{s}[true]{\RS@setbool{RSplural}{##1}}%
+   \define@key{RS@#1}{name}[]{\RS@namedef{RS@#1@name}{##1}}%
+   \define@key{RS@#1}{names}[]{\RS@namedef{RS@#1@names}{##1}}%
+   \define@key{RS@#1}{Name}[]{\RS@namedef{RS@#1@Name}{##1}}%
+   \define@key{RS@#1}{Names}[]{\RS@namedef{RS@#1@Names}{##1}}%
+   \define@key{RS@#1}{rngtxt}[\space to~]{\RS@namedef{RS@#1@rngtxt}{##1}}%
+   \define@key{RS@#1}{lsttxt}[\space and~]{\RS@namedef{RS@#1@lsttxt}{##1}}%
+   \define@key{RS@#1}{refcmd}[\ref{####1}]{\RS@namedef{RS@#1@rcmd}####1{##1}}%
+   \define@key{RS@#1}{xr}[]{\RS@namedef{RS@#1@xr}{##1}}%
+   \define@key{RS@#1}{vref}[true]{\RS@namedef{RS@#1vref}{##1}}%
+   \setkeys{RS@#1}{key,
+                   s=false,
+                   name,names,Name,Names,
+                   rngtxt,lsttxt,
+                   refcmd,
+                   xr,
+                   vref=false}%
+   \setkeys{RS@#1}{#2}%
+   \RS@buildref{#1}%
+   }
+\newcommand*{\RS@clearref}[1]{%
+   \RS@ifundefined{RS@#1@template}
+      {\RS@namedef{RS@#1@template}{#1}%
+       \PackageInfo{\RS@pkgname}%
+                   {New reference template \protect\newref{#1}}{}}
+      {\PackageInfo{\RS@pkgname}%
+                   {Reference template \protect\newref{#1} redefined}{}
+       \RS@firstcap#1\@nil
+       \RS@removedef{#1key}%
+       \RS@removedef{#1label}%
+       \RS@removedef{#1ref}%
+       \RS@removedef{\RS@cap ref}%
+       \RS@removedef{#1rangeref}%
+       \RS@removedef{\RS@cap rangeref}%
+       \RS@removedef{#1pageref}%
+      }%
+   }
+\newcommand*{\RS@buildref}[1]{%
+    \RS@firstcap#1\@nil
+    \RS@testednamedef{#1key}{\RS@nameuse{RS@#1@key}}
+    \RS@testedrobustnamedef{#1label}{\RS@cmd{label}{#1}}
+    \RS@testedrobustnamedef{#1ref}{\RScapnamefalse\RS@cmd{ref}{#1}}
+    \RS@testedrobustnamedef{\RS@cap ref}{\RScapnametrue\RS@cmd{ref}{#1}}
+    \RS@testedrobustnamedef{#1rangeref}{\RScapnamefalse\RS@cmd{rangeref}{#1}}
+    \RS@testedrobustnamedef{\RS@cap rangeref}{\RScapnametrue\RS@cmd{rangeref}{#1}}
+    \RS@testedrobustnamedef{#1pageref}{\RScapnamefalse\RS@cmd{pageref}{#1}}
+    }
+\newcommand*{\RS@cmd}[2]{%
+    \@ifstar{\RSstartrue\RSnameonfalse\RS@@cmd{#1}{#2}}%
+            {\RSstarfalse\RSnameontrue\RS@@cmd{#1}{#2}}}
+\newcommand*{\RS@@cmd}[2]{%
+   \@ifnextchar[%
+      {\RS@nameuse{RS@#1}{#2}}%
+      {\RS@nameuse{RS@#1}{#2}[]}}
+\def\RS@ref#1[#2]#3{%
+   \begingroup
+      \setkeys{RS@#1}{#2}%
+      \edef\RS@tmpa{\zap@space#3 \@empty}%
+      \edef\RS@tmpa{\noexpand\RS@@ref{#1} \RS@tmpa,\relax\noexpand\@eolst}%
+      \RS@tmpa%
+   \endgroup}
+\def\RS@@ref#1 #2,#3\@eolst{%
+   \ifx\relax#3\relax
+      \RS@makename{#1}%
+      \RS@makeref{#1}{#2}%
+      \RS@makevpageref{#1}{#2}%
+   \else
+      \RSpluraltrue%
+      \RS@makename{#1}%
+      \RS@makeref{#1}{#2}%
+      \RS@makevpageref{#1}{#2}%
+      \RSnameonfalse%
+      \RS@@@ref{#1} #3\@eolst%
+   \fi}
+\def\RS@@@ref#1 #2,#3\@eolst{%
+   \ifx\relax#3\relax
+      \RS@nameuse{RS@#1@lsttxt}%
+      \RS@makeref{#1}{#2}%
+      \RS@makevpageref{#1}{#2}%
+   \else
+      \unskip,\space%
+      \RS@makeref{#1}{#2}%
+      \RS@makevpageref{#1}{#2}%
+      \RS@@@ref{#1} #3\@eolst%
+   \fi}
+\def\RS@rangeref#1[#2]#3#4{%
+   \begingroup
+      \setkeys{RS@#1}{#2}%
+      \RSpluraltrue%
+      \RS@makename{#1}%
+      \RS@makeref{#1}{#3}%
+      \RS@nameuse{RS@#1@rngtxt}%
+      \RSnameonfalse%
+      \RS@makeref{#1}{#4}%
+      \RS@makevpagerefrange{#1}{#3}{#4}%
+   \endgroup}
+\def\RS@pageref#1[#2]#3{%
+   \begingroup%
+      \setkeys{RS@#1}{#2}%
+      \RS@ifvref{#1}%
+         {\mbox{}\vpageref*{\RS@lbl{#1}{#3}}}%
+         {\reftextfaraway{\RS@lbl{#1}{#3}}}%
+         {\pageref{\RS@lbl{#1}{#3}}}%
+   \endgroup}
+\def\RS@label#1[#2]#3{%
+   \begingroup%
+      \setkeys{RS@#1}{#2}%
+      \label{\RS@nameuse{RS@#1@key}#3}%
+   \endgroup}
+\newcommand*{\RS@true}{true}
+\newcommand*{\RS@false}{false}
+\newcommand*{\RS@far}{far}
+\newcommand{\RS@ifvref}[4]{%
+   \edef\RS@tempa{\RS@nameuse{RS@#1vref}}%
+   \ifx\RS@tempa\RS@true\relax
+      #2%
+   \else\ifx\RS@tempa\RS@far\relax
+      #3%
+   \else\ifx\RS@tempa\RS@false\relax
+      #4%
+   \else
+      \PackageError{\RS@pkgname}%
+         {You can only set the vref option to `true', `far' or `false'}\@ehc
+   \fi\fi\fi}
+\newcommand{\RS@makename}[1]{%
+   \ifRSstar\else\ifRSnameon
+      \ifRSplural
+         \ifRScapname
+            \RS@nameuse{RS@#1@Names}%
+         \else
+            \RS@nameuse{RS@#1@names}%
+         \fi
+      \else
+         \ifRScapname
+            \RS@nameuse{RS@#1@Name}%
+         \else
+            \RS@nameuse{RS@#1@name}%
+         \fi
+      \fi
+   \fi\fi
+   }
+\newcommand*{\RS@lbl}[2]{%
+   \RS@nameuse{RS@#1@xr}\RS@nameuse{RS@#1@key}#2%
+   }
+\newcommand{\RS@makeref}[2]{%
+   \RS@nameuse{RS@#1@rcmd}{\RS@lbl{#1}{#2}}%
+   }
+\newcommand{\RS@makevpageref}[2]{%
+   \RS@ifvref{#1}%
+             {\vpageref[\unskip]{\RS@lbl{#1}{#2}}}%
+             { \reftextfaraway{\RS@lbl{#1}{#2}}}%
+             {}%
+   }
+\newcommand{\RS@makevpagerefrange}[3]{%
+   \RS@ifvref{#1}%
+             {\space\vpagerefrange[\unskip]{\RS@lbl{#1}{#2}}{\RS@lbl{#1}{#3}}}%
+             {\space\vpagerefrange[\unskip]{\RS@lbl{#1}{#2}}{\RS@lbl{#1}{#3}}}%
+             {}%
+   }
+\AtBeginDocument{%
+  \providecommand{\vpageref}{%
+     \PackageError{\RS@pkgname}%
+        {The vref option used, but varioref.sty not loaded.}%
+        {Load varioref.sty}}
+  \providecommand{\reftextfaraway}{%
+     \PackageError{\RS@pkgname}%
+        {The vref=far option used, but varioref.sty not loaded.}%
+        {Load varioref.sty}}
+  \providecommand{\vpagerefrange}{%
+     \PackageError{\RS@pkgname}%
+        {The vref option used, but varioref.sty not loaded.}%
+        {Load varioref.sty}}
+  }
+\def\RS@addto#1#2{%
+  #2%
+  \@temptokena{#2}%
+  \ifx#1\relax
+    \let#1\@empty
+  \fi
+  \ifx#1\undefined
+     \edef#1{\the\@temptokena}%
+  \else
+     \toks@\expandafter{#1}%
+     \edef#1{\the\toks@\the\@temptokena}%
+  \fi
+  \@temptokena{}\toks@\@temptokena}
+\def\DeclareLangOpt#1#2{%
+   \edef\RS@tempa{\expandafter\@gobble\string#2}%
+   \RS@ifundefined{\RS@tempa}%
+       {\PackageError{\RS@pkgname}%
+          {Unknown definitions \@backslashchar\RS@tempa\MessageBreak
+           for language option `#1'}{}}%
+       {\DeclareOption{#1}{\expandafter\RS@addto\csname extras#1\endcsname #2}}%
+  }
+\newcommand*{\RS@cfgfile}{refstyle.cfg}
+\@ifpackagewith{\@currname}{noconfig}
+   {\PackageInfo{\RS@pkgname}{No config file loaded}}%
+   {\InputIfFileExists{\RS@cfgfile}%
+      {\PackageInfo{\RS@pkgname}{Config file \RS@cfgfile\space used}}%
+      {\PackageInfo{\RS@pkgname}{Config file \RS@cfgfile\space not found}}%
+   }
+\DeclareOption{noconfig}{\OptionNotUsed}
+\ProcessOptions*\relax
+\endinput
+%%
+%% End of file `refstyle.sty'.
-- 
cgit v1.2.3

