diff options
Diffstat (limited to 'macros/latex/contrib/refstyle')
-rw-r--r-- | macros/latex/contrib/refstyle/README | 140 | ||||
-rw-r--r-- | macros/latex/contrib/refstyle/refconfig.dtx | 2421 | ||||
-rw-r--r-- | macros/latex/contrib/refstyle/refconfig.pdf | bin | 292980 -> 303725 bytes | |||
-rw-r--r-- | macros/latex/contrib/refstyle/refstyle.cfg | 571 | ||||
-rw-r--r-- | macros/latex/contrib/refstyle/refstyle.dtx | 3591 | ||||
-rw-r--r-- | macros/latex/contrib/refstyle/refstyle.ins | 189 | ||||
-rw-r--r-- | macros/latex/contrib/refstyle/refstyle.pdf | bin | 484262 -> 485427 bytes | |||
-rw-r--r-- | macros/latex/contrib/refstyle/refstyle.sty | 327 |
8 files changed, 3166 insertions, 4073 deletions
diff --git a/macros/latex/contrib/refstyle/README b/macros/latex/contrib/refstyle/README index e33a537d59..93d23dc15e 100644 --- a/macros/latex/contrib/refstyle/README +++ b/macros/latex/contrib/refstyle/README @@ -1,70 +1,70 @@ - The refstyle package
- For extended references
-
-File: README
-Author: Danie Els
-
-DESCRIPTION
-===========
-
-The package provides a user interface to define sets of reference
-and label commands for each referable object such as an equation or
-a table, etc.
-
-Copyright: 2002--2010 Danie Els
-Licence: LPPL
-
-FILES IN DISTRIBUTION
-=====================
-
- BASE DISTRIBUTION:
-
- README This file.
- refstyle.ins Package installation file.
- refstyle.dtx Package source file.
- refconfig.dtx Package configuration source file.
-
- refstyle.sty
- refstyle.cfg Package style and config files. Was produced by
- executing "latex refstyle.ins".
-
- DOCUMENTATION:
-
- refstyle.pdf User manual for refstyle package. It was
- produced by executing:
-
- latex refstyle.ins
-
- pdflatex refstyle.dtx
- pdflatex refstyle.dtx
- makeindex -s gglo.ist -o refstyle.gls refstyle.glo
- makeindex -s gind.ist -o refstyle.ind refstyle.idx
- pdflatex refstyle.dtx
- pdflatex refstyle.dtx
-
- refconfig.pdf Configuration manual for refstyle package. Produced
- form refconfig.dtx in the same manner as above.
-
-
-BASIC INSTALLATION
-====================
-
- The minimum requirement to use the package is the to have
- refstyle.sty and refstyle.cfg in a directory where TeX can find it.
-
- For a basic installation on a TDS compliant system, move the following
- files to the following directories:
-
- <texmf>/tex/latex/refstyle/
- refstyle.sty
- refstyle.cfg
-
- <texmf>/source/latex/refstyle/
- refstyle.ins
- refstyle.dtx
- refconfig.dtx
-
- <texmf>/doc/latex/refstyle/
- README
- refstyle.pdf
- refconfig.pdf
+ The refstyle package + For extended references + +File: README +Author: Danie Els + +DESCRIPTION +=========== + +The package provides a user interface to define sets of reference +and label commands for each referable object such as an equation or +a table, etc. + +Copyright: 2002--2024 Danie Els +Licence: LPPL + +FILES IN DISTRIBUTION +===================== + + BASE DISTRIBUTION: + + README This file. + refstyle.ins Package installation file. + refstyle.dtx Package source file. + refconfig.dtx Package configuration source file. + + refstyle.sty + refstyle.cfg Package style and config files. Was produced by + executing "latex refstyle.ins". + + DOCUMENTATION: + + refstyle.pdf User manual for refstyle package. It was + produced by executing: + + latex refstyle.ins + + pdflatex refstyle.dtx + pdflatex refstyle.dtx + makeindex -s gglo.ist -o refstyle.gls refstyle.glo + makeindex -s gind.ist -o refstyle.ind refstyle.idx + pdflatex refstyle.dtx + pdflatex refstyle.dtx + + refconfig.pdf Configuration manual for refstyle package. Produced + form refconfig.dtx in the same manner as above. + + +BASIC INSTALLATION +==================== + + The minimum requirement to use the package is the to have + refstyle.sty and refstyle.cfg in a directory where TeX can find it. + + For a basic installation on a TDS compliant system, move the following + files to the following directories: + + <texmf>/tex/latex/refstyle/ + refstyle.sty + refstyle.cfg + + <texmf>/source/latex/refstyle/ + refstyle.ins + refstyle.dtx + refconfig.dtx + + <texmf>/doc/latex/refstyle/ + README + refstyle.pdf + refconfig.pdf diff --git a/macros/latex/contrib/refstyle/refconfig.dtx b/macros/latex/contrib/refstyle/refconfig.dtx index a603d8e135..22a675b8ac 100644 --- a/macros/latex/contrib/refstyle/refconfig.dtx +++ b/macros/latex/contrib/refstyle/refconfig.dtx @@ -1,1212 +1,1209 @@ -% \iffalse
-%
-% refconfig.dtx
-% Copyright (C) 2002--2010 Danie Els
-%
-% -------------------------------------------------------------------
-% The refstyle package
-% for the formatting of references
-% -------------------------------------------------------------------
-% This work may be distributed and/or modified under the conditions
-% of the LaTeX Project Public License, either version 1.3c 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.3c or later is part of all distributions of LaTeX
-% version 2005/12/01 or later.
-%
-% This work is "maintained" (as per LPPL maintenance status)
-% by Danie Els (dnjels@sun.ac.za).
-%
-% This package consists of the files: refstyle.dtx
-% refconfig.dtx
-% refstyle.ins
-% and the derived files: refstyle.sty
-% refstyle.cfg
-% -------------------------------------------------------------------
-%
-%
-%<*driver>
-\documentclass[a4paper]{ltxdoc}
- \EnableCrossrefs
- \CodelineIndex
- \RecordChanges
-\usepackage{color}
-\usepackage{framed}
- \setlength{\FrameSep}{1\fboxsep}
- \definecolor{shadecolor}{gray}{0.9}
- \newenvironment{RSframed}{\shaded}{\endshaded}
-\usepackage{xspace}
-\usepackage{varioref}
-\usepackage{refstyle}
-
-%-- macrocode env changes ------------------------------
-
-\setlength{\MacroIndent}{1.5em}
-
-%-- Indented environments ------------------------------
-
-\newlength{\tdima}
-\newsavebox{\tboxa}
-\newlength{\mytab}
-\setlength{\mytab}{2\parindent}
-
-\newenvironment{IndentPara}[1][1]
- {\list{}{\setlength{\leftmargin}{#1\mytab}%
- \setlength{\labelwidth}{0pt}%
- \setlength{\labelsep}{0pt}%
- \setlength{\itemindent}{\parindent}%
- \setlength{\listparindent}{\parindent}%
- }\item[]}%
- {\endlist}
-\newenvironment{Ipara}[1][\small]%
- {\begin{IndentPara}\noindent#1\ignorespaces}%
- {\end{IndentPara}}
-\newenvironment{Itabb}[1][\small]%
- {\begin{IndentPara}#1\ignorespaces\begin{tabbing}\ignorespaces}%
- {\end{tabbing}\end{IndentPara}}
-
-%-- Additional documenting commands --------------------
-
-\makeatletter
-\def\meta@font@select{\normalfont\slshape}
-\makeatother
-
-\newcommand*{\file}[1]{\texttt{#1}}
-\newcommand*{\pkg}[1]{\textsf{#1}}
-\newcommand*{\env}[1]{\texttt{#1}}
-\newcommand*{\opt}[1]{\texttt{\slshape#1}}
-\newcommand*{\RS}{\pkg{refstyle}\xspace}
-
-\newcommand*{\ArTab}{\>\quad$\rightarrow$\quad}
-
-%-------------------------------------------------------
-
-\setlength\hfuzz{15pt}
-\hbadness=7000
-\begin{document}
- \DocInput{refconfig.dtx}
-\end{document}
-
-%</driver>
-% \fi
-%
-% \CheckSum{1098}
-%
-% \CharacterTable
-% {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
-% 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
-% Digits \0\1\2\3\4\5\6\7\8\9
-% Exclamation \! Double quote \" Hash (number) \#
-% Dollar \$ Percent \% Ampersand \&
-% Acute accent \' Left paren \( Right paren \)
-% Asterisk \* Plus \+ Comma \,
-% Minus \- Point \. Solidus \/
-% Colon \: Semicolon \; Less than \<
-% Equals \= Greater than \> Question mark \?
-% Commercial at \@ Left bracket \[ Backslash \\
-% Right bracket \] Circumflex \^ Underscore \_
-% Grave accent \` Left brace \{ Vertical bar \|
-% Right brace \} Tilde \~}
-%
-% \changes{v0.0}{2002/04/01}{Initial version}
-% \changes{v0.2}{2003/07/30}{Updated version}
-% \changes{v0.3}{2006/09/07}{Documentation update}
-% \changes{v0.4}{2010/10/21}{Add \cmd{\RSlsttwotxt} for lists}
-% \changes{v0.5}{2010/11/02}{Bug fixes}
-%
-% \DoNotIndex{
-% \",\@chapapp,\@ifpackageloaded,\AtBeginDocument,
-% \begingroup,\def,\edef,\else,\endgroup,
-% \fi,\ifx, \let, \newcommand,\newref,
-% \providecommand,\ProvidesFile,\ref,\relax,
-% \renewcommand,\RS@ifundefined,\RS@tmpa,\RS@tmpb,
-% \S,\space,\ss,\string,\textup,\unrestored@protected@xdef}
-%
-%^^A-- Titling --------------------------------------------
-% \GetFileInfo{refstyle.cfg}
-% \title{\vskip -2em
-% Configuration file for \RS\ package\thanks{
-% This file has version number
-% \fileversion, last revised
-% \filedate.}}
-% \author{Danie Els\\[1ex]
-% \small Department of Mechanical and Mechatroncs Engineering\\
-% \small University of Stellenbosch, South Africa.\\
-% \normalsize e-mail: \texttt{dnjels@sun.ac.za}}
-% \date{\filedate}
-% \maketitle
-%
-% \tableofcontents
-% \clearpage
-%
-%
-% \section{The \RS\ configuration file}
-%
-% \subsubsection*{Reference templates}
-% The default configuration file, \file{refstyle.cfg}, makes the
-% following reference declarations:
-% \begin{Ipara}
-% |\newref{part}{...}| \quad$\rightarrow$ Parts\\
-% |\newref{chap}{...}| \quad$\rightarrow$ Chapters and Appendices\\
-% |\newref{sec}{...} | \quad$\rightarrow$ Sections\\
-% |\newref{eq}{...} | \quad$\rightarrow$ Equations\\
-% |\newref{fig}{...} | \quad$\rightarrow$ Figures\\
-% |\newref{tab}{...} | \quad$\rightarrow$ Tables\\
-% |\newref{fn}{...} | \quad$\rightarrow$ Footnotes
-% \end{Ipara}
-% If there is a need for more reference types, this standard
-% list can be expanded.
-%
-% \subsubsection*{Language definitions}
-% The \RS\ package also provides the following language definitions
-% options for references, when loaded together with \pkg{babel}:
-% \begin{itemize}
-% \item afrikaans
-% \item danish
-% \item english, USenglish, american, canadian, UKenglish, british
-% \item french
-% \item german, ngerman, austrian, naustrian
-% \item italian
-% \item norwegian, nynorsk, norsk, bokmal\footnote{Norwegian Bokm{\aa}l
-% is not defined in \pkg{babel} yet.}
-% \item portuges, portuguese, brazilian, brazil
-% \item swedish
-% \end{itemize}
-%
-% \noindent See \secref[vref]{Thm} for an example of how to link your
-% own definitions to an exsiting language setup.
-% \StopEventually{\PrintChanges}
-% \clearpage
-% \section{Implementation}
-% \begin{macrocode}
-%<*cfg>
-% \end{macrocode}
-% \subsection{Identification}
-% \begin{RSframed}
-% \begin{macrocode}
-\ProvidesFile{refstyle.cfg}[2010/11/02\space
- 0.5\space
- Configuration file for refstyle (DNJ Els)]
-% \end{macrocode}
-% \end{RSframed}
-%
-% \subsection{Language Definitions for \RS\ Package}
-%
-% \subsubsection{English}
-%
-% \begin{macro}{\RSenglish,\RSukenglish}
-% Support provided by the author.
-% \begin{RSframed}
-% \begin{macrocode}
-%%-- ENGLISH ------------------------------------
-% \end{macrocode}
-% \begin{macrocode}
-\newcommand\RSukenglish{%
- \def\RSrngtxt{\space to~}%........... Range: figures 5 to 6
- \def\RSlsttwotxt{\space and~}%....... List two: figures 5 and 6
- \def\RSlsttxt{, and~}%............... List more: figures 5, 6, and 7
- \def\RSparttxt{Part~}%............... Part lowercase singular
- \def\RSpartstxt{Parts~}%............. lowercase plural
- \def\RSParttxt{Part~}%............... uppercase singular (sentence start)
- \def\RSPartstxt{Parts~}%............. uppercase plural (sentence start)
- \def\RSappendixname{appendix~}%...... Appendix lowercase singular
- \def\RSappendicesname{appendices~}%.. lowercase plural
- \def\RSAppendixname{Appendix~}%...... uppercase singular (sentence start)
- \def\RSAppendicesname{Appendices~}%.. uppercase plural (sentence start)
- \def\RSchaptername{chapter~}%........ Chapter lowercase singular
- \def\RSchaptersname{chapters~}%...... lowercase plural
- \def\RSChaptername{Chapter~}%........ uppercase singular (sentence start)
- \def\RSChaptersname{Chapters~}%...... uppercase plural (sentence start)
- \def\RSsectxt{section~}%............. Section lowercase singular
- \def\RSsecstxt{sections~}%........... lowercase plural
- \def\RSSectxt{Section~}%............. uppercase singular (sentence start)
- \def\RSSecstxt{Sections~}%........... uppercase plural (sentence start)
- \def\RSeqtxt{equation~}%............. Equation lowercase singular
- \def\RSeqstxt{equations~}%........... lowercase plural
- \def\RSEqtxt{Equation~}%............. uppercase singular (sentence start)
- \def\RSEqstxt{Equations~}%........... uppercase plural (sentence start)
- \def\RSfigtxt{figure~}%.............. Figure lowercase singular
- \def\RSfigstxt{figures~}%............ lowercase plural
- \def\RSFigtxt{Figure~}%.............. uppercase singular (sentence start)
- \def\RSFigstxt{Figures~}%............ uppercase plural (sentence start)
- \def\RStabtxt{table~}%............... Table lowercase singular
- \def\RStabstxt{tables~}%............. lowercase plural
- \def\RSTabtxt{Table~}%............... uppercase singular (sentence start)
- \def\RSTabstxt{Tables~}%............. uppercase plural (sentence start)
- \def\RSfootntxt{footnote~}%.......... Footnote lowercase singular
- \def\RSfootnstxt{footnotes~}%........ lowercase plural
- \def\RSFootntxt{Footnote~}%.......... uppercase singular (sentence start)
- \def\RSFootnstxt{Footnotes~}%........ uppercase plural (sentence start)
-}
-% \end{macrocode}
-% \begin{macrocode}
-\newcommand\RSenglish{%
- \def\RSrngtxt{\space to~}%
- \def\RSlsttwotxt{\space and~}%
- \def\RSlsttxt{\space and~}%
- \def\RSparttxt{Part~}%
- \def\RSpartstxt{Parts~}%
- \def\RSParttxt{Part~}%
- \def\RSPartstxt{Parts~}%
- \def\RSappendixname{appendix~}%
- \def\RSappendicesname{appendices~}%
- \def\RSAppendixname{Appendix~}%
- \def\RSAppendicesname{Appendices~}%
- \def\RSchaptername{chapter~}%
- \def\RSchaptersname{chapters~}%
- \def\RSChaptername{Chapter~}%
- \def\RSChaptersname{Chapters~}%
- \def\RSsectxt{section~}%
- \def\RSsecstxt{sections~}%
- \def\RSSectxt{Section~}%
- \def\RSSecstxt{Sections~}%
- \def\RSeqtxt{equation~}%
- \def\RSeqstxt{equations~}%
- \def\RSEqtxt{Equation~}%
- \def\RSEqstxt{Equations~}%
- \def\RSfigtxt{figure~}%
- \def\RSfigstxt{figures~}%
- \def\RSFigtxt{Figure~}%
- \def\RSFigstxt{Figures~}%
- \def\RStabtxt{table~}%
- \def\RStabstxt{tables~}%
- \def\RSTabtxt{Table~}%
- \def\RSTabstxt{Tables~}%
- \def\RSfootntxt{footnote~}%
- \def\RSfootnstxt{footnotes~}%
- \def\RSFootntxt{Footnote~}%
- \def\RSFootnstxt{Footnotes~}%
-}
-% \end{macrocode}
-% \end{RSframed}
-% \end{macro}
-%
-% \noindent Make English the default.
-% \begin{RSframed}
-% \begin{macrocode}
-\RSenglish% Default
-% \end{macrocode}
-% \end{RSframed}
-%
-% \noindent Options
-% \begin{RSframed}
-% \begin{macrocode}
-\DeclareLangOpt{english}{\RSenglish}
-\DeclareLangOpt{USenglish}{\RSenglish}
-\DeclareLangOpt{american}{\RSenglish}
-\DeclareLangOpt{canadian}{\RSenglish}
-\DeclareLangOpt{UKenglish}{\RSukenglish}
-\DeclareLangOpt{british}{\RSukenglish}
-% \end{macrocode}
-% \end{RSframed}
-%
-%
-% \subsubsection{Afrikaans}
-%
-% \begin{macro}{\RSafrikaans}
-% Support provided by the author.
-% \begin{RSframed}
-% \begin{macrocode}
-%%-- AFRIKAANS ----------------------------------
-% \end{macrocode}
-% \begin{macrocode}
-\newcommand\RSafrikaans{%
- \def\RSrngtxt{\space tot~}%
- \def\RSlsttwotxt{\space en~}%
- \def\RSlsttxt{\space en~}%
- \def\RSparttxt{Deel~}%
- \def\RSpartstxt{Dele~}%
- \def\RSParttxt{Deel~}%
- \def\RSPartstxt{Dele~}%
- \def\RSappendixname{bylae~}%
- \def\RSappendicesname{bylaes~}%
- \def\RSAppendixname{Bylae~}%
- \def\RSAppendicesname{Bylaes~}%
- \def\RSchaptername{hoofstuk~}%
- \def\RSchaptersname{hoofstukke~}%
- \def\RSChaptername{Hoofstuk~}%
- \def\RSChaptersname{Hoofstukke~}%
- \def\RSsectxt{afdeling~}%
- \def\RSsecstxt{afdelings~}%
- \def\RSSectxt{Afdeling~}%
- \def\RSSecstxt{Afdelings~}%
- \def\RSeqtxt{vergelyking~}%
- \def\RSeqstxt{vergelykings~}%
- \def\RSEqtxt{Vergelyking~}%
- \def\RSEqstxt{Vergelyking~}%
- \def\RSfigtxt{figuur~}%
- \def\RSfigstxt{figure~}%
- \def\RSFigtxt{Figuur~}%
- \def\RSFigstxt{Figure~}%
- \def\RStabtxt{tabel~}%
- \def\RStabstxt{tabelle~}%
- \def\RSTabtxt{Tabel~}%
- \def\RSTabstxt{Tabelle~}%
- \def\RSfootntxt{footnota~}%
- \def\RSfootnstxt{footnotas~}%
- \def\RSFootntxt{Footnota~}%
- \def\RSFootnstxt{Footnotas~}%
-}
-% \end{macrocode}
-% \end{RSframed}
-% \end{macro}
-%
-% \noindent Options
-% \begin{RSframed}
-% \begin{macrocode}
-\DeclareLangOpt{afrikaans}{\RSafrikaans}
-% \end{macrocode}
-% \end{RSframed}
-%
-%
-% \subsubsection{Danish}
-%
-% \begin{macro}{\RSdanish}
-% \changes{v0.2}{2003/07/30}{Add Danish language support}
-% Thomas Widmann: \texttt{<\,thomas.widmann AT harpercollins DOT co DOT uk>}
-% provided the definitions for Danish.
-% \begin{RSframed}
-% \begin{macrocode}
-%%-- DANISH -------------------------------------
-% \end{macrocode}
-% \begin{macrocode}
-\newcommand\RSdanish{%
- \def\RSrngtxt{\space til~}%
- \def\RSlsttwotxt{\space og~}%
- \def\RSlsttxt{\space og~}%
- \def\RSparttxt{del~}%
- \def\RSpartstxt{del~}%
- \def\RSParttxt{Del~}%
- \def\RSPartstxt{Del~}%
- \def\RSappendixname{bilag~}% % 'appendiks' is also possible,
- \def\RSappendicesname{bilag~}% % but 'bilag' is used in Babel
- \def\RSAppendixname{Bilag~}%
- \def\RSAppendicesname{Bilag~}%
- \def\RSchaptername{kapitel~}%
- \def\RSchaptersname{kapitel~}%
- \def\RSChaptername{Kapitel~}%
- \def\RSChaptersname{Kapitel~}%
- \def\RSsectxt{afsnit~}%
- \def\RSsecstxt{afsnit~}%
- \def\RSSectxt{Afsnit~}%
- \def\RSSecstxt{Afsnit~}%
- \def\RSeqtxt{ligning~}%
- \def\RSeqstxt{ligning~}%
- \def\RSEqtxt{Ligning~}%
- \def\RSEqstxt{Ligning~}%
- \def\RSfigtxt{figur~}%
- \def\RSfigstxt{figur~}%
- \def\RSFigtxt{Figur~}%
- \def\RSFigstxt{Figur~}%
- \def\RStabtxt{tabel~}%
- \def\RStabstxt{tablel~}%
- \def\RSTabtxt{Tabel~}%
- \def\RSTabstxt{Tabel~}%
- \def\RSfootntxt{fodnote~}%
- \def\RSfootnstxt{fodnote~}%
- \def\RSFootntxt{Fodnote~}%
- \def\RSFootnstxt{Fodnote~}%
-}
-% \end{macrocode}
-% \end{RSframed}
-% \end{macro}
-%
-% \noindent Options
-% \begin{RSframed}
-% \begin{macrocode}
-\DeclareLangOpt{danish}{\RSdanish}
-% \end{macrocode}
-% \end{RSframed}
-%
-%
-% \subsubsection{French}
-%
-% \begin{macro}{\RSfrench}
-% \changes{v0.4}{2010/10/21}{Add French language support}
-% Jean-Pierre Chr\'etien \texttt{<\,jeanpierre.chretien AT free DOT fr>}
-% provided the definitions for French.
-% \begin{RSframed}
-% \begin{macrocode}
-%%-- FRENCH -------------------------------------
-% \end{macrocode}
-% \begin{macrocode}
-\newcommand\RSfrench{%
- \def\RSrngtxt{\space \`{a}~}%
- \def\RSlsttwotxt{\space et~}%
- \def\RSlsttxt{\space et~}%
- \def\RSparttxt{partie~}%
- \def\RSpartstxt{parties~}%
- \def\RSParttxt{La partie~}%
- \def\RSPartstxt{Les parties~}%
- \def\RSappendixname{appendice~}%
- \def\RSappendicesname{appendices~}%
- \def\RSAppendixname{L'appendice~}%
- \def\RSAppendicesname{Les appendices~}%
- \def\RSchaptername{chapitre~}%
- \def\RSchaptersname{chapitres~}%
- \def\RSChaptername{Le chapitre~}%
- \def\RSChaptersname{Les chapitres~}%
- \def\RSsectxt{section~}%
- \def\RSsecstxt{sections~}%
- \def\RSSectxt{La section~}%
- \def\RSSecstxt{Les sections~}%
- \def\RSeqtxt{\'{e}quation~}%
- \def\RSeqstxt{\'{e}quations~}%
- \def\RSEqtxt{L'\'{e}quation~}%
- \def\RSEqstxt{Les \'{e}quations~}%
- \def\RSfigtxt{figure~}%
- \def\RSfigstxt{figures~}%
- \def\RSFigtxt{La figure~}%
- \def\RSFigstxt{Les figures~}%
- \def\RStabtxt{tableau~}%
- \def\RStabstxt{tableaux~}%
- \def\RSTabtxt{Le tableau~}%
- \def\RSTabstxt{Les tableaux~}%
- \def\RSfootntxt{note~}%
- \def\RSfootnstxt{notes~}%
- \def\RSFootntxt{La note~}%
- \def\RSFootnstxt{Les notes~}%
-}
-% \end{macrocode}
-% \end{RSframed}
-% \end{macro}
-%
-% \noindent Options
-% \begin{RSframed}
-% \begin{macrocode}
-\DeclareLangOpt{french}{\RSfrench}
-% \end{macrocode}
-% \end{RSframed}
-%
-%
-%
-% \subsubsection{German}
-%
-% \begin{macro}{\RSgerman}
-% \changes{v0.2}{2003/07/30}{Add German language support}
-% Harald Harders: \texttt{<\,h.harders AT tu-bs DOT de>}
-% provided the definitions for German.
-% \begin{RSframed}
-% \begin{macrocode}
-%%-- GERMAN -------------------------------------
-% \end{macrocode}
-% \begin{macrocode}
-\newcommand\RSgerman{%
- \def\RSrngtxt{\space bis~}%
- \def\RSlsttwotxt{\space und~}%
- \def\RSlsttxt{\space und~}%
- \def\RSparttxt{Teil~}%
- \def\RSpartstxt{Teile~}%
- \def\RSParttxt{Teil~}%
- \def\RSPartstxt{Teile~}%
- \def\RSappendixname{Anhang~}%
- \def\RSappendicesname{Anh\"{a}nge~}%
- \def\RSAppendixname{Anhang~}%
- \def\RSAppendicesname{Anh\"{a}nge~}%
- \def\RSchaptername{Kapitel~}%
- \def\RSchaptersname{Kapitel~}%
- \def\RSChaptername{Kapitel~}%
- \def\RSChaptersname{Kapitel~}%
- \def\RSsectxt{Abschnitt~}%
- \def\RSsecstxt{Abschnitt~}%
- \def\RSSectxt{Abschnitt~}%
- \def\RSSecstxt{Abschnitt~}%
- \def\RSeqtxt{Gleichung~}%
- \def\RSeqstxt{Gleichungen~}%
- \def\RSEqtxt{Gleichung~}%
- \def\RSEqstxt{Gleichungen~}%
- \def\RSfigtxt{Abbildung~}%
- \def\RSfigstxt{Abbildung~}%
- \def\RSFigtxt{Abbildung~}%
- \def\RSFigstxt{Abbildung~}%
- \def\RStabtxt{Tabelle~}%
- \def\RStabstxt{Tabellen~}%
- \def\RSTabtxt{Tabelle~}%
- \def\RSTabstxt{Tabellen~}%
- \def\RSfootntxt{Fu\ss note~}%
- \def\RSfootnstxt{Fu\ss noten~}%
- \def\RSFootntxt{Fu\ss note~}%
- \def\RSFootnstxt{Fu\ss noten~}%
-}
-% \end{macrocode}
-% \end{RSframed}
-% \end{macro}
-%
-% \noindent Options
-% \begin{RSframed}
-% \begin{macrocode}
-\DeclareLangOpt{german}{\RSgerman}
-\DeclareLangOpt{ngerman}{\RSgerman}
-\DeclareLangOpt{austrian}{\RSgerman}
-\DeclareLangOpt{naustrian}{\RSgerman}
-% \end{macrocode}
-% \end{RSframed}
-%
-%
-% \subsubsection{Italian}
-%
-% \begin{macro}{\RSitalian}
-% \changes{v0.4}{2010/10/21}{Add Italian language support}
-% Nicola Lunghi: \texttt{<\,nick83ola AT gmail DOT com>}
-% provided the definitions for Italian.
-% \begin{RSframed}
-% \begin{macrocode}
-%%-- ITALIAN ------------------------------------
-% \end{macrocode}
-% \begin{macrocode}
-\newcommand\RSitalian{%
- \def\RSrngtxt{--}%
- \def\RSlsttwotxt{\space e~}%
- \def\RSlsttxt{\space e~}%
- \def\RSparttxt{Parte~}%
- \def\RSpartstxt{Parti~}%
- \def\RSParttxt{Parte~}%
- \def\RSPartstxt{Parti~}%
- \def\RSappendixname{l'appendice~}%
- \def\RSappendicesname{le appendici~}%
- \def\RSAppendixname{l'Appendice~}%
- \def\RSAppendicesname{le Appendici~}%
- \def\RSchaptername{il capitolo~}%
- \def\RSchaptersname{i capitoli~}%
- \def\RSChaptername{il Capitolo~}%
- \def\RSChaptersname{i Capitoli~}%
- \def\RSsectxt{la sezione~}%
- \def\RSsecstxt{le sezioni~}%
- \def\RSSectxt{la Sezione~}%
- \def\RSSecstxt{la Sezioni~}%
- \def\RSeqtxt{l'equazione~}%
- \def\RSeqstxt{le equazioni~}%
- \def\RSEqtxt{l'Equazione~}%
- \def\RSEqstxt{le Equazioni~}%
- \def\RSfigtxt{la figura~}%
- \def\RSfigstxt{le figure~}%
- \def\RSFigtxt{la Figura~}%
- \def\RSFigstxt{le Figure~}%
- \def\RStabtxt{la tabella~}%
- \def\RStabstxt{le tabelle~}%
- \def\RSTabtxt{la Tabella~}%
- \def\RSTabstxt{le Tabelle~}%
- \def\RSfootntxt{la nota~}%
- \def\RSfootnstxt{le note~}%
- \def\RSFootntxt{la Nota~}%
- \def\RSFootnstxt{le Note~}%
-}
-% \end{macrocode}
-% \end{RSframed}
-% \end{macro}
-%
-% \noindent Options
-% \begin{RSframed}
-% \begin{macrocode}
-\DeclareLangOpt{italian}{\RSitalian}
-% \end{macrocode}
-% \end{RSframed}
-%
-%
-%
-% \subsubsection{Norwegian}
-%
-% \begin{macro}{\RSnorwegian}
-% \changes{v0.3}{2006/09/07}{Add Norwegian language support}
-% Karl Ove Hufthammer: \texttt{<\,karloh AT mi DOT uib DOT no>}
-% provided the definitions for Norwegian.
-%
-% Norway has two official languages Norwegian Nynorsk and
-% Norwegian Bokm{\aa}l (commonly 'nynorsk' and 'norsk' in LaTeX),
-% but the \pkg{refstyle} definitions are identically in both variants.
-% \begin{RSframed}
-% \begin{macrocode}
-%%-- NORWEGIAN -------------------------------------
-% \end{macrocode}
-% \begin{macrocode}
-\newcommand\RSnorwegian{%
- \def\RSrngtxt{\space til~}%
- \def\RSlsttwotxt{\space og~}%
- \def\RSlsttxt{\space og~}%
- \def\RSparttxt{del~}%
- \def\RSpartstxt{del~}%
- \def\RSParttxt{Del~}%
- \def\RSPartstxt{Del~}%
- \def\RSappendixname{tillegg~}%
- \def\RSappendicesname{tillegg~}%
- \def\RSAppendixname{Tillegg~}%
- \def\RSAppendicesname{Tillegg~}%
- \def\RSchaptername{kapittel~}%
- \def\RSchaptersname{kapittel~}%
- \def\RSChaptername{Kapittel~}%
- \def\RSChaptersname{Kapittel~}%
- \def\RSsectxt{avsnitt~}%
- \def\RSsecstxt{avsnitt~}%
- \def\RSSectxt{Avsnitt~}%
- \def\RSSecstxt{Avsnitt~}%
- \def\RSeqtxt{formel~}%
- \def\RSeqstxt{formel~}%
- \def\RSEqtxt{Formel~}%
- \def\RSEqstxt{Formel~}%
- \def\RSfigtxt{figur~}%
- \def\RSfigstxt{figur~}%
- \def\RSFigtxt{Figur~}%
- \def\RSFigstxt{Figur~}%
- \def\RStabtxt{tabell~}%
- \def\RStabstxt{tabell~}%
- \def\RSTabtxt{Tabell~}%
- \def\RSTabstxt{Tabell~}%
- \def\RSfootntxt{fotnote~}%
- \def\RSfootnstxt{fotnote~}%
- \def\RSFootntxt{Fotnote~}%
- \def\RSFootnstxt{Fotnote~}%
-}
-% \end{macrocode}
-% \end{RSframed}
-% \end{macro}
-%
-% \noindent Options
-% \begin{RSframed}
-% \begin{macrocode}
-\DeclareLangOpt{norwegian}{\RSnorwegian}
-\DeclareLangOpt{nynorsk}{\RSnorwegian}
-\DeclareLangOpt{bokmal}{\RSnorwegian}% Not in babel yet
-\DeclareLangOpt{norsk}{\RSnorwegian}
-% \end{macrocode}
-% \end{RSframed}
-%
-%
-% \subsubsection{Portuguese/Brazilian}
-%
-% \begin{macro}{\RSportuguese,\RSbrazilian}
-% \changes{v0.4}{2010/10/21}{Add Portuguese language support}
-% Bernhard Enders and Flavio Costa \texttt{<\,flaviocosta AT yahoo DOT com DOT br>}
-% provided the definitions for Portuguese.
-% \begin{RSframed}
-% \begin{macrocode}
-%%-- PORTUGUESE -----------------------------------
-% \end{macrocode}
-% \begin{macrocode}
-\newcommand\RSportuguese{%
- \def\RSrngtxt{\space a~}%
- \def\RSlsttwotxt{\space e~}%
- \def\RSlsttxt{\space e~}%
- \def\RSparttxt{Parte~}%
- \def\RSpartstxt{Partes~}%
- \def\RSParttxt{Parte~}%
- \def\RSPartstxt{Partes~}%
- \def\RSappendixname{ap\^{e}ndice~}%
- \def\RSappendicesname{ap\^{e}ndices~}%
- \def\RSAppendixname{Ap\^{e}ndice~}%
- \def\RSAppendicesname{Ap\^{e}ndices~}%
- \def\RSchaptername{cap\'{i}tulo~}%
- \def\RSchaptersname{cap\'{i}tulos~}%
- \def\RSChaptername{Cap\'{i}tulo~}%
- \def\RSChaptersname{Cap\'{i}tulos~}%
- \def\RSsectxt{se\c{c}\~{a}o~}%
- \def\RSsecstxt{se\c{c}\~{o}es~}%
- \def\RSSectxt{Se\c{c}\~{a}o~}%
- \def\RSSecstxt{Se\c{c}\~{o}es~}%
- \def\RSeqtxt{equa\c{c}\~{a}o~}%
- \def\RSeqstxt{equa\c{c}\~{o}es~}%
- \def\RSEqtxt{Equa\c{c}\~{a}o~}%
- \def\RSEqstxt{Equa\c{c}\~{o}es~}%
- \def\RSfigtxt{figura~}%
- \def\RSfigstxt{figuras~}%
- \def\RSFigtxt{Figura~}%
- \def\RSFigstxt{Figuras~}%
- \def\RStabtxt{tabela~}%
- \def\RStabstxt{tabelas~}%
- \def\RSTabtxt{Tabela~}%
- \def\RSTabstxt{Tabelas~}%
- \def\RSfootntxt{nota de rodap\'{e}~}%
- \def\RSfootnstxt{notas de rodap\'{e}~}%
- \def\RSFootntxt{Nota de rodap\'{e}~}%
- \def\RSFootnstxt{Notas de rodap\'{e}~}%
-}
-% \end{macrocode}
-% \begin{macrocode}
-\newcommand\RSbrazilian{%
- \def\RSrngtxt{\space a~}%
- \def\RSlsttwotxt{\space e~}%
- \def\RSlsttxt{\space e~}%
- \def\RSparttxt{Parte~}%
- \def\RSpartstxt{Partes~}%
- \def\RSParttxt{Parte~}%
- \def\RSPartstxt{Partes~}%
- \def\RSappendixname{ap\^{e}ndice~}%
- \def\RSappendicesname{ap\^{e}ndices~}%
- \def\RSAppendixname{Ap\^{e}ndice~}%
- \def\RSAppendicesname{Ap\^{e}ndices~}%
- \def\RSchaptername{cap\'{i}tulo~}%
- \def\RSchaptersname{cap\'{i}tulos~}%
- \def\RSChaptername{Cap\'{i}tulo~}%
- \def\RSChaptersname{Cap\'{i}tulos~}%
- \def\RSsectxt{sec\c{c}\~{a}o~}%<---------------
- \def\RSsecstxt{sec\c{c}\~{o}es~}%<-------------
- \def\RSSectxt{Sec\c{c}\~{a}o~}%<---------------
- \def\RSSecstxt{Sec\c{c}\~{o}es~}%<-------------
- \def\RSeqtxt{equa\c{c}\~{a}o~}%
- \def\RSeqstxt{equa\c{c}\~{o}es~}%
- \def\RSEqtxt{Equa\c{c}\~{a}o~}%
- \def\RSEqstxt{Equa\c{c}\~{o}es~}%
- \def\RSfigtxt{figura~}%
- \def\RSfigstxt{figuras~}%
- \def\RSFigtxt{Figura~}%
- \def\RSFigstxt{Figuras~}%
- \def\RStabtxt{tabela~}%
- \def\RStabstxt{tabelas~}%
- \def\RSTabtxt{Tabela~}%
- \def\RSTabstxt{Tabelas~}%
- \def\RSfootntxt{nota de rodap\'{e}~}%
- \def\RSfootnstxt{notas de rodap\'{e}~}%
- \def\RSFootntxt{Nota de rodap\'{e}~}%
- \def\RSFootnstxt{Notas de rodap\'{e}~}%
-}
-% \end{macrocode}
-% \end{RSframed}
-% \end{macro}
-%
-% \noindent Options
-% \begin{RSframed}
-% \begin{macrocode}
-\DeclareLangOpt{portuges}{\RSportuguese}
-\DeclareLangOpt{portuguese}{\RSportuguese}
-\DeclareLangOpt{brazilian}{\RSbrazilian}
-\DeclareLangOpt{brazil}{\RSbrazilian}
-% \end{macrocode}
-% \end{RSframed}
-%
-%
-%
-% \subsubsection{Swedish}
-%
-% \begin{macro}{\RSswedish}
-% \changes{v0.2}{2003/07/30}{Add Swedish language support}
-% Bj\"{o}rn Thors \texttt{<\,bjorn.thors AT alfvenlab DOT kth DOT se>}
-% provided the definitions for Swedish.
-% \begin{RSframed}
-% \begin{macrocode}
-%%-- SWEDISH ------------------------------------
-% \end{macrocode}
-% \begin{macrocode}
-\newcommand\RSswedish{%
- \def\RSrngtxt{\space till~}%
- \def\RSlsttwotxt{\space och~}%
- \def\RSlsttxt{\space och~}%
- \def\RSparttxt{del~}%
- \def\RSpartstxt{del~}%
- \def\RSParttxt{Del~}%
- \def\RSPartstxt{Del~}%
- \def\RSappendixname{appendix~}%
- \def\RSappendicesname{appendix~}%
- \def\RSAppendixname{Appendix~}%
- \def\RSAppendicesname{Appendix~}%
- \def\RSchaptername{kapitel~}%
- \def\RSchaptersname{kapitel~}%
- \def\RSChaptername{Kapitel~}%
- \def\RSChaptersname{Kapitel~}%
- \def\RSsectxt{sektion~}%
- \def\RSsecstxt{sektion~}%
- \def\RSSectxt{Sektion~}%
- \def\RSSecstxt{Sektion~}%
- \def\RSeqtxt{ekvation~}%
- \def\RSeqstxt{ekvation~}%
- \def\RSEqtxt{Ekvation~}%
- \def\RSEqstxt{Ekvation~}%
- \def\RSfigtxt{figur~}%
- \def\RSfigstxt{figur~}%
- \def\RSFigtxt{Figur~}%
- \def\RSFigstxt{Figur~}%
- \def\RStabtxt{tabell~}%
- \def\RStabstxt{tabell~}%
- \def\RSTabtxt{Tabell~}%
- \def\RSTabstxt{Tabell~}%
- \def\RSfootntxt{fotnot~}%
- \def\RSfootnstxt{fotnot~}%
- \def\RSFootntxt{Fotnot~}%
- \def\RSFootnstxt{Fotnot~}%
-}
-% \end{macrocode}
-% \end{RSframed}
-% \end{macro}
-% \noindent Options
-% \begin{RSframed}
-% \begin{macrocode}
-\DeclareLangOpt{swedish}{\RSswedish}
-% \end{macrocode}
-% \end{RSframed}
-%
-%
-%
-%
-% \subsection{Templates for the \RS Package}
-%
-% The user can also define his or her own templates and put it
-% in a separate configuration file to ensure uniformity
-% of reference formats in your documents.
-%
-% \subsubsection{Parts}
-%
-% References to parts are usually straight forward, except that the
-% document division ``Part'' must be distinguished from the normal
-% usage of the word ``part'' in a sentence. A personal preference
-% is to use small caps.
-%
-% \begin{RSframed}
-% \begin{macrocode}
-%%-- TEMPLATE FOR PARTS -------------------------
-% \end{macrocode}
-% \begin{macrocode}
- \newref{part}{%
- name = \RSparttxt,
- names = \RSpartstxt,
- Name = \RSPparttxt,
- Names = \RSPartstxt,
- rngtxt = \RSrngtxt,
- lsttxt = \RSlsttxt}
-% \end{macrocode}
-% \end{RSframed}
-%
-%
-%
-% \subsubsection{Chapters and Appendices}
-%
-% A major problem with a reference to a chapter is that at the time
-% when the reference label, |\label|\marg{chap-label}, is created,
-% it is unknown whether it would eventually ends up in the main
-% matter or the appendix part of a book or report.
-%
-% A simple solution is to use the prefix to the \meta{chapter}
-% counter, |\p@chapter|, to write the definition of |\@chapapp| to
-% the auxiliary file (|.aux|) together with information of the
-% label. The command |\@chapapp| expands to either |\chaptername| or
-% |\appendixname| depending on whether the reference label is
-% defined in the main matter or after the |\appendix| was called.
-% (Note that |\@chapapp| is not defined in the AMS book class.)
-%
-% \begin{Ipara}
-% |\renewcommand*{\p@chapter}{\string\chname{\@chapapp}}|\\
-% |\newcommand*{\chname}[1]{}%<-make it harmless |\\
-% |\newcommand*{\chapref}[1]{{\renewcommand*{\chname}[1]{##1~}\ref{#1}}}|
-% \end{Ipara}
-%
-% \noindent The reference to a chapter, |\chapref|\marg{chap-label},
-% will then be prefixed with |\chaptername| or |\appendixname| and
-% it does not matter where it was defined or where it was called.
-%
-% To utilize the full functionality of the \RS package for
-% references to chapters and appendices, a complex form of
-% \cmd{\newref} needs to be implemented.
-% The following is a template for a book or report classes.
-%
-%
-% \begin{RSframed}
-% \begin{macrocode}
-%%-- TEMPLATE FOR CHAPTERS & APPENDIXES ---------
-% \end{macrocode}
-% Prevent crashes for non-book type classes.
-% \begin{macrocode}
-\providecommand*{\p@chapter}{}
-% \end{macrocode}
-% Add \cmd{\@chapapp} to \cmd{\p@chapter} for writeout to auxiliary file.
-% If an AMS book class is loaded, then \cmd{\chaptername} must
-% be used.
-% \begin{macrocode}
-\AtBeginDocument{%
- \RS@ifundefined{chapter}{}{%
- \RS@ifundefined{@chapapp}%
- {\renewcommand*{\p@chapter}{\string\chpname{\chaptername}}}%AMS
- {\renewcommand*{\p@chapter}{\string\chpname{\@chapapp}}}% Normal
- }%
- }
-% \end{macrocode}
-% Define \cmd{\chpname} to gobble its contents outside the
-% reference commands.
-% \begin{macrocode}
-\newcommand*{\chpname}[1]{}
-% \end{macrocode}
-% Define the \cmd{\RSchpname} to typeset all the different
-% perturbations of chapter and appendix names.
-% Use the conditionals to switch between the
-% different options.
-%
-% \begin{macrocode}
-\newcommand*{\RS@chpname}[1]{%
- \ifRSnameon
- \edef\RS@tmpa{#1}%
- \edef\RS@tmpb{\appendixname}%
- \ifx\RS@tmpa\RS@tmpb\relax%
- \ifRSplural
- \ifRScapname \RSAppendicesname \else \RSappendicesname \fi
- \else
- \ifRScapname \RSAppendixname \else \RSappendixname \fi
- \fi
- \else
- \ifRSplural
- \ifRScapname \RSChaptersname \else \RSchaptersname \fi
- \else
- \ifRScapname \RSChaptername \else \RSchaptername \fi
- \fi
- \fi
- \fi}
-% \end{macrocode}
-% Define the \cmd{\newref} for chapters.
-% \begin{macrocode}
- \newref{chap}{%
- refcmd = {{\let\chpname=\RS@chpname\ref{#1}}},
- rngtxt = \RSrngtxt,
- lsttwotxt = \RSlsttwotxt,
- lsttxt = \RSlsttxt}
-% \end{macrocode}
-% \end{RSframed}
-%
-%
-% \subsubsection{Sections and paragraphs}\seclabel{secTempl}
-%
-% A template for references to sections is given below. References
-% to paragraphs are similar and is left as an exercise to the users.
-%
-% \begin{RSframed}
-% \begin{macrocode}
-%%-- TEMPLATE FOR SECTIONS ----------------------
-% \end{macrocode}
-% \begin{macrocode}
- \newref{sec}{%
- name = \RSsectxt,
- names = \RSsecstxt,
- Name = \RSSectxt,
- Names = \RSSecstxt,
- refcmd = {\S\ref{#1}},
- rngtxt = \RSrngtxt,
- lsttwotxt = \RSlsttwotxt,
- lsttxt = \RSlsttxt}
-% \end{macrocode}
-% \end{RSframed}
-%
-% \subsubsection{Equations}\seclabel{EqTempl}
-%
-% The equation number in references to equations are traditionally
-% written in an upright text, irrespective of the surrounding text.
-%
-% \begin{RSframed}
-% \begin{macrocode}
-%%-- TEMPLATE FOR EQUATIONS ---------------------
-% \end{macrocode}
-% The standard equation ref format if \pkg{amsmath.sty} is not loaded.
-% \begin{macrocode}
-\newcommand*{\RSeqrefform}[1]{\textup{(\ref{#1})}}
-% \end{macrocode}
-% If \pkg{amsmath.sty} is loaded, store \cmd{\eqref}
-% and then undefine it before the template is created.
-% \begin{macrocode}
-\@ifpackageloaded{amsmath}%
- {\let\AMSeqref\eqref
- \let\eqref\relax}%
- {}
-% \end{macrocode}
-% \begin{macrocode}
-\newref{eq}{%
- name = \RSeqtxt,
- names = \RSeqstxt,
- Name = \RSEqtxt,
- Names = \RSEqstxt,
- refcmd = \RSeqrefform{#1},
- rngtxt = \RSrngtxt,
- lsttwotxt = \RSlsttwotxt,
- lsttxt = \RSlsttxt}
-% \end{macrocode}
-% Make way for \pkg{amsmath.sty} definitions
-% \begin{macrocode}
-\let\RSeqref\eqref
-\let\eqref\relax
-% \end{macrocode}
-% Some footwork to bring the AMS definition of
-% \cmd{\eqref} back if \pkg{amsmath.sty} is loaded
-% afterwards.
-% \begin{macrocode}
-\AtBeginDocument{%
- \@ifpackageloaded{amsmath}%
- {\RS@ifundefined{AMSeqref}{\let\AMSeqref\eqref}{}%
- \let\RSeqrefform\AMSeqref}%
- {}%
- \let\eqref=\RSeqref
- }
-% \end{macrocode}
-% \end{RSframed}
-%
-%
-% \subsubsection{Figures and Tables}\seclabel{tabtemp}
-% References to figures and tables are usually
-% straight forward.
-% \begin{RSframed}
-% \begin{macrocode}
-%%-- TEMPLATE FOR FIGURES -----------------------
-% \end{macrocode}
-% \begin{macrocode}
- \newref{fig}{%
- name = \RSfigtxt,
- names = \RSfigstxt,
- Name = \RSFigtxt,
- Names = \RSFigstxt,
- rngtxt = \RSrngtxt,
- lsttwotxt = \RSlsttwotxt,
- lsttxt = \RSlsttxt}
-% \end{macrocode}
-% \end{RSframed}
-%
-% \begin{RSframed}
-% \begin{macrocode}
-%%-- TEMPLATE FOR TABLES ------------------------
-% \end{macrocode}
-% \begin{macrocode}
- \newref{tab}{%
- name = \RStabtxt,
- names = \RStabstxt,
- Name = \RSTabtxt,
- Names = \RSTabstxt,
- rngtxt = \RSrngtxt,
- lsttwotxt = \RSlsttwotxt,
- lsttxt = \RSlsttxt}
-% \end{macrocode}
-% \end{RSframed}
-%
-% \pagebreak[2]
-% \subsubsection{Footnotes}\seclabel{fnTempl}
-%
-% A reference to a footnote differs from other references in that
-% it is only defined inside the footnote definition itself:
-% \begin{Ipara}
-% |\footnote{This is a footnote with ... \label{fn:xx}}|
-% \end{Ipara}
-% It can then be referred to with |\ref{fn:xx}|.
-%
-% A useful application of the \RS package is for references to
-% footnotes, were you need a duplicate footnote mark that refers to
-% a previously defined footnote.\footnote{^^A
-% This is a footnote with \cmd{\fnlabel}\texttt{\{xx\}} ...\fnlabel{xx}}
-% You can use the stared form of the reference
-% command to format the reference as a footnote mark, while the
-% reference commands without a star behave as normal.
-% \begin{Itabb}
-% \hspace*{2cm}\=\kill
-% |\fnref*{xx}| \ArTab \fnref*{xx}\\
-% |\fnref{xx}| \ArTab \fnref{xx}\\
-% \end{Itabb}
-%
-% \begin{RSframed}
-% \begin{macrocode}
-%%-- TEMPLATE FOR FOOTNOTES ---------------------
-% \end{macrocode}
-% Define the \cmd{\RSfnmark} to reproduce the footnote mark.
-% Use the |\ifRSstar| conditional to switch between a superscripted
-% and a normal reference.
-% \begin{macrocode}
- \newcommand{\RSfnmark}[1]{%
- \begingroup
- \unrestored@protected@xdef\@thefnmark{\ref{#1}}%
- \endgroup
- \@footnotemark}
-% \end{macrocode}
-% \begin{macrocode}
- \newref{fn}{%
- name = \RSfootntxt,
- names = \RSfootnstxt,
- Name = \RSFootntxt,
- Names = \RSFootnstxt,
- refcmd = {\ifRSstar\RSfnmark{#1}\else(\ref{#1})\fi},
- rngtxt = \RSrngtxt,
- lsttwotxt = \RSlsttwotxt,
- lsttxt = \RSlsttxt}
-% \end{macrocode}
-% \end{RSframed}
-%
-% \subsubsection{Enumerated lists}
-%
-% A reference to an item in an enumerated list can be obtained
-% by placing the labelling command after the \cmd{\item} command
-% inside the list. The second level numbering of the \cmd{\ref}
-% label in the standard \LaTeX{} is: 2a, 2b, etc.
-%
-% If you want to change the reference labels to 2(a), 2(b),
-% etc., without effecting the display in the \env{enumerate}
-% environment, you can make the following redefinition:
-% \begin{Ipara}
-% |\makeatletter|\\
-% |\renewcommand{\p@enumii}{\expandafter\p@@enumii}|\\
-% |\newcommand{\p@@enumii}[1]{\theenumi(#1)}|\\
-% |\makeatother|
-% \end{Ipara}
-% The contents of the \cmd{\@currentlable} is then
-% \begin{Ipara}
-% |{\expandafter\p@@enumii\theenumii}| ~$\rightarrow$~
-% |{\theenumi(\theenumii)}|
-% \end{Ipara}
-%
-% Writing a template for enumerated lists is left to the user.
-%
-%
-% \subsubsection{Theorems, lemmas, etc.}\seclabel{Thm}
-%
-% There exists many perturbations to the theorem environment such
-% as, Theorem, Lemma, Exercise, etc., and it is left to the user as
-% an exercise to construct his or her own templates.
-%
-% As an example to add reference for theorems to an exiting setup:
-%
-% \begin{Ipara}
-% |\usepackage{refstyle} |\\
-% |\newref{thm}{ |\\
-% | name = {theorem~}, |\\
-% | names = {theorems~},|\\
-% | Name = {Theorem~}, |\\
-% | Names = {Theorems~},|\\
-% | rngtxt = \RSrngtxt,|\\
-% | lsttwotxt = \RSlsttxt,|\\
-% | lsttxt = \RSlsttxt}|
-% \end{Ipara}
-%
-% If you want to add it to a specific language setup with \pkg{babel} then
-% you can do the following, for example for a dual language document with
-% English and Norwegian:
-% \begin{Ipara}
-% |\documentclass[english, norwegian]{article}% NB: Languages as global opts! |\\
-% |\usepackage{babel} %Use global languages |\\
-% |\usepackage{varioref} %Use global languages |\\
-% |\usepackage{refstyle} %Use global languages |\\
-% |\RSaddto{\RSnorwegian}{% |\\
-% | \def\RSthmtxt{teorem~}% |\\
-% | \def\RSthmstxt{teorem~}% |\\
-% | \def\RSThmtxt{Teorem~}% |\\
-% | \def\RSThmstxt{Teorem~}} |\\
-% |\RSaddto{\RSenglish}{% |\\
-% | \def\RSthmtxt{theorem~}% |\\
-% | \def\RSthmstxt{theorems~}% |\\
-% | \def\RSThmtxt{Theorem~}% |\\
-% | \def\RSThmstxt{Theorems~}} |\\
-% |\newref{thm}{ |\\
-% | name = \RSthmtxt, |\\
-% | names = \RSthmstxt, |\\
-% | Name = \RSThmtxt, |\\
-% | Names = \RSThmstxt, |\\
-% | rngtxt = \RSrngtxt, |\\
-% | lsttwotxt = \RSlsttxt, |\\
-% | lsttxt = \RSlsttwotxt} |
-% \end{Ipara}
-%
-% \noindent All \pkg{babel} language changes will then activate
-% the proper code setup. In this example the \pkg{refstyle}
-% mechanism is used where the code is appended to the |\RSenglish|
-% and |\RSnorwegian| container functions. These functions are added
-% by the package
-% to the \pkg{babel} containers |\extrasenglish| and |\extrasnorwegian|,
-% that is called every time a language change occurs.
-% Please see the contents of \pkg{refstyle.cfg} for the names of the
-% \pkg{refstyle} containers associated with the different languages.
-%
-% Note that the extended definitions
-% can also be added directly to the \pkg{babel} containers without using
-% \pkg{refstyle}'s mechanism.
-%
-% \begin{macrocode}
-%</cfg>
-% \end{macrocode}
-%
-% \Finale
-\endinput
+% \iffalse +% +% refconfig.dtx +% Copyright (C) 2002--2024 Danie Els +% +% ------------------------------------------------------------------- +% The refstyle package +% for the formatting of references +% ------------------------------------------------------------------- +% This work may be distributed and/or modified under the conditions +% of the LaTeX Project Public License, either version 1.3c 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.3c or later is part of all distributions of LaTeX +% version 2008/12/01 or later. +% +% This work has the LPPL maintenance status 'maintained'. +% +% This Current Maintainer of this work is Danie Els (dnjels@gmail.com) +% +% This package consists of the files: refstyle.dtx +% refconfig.dtx +% refstyle.ins +% and the derived files: refstyle.sty +% refstyle.cfg +% ------------------------------------------------------------------- +% +%<*driver> +\documentclass[a4paper]{ltxdoc} + \EnableCrossrefs + \CodelineIndex + \RecordChanges +\usepackage{color} +\usepackage{framed} + \setlength{\FrameSep}{1\fboxsep} + \definecolor{shadecolor}{gray}{0.9} + \newenvironment{RSframed}{\shaded}{\endshaded} +\usepackage{xspace} +\usepackage{varioref} +\usepackage{refstyle} + +%-- macrocode env changes ------------------------------ + +\setlength{\MacroIndent}{1.5em} + +%-- Indented environments ------------------------------ + +\newlength{\tdima} +\newsavebox{\tboxa} +\newlength{\mytab} +\setlength{\mytab}{2\parindent} + +\newenvironment{IndentPara}[1][1] + {\list{}{\setlength{\leftmargin}{#1\mytab}% + \setlength{\labelwidth}{0pt}% + \setlength{\labelsep}{0pt}% + \setlength{\itemindent}{\parindent}% + \setlength{\listparindent}{\parindent}% + }\item[]}% + {\endlist} +\newenvironment{Ipara}[1][\small]% + {\begin{IndentPara}\noindent#1\ignorespaces}% + {\end{IndentPara}} +\newenvironment{Itabb}[1][\small]% + {\begin{IndentPara}#1\ignorespaces\begin{tabbing}\ignorespaces}% + {\end{tabbing}\end{IndentPara}} + +%-- Additional documenting commands -------------------- + +\makeatletter +\def\meta@font@select{\normalfont\slshape} +\makeatother + +\newcommand*{\file}[1]{\texttt{#1}} +\newcommand*{\pkg}[1]{\textsf{#1}} +\newcommand*{\env}[1]{\texttt{#1}} +\newcommand*{\opt}[1]{\texttt{\slshape#1}} +\newcommand*{\RS}{\pkg{refstyle}\xspace} + +\newcommand*{\ArTab}{\>\quad$\rightarrow$\quad} + +%------------------------------------------------------- + +\setlength\hfuzz{15pt} +\hbadness=7000 +\begin{document} + \DocInput{refconfig.dtx} +\end{document} + +%</driver> +% \fi +% +% \CheckSum{1092} +% +% \CharacterTable +% {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 +% 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 +% Digits \0\1\2\3\4\5\6\7\8\9 +% Exclamation \! Double quote \" Hash (number) \# +% Dollar \$ Percent \% Ampersand \& +% Acute accent \' Left paren \( Right paren \) +% Asterisk \* Plus \+ Comma \, +% Minus \- Point \. Solidus \/ +% Colon \: Semicolon \; Less than \< +% Equals \= Greater than \> Question mark \? +% Commercial at \@ Left bracket \[ Backslash \\ +% Right bracket \] Circumflex \^ Underscore \_ +% Grave accent \` Left brace \{ Vertical bar \| +% Right brace \} Tilde \~} +% +% \changes{v0.0}{2002/04/01}{Initial version} +% \changes{v0.2}{2003/07/30}{Updated version} +% \changes{v0.3}{2006/09/07}{Documentation update} +% \changes{v0.4}{2010/10/21}{Add \cmd{\RSlsttwotxt} for lists} +% \changes{v0.5}{2010/11/02}{Bug fixes} +% \changes{v0.6}{2024/01/31}{robustification of AMS' \cmd{\eqref}} +% +% \DoNotIndex{ +% \",\@chapapp,\@ifpackageloaded,\AtBeginDocument, +% \begingroup,\def,\edef,\else,\endgroup, +% \fi,\ifx, \let, \newcommand,\newref, +% \providecommand,\ProvidesFile,\ref,\relax, +% \renewcommand,\RS@ifundefined,\RS@tmpa,\RS@tmpb, +% \S,\space,\ss,\string,\textup,\unrestored@protected@xdef} +% +%^^A-- Titling -------------------------------------------- +% \GetFileInfo{refstyle.cfg} +% \title{\vskip -2em +% Configuration file for \RS\ package\thanks{ +% This file has version number +% \fileversion, last revised +% \filedate.}} +% \author{Danie Els\\[1ex] +% \normalsize e-mail: \texttt{dnjels@gmail}} +% \date{\filedate} +% \maketitle +% +% \tableofcontents +% \clearpage +% +% +% \section{The \RS\ configuration file} +% +% \subsubsection*{Reference templates} +% The default configuration file, \file{refstyle.cfg}, makes the +% following reference declarations: +% \begin{Ipara} +% |\newref{part}{...}| \quad$\rightarrow$ Parts\\ +% |\newref{chap}{...}| \quad$\rightarrow$ Chapters and Appendices\\ +% |\newref{sec}{...} | \quad$\rightarrow$ Sections\\ +% |\newref{eq}{...} | \quad$\rightarrow$ Equations\\ +% |\newref{fig}{...} | \quad$\rightarrow$ Figures\\ +% |\newref{tab}{...} | \quad$\rightarrow$ Tables\\ +% |\newref{fn}{...} | \quad$\rightarrow$ Footnotes +% \end{Ipara} +% If there is a need for more reference types, this standard +% list can be expanded. +% +% \subsubsection*{Language definitions} +% The \RS\ package also provides the following language definitions +% options for references, when loaded together with \pkg{babel}: +% \begin{itemize} +% \item afrikaans +% \item danish +% \item english, USenglish, american, canadian, UKenglish, british +% \item french +% \item german, ngerman, austrian, naustrian +% \item italian +% \item norwegian, nynorsk, norsk, bokmal\footnote{Norwegian Bokm{\aa}l +% is not defined in \pkg{babel} yet.} +% \item portuges, portuguese, brazilian, brazil +% \item swedish +% \end{itemize} +% +% \noindent See \secref[vref]{Thm} for an example of how to link your +% own definitions to an exsiting language setup. +% \StopEventually{\PrintChanges} +% \clearpage +% \section{Implementation} +% \begin{macrocode} +%<*cfg> +% \end{macrocode} +% \subsection{Identification} +% \begin{RSframed} +% \begin{macrocode} +\ProvidesFile{refstyle.cfg}[2024/01/31\space + v0.6\space + Configuration file for refstyle (DNJ Els)] +% \end{macrocode} +% \end{RSframed} +% +% \subsection{Language Definitions for \RS\ Package} +% +% \subsubsection{English} +% +% \begin{macro}{\RSenglish,\RSukenglish} +% Support provided by the author. +% \begin{RSframed} +% \begin{macrocode} +%%-- ENGLISH ------------------------------------ +% \end{macrocode} +% \begin{macrocode} +\newcommand\RSukenglish{% + \def\RSrngtxt{\space to~}%........... Range: figures 5 to 6 + \def\RSlsttwotxt{\space and~}%....... List two: figures 5 and 6 + \def\RSlsttxt{, and~}%............... List more: figures 5, 6, and 7 + \def\RSparttxt{Part~}%............... Part lowercase singular + \def\RSpartstxt{Parts~}%............. lowercase plural + \def\RSParttxt{Part~}%............... uppercase singular (sentence start) + \def\RSPartstxt{Parts~}%............. uppercase plural (sentence start) + \def\RSappendixname{appendix~}%...... Appendix lowercase singular + \def\RSappendicesname{appendices~}%.. lowercase plural + \def\RSAppendixname{Appendix~}%...... uppercase singular (sentence start) + \def\RSAppendicesname{Appendices~}%.. uppercase plural (sentence start) + \def\RSchaptername{chapter~}%........ Chapter lowercase singular + \def\RSchaptersname{chapters~}%...... lowercase plural + \def\RSChaptername{Chapter~}%........ uppercase singular (sentence start) + \def\RSChaptersname{Chapters~}%...... uppercase plural (sentence start) + \def\RSsectxt{section~}%............. Section lowercase singular + \def\RSsecstxt{sections~}%........... lowercase plural + \def\RSSectxt{Section~}%............. uppercase singular (sentence start) + \def\RSSecstxt{Sections~}%........... uppercase plural (sentence start) + \def\RSeqtxt{equation~}%............. Equation lowercase singular + \def\RSeqstxt{equations~}%........... lowercase plural + \def\RSEqtxt{Equation~}%............. uppercase singular (sentence start) + \def\RSEqstxt{Equations~}%........... uppercase plural (sentence start) + \def\RSfigtxt{figure~}%.............. Figure lowercase singular + \def\RSfigstxt{figures~}%............ lowercase plural + \def\RSFigtxt{Figure~}%.............. uppercase singular (sentence start) + \def\RSFigstxt{Figures~}%............ uppercase plural (sentence start) + \def\RStabtxt{table~}%............... Table lowercase singular + \def\RStabstxt{tables~}%............. lowercase plural + \def\RSTabtxt{Table~}%............... uppercase singular (sentence start) + \def\RSTabstxt{Tables~}%............. uppercase plural (sentence start) + \def\RSfootntxt{footnote~}%.......... Footnote lowercase singular + \def\RSfootnstxt{footnotes~}%........ lowercase plural + \def\RSFootntxt{Footnote~}%.......... uppercase singular (sentence start) + \def\RSFootnstxt{Footnotes~}%........ uppercase plural (sentence start) +} +% \end{macrocode} +% \begin{macrocode} +\newcommand\RSenglish{% + \def\RSrngtxt{\space to~}% + \def\RSlsttwotxt{\space and~}% + \def\RSlsttxt{\space and~}% + \def\RSparttxt{Part~}% + \def\RSpartstxt{Parts~}% + \def\RSParttxt{Part~}% + \def\RSPartstxt{Parts~}% + \def\RSappendixname{appendix~}% + \def\RSappendicesname{appendices~}% + \def\RSAppendixname{Appendix~}% + \def\RSAppendicesname{Appendices~}% + \def\RSchaptername{chapter~}% + \def\RSchaptersname{chapters~}% + \def\RSChaptername{Chapter~}% + \def\RSChaptersname{Chapters~}% + \def\RSsectxt{section~}% + \def\RSsecstxt{sections~}% + \def\RSSectxt{Section~}% + \def\RSSecstxt{Sections~}% + \def\RSeqtxt{equation~}% + \def\RSeqstxt{equations~}% + \def\RSEqtxt{Equation~}% + \def\RSEqstxt{Equations~}% + \def\RSfigtxt{figure~}% + \def\RSfigstxt{figures~}% + \def\RSFigtxt{Figure~}% + \def\RSFigstxt{Figures~}% + \def\RStabtxt{table~}% + \def\RStabstxt{tables~}% + \def\RSTabtxt{Table~}% + \def\RSTabstxt{Tables~}% + \def\RSfootntxt{footnote~}% + \def\RSfootnstxt{footnotes~}% + \def\RSFootntxt{Footnote~}% + \def\RSFootnstxt{Footnotes~}% +} +% \end{macrocode} +% \end{RSframed} +% \end{macro} +% +% \noindent Make English the default. +% \begin{RSframed} +% \begin{macrocode} +\RSenglish% Default +% \end{macrocode} +% \end{RSframed} +% +% \noindent Options +% \begin{RSframed} +% \begin{macrocode} +\DeclareLangOpt{english}{\RSenglish} +\DeclareLangOpt{USenglish}{\RSenglish} +\DeclareLangOpt{american}{\RSenglish} +\DeclareLangOpt{canadian}{\RSenglish} +\DeclareLangOpt{UKenglish}{\RSukenglish} +\DeclareLangOpt{british}{\RSukenglish} +% \end{macrocode} +% \end{RSframed} +% +% +% \subsubsection{Afrikaans} +% +% \begin{macro}{\RSafrikaans} +% Support provided by the author. +% \begin{RSframed} +% \begin{macrocode} +%%-- AFRIKAANS ---------------------------------- +% \end{macrocode} +% \begin{macrocode} +\newcommand\RSafrikaans{% + \def\RSrngtxt{\space tot~}% + \def\RSlsttwotxt{\space en~}% + \def\RSlsttxt{\space en~}% + \def\RSparttxt{Deel~}% + \def\RSpartstxt{Dele~}% + \def\RSParttxt{Deel~}% + \def\RSPartstxt{Dele~}% + \def\RSappendixname{bylae~}% + \def\RSappendicesname{bylaes~}% + \def\RSAppendixname{Bylae~}% + \def\RSAppendicesname{Bylaes~}% + \def\RSchaptername{hoofstuk~}% + \def\RSchaptersname{hoofstukke~}% + \def\RSChaptername{Hoofstuk~}% + \def\RSChaptersname{Hoofstukke~}% + \def\RSsectxt{afdeling~}% + \def\RSsecstxt{afdelings~}% + \def\RSSectxt{Afdeling~}% + \def\RSSecstxt{Afdelings~}% + \def\RSeqtxt{vergelyking~}% + \def\RSeqstxt{vergelykings~}% + \def\RSEqtxt{Vergelyking~}% + \def\RSEqstxt{Vergelyking~}% + \def\RSfigtxt{figuur~}% + \def\RSfigstxt{figure~}% + \def\RSFigtxt{Figuur~}% + \def\RSFigstxt{Figure~}% + \def\RStabtxt{tabel~}% + \def\RStabstxt{tabelle~}% + \def\RSTabtxt{Tabel~}% + \def\RSTabstxt{Tabelle~}% + \def\RSfootntxt{footnota~}% + \def\RSfootnstxt{footnotas~}% + \def\RSFootntxt{Footnota~}% + \def\RSFootnstxt{Footnotas~}% +} +% \end{macrocode} +% \end{RSframed} +% \end{macro} +% +% \noindent Options +% \begin{RSframed} +% \begin{macrocode} +\DeclareLangOpt{afrikaans}{\RSafrikaans} +% \end{macrocode} +% \end{RSframed} +% +% +% \subsubsection{Danish} +% +% \begin{macro}{\RSdanish} +% \changes{v0.2}{2003/07/30}{Add Danish language support} +% Thomas Widmann: \texttt{<\,thomas.widmann AT harpercollins DOT co DOT uk>} +% provided the definitions for Danish. +% \begin{RSframed} +% \begin{macrocode} +%%-- DANISH ------------------------------------- +% \end{macrocode} +% \begin{macrocode} +\newcommand\RSdanish{% + \def\RSrngtxt{\space til~}% + \def\RSlsttwotxt{\space og~}% + \def\RSlsttxt{\space og~}% + \def\RSparttxt{del~}% + \def\RSpartstxt{del~}% + \def\RSParttxt{Del~}% + \def\RSPartstxt{Del~}% + \def\RSappendixname{bilag~}% % 'appendiks' is also possible, + \def\RSappendicesname{bilag~}% % but 'bilag' is used in Babel + \def\RSAppendixname{Bilag~}% + \def\RSAppendicesname{Bilag~}% + \def\RSchaptername{kapitel~}% + \def\RSchaptersname{kapitel~}% + \def\RSChaptername{Kapitel~}% + \def\RSChaptersname{Kapitel~}% + \def\RSsectxt{afsnit~}% + \def\RSsecstxt{afsnit~}% + \def\RSSectxt{Afsnit~}% + \def\RSSecstxt{Afsnit~}% + \def\RSeqtxt{ligning~}% + \def\RSeqstxt{ligning~}% + \def\RSEqtxt{Ligning~}% + \def\RSEqstxt{Ligning~}% + \def\RSfigtxt{figur~}% + \def\RSfigstxt{figur~}% + \def\RSFigtxt{Figur~}% + \def\RSFigstxt{Figur~}% + \def\RStabtxt{tabel~}% + \def\RStabstxt{tablel~}% + \def\RSTabtxt{Tabel~}% + \def\RSTabstxt{Tabel~}% + \def\RSfootntxt{fodnote~}% + \def\RSfootnstxt{fodnote~}% + \def\RSFootntxt{Fodnote~}% + \def\RSFootnstxt{Fodnote~}% +} +% \end{macrocode} +% \end{RSframed} +% \end{macro} +% +% \noindent Options +% \begin{RSframed} +% \begin{macrocode} +\DeclareLangOpt{danish}{\RSdanish} +% \end{macrocode} +% \end{RSframed} +% +% +% \subsubsection{French} +% +% \begin{macro}{\RSfrench} +% \changes{v0.4}{2010/10/21}{Add French language support} +% Jean-Pierre Chr\'etien \texttt{<\,jeanpierre.chretien AT free DOT fr>} +% provided the definitions for French. +% \begin{RSframed} +% \begin{macrocode} +%%-- FRENCH ------------------------------------- +% \end{macrocode} +% \begin{macrocode} +\newcommand\RSfrench{% + \def\RSrngtxt{\space \`{a}~}% + \def\RSlsttwotxt{\space et~}% + \def\RSlsttxt{\space et~}% + \def\RSparttxt{partie~}% + \def\RSpartstxt{parties~}% + \def\RSParttxt{La partie~}% + \def\RSPartstxt{Les parties~}% + \def\RSappendixname{appendice~}% + \def\RSappendicesname{appendices~}% + \def\RSAppendixname{L'appendice~}% + \def\RSAppendicesname{Les appendices~}% + \def\RSchaptername{chapitre~}% + \def\RSchaptersname{chapitres~}% + \def\RSChaptername{Le chapitre~}% + \def\RSChaptersname{Les chapitres~}% + \def\RSsectxt{section~}% + \def\RSsecstxt{sections~}% + \def\RSSectxt{La section~}% + \def\RSSecstxt{Les sections~}% + \def\RSeqtxt{\'{e}quation~}% + \def\RSeqstxt{\'{e}quations~}% + \def\RSEqtxt{L'\'{e}quation~}% + \def\RSEqstxt{Les \'{e}quations~}% + \def\RSfigtxt{figure~}% + \def\RSfigstxt{figures~}% + \def\RSFigtxt{La figure~}% + \def\RSFigstxt{Les figures~}% + \def\RStabtxt{tableau~}% + \def\RStabstxt{tableaux~}% + \def\RSTabtxt{Le tableau~}% + \def\RSTabstxt{Les tableaux~}% + \def\RSfootntxt{note~}% + \def\RSfootnstxt{notes~}% + \def\RSFootntxt{La note~}% + \def\RSFootnstxt{Les notes~}% +} +% \end{macrocode} +% \end{RSframed} +% \end{macro} +% +% \noindent Options +% \begin{RSframed} +% \begin{macrocode} +\DeclareLangOpt{french}{\RSfrench} +% \end{macrocode} +% \end{RSframed} +% +% +% +% \subsubsection{German} +% +% \begin{macro}{\RSgerman} +% \changes{v0.2}{2003/07/30}{Add German language support} +% Harald Harders: \texttt{<\,h.harders AT tu-bs DOT de>} +% provided the definitions for German. +% \begin{RSframed} +% \begin{macrocode} +%%-- GERMAN ------------------------------------- +% \end{macrocode} +% \begin{macrocode} +\newcommand\RSgerman{% + \def\RSrngtxt{\space bis~}% + \def\RSlsttwotxt{\space und~}% + \def\RSlsttxt{\space und~}% + \def\RSparttxt{Teil~}% + \def\RSpartstxt{Teile~}% + \def\RSParttxt{Teil~}% + \def\RSPartstxt{Teile~}% + \def\RSappendixname{Anhang~}% + \def\RSappendicesname{Anh\"{a}nge~}% + \def\RSAppendixname{Anhang~}% + \def\RSAppendicesname{Anh\"{a}nge~}% + \def\RSchaptername{Kapitel~}% + \def\RSchaptersname{Kapitel~}% + \def\RSChaptername{Kapitel~}% + \def\RSChaptersname{Kapitel~}% + \def\RSsectxt{Abschnitt~}% + \def\RSsecstxt{Abschnitt~}% + \def\RSSectxt{Abschnitt~}% + \def\RSSecstxt{Abschnitt~}% + \def\RSeqtxt{Gleichung~}% + \def\RSeqstxt{Gleichungen~}% + \def\RSEqtxt{Gleichung~}% + \def\RSEqstxt{Gleichungen~}% + \def\RSfigtxt{Abbildung~}% + \def\RSfigstxt{Abbildung~}% + \def\RSFigtxt{Abbildung~}% + \def\RSFigstxt{Abbildung~}% + \def\RStabtxt{Tabelle~}% + \def\RStabstxt{Tabellen~}% + \def\RSTabtxt{Tabelle~}% + \def\RSTabstxt{Tabellen~}% + \def\RSfootntxt{Fu\ss note~}% + \def\RSfootnstxt{Fu\ss noten~}% + \def\RSFootntxt{Fu\ss note~}% + \def\RSFootnstxt{Fu\ss noten~}% +} +% \end{macrocode} +% \end{RSframed} +% \end{macro} +% +% \noindent Options +% \begin{RSframed} +% \begin{macrocode} +\DeclareLangOpt{german}{\RSgerman} +\DeclareLangOpt{ngerman}{\RSgerman} +\DeclareLangOpt{austrian}{\RSgerman} +\DeclareLangOpt{naustrian}{\RSgerman} +% \end{macrocode} +% \end{RSframed} +% +% +% \subsubsection{Italian} +% +% \begin{macro}{\RSitalian} +% \changes{v0.4}{2010/10/21}{Add Italian language support} +% Nicola Lunghi: \texttt{<\,nick83ola AT gmail DOT com>} +% provided the definitions for Italian. +% \begin{RSframed} +% \begin{macrocode} +%%-- ITALIAN ------------------------------------ +% \end{macrocode} +% \begin{macrocode} +\newcommand\RSitalian{% + \def\RSrngtxt{--}% + \def\RSlsttwotxt{\space e~}% + \def\RSlsttxt{\space e~}% + \def\RSparttxt{Parte~}% + \def\RSpartstxt{Parti~}% + \def\RSParttxt{Parte~}% + \def\RSPartstxt{Parti~}% + \def\RSappendixname{l'appendice~}% + \def\RSappendicesname{le appendici~}% + \def\RSAppendixname{l'Appendice~}% + \def\RSAppendicesname{le Appendici~}% + \def\RSchaptername{il capitolo~}% + \def\RSchaptersname{i capitoli~}% + \def\RSChaptername{il Capitolo~}% + \def\RSChaptersname{i Capitoli~}% + \def\RSsectxt{la sezione~}% + \def\RSsecstxt{le sezioni~}% + \def\RSSectxt{la Sezione~}% + \def\RSSecstxt{la Sezioni~}% + \def\RSeqtxt{l'equazione~}% + \def\RSeqstxt{le equazioni~}% + \def\RSEqtxt{l'Equazione~}% + \def\RSEqstxt{le Equazioni~}% + \def\RSfigtxt{la figura~}% + \def\RSfigstxt{le figure~}% + \def\RSFigtxt{la Figura~}% + \def\RSFigstxt{le Figure~}% + \def\RStabtxt{la tabella~}% + \def\RStabstxt{le tabelle~}% + \def\RSTabtxt{la Tabella~}% + \def\RSTabstxt{le Tabelle~}% + \def\RSfootntxt{la nota~}% + \def\RSfootnstxt{le note~}% + \def\RSFootntxt{la Nota~}% + \def\RSFootnstxt{le Note~}% +} +% \end{macrocode} +% \end{RSframed} +% \end{macro} +% +% \noindent Options +% \begin{RSframed} +% \begin{macrocode} +\DeclareLangOpt{italian}{\RSitalian} +% \end{macrocode} +% \end{RSframed} +% +% +% +% \subsubsection{Norwegian} +% +% \begin{macro}{\RSnorwegian} +% \changes{v0.3}{2006/09/07}{Add Norwegian language support} +% Karl Ove Hufthammer: \texttt{<\,karloh AT mi DOT uib DOT no>} +% provided the definitions for Norwegian. +% +% Norway has two official languages Norwegian Nynorsk and +% Norwegian Bokm{\aa}l (commonly 'nynorsk' and 'norsk' in LaTeX), +% but the \pkg{refstyle} definitions are identically in both variants. +% \begin{RSframed} +% \begin{macrocode} +%%-- NORWEGIAN ------------------------------------- +% \end{macrocode} +% \begin{macrocode} +\newcommand\RSnorwegian{% + \def\RSrngtxt{\space til~}% + \def\RSlsttwotxt{\space og~}% + \def\RSlsttxt{\space og~}% + \def\RSparttxt{del~}% + \def\RSpartstxt{del~}% + \def\RSParttxt{Del~}% + \def\RSPartstxt{Del~}% + \def\RSappendixname{tillegg~}% + \def\RSappendicesname{tillegg~}% + \def\RSAppendixname{Tillegg~}% + \def\RSAppendicesname{Tillegg~}% + \def\RSchaptername{kapittel~}% + \def\RSchaptersname{kapittel~}% + \def\RSChaptername{Kapittel~}% + \def\RSChaptersname{Kapittel~}% + \def\RSsectxt{avsnitt~}% + \def\RSsecstxt{avsnitt~}% + \def\RSSectxt{Avsnitt~}% + \def\RSSecstxt{Avsnitt~}% + \def\RSeqtxt{formel~}% + \def\RSeqstxt{formel~}% + \def\RSEqtxt{Formel~}% + \def\RSEqstxt{Formel~}% + \def\RSfigtxt{figur~}% + \def\RSfigstxt{figur~}% + \def\RSFigtxt{Figur~}% + \def\RSFigstxt{Figur~}% + \def\RStabtxt{tabell~}% + \def\RStabstxt{tabell~}% + \def\RSTabtxt{Tabell~}% + \def\RSTabstxt{Tabell~}% + \def\RSfootntxt{fotnote~}% + \def\RSfootnstxt{fotnote~}% + \def\RSFootntxt{Fotnote~}% + \def\RSFootnstxt{Fotnote~}% +} +% \end{macrocode} +% \end{RSframed} +% \end{macro} +% +% \noindent Options +% \begin{RSframed} +% \begin{macrocode} +\DeclareLangOpt{norwegian}{\RSnorwegian} +\DeclareLangOpt{nynorsk}{\RSnorwegian} +\DeclareLangOpt{bokmal}{\RSnorwegian}% Not in babel yet +\DeclareLangOpt{norsk}{\RSnorwegian} +% \end{macrocode} +% \end{RSframed} +% +% +% \subsubsection{Portuguese/Brazilian} +% +% \begin{macro}{\RSportuguese,\RSbrazilian} +% \changes{v0.4}{2010/10/21}{Add Portuguese language support} +% Bernhard Enders and Flavio Costa \texttt{<\,flaviocosta AT yahoo DOT com DOT br>} +% provided the definitions for Portuguese. +% \begin{RSframed} +% \begin{macrocode} +%%-- PORTUGUESE ----------------------------------- +% \end{macrocode} +% \begin{macrocode} +\newcommand\RSportuguese{% + \def\RSrngtxt{\space a~}% + \def\RSlsttwotxt{\space e~}% + \def\RSlsttxt{\space e~}% + \def\RSparttxt{Parte~}% + \def\RSpartstxt{Partes~}% + \def\RSParttxt{Parte~}% + \def\RSPartstxt{Partes~}% + \def\RSappendixname{ap\^{e}ndice~}% + \def\RSappendicesname{ap\^{e}ndices~}% + \def\RSAppendixname{Ap\^{e}ndice~}% + \def\RSAppendicesname{Ap\^{e}ndices~}% + \def\RSchaptername{cap\'{i}tulo~}% + \def\RSchaptersname{cap\'{i}tulos~}% + \def\RSChaptername{Cap\'{i}tulo~}% + \def\RSChaptersname{Cap\'{i}tulos~}% + \def\RSsectxt{se\c{c}\~{a}o~}% + \def\RSsecstxt{se\c{c}\~{o}es~}% + \def\RSSectxt{Se\c{c}\~{a}o~}% + \def\RSSecstxt{Se\c{c}\~{o}es~}% + \def\RSeqtxt{equa\c{c}\~{a}o~}% + \def\RSeqstxt{equa\c{c}\~{o}es~}% + \def\RSEqtxt{Equa\c{c}\~{a}o~}% + \def\RSEqstxt{Equa\c{c}\~{o}es~}% + \def\RSfigtxt{figura~}% + \def\RSfigstxt{figuras~}% + \def\RSFigtxt{Figura~}% + \def\RSFigstxt{Figuras~}% + \def\RStabtxt{tabela~}% + \def\RStabstxt{tabelas~}% + \def\RSTabtxt{Tabela~}% + \def\RSTabstxt{Tabelas~}% + \def\RSfootntxt{nota de rodap\'{e}~}% + \def\RSfootnstxt{notas de rodap\'{e}~}% + \def\RSFootntxt{Nota de rodap\'{e}~}% + \def\RSFootnstxt{Notas de rodap\'{e}~}% +} +% \end{macrocode} +% \begin{macrocode} +\newcommand\RSbrazilian{% + \def\RSrngtxt{\space a~}% + \def\RSlsttwotxt{\space e~}% + \def\RSlsttxt{\space e~}% + \def\RSparttxt{Parte~}% + \def\RSpartstxt{Partes~}% + \def\RSParttxt{Parte~}% + \def\RSPartstxt{Partes~}% + \def\RSappendixname{ap\^{e}ndice~}% + \def\RSappendicesname{ap\^{e}ndices~}% + \def\RSAppendixname{Ap\^{e}ndice~}% + \def\RSAppendicesname{Ap\^{e}ndices~}% + \def\RSchaptername{cap\'{i}tulo~}% + \def\RSchaptersname{cap\'{i}tulos~}% + \def\RSChaptername{Cap\'{i}tulo~}% + \def\RSChaptersname{Cap\'{i}tulos~}% + \def\RSsectxt{sec\c{c}\~{a}o~}%<--------------- + \def\RSsecstxt{sec\c{c}\~{o}es~}%<------------- + \def\RSSectxt{Sec\c{c}\~{a}o~}%<--------------- + \def\RSSecstxt{Sec\c{c}\~{o}es~}%<------------- + \def\RSeqtxt{equa\c{c}\~{a}o~}% + \def\RSeqstxt{equa\c{c}\~{o}es~}% + \def\RSEqtxt{Equa\c{c}\~{a}o~}% + \def\RSEqstxt{Equa\c{c}\~{o}es~}% + \def\RSfigtxt{figura~}% + \def\RSfigstxt{figuras~}% + \def\RSFigtxt{Figura~}% + \def\RSFigstxt{Figuras~}% + \def\RStabtxt{tabela~}% + \def\RStabstxt{tabelas~}% + \def\RSTabtxt{Tabela~}% + \def\RSTabstxt{Tabelas~}% + \def\RSfootntxt{nota de rodap\'{e}~}% + \def\RSfootnstxt{notas de rodap\'{e}~}% + \def\RSFootntxt{Nota de rodap\'{e}~}% + \def\RSFootnstxt{Notas de rodap\'{e}~}% +} +% \end{macrocode} +% \end{RSframed} +% \end{macro} +% +% \noindent Options +% \begin{RSframed} +% \begin{macrocode} +\DeclareLangOpt{portuges}{\RSportuguese} +\DeclareLangOpt{portuguese}{\RSportuguese} +\DeclareLangOpt{brazilian}{\RSbrazilian} +\DeclareLangOpt{brazil}{\RSbrazilian} +% \end{macrocode} +% \end{RSframed} +% +% +% +% \subsubsection{Swedish} +% +% \begin{macro}{\RSswedish} +% \changes{v0.2}{2003/07/30}{Add Swedish language support} +% Bj\"{o}rn Thors \texttt{<\,bjorn.thors AT alfvenlab DOT kth DOT se>} +% provided the definitions for Swedish. +% \begin{RSframed} +% \begin{macrocode} +%%-- SWEDISH ------------------------------------ +% \end{macrocode} +% \begin{macrocode} +\newcommand\RSswedish{% + \def\RSrngtxt{\space till~}% + \def\RSlsttwotxt{\space och~}% + \def\RSlsttxt{\space och~}% + \def\RSparttxt{del~}% + \def\RSpartstxt{del~}% + \def\RSParttxt{Del~}% + \def\RSPartstxt{Del~}% + \def\RSappendixname{appendix~}% + \def\RSappendicesname{appendix~}% + \def\RSAppendixname{Appendix~}% + \def\RSAppendicesname{Appendix~}% + \def\RSchaptername{kapitel~}% + \def\RSchaptersname{kapitel~}% + \def\RSChaptername{Kapitel~}% + \def\RSChaptersname{Kapitel~}% + \def\RSsectxt{sektion~}% + \def\RSsecstxt{sektion~}% + \def\RSSectxt{Sektion~}% + \def\RSSecstxt{Sektion~}% + \def\RSeqtxt{ekvation~}% + \def\RSeqstxt{ekvation~}% + \def\RSEqtxt{Ekvation~}% + \def\RSEqstxt{Ekvation~}% + \def\RSfigtxt{figur~}% + \def\RSfigstxt{figur~}% + \def\RSFigtxt{Figur~}% + \def\RSFigstxt{Figur~}% + \def\RStabtxt{tabell~}% + \def\RStabstxt{tabell~}% + \def\RSTabtxt{Tabell~}% + \def\RSTabstxt{Tabell~}% + \def\RSfootntxt{fotnot~}% + \def\RSfootnstxt{fotnot~}% + \def\RSFootntxt{Fotnot~}% + \def\RSFootnstxt{Fotnot~}% +} +% \end{macrocode} +% \end{RSframed} +% \end{macro} +% \noindent Options +% \begin{RSframed} +% \begin{macrocode} +\DeclareLangOpt{swedish}{\RSswedish} +% \end{macrocode} +% \end{RSframed} +% +% +% +% +% \subsection{Templates for the \RS Package} +% +% The user can also define his or her own templates and put it +% in a separate configuration file to ensure uniformity +% of reference formats in your documents. +% +% \subsubsection{Parts} +% +% References to parts are usually straight forward, except that the +% document division ``Part'' must be distinguished from the normal +% usage of the word ``part'' in a sentence. A personal preference +% is to use small caps. +% +% \begin{RSframed} +% \begin{macrocode} +%%-- TEMPLATE FOR PARTS ------------------------- +% \end{macrocode} +% \begin{macrocode} + \newref{part}{% + name = \RSparttxt, + names = \RSpartstxt, + Name = \RSPparttxt, + Names = \RSPartstxt, + rngtxt = \RSrngtxt, + lsttxt = \RSlsttxt} +% \end{macrocode} +% \end{RSframed} +% +% +% +% \subsubsection{Chapters and Appendices} +% +% A major problem with a reference to a chapter is that at the time +% when the reference label, |\label|\marg{chap-label}, is created, +% it is unknown whether it would eventually ends up in the main +% matter or the appendix part of a book or report. +% +% A simple solution is to use the prefix to the \meta{chapter} +% counter, |\p@chapter|, to write the definition of |\@chapapp| to +% the auxiliary file (|.aux|) together with information of the +% label. The command |\@chapapp| expands to either |\chaptername| or +% |\appendixname| depending on whether the reference label is +% defined in the main matter or after the |\appendix| was called. +% (Note that |\@chapapp| is not defined in the AMS book class.) +% +% \begin{Ipara} +% |\renewcommand*{\p@chapter}{\string\chname{\@chapapp}}|\\ +% |\newcommand*{\chname}[1]{}%<-make it harmless |\\ +% |\newcommand*{\chapref}[1]{{\renewcommand*{\chname}[1]{##1~}\ref{#1}}}| +% \end{Ipara} +% +% \noindent The reference to a chapter, |\chapref|\marg{chap-label}, +% will then be prefixed with |\chaptername| or |\appendixname| and +% it does not matter where it was defined or where it was called. +% +% To utilize the full functionality of the \RS package for +% references to chapters and appendices, a complex form of +% \cmd{\newref} needs to be implemented. +% The following is a template for a book or report classes. +% +% +% \begin{RSframed} +% \begin{macrocode} +%%-- TEMPLATE FOR CHAPTERS & APPENDIXES --------- +% \end{macrocode} +% Prevent crashes for non-book type classes. +% \begin{macrocode} +\providecommand*{\p@chapter}{} +% \end{macrocode} +% Add \cmd{\@chapapp} to \cmd{\p@chapter} for writeout to auxiliary file. +% If an AMS book class is loaded, then \cmd{\chaptername} must +% be used. +% \begin{macrocode} +\AtBeginDocument{% + \RS@ifundefined{chapter}{}{% + \RS@ifundefined{@chapapp}% + {\renewcommand*{\p@chapter}{\string\chpname{\chaptername}}}%AMS + {\renewcommand*{\p@chapter}{\string\chpname{\@chapapp}}}% Normal + }% + } +% \end{macrocode} +% Define \cmd{\chpname} to gobble its contents outside the +% reference commands. +% \begin{macrocode} +\newcommand*{\chpname}[1]{} +% \end{macrocode} +% Define the \cmd{\RSchpname} to typeset all the different +% perturbations of chapter and appendix names. +% Use the conditionals to switch between the +% different options. +% +% \begin{macrocode} +\newcommand*{\RS@chpname}[1]{% + \ifRSnameon + \edef\RS@tmpa{#1}% + \edef\RS@tmpb{\appendixname}% + \ifx\RS@tmpa\RS@tmpb\relax% + \ifRSplural + \ifRScapname \RSAppendicesname \else \RSappendicesname \fi + \else + \ifRScapname \RSAppendixname \else \RSappendixname \fi + \fi + \else + \ifRSplural + \ifRScapname \RSChaptersname \else \RSchaptersname \fi + \else + \ifRScapname \RSChaptername \else \RSchaptername \fi + \fi + \fi + \fi} +% \end{macrocode} +% Define the \cmd{\newref} for chapters. +% \begin{macrocode} + \newref{chap}{% + refcmd = {{\let\chpname=\RS@chpname\ref{#1}}}, + rngtxt = \RSrngtxt, + lsttwotxt = \RSlsttwotxt, + lsttxt = \RSlsttxt} +% \end{macrocode} +% \end{RSframed} +% +% +% \subsubsection{Sections and paragraphs}\seclabel{secTempl} +% +% A template for references to sections is given below. References +% to paragraphs are similar and is left as an exercise to the users. +% +% \begin{RSframed} +% \begin{macrocode} +%%-- TEMPLATE FOR SECTIONS ---------------------- +% \end{macrocode} +% \begin{macrocode} + \newref{sec}{% + name = \RSsectxt, + names = \RSsecstxt, + Name = \RSSectxt, + Names = \RSSecstxt, + refcmd = {\S\ref{#1}}, + rngtxt = \RSrngtxt, + lsttwotxt = \RSlsttwotxt, + lsttxt = \RSlsttxt} +% \end{macrocode} +% \end{RSframed} +% +% \subsubsection{Equations}\seclabel{EqTempl} +% +% The equation number in references to equations are traditionally +% written in an upright text, irrespective of the surrounding text. +% +% \begin{RSframed} +% \begin{macrocode} +%%-- TEMPLATE FOR EQUATIONS --------------------- +% \end{macrocode} +% The standard equation ref format if \pkg{amsmath.sty} is not loaded. +% \begin{macrocode} +\newcommand*{\RSeqrefform}[1]{\textup{(\ref{#1})}} +% \end{macrocode} +% If \pkg{amsmath.sty} is loaded, store \cmd{\eqref} +% and then undefine it before the template is created. +% \begin{macrocode} +\AddToHook{package/amsmath/after}% + {\NewCommandCopy\AMSeqref\eqref + \RS@removedef{eqref}}% +% \end{macrocode} +% \begin{macrocode} +\newref{eq}{% + name = \RSeqtxt, + names = \RSeqstxt, + Name = \RSEqtxt, + Names = \RSEqstxt, + refcmd = \RSeqrefform{#1}, + rngtxt = \RSrngtxt, + lsttwotxt = \RSlsttwotxt, + lsttxt = \RSlsttxt} +% \end{macrocode} +% Make way for \pkg{amsmath.sty} definitions +% \begin{macrocode} +\let\RSeqref\eqref +\let\eqref\relax +% \end{macrocode} +% Some footwork to bring the AMS definition of +% \cmd{\eqref} back if \pkg{amsmath.sty} is loaded +% afterwards. +% \begin{macrocode} +\AtBeginDocument{% + \@ifpackageloaded{amsmath}% + {\DeclareCommandCopy\RSeqrefform\AMSeqref}% + {}% + \let\eqref=\RSeqref + } +% \end{macrocode} +% \end{RSframed} +% +% +% \subsubsection{Figures and Tables}\seclabel{tabtemp} +% References to figures and tables are usually +% straight forward. +% \begin{RSframed} +% \begin{macrocode} +%%-- TEMPLATE FOR FIGURES ----------------------- +% \end{macrocode} +% \begin{macrocode} + \newref{fig}{% + name = \RSfigtxt, + names = \RSfigstxt, + Name = \RSFigtxt, + Names = \RSFigstxt, + rngtxt = \RSrngtxt, + lsttwotxt = \RSlsttwotxt, + lsttxt = \RSlsttxt} +% \end{macrocode} +% \end{RSframed} +% +% \begin{RSframed} +% \begin{macrocode} +%%-- TEMPLATE FOR TABLES ------------------------ +% \end{macrocode} +% \begin{macrocode} + \newref{tab}{% + name = \RStabtxt, + names = \RStabstxt, + Name = \RSTabtxt, + Names = \RSTabstxt, + rngtxt = \RSrngtxt, + lsttwotxt = \RSlsttwotxt, + lsttxt = \RSlsttxt} +% \end{macrocode} +% \end{RSframed} +% +% \pagebreak[2] +% \subsubsection{Footnotes}\seclabel{fnTempl} +% +% A reference to a footnote differs from other references in that +% it is only defined inside the footnote definition itself: +% \begin{Ipara} +% |\footnote{This is a footnote with ... \label{fn:xx}}| +% \end{Ipara} +% It can then be referred to with |\ref{fn:xx}|. +% +% A useful application of the \RS package is for references to +% footnotes, were you need a duplicate footnote mark that refers to +% a previously defined footnote.\footnote{^^A +% This is a footnote with \cmd{\fnlabel}\texttt{\{xx\}} ...\fnlabel{xx}} +% You can use the stared form of the reference +% command to format the reference as a footnote mark, while the +% reference commands without a star behave as normal. +% \begin{Itabb} +% \hspace*{2cm}\=\kill +% |\fnref*{xx}| \ArTab \fnref*{xx}\\ +% |\fnref{xx}| \ArTab \fnref{xx}\\ +% \end{Itabb} +% +% \begin{RSframed} +% \begin{macrocode} +%%-- TEMPLATE FOR FOOTNOTES --------------------- +% \end{macrocode} +% Define the \cmd{\RSfnmark} to reproduce the footnote mark. +% Use the |\ifRSstar| conditional to switch between a superscripted +% and a normal reference. +% \begin{macrocode} + \newcommand{\RSfnmark}[1]{% + \begingroup + \unrestored@protected@xdef\@thefnmark{\ref{#1}}% + \endgroup + \@footnotemark} +% \end{macrocode} +% \begin{macrocode} + \newref{fn}{% + name = \RSfootntxt, + names = \RSfootnstxt, + Name = \RSFootntxt, + Names = \RSFootnstxt, + refcmd = {\ifRSstar\RSfnmark{#1}\else(\ref{#1})\fi}, + rngtxt = \RSrngtxt, + lsttwotxt = \RSlsttwotxt, + lsttxt = \RSlsttxt} +% \end{macrocode} +% \end{RSframed} +% +% \subsubsection{Enumerated lists} +% +% A reference to an item in an enumerated list can be obtained +% by placing the labelling command after the \cmd{\item} command +% inside the list. The second level numbering of the \cmd{\ref} +% label in the standard \LaTeX{} is: 2a, 2b, etc. +% +% If you want to change the reference labels to 2(a), 2(b), +% etc., without effecting the display in the \env{enumerate} +% environment, you can make the following redefinition: +% \begin{Ipara} +% |\makeatletter|\\ +% |\renewcommand{\p@enumii}{\expandafter\p@@enumii}|\\ +% |\newcommand{\p@@enumii}[1]{\theenumi(#1)}|\\ +% |\makeatother| +% \end{Ipara} +% The contents of the \cmd{\@currentlable} is then +% \begin{Ipara} +% |{\expandafter\p@@enumii\theenumii}| ~$\rightarrow$~ +% |{\theenumi(\theenumii)}| +% \end{Ipara} +% +% Writing a template for enumerated lists is left to the user. +% +% +% \subsubsection{Theorems, lemmas, etc.}\seclabel{Thm} +% +% There exists many perturbations to the theorem environment such +% as, Theorem, Lemma, Exercise, etc., and it is left to the user as +% an exercise to construct his or her own templates. +% +% As an example to add reference for theorems to an exiting setup: +% +% \begin{Ipara} +% |\usepackage{refstyle} |\\ +% |\newref{thm}{ |\\ +% | name = {theorem~}, |\\ +% | names = {theorems~},|\\ +% | Name = {Theorem~}, |\\ +% | Names = {Theorems~},|\\ +% | rngtxt = \RSrngtxt,|\\ +% | lsttwotxt = \RSlsttxt,|\\ +% | lsttxt = \RSlsttxt}| +% \end{Ipara} +% +% If you want to add it to a specific language setup with \pkg{babel} then +% you can do the following, for example for a dual language document with +% English and Norwegian: +% \begin{Ipara} +% |\documentclass[english, norwegian]{article}% NB: Languages as global opts! |\\ +% |\usepackage{babel} %Use global languages |\\ +% |\usepackage{varioref} %Use global languages |\\ +% |\usepackage{refstyle} %Use global languages |\\ +% |\RSaddto{\RSnorwegian}{% |\\ +% | \def\RSthmtxt{teorem~}% |\\ +% | \def\RSthmstxt{teorem~}% |\\ +% | \def\RSThmtxt{Teorem~}% |\\ +% | \def\RSThmstxt{Teorem~}} |\\ +% |\RSaddto{\RSenglish}{% |\\ +% | \def\RSthmtxt{theorem~}% |\\ +% | \def\RSthmstxt{theorems~}% |\\ +% | \def\RSThmtxt{Theorem~}% |\\ +% | \def\RSThmstxt{Theorems~}} |\\ +% |\newref{thm}{ |\\ +% | name = \RSthmtxt, |\\ +% | names = \RSthmstxt, |\\ +% | Name = \RSThmtxt, |\\ +% | Names = \RSThmstxt, |\\ +% | rngtxt = \RSrngtxt, |\\ +% | lsttwotxt = \RSlsttxt, |\\ +% | lsttxt = \RSlsttwotxt} | +% \end{Ipara} +% +% \noindent All \pkg{babel} language changes will then activate +% the proper code setup. In this example the \pkg{refstyle} +% mechanism is used where the code is appended to the |\RSenglish| +% and |\RSnorwegian| container functions. These functions are added +% by the package +% to the \pkg{babel} containers |\extrasenglish| and |\extrasnorwegian|, +% that is called every time a language change occurs. +% Please see the contents of \pkg{refstyle.cfg} for the names of the +% \pkg{refstyle} containers associated with the different languages. +% +% Note that the extended definitions +% can also be added directly to the \pkg{babel} containers without using +% \pkg{refstyle}'s mechanism. +% +% \begin{macrocode} +%</cfg> +% \end{macrocode} +% +% \Finale +\endinput diff --git a/macros/latex/contrib/refstyle/refconfig.pdf b/macros/latex/contrib/refstyle/refconfig.pdf Binary files differindex f4dcb8d15a..c16ae09cca 100644 --- a/macros/latex/contrib/refstyle/refconfig.pdf +++ b/macros/latex/contrib/refstyle/refconfig.pdf diff --git a/macros/latex/contrib/refstyle/refstyle.cfg b/macros/latex/contrib/refstyle/refstyle.cfg deleted file mode 100644 index 2ca7d62dd2..0000000000 --- a/macros/latex/contrib/refstyle/refstyle.cfg +++ /dev/null @@ -1,571 +0,0 @@ -%%
-%% This is file `refstyle.cfg',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% refconfig.dtx (with options: `cfg')
-%%
-%% -------------------------------------------------------------------
-%% The refstyle package
-%% for the formatting of references
-%% -------------------------------------------------------------------
-%% This file may be customized to suit specific user requirements.
-%%
-%% Original by Danie Els <dnjels@sun.ac.za>
-%% -------------------------------------------------------------------
-%%
-\ProvidesFile{refstyle.cfg}[2010/11/02\space
- 0.5\space
- Configuration file for refstyle (DNJ Els)]
-%%-- ENGLISH ------------------------------------
-\newcommand\RSukenglish{%
- \def\RSrngtxt{\space to~}%........... Range: figures 5 to 6
- \def\RSlsttwotxt{\space and~}%....... List two: figures 5 and 6
- \def\RSlsttxt{, and~}%............... List more: figures 5, 6, and 7
- \def\RSparttxt{Part~}%............... Part lowercase singular
- \def\RSpartstxt{Parts~}%............. lowercase plural
- \def\RSParttxt{Part~}%............... uppercase singular (sentence start)
- \def\RSPartstxt{Parts~}%............. uppercase plural (sentence start)
- \def\RSappendixname{appendix~}%...... Appendix lowercase singular
- \def\RSappendicesname{appendices~}%.. lowercase plural
- \def\RSAppendixname{Appendix~}%...... uppercase singular (sentence start)
- \def\RSAppendicesname{Appendices~}%.. uppercase plural (sentence start)
- \def\RSchaptername{chapter~}%........ Chapter lowercase singular
- \def\RSchaptersname{chapters~}%...... lowercase plural
- \def\RSChaptername{Chapter~}%........ uppercase singular (sentence start)
- \def\RSChaptersname{Chapters~}%...... uppercase plural (sentence start)
- \def\RSsectxt{section~}%............. Section lowercase singular
- \def\RSsecstxt{sections~}%........... lowercase plural
- \def\RSSectxt{Section~}%............. uppercase singular (sentence start)
- \def\RSSecstxt{Sections~}%........... uppercase plural (sentence start)
- \def\RSeqtxt{equation~}%............. Equation lowercase singular
- \def\RSeqstxt{equations~}%........... lowercase plural
- \def\RSEqtxt{Equation~}%............. uppercase singular (sentence start)
- \def\RSEqstxt{Equations~}%........... uppercase plural (sentence start)
- \def\RSfigtxt{figure~}%.............. Figure lowercase singular
- \def\RSfigstxt{figures~}%............ lowercase plural
- \def\RSFigtxt{Figure~}%.............. uppercase singular (sentence start)
- \def\RSFigstxt{Figures~}%............ uppercase plural (sentence start)
- \def\RStabtxt{table~}%............... Table lowercase singular
- \def\RStabstxt{tables~}%............. lowercase plural
- \def\RSTabtxt{Table~}%............... uppercase singular (sentence start)
- \def\RSTabstxt{Tables~}%............. uppercase plural (sentence start)
- \def\RSfootntxt{footnote~}%.......... Footnote lowercase singular
- \def\RSfootnstxt{footnotes~}%........ lowercase plural
- \def\RSFootntxt{Footnote~}%.......... uppercase singular (sentence start)
- \def\RSFootnstxt{Footnotes~}%........ uppercase plural (sentence start)
-}
-\newcommand\RSenglish{%
- \def\RSrngtxt{\space to~}%
- \def\RSlsttwotxt{\space and~}%
- \def\RSlsttxt{\space and~}%
- \def\RSparttxt{Part~}%
- \def\RSpartstxt{Parts~}%
- \def\RSParttxt{Part~}%
- \def\RSPartstxt{Parts~}%
- \def\RSappendixname{appendix~}%
- \def\RSappendicesname{appendices~}%
- \def\RSAppendixname{Appendix~}%
- \def\RSAppendicesname{Appendices~}%
- \def\RSchaptername{chapter~}%
- \def\RSchaptersname{chapters~}%
- \def\RSChaptername{Chapter~}%
- \def\RSChaptersname{Chapters~}%
- \def\RSsectxt{section~}%
- \def\RSsecstxt{sections~}%
- \def\RSSectxt{Section~}%
- \def\RSSecstxt{Sections~}%
- \def\RSeqtxt{equation~}%
- \def\RSeqstxt{equations~}%
- \def\RSEqtxt{Equation~}%
- \def\RSEqstxt{Equations~}%
- \def\RSfigtxt{figure~}%
- \def\RSfigstxt{figures~}%
- \def\RSFigtxt{Figure~}%
- \def\RSFigstxt{Figures~}%
- \def\RStabtxt{table~}%
- \def\RStabstxt{tables~}%
- \def\RSTabtxt{Table~}%
- \def\RSTabstxt{Tables~}%
- \def\RSfootntxt{footnote~}%
- \def\RSfootnstxt{footnotes~}%
- \def\RSFootntxt{Footnote~}%
- \def\RSFootnstxt{Footnotes~}%
-}
-\RSenglish% Default
-\DeclareLangOpt{english}{\RSenglish}
-\DeclareLangOpt{USenglish}{\RSenglish}
-\DeclareLangOpt{american}{\RSenglish}
-\DeclareLangOpt{canadian}{\RSenglish}
-\DeclareLangOpt{UKenglish}{\RSukenglish}
-\DeclareLangOpt{british}{\RSukenglish}
-%%-- AFRIKAANS ----------------------------------
-\newcommand\RSafrikaans{%
- \def\RSrngtxt{\space tot~}%
- \def\RSlsttwotxt{\space en~}%
- \def\RSlsttxt{\space en~}%
- \def\RSparttxt{Deel~}%
- \def\RSpartstxt{Dele~}%
- \def\RSParttxt{Deel~}%
- \def\RSPartstxt{Dele~}%
- \def\RSappendixname{bylae~}%
- \def\RSappendicesname{bylaes~}%
- \def\RSAppendixname{Bylae~}%
- \def\RSAppendicesname{Bylaes~}%
- \def\RSchaptername{hoofstuk~}%
- \def\RSchaptersname{hoofstukke~}%
- \def\RSChaptername{Hoofstuk~}%
- \def\RSChaptersname{Hoofstukke~}%
- \def\RSsectxt{afdeling~}%
- \def\RSsecstxt{afdelings~}%
- \def\RSSectxt{Afdeling~}%
- \def\RSSecstxt{Afdelings~}%
- \def\RSeqtxt{vergelyking~}%
- \def\RSeqstxt{vergelykings~}%
- \def\RSEqtxt{Vergelyking~}%
- \def\RSEqstxt{Vergelyking~}%
- \def\RSfigtxt{figuur~}%
- \def\RSfigstxt{figure~}%
- \def\RSFigtxt{Figuur~}%
- \def\RSFigstxt{Figure~}%
- \def\RStabtxt{tabel~}%
- \def\RStabstxt{tabelle~}%
- \def\RSTabtxt{Tabel~}%
- \def\RSTabstxt{Tabelle~}%
- \def\RSfootntxt{footnota~}%
- \def\RSfootnstxt{footnotas~}%
- \def\RSFootntxt{Footnota~}%
- \def\RSFootnstxt{Footnotas~}%
-}
-\DeclareLangOpt{afrikaans}{\RSafrikaans}
-%%-- DANISH -------------------------------------
-\newcommand\RSdanish{%
- \def\RSrngtxt{\space til~}%
- \def\RSlsttwotxt{\space og~}%
- \def\RSlsttxt{\space og~}%
- \def\RSparttxt{del~}%
- \def\RSpartstxt{del~}%
- \def\RSParttxt{Del~}%
- \def\RSPartstxt{Del~}%
- \def\RSappendixname{bilag~}% % 'appendiks' is also possible,
- \def\RSappendicesname{bilag~}% % but 'bilag' is used in Babel
- \def\RSAppendixname{Bilag~}%
- \def\RSAppendicesname{Bilag~}%
- \def\RSchaptername{kapitel~}%
- \def\RSchaptersname{kapitel~}%
- \def\RSChaptername{Kapitel~}%
- \def\RSChaptersname{Kapitel~}%
- \def\RSsectxt{afsnit~}%
- \def\RSsecstxt{afsnit~}%
- \def\RSSectxt{Afsnit~}%
- \def\RSSecstxt{Afsnit~}%
- \def\RSeqtxt{ligning~}%
- \def\RSeqstxt{ligning~}%
- \def\RSEqtxt{Ligning~}%
- \def\RSEqstxt{Ligning~}%
- \def\RSfigtxt{figur~}%
- \def\RSfigstxt{figur~}%
- \def\RSFigtxt{Figur~}%
- \def\RSFigstxt{Figur~}%
- \def\RStabtxt{tabel~}%
- \def\RStabstxt{tablel~}%
- \def\RSTabtxt{Tabel~}%
- \def\RSTabstxt{Tabel~}%
- \def\RSfootntxt{fodnote~}%
- \def\RSfootnstxt{fodnote~}%
- \def\RSFootntxt{Fodnote~}%
- \def\RSFootnstxt{Fodnote~}%
-}
-\DeclareLangOpt{danish}{\RSdanish}
-%%-- FRENCH -------------------------------------
-\newcommand\RSfrench{%
- \def\RSrngtxt{\space \`{a}~}%
- \def\RSlsttwotxt{\space et~}%
- \def\RSlsttxt{\space et~}%
- \def\RSparttxt{partie~}%
- \def\RSpartstxt{parties~}%
- \def\RSParttxt{La partie~}%
- \def\RSPartstxt{Les parties~}%
- \def\RSappendixname{appendice~}%
- \def\RSappendicesname{appendices~}%
- \def\RSAppendixname{L'appendice~}%
- \def\RSAppendicesname{Les appendices~}%
- \def\RSchaptername{chapitre~}%
- \def\RSchaptersname{chapitres~}%
- \def\RSChaptername{Le chapitre~}%
- \def\RSChaptersname{Les chapitres~}%
- \def\RSsectxt{section~}%
- \def\RSsecstxt{sections~}%
- \def\RSSectxt{La section~}%
- \def\RSSecstxt{Les sections~}%
- \def\RSeqtxt{\'{e}quation~}%
- \def\RSeqstxt{\'{e}quations~}%
- \def\RSEqtxt{L'\'{e}quation~}%
- \def\RSEqstxt{Les \'{e}quations~}%
- \def\RSfigtxt{figure~}%
- \def\RSfigstxt{figures~}%
- \def\RSFigtxt{La figure~}%
- \def\RSFigstxt{Les figures~}%
- \def\RStabtxt{tableau~}%
- \def\RStabstxt{tableaux~}%
- \def\RSTabtxt{Le tableau~}%
- \def\RSTabstxt{Les tableaux~}%
- \def\RSfootntxt{note~}%
- \def\RSfootnstxt{notes~}%
- \def\RSFootntxt{La note~}%
- \def\RSFootnstxt{Les notes~}%
-}
-\DeclareLangOpt{french}{\RSfrench}
-%%-- GERMAN -------------------------------------
-\newcommand\RSgerman{%
- \def\RSrngtxt{\space bis~}%
- \def\RSlsttwotxt{\space und~}%
- \def\RSlsttxt{\space und~}%
- \def\RSparttxt{Teil~}%
- \def\RSpartstxt{Teile~}%
- \def\RSParttxt{Teil~}%
- \def\RSPartstxt{Teile~}%
- \def\RSappendixname{Anhang~}%
- \def\RSappendicesname{Anh\"{a}nge~}%
- \def\RSAppendixname{Anhang~}%
- \def\RSAppendicesname{Anh\"{a}nge~}%
- \def\RSchaptername{Kapitel~}%
- \def\RSchaptersname{Kapitel~}%
- \def\RSChaptername{Kapitel~}%
- \def\RSChaptersname{Kapitel~}%
- \def\RSsectxt{Abschnitt~}%
- \def\RSsecstxt{Abschnitt~}%
- \def\RSSectxt{Abschnitt~}%
- \def\RSSecstxt{Abschnitt~}%
- \def\RSeqtxt{Gleichung~}%
- \def\RSeqstxt{Gleichungen~}%
- \def\RSEqtxt{Gleichung~}%
- \def\RSEqstxt{Gleichungen~}%
- \def\RSfigtxt{Abbildung~}%
- \def\RSfigstxt{Abbildung~}%
- \def\RSFigtxt{Abbildung~}%
- \def\RSFigstxt{Abbildung~}%
- \def\RStabtxt{Tabelle~}%
- \def\RStabstxt{Tabellen~}%
- \def\RSTabtxt{Tabelle~}%
- \def\RSTabstxt{Tabellen~}%
- \def\RSfootntxt{Fu\ss note~}%
- \def\RSfootnstxt{Fu\ss noten~}%
- \def\RSFootntxt{Fu\ss note~}%
- \def\RSFootnstxt{Fu\ss noten~}%
-}
-\DeclareLangOpt{german}{\RSgerman}
-\DeclareLangOpt{ngerman}{\RSgerman}
-\DeclareLangOpt{austrian}{\RSgerman}
-\DeclareLangOpt{naustrian}{\RSgerman}
-%%-- ITALIAN ------------------------------------
-\newcommand\RSitalian{%
- \def\RSrngtxt{--}%
- \def\RSlsttwotxt{\space e~}%
- \def\RSlsttxt{\space e~}%
- \def\RSparttxt{Parte~}%
- \def\RSpartstxt{Parti~}%
- \def\RSParttxt{Parte~}%
- \def\RSPartstxt{Parti~}%
- \def\RSappendixname{l'appendice~}%
- \def\RSappendicesname{le appendici~}%
- \def\RSAppendixname{l'Appendice~}%
- \def\RSAppendicesname{le Appendici~}%
- \def\RSchaptername{il capitolo~}%
- \def\RSchaptersname{i capitoli~}%
- \def\RSChaptername{il Capitolo~}%
- \def\RSChaptersname{i Capitoli~}%
- \def\RSsectxt{la sezione~}%
- \def\RSsecstxt{le sezioni~}%
- \def\RSSectxt{la Sezione~}%
- \def\RSSecstxt{la Sezioni~}%
- \def\RSeqtxt{l'equazione~}%
- \def\RSeqstxt{le equazioni~}%
- \def\RSEqtxt{l'Equazione~}%
- \def\RSEqstxt{le Equazioni~}%
- \def\RSfigtxt{la figura~}%
- \def\RSfigstxt{le figure~}%
- \def\RSFigtxt{la Figura~}%
- \def\RSFigstxt{le Figure~}%
- \def\RStabtxt{la tabella~}%
- \def\RStabstxt{le tabelle~}%
- \def\RSTabtxt{la Tabella~}%
- \def\RSTabstxt{le Tabelle~}%
- \def\RSfootntxt{la nota~}%
- \def\RSfootnstxt{le note~}%
- \def\RSFootntxt{la Nota~}%
- \def\RSFootnstxt{le Note~}%
-}
-\DeclareLangOpt{italian}{\RSitalian}
-%%-- NORWEGIAN -------------------------------------
-\newcommand\RSnorwegian{%
- \def\RSrngtxt{\space til~}%
- \def\RSlsttwotxt{\space og~}%
- \def\RSlsttxt{\space og~}%
- \def\RSparttxt{del~}%
- \def\RSpartstxt{del~}%
- \def\RSParttxt{Del~}%
- \def\RSPartstxt{Del~}%
- \def\RSappendixname{tillegg~}%
- \def\RSappendicesname{tillegg~}%
- \def\RSAppendixname{Tillegg~}%
- \def\RSAppendicesname{Tillegg~}%
- \def\RSchaptername{kapittel~}%
- \def\RSchaptersname{kapittel~}%
- \def\RSChaptername{Kapittel~}%
- \def\RSChaptersname{Kapittel~}%
- \def\RSsectxt{avsnitt~}%
- \def\RSsecstxt{avsnitt~}%
- \def\RSSectxt{Avsnitt~}%
- \def\RSSecstxt{Avsnitt~}%
- \def\RSeqtxt{formel~}%
- \def\RSeqstxt{formel~}%
- \def\RSEqtxt{Formel~}%
- \def\RSEqstxt{Formel~}%
- \def\RSfigtxt{figur~}%
- \def\RSfigstxt{figur~}%
- \def\RSFigtxt{Figur~}%
- \def\RSFigstxt{Figur~}%
- \def\RStabtxt{tabell~}%
- \def\RStabstxt{tabell~}%
- \def\RSTabtxt{Tabell~}%
- \def\RSTabstxt{Tabell~}%
- \def\RSfootntxt{fotnote~}%
- \def\RSfootnstxt{fotnote~}%
- \def\RSFootntxt{Fotnote~}%
- \def\RSFootnstxt{Fotnote~}%
-}
-\DeclareLangOpt{norwegian}{\RSnorwegian}
-\DeclareLangOpt{nynorsk}{\RSnorwegian}
-\DeclareLangOpt{bokmal}{\RSnorwegian}% Not in babel yet
-\DeclareLangOpt{norsk}{\RSnorwegian}
-%%-- PORTUGUESE -----------------------------------
-\newcommand\RSportuguese{%
- \def\RSrngtxt{\space a~}%
- \def\RSlsttwotxt{\space e~}%
- \def\RSlsttxt{\space e~}%
- \def\RSparttxt{Parte~}%
- \def\RSpartstxt{Partes~}%
- \def\RSParttxt{Parte~}%
- \def\RSPartstxt{Partes~}%
- \def\RSappendixname{ap\^{e}ndice~}%
- \def\RSappendicesname{ap\^{e}ndices~}%
- \def\RSAppendixname{Ap\^{e}ndice~}%
- \def\RSAppendicesname{Ap\^{e}ndices~}%
- \def\RSchaptername{cap\'{i}tulo~}%
- \def\RSchaptersname{cap\'{i}tulos~}%
- \def\RSChaptername{Cap\'{i}tulo~}%
- \def\RSChaptersname{Cap\'{i}tulos~}%
- \def\RSsectxt{se\c{c}\~{a}o~}%
- \def\RSsecstxt{se\c{c}\~{o}es~}%
- \def\RSSectxt{Se\c{c}\~{a}o~}%
- \def\RSSecstxt{Se\c{c}\~{o}es~}%
- \def\RSeqtxt{equa\c{c}\~{a}o~}%
- \def\RSeqstxt{equa\c{c}\~{o}es~}%
- \def\RSEqtxt{Equa\c{c}\~{a}o~}%
- \def\RSEqstxt{Equa\c{c}\~{o}es~}%
- \def\RSfigtxt{figura~}%
- \def\RSfigstxt{figuras~}%
- \def\RSFigtxt{Figura~}%
- \def\RSFigstxt{Figuras~}%
- \def\RStabtxt{tabela~}%
- \def\RStabstxt{tabelas~}%
- \def\RSTabtxt{Tabela~}%
- \def\RSTabstxt{Tabelas~}%
- \def\RSfootntxt{nota de rodap\'{e}~}%
- \def\RSfootnstxt{notas de rodap\'{e}~}%
- \def\RSFootntxt{Nota de rodap\'{e}~}%
- \def\RSFootnstxt{Notas de rodap\'{e}~}%
-}
-\newcommand\RSbrazilian{%
- \def\RSrngtxt{\space a~}%
- \def\RSlsttwotxt{\space e~}%
- \def\RSlsttxt{\space e~}%
- \def\RSparttxt{Parte~}%
- \def\RSpartstxt{Partes~}%
- \def\RSParttxt{Parte~}%
- \def\RSPartstxt{Partes~}%
- \def\RSappendixname{ap\^{e}ndice~}%
- \def\RSappendicesname{ap\^{e}ndices~}%
- \def\RSAppendixname{Ap\^{e}ndice~}%
- \def\RSAppendicesname{Ap\^{e}ndices~}%
- \def\RSchaptername{cap\'{i}tulo~}%
- \def\RSchaptersname{cap\'{i}tulos~}%
- \def\RSChaptername{Cap\'{i}tulo~}%
- \def\RSChaptersname{Cap\'{i}tulos~}%
- \def\RSsectxt{sec\c{c}\~{a}o~}%<---------------
- \def\RSsecstxt{sec\c{c}\~{o}es~}%<-------------
- \def\RSSectxt{Sec\c{c}\~{a}o~}%<---------------
- \def\RSSecstxt{Sec\c{c}\~{o}es~}%<-------------
- \def\RSeqtxt{equa\c{c}\~{a}o~}%
- \def\RSeqstxt{equa\c{c}\~{o}es~}%
- \def\RSEqtxt{Equa\c{c}\~{a}o~}%
- \def\RSEqstxt{Equa\c{c}\~{o}es~}%
- \def\RSfigtxt{figura~}%
- \def\RSfigstxt{figuras~}%
- \def\RSFigtxt{Figura~}%
- \def\RSFigstxt{Figuras~}%
- \def\RStabtxt{tabela~}%
- \def\RStabstxt{tabelas~}%
- \def\RSTabtxt{Tabela~}%
- \def\RSTabstxt{Tabelas~}%
- \def\RSfootntxt{nota de rodap\'{e}~}%
- \def\RSfootnstxt{notas de rodap\'{e}~}%
- \def\RSFootntxt{Nota de rodap\'{e}~}%
- \def\RSFootnstxt{Notas de rodap\'{e}~}%
-}
-\DeclareLangOpt{portuges}{\RSportuguese}
-\DeclareLangOpt{portuguese}{\RSportuguese}
-\DeclareLangOpt{brazilian}{\RSbrazilian}
-\DeclareLangOpt{brazil}{\RSbrazilian}
-%%-- SWEDISH ------------------------------------
-\newcommand\RSswedish{%
- \def\RSrngtxt{\space till~}%
- \def\RSlsttwotxt{\space och~}%
- \def\RSlsttxt{\space och~}%
- \def\RSparttxt{del~}%
- \def\RSpartstxt{del~}%
- \def\RSParttxt{Del~}%
- \def\RSPartstxt{Del~}%
- \def\RSappendixname{appendix~}%
- \def\RSappendicesname{appendix~}%
- \def\RSAppendixname{Appendix~}%
- \def\RSAppendicesname{Appendix~}%
- \def\RSchaptername{kapitel~}%
- \def\RSchaptersname{kapitel~}%
- \def\RSChaptername{Kapitel~}%
- \def\RSChaptersname{Kapitel~}%
- \def\RSsectxt{sektion~}%
- \def\RSsecstxt{sektion~}%
- \def\RSSectxt{Sektion~}%
- \def\RSSecstxt{Sektion~}%
- \def\RSeqtxt{ekvation~}%
- \def\RSeqstxt{ekvation~}%
- \def\RSEqtxt{Ekvation~}%
- \def\RSEqstxt{Ekvation~}%
- \def\RSfigtxt{figur~}%
- \def\RSfigstxt{figur~}%
- \def\RSFigtxt{Figur~}%
- \def\RSFigstxt{Figur~}%
- \def\RStabtxt{tabell~}%
- \def\RStabstxt{tabell~}%
- \def\RSTabtxt{Tabell~}%
- \def\RSTabstxt{Tabell~}%
- \def\RSfootntxt{fotnot~}%
- \def\RSfootnstxt{fotnot~}%
- \def\RSFootntxt{Fotnot~}%
- \def\RSFootnstxt{Fotnot~}%
-}
-\DeclareLangOpt{swedish}{\RSswedish}
-%%-- TEMPLATE FOR PARTS -------------------------
- \newref{part}{%
- name = \RSparttxt,
- names = \RSpartstxt,
- Name = \RSPparttxt,
- Names = \RSPartstxt,
- rngtxt = \RSrngtxt,
- lsttxt = \RSlsttxt}
-%%-- TEMPLATE FOR CHAPTERS & APPENDIXES ---------
-\providecommand*{\p@chapter}{}
-\AtBeginDocument{%
- \RS@ifundefined{chapter}{}{%
- \RS@ifundefined{@chapapp}%
- {\renewcommand*{\p@chapter}{\string\chpname{\chaptername}}}%AMS
- {\renewcommand*{\p@chapter}{\string\chpname{\@chapapp}}}% Normal
- }%
- }
-\newcommand*{\chpname}[1]{}
-\newcommand*{\RS@chpname}[1]{%
- \ifRSnameon
- \edef\RS@tmpa{#1}%
- \edef\RS@tmpb{\appendixname}%
- \ifx\RS@tmpa\RS@tmpb\relax%
- \ifRSplural
- \ifRScapname \RSAppendicesname \else \RSappendicesname \fi
- \else
- \ifRScapname \RSAppendixname \else \RSappendixname \fi
- \fi
- \else
- \ifRSplural
- \ifRScapname \RSChaptersname \else \RSchaptersname \fi
- \else
- \ifRScapname \RSChaptername \else \RSchaptername \fi
- \fi
- \fi
- \fi}
- \newref{chap}{%
- refcmd = {{\let\chpname=\RS@chpname\ref{#1}}},
- rngtxt = \RSrngtxt,
- lsttwotxt = \RSlsttwotxt,
- lsttxt = \RSlsttxt}
-%%-- TEMPLATE FOR SECTIONS ----------------------
- \newref{sec}{%
- name = \RSsectxt,
- names = \RSsecstxt,
- Name = \RSSectxt,
- Names = \RSSecstxt,
- refcmd = {\S\ref{#1}},
- rngtxt = \RSrngtxt,
- lsttwotxt = \RSlsttwotxt,
- lsttxt = \RSlsttxt}
-%%-- TEMPLATE FOR EQUATIONS ---------------------
-\newcommand*{\RSeqrefform}[1]{\textup{(\ref{#1})}}
-\@ifpackageloaded{amsmath}%
- {\let\AMSeqref\eqref
- \let\eqref\relax}%
- {}
-\newref{eq}{%
- name = \RSeqtxt,
- names = \RSeqstxt,
- Name = \RSEqtxt,
- Names = \RSEqstxt,
- refcmd = \RSeqrefform{#1},
- rngtxt = \RSrngtxt,
- lsttwotxt = \RSlsttwotxt,
- lsttxt = \RSlsttxt}
-\let\RSeqref\eqref
-\let\eqref\relax
-\AtBeginDocument{%
- \@ifpackageloaded{amsmath}%
- {\RS@ifundefined{AMSeqref}{\let\AMSeqref\eqref}{}%
- \let\RSeqrefform\AMSeqref}%
- {}%
- \let\eqref=\RSeqref
- }
-%%-- TEMPLATE FOR FIGURES -----------------------
- \newref{fig}{%
- name = \RSfigtxt,
- names = \RSfigstxt,
- Name = \RSFigtxt,
- Names = \RSFigstxt,
- rngtxt = \RSrngtxt,
- lsttwotxt = \RSlsttwotxt,
- lsttxt = \RSlsttxt}
-%%-- TEMPLATE FOR TABLES ------------------------
- \newref{tab}{%
- name = \RStabtxt,
- names = \RStabstxt,
- Name = \RSTabtxt,
- Names = \RSTabstxt,
- rngtxt = \RSrngtxt,
- lsttwotxt = \RSlsttwotxt,
- lsttxt = \RSlsttxt}
-%%-- TEMPLATE FOR FOOTNOTES ---------------------
- \newcommand{\RSfnmark}[1]{%
- \begingroup
- \unrestored@protected@xdef\@thefnmark{\ref{#1}}%
- \endgroup
- \@footnotemark}
- \newref{fn}{%
- name = \RSfootntxt,
- names = \RSfootnstxt,
- Name = \RSFootntxt,
- Names = \RSFootnstxt,
- refcmd = {\ifRSstar\RSfnmark{#1}\else(\ref{#1})\fi},
- rngtxt = \RSrngtxt,
- lsttwotxt = \RSlsttwotxt,
- lsttxt = \RSlsttxt}
-\endinput
-%%
-%% End of file `refstyle.cfg'.
diff --git a/macros/latex/contrib/refstyle/refstyle.dtx b/macros/latex/contrib/refstyle/refstyle.dtx index c2c3acab8e..1b5b6509d6 100644 --- a/macros/latex/contrib/refstyle/refstyle.dtx +++ b/macros/latex/contrib/refstyle/refstyle.dtx @@ -1,1796 +1,1795 @@ -% \iffalse
-%
-% refstyle.dtx
-% Copyright (C) 2002--2010 Danie Els
-%
-% -------------------------------------------------------------------
-% The refstyle package
-% for the formatting of references
-% -------------------------------------------------------------------
-% This work may be distributed and/or modified under the conditions
-% of the LaTeX Project Public License, either version 1.3c 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.3c or later is part of all distributions of LaTeX
-% version 2005/12/01 or later.
-%
-% This work is "maintained" (as per LPPL maintenance status)
-% by Danie Els (dnjels@sun.ac.za).
-%
-% This package consists of the files: refstyle.dtx
-% refconfig.dtx
-% refstyle.ins
-% and the derived files: refstyle.sty
-% refstyle.cfg
-% -------------------------------------------------------------------
-%
-%<*pkg>
-\newcommand*{\RefstyleFileDate}{2010/11/02}
-\newcommand*{\RefstyleFileVersion}{v0.5}
-%</pkg>
-%
-%
-%<*driver>
-\documentclass[a4paper]{ltxdoc}
-\let\RefstyleFileDate\relax
-\let\RefstyleFileVersion\relax
-\usepackage{amsmath}
-\usepackage{amsfonts}
- \DeclareMathSymbol{\square} {\mathord}{AMSa}{"03}
- \DeclareMathSymbol{\blacksquare}{\mathord}{AMSa}{"04}
-\usepackage{calc}
-\usepackage{rotating}
-\usepackage[rounded]{syntax}
-\usepackage{varioref}
-\usepackage{refstyle}
-\usepackage{color}
- \definecolor{hrefcol}{rgb}{0.00,0.00,1.00}
-\usepackage[pdfpagelabels]{hyperref}
-\hypersetup{breaklinks=true,
- linktocpage,
- pdfstartview=FitH,
- colorlinks = true,
- linkcolor = hrefcol,
- urlcolor = hrefcol,
- menucolor = hrefcol,
- filecolor = hrefcol,
- citecolor = hrefcol,
- linkbordercolor = {0.8 0.8 0.8},
- urlbordercolor = {0.8 0.8 0.8},
- menubordercolor = {0.8 0.8 0.8},
- filebordercolor = {0.8 0.8 0.8},
- runbordercolor = {0.8 0.8 0.8},
- citebordercolor = {0.8 0.8 0.8},
- pdftitle={refstyle},
- pdfauthor={Danie Els}}
-
-%---- macrocode env changes -------------------------------
-
-\setlength{\MacroIndent}{1.5em}
-
-%---- Scratches -------------------------------------------
-
-\newlength{\tdima}
-\newsavebox{\tboxa}
-
-%---- Spacing ---------------------------------------------
-
-\newlength{\myskip}
-\setlength{\myskip}{\topsep}
- \addtolength{\myskip}{\parskip}
- \addtolength{\myskip}{\partopsep}
-\newcommand*{\blankline}{\par\addvspace{\myskip}}
-\newlength{\mytab}
-\setlength{\mytab}{2\parindent}
-\newcommand{\tab}{\hspace*{\mytab}}
-
-%---- Indented environments -------------------------------
-
-\newenvironment{IndentPara}[1][1]
- {\list{}{\setlength{\leftmargin}{#1\mytab}%
- \setlength{\labelwidth}{0pt}%
- \setlength{\labelsep}{0pt}%
- \setlength{\itemindent}{\parindent}%
- \setlength{\listparindent}{\parindent}%
- }\item[]}%
- {\endlist}
-\newenvironment{IndentParaX}[1][1]
- {\list{}{\setlength{\leftmargin}{#1\mytab}%
- \setlength{\topsep}{0pt}%
- \setlength{\partopsep}{0pt}%
- \setlength{\labelwidth}{0pt}%
- \setlength{\labelsep}{0pt}%
- \setlength{\itemindent}{\parindent}%
- \setlength{\listparindent}{\parindent}%
- }\item[]}%
- {\endlist}
-\newcommand\bNP{\begin{IndentParaX}}
-\newcommand\eNP{\end{IndentParaX}}
-\newenvironment{Ipara}[1][\small]%
- {\begin{IndentPara}\noindent#1\ignorespaces}%
- {\end{IndentPara}}
-\newenvironment{Itabb}[1][\small]%
- {\begin{IndentPara}#1\ignorespaces\begin{tabbing}\ignorespaces}%
- {\end{tabbing}\end{IndentPara}}
-
-%---- Ruled & colored minipage ----------------------------
-
-\definecolor{shadecolor}{gray}{0.9}
-
-\newenvironment{fminipage}[1][\linewidth]
- {\setlength{\tdima}{#1-2\fboxsep-2\fboxrule}%
- \begin{lrbox}{\tboxa}\begin{minipage}{\tdima}}%
- {\end{minipage}\end{lrbox}\noindent\fbox{\usebox{\tboxa}}}
-\newenvironment{cminipage}[1][\linewidth]
- {\setlength{\tdima}{#1-2\fboxsep-2\fboxrule}%
- \begin{lrbox}{\tboxa}\begin{minipage}{\tdima}}%
- {\end{minipage}\end{lrbox}%
- \noindent\colorbox{shadecolor}{\usebox{\tboxa}}}
-
-%---- Additional documenting commands ---------------------
-
-\def\lcbrack{\symbol{`\{}}
-\def\rcbrack{\symbol{`\}}}
-\makeatletter
-\def\meta@font@select{\normalfont\slshape}
-\makeatother
-\DeclareRobustCommand{\cmeta}[1]{%<- \<xxx>
- \texttt{\bslash}\meta{#1}}
-\DeclareRobustCommand{\cmarg}[1]{%<- {\<xxx>}
- \texttt{\lcbrack}\cmeta{#1}\texttt{\rcbrack}}
-\DeclareRobustCommand{\coarg}[1]{%<- [\<xxx>]
- \texttt{[}\cmeta{#1}\texttt{]}}
-\DeclareRobustCommand{\argcmd}[2]{%<- \<xxx>yyy
- \cmeta{#1}\texttt{#2}}
-\newcommand{\rmeta}[3][]{%
- \texttt{\lcbrack#1}\meta{#2}\texttt{#3\rcbrack}}
-\newcommand{\refmeta}[3][]{\cmd{\brref}\rmeta[#1]{#2}{#3}}
-
-\newcommand*{\file}[1]{\texttt{#1}}
-\newcommand*{\pkg}[1]{\textsf{#1}}
-\newcommand*{\env}[1]{\texttt{#1}}
-\newcommand*{\opt}[1]{\texorpdfstring{\normalfont\texttt{\slshape#1}}{#1}}
-\newcommand*{\RS}{\pkg{refstyle}}
-\newcommand*{\RScfg}{\file{refstyle.cfg}}
-\newcommand*{\rtp}{type}
-\newcommand*{\Rtp}{Type}
-\newcommand*{\okeylst}{\oarg{key\_lst}}
-\newcommand*{\mkeylst}{\marg{key\_lst}}
-
-%---- Special eq tag command ------------------------------
-
-\def\spestag#1{\stepcounter{equation}%
- \gdef\tagextra##1{%
- \makebox[0pt][l]{\small\quad%
- \cmd{\eqlabel}\texttt{\lcbrack##1\rcbrack}}%
- \gdef\tagextra####1{}}%
- \tag{\theequation\tagextra{#1}}\eqlabel{#1}}
-
-%---- other stuff -----------------------------------------
-
-\newcommand*{\ArTab}{\>\quad$\rightarrow$\quad}
-
-%----------------------------------------------------------
-
-\EnableCrossrefs
-\CodelineIndex
-\RecordChanges
-\setlength\hfuzz{15pt}
-\hbadness=7000
-\begin{document}
- \DocInput{refstyle.dtx}
-\end{document}
-
-%</driver>
-% \fi
-%
-% \CheckSum{552}
-%
-% \CharacterTable
-% {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
-% 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
-% Digits \0\1\2\3\4\5\6\7\8\9
-% Exclamation \! Double quote \" Hash (number) \#
-% Dollar \$ Percent \% Ampersand \&
-% Acute accent \' Left paren \( Right paren \)
-% Asterisk \* Plus \+ Comma \,
-% Minus \- Point \. Solidus \/
-% Colon \: Semicolon \; Less than \<
-% Equals \= Greater than \> Question mark \?
-% Commercial at \@ Left bracket \[ Backslash \\
-% Right bracket \] Circumflex \^ Underscore \_
-% Grave accent \` Left brace \{ Vertical bar \|
-% Right brace \} Tilde \~}
-%
-% \changes{v0.0}{2002/12/01}{Initial version}
-% \changes{v0.1}{2003/04/01}{First stable version}
-% \changes{v0.2}{2003/07/30}{First updated version}
-% \changes{v0.3}{2006/09/09}{Documentation update}
-% \changes{v0.4}{2010/10/21}{Documentation update}
-% \changes{v0.4}{2010/10/21}{Add \texttt{nokeyprefix} option}
-% \changes{v0.5}{2010/11/02}{Documentation update}
-%
-% \DoNotIndex{
-% \@backslashchar, \@carcube, \@ehc, \@empty, \@firstoftwo,
-% \@ifnextchar, \@ifpackageloaded, \@ifstar, \@ifundefined, \@nil,
-% \@qend, \@qrelax, \@secondoftwo, \@tempa, \@undefined,
-% \AtEndOfPackage, \begingroup, \csname, \CurrentOption,
-% \DeclareOption, \def, \edef, \else, \endcsname, \endgroup,
-% \expandafter, \fi, \gdef, \iffalse, \ifx, \InputIfFileExists,
-% \let, \long, \lowercase, \MakeLowercase, \mbox, \MessageBreak,
-% \NeedsTeXFormat, \newcommand, \newif, \noexpand, \PackageError, \PackageInfo,
-% \PassOptionsToPackage, \RS@pkgname, \ProcessOptions, \protect,
-% \providecommand, \ProvidesPackage, \relax, \renewcommand,
-% \RequirePackage, \reserved@a, \reserved@b, \RS@tmpa,
-% \RS@tmpb, \S, \RS@setkeys, \space, \string, \textsc, \textup,
-% \unrestored@protected@xdef, \unskip, \uppercase,
-% \zap@space}
-%
-%^^A==== Titling ==========================================
-% \GetFileInfo{refstyle.sty}
-% \title{\vspace*{-1cm}
-% The \RS\ package\thanks{This file has version number
-% \fileversion, last revised
-% \filedate.}}
-% \author{Danie Els\\[1ex]
-% \small Department of Mechanical and Mechatronics Engineering\\
-% \small University of Stellenbosch, South Africa.\\
-% \normalsize e-mail: \texttt{\href{mailto:dnjels@sun.ac.za}%
-% {dnjels@sun.ac.za}}}
-% \date{\filedate}
-% \maketitle
-% \begin{center}
-% \textbf{Overview of the \RS\ package}
-% \end{center}
-% \noindent
-% When writing complex documents, often a large number of commands
-% for different type of references are defined, for example:
-% \begin{Ipara}
-% |\newcommand*{\eqref}[1]{eqn~(\ref{#1})}|\\
-% |\newcommand*{\Eqref}[1]{Equation~(\ref{#1})}|
-% \end{Ipara}
-% The \RS\ package was developed to automate this process. The
-% package provides a user interface to define sets of reference
-% and label commands for each referable object such as an equation
-% or a table, etc. When you declare, for example, a set of
-% reference commands to an equation:
-% \begin{Ipara}
-% \cmd{\newref}|{eq}|\mkeylst\
-% \end{Ipara}
-% \noindent
-% a series of commands of the format \cmd{\eq...} and \cmd{\Eq...}
-% are produced. The configuration options are set with a list of
-% key-values. Prefixes, inserts and other options for all the
-% different perturbations such as capitalized first letters,
-% singular and plural from, etc.\ can be defined. The
-% configuration can be changed temporarily with an optional list
-% of key-values when the commands are used. A direct interface to
-% the \pkg{varioref} package is also provided.
-% This enables compact reference formats:
-% \begin{Itabb}
-% \hspace{14em}\=\kill
-% |\eqref{e1} ...| \ArTab\eqref{e1} ...\\
-% |\Eqref[vref]{e1} ...| \ArTab\Eqref[vref]{e1} ...\\
-% |\eqref[s]{e1} and ...| \ArTab\eqref[s]{e1} and ...\\
-% |\eqref[name=eq.~]{e1} ...| \ArTab\eqref[name=eq.~]{e1} ...
-% \end{Itabb}
-% A range or a list of references can also be referred to in a
-% consistent way.
-% \begin{Itabb}
-% \hspace{14em}\=\kill
-% |\eqref{e1,e2,e3} ...| \ArTab\eqref{e1,e2,e3} ...\\
-% |\eqrangeref[vref]{e1}{e3} ...| \ArTab\eqrangeref[vref]{e1}{e3} ...
-% \end{Itabb}
-%
-% Templates for the different reference types and different
-% languages can be loaded with a configuring file.
-%
-% The package is aimed at large projects, enabling a consistent
-% way of producing references throughout a project. Enough
-% flexibility is provided to make local changes to a single
-% reference. For large projects such as a series of books or a
-% multi volume thesis, written as freestanding documents, a
-% facility is provided to interface to the \pkg{xr} package for
-% external document references.
-%
-% \medskip
-%
-% \begin{center}
-% \begin{fminipage}[.6\textwidth]
-% See also \pkg{refconfig.pdf} for setup and examples.
-% \end{fminipage}
-% \end{center}
-
-% \clearpage
-%
-% \tableofcontents
-% \clearpage
-%
-%
-% \section{Loading the \RS\ Package}
-%
-% \subsection{Document preamble}
-%
-% The \RS\ package is loaded in the preamble of the document:
-% \begin{enumerate}
-% \item[(a)] With a config file with \pkg{babel} language support
-% \begin{Ipara}
-% |\usepackage{varioref}[2001/09/04]%|~
-% ${\leftarrow}$ To use the \opt{vref} option\\
-% |\usepackage{refstyle}|
-% \end{Ipara}
-% When the package is loaded, it first searchers for a local user defined
-% configuration file \file{refstyle.def}. If it is not available it
-% looks for the global default config file \RScfg\ provided with this package.
-% These configuration files are loaded before the package options are precess.
-% It can therefore contain option commands using globally defined language
-% options and can interface to \pkg{babel} for language changes. The macro
-% \begin{Ipara}
-% |\DeclareLangOpt{|\meta{language}|}{|\meta{definitions}|}|
-% \end{Ipara}
-% is provided to declare the package option \meta{language} and add
-% \meta{definitions} to the |\extras|\meta{language} token for \pkg{babel}.
-% It can only be used inside \RScfg\ or \file{refstyle.def}.
-%
-% \item[(b)]
-% Or with an existing configuration with language support and addition
-% of your own extensions
-% \begin{Ipara}
-% |\documentclass[norwegian]{article}|\\
-% |\usepackage{babel} |\\
-% |\usepackage{refstyle} |\\
-% |\RSaddto{\RSnorwegian}{% |\\
-% | \def\RSthmtxt{teorem~}% |\\
-% | \def\RSthmstxt{teorem~}% |\\
-% | \def\RSThmtxt{Teorem~}% |\\
-% | \def\RSThmstxt{Teorem~}} |\\
-% |\newref{thm}{ |\\
-% | name = \RSthmtxt, |\\
-% | names = \RSthmstxt, |\\
-% | Name = \RSThmtxt, |\\
-% | Names = \RSThmstxt, |\\
-% | rngtxt = \RSrngtxt, |\\
-% | lsttxt = \RSlsttxt, |\\
-% | lsttwotxt = \RSlsttwotxt} |
-% \end{Ipara}
-%
-% \item[(c)]
-% Or without any configuration file, but by declaring your own
-% reference commands in the preamble.
-% \begin{Itabb}
-% \cmd{\usepackage}|[noconfig]{refstyle}|\\
-% \qquad\cmd{\newref}\marg{reftype$_{\,1}$}\mkeylst \\
-% \qquad\cmd{\newref}\marg{reftype$_{\,2}$}\mkeylst\\
-% \tab$\vdots$
-% \end{Itabb}
-%
-% \item[(d)]
-% Or with your own configuration file (without babel language support) for a specific project:
-% \begin{Itabb}
-% |\usepackage[noconfig]{refstyle}|\\
-% |\input{thisproject.ref}|
-% \end{Itabb}
-%
-% \end{enumerate}
-%
-% \subsection{Package options}
-%
-% \begin{description}
-% \item[\opt{noconfig}] Neither of the user supplied \file{refstyle.def} config
-% file or \file{refstyle.cfg} the config file supplied with this package
-% are loaded. The user must declare his or her own definitions and templates.
-% Note that these definitions are not passed on to \pkg{babel}'s language
-% changing mechanisms.
-%
-% \item[\opt{nokeyprefix}] Custom labeling commands \argcmd{\rtp}{label} are generated
-% by \pkg{refstyle} for every \meta{type} definition. It defaults to
-% \begin{Itabb}
-% \hspace{5em}\=hspace{5em}\=\kill
-% \argcmd{\rtp}{label}|{abc}|
-% \>\>~ $\rightarrow$ \cmd{\label}\rmeta{type\,:\,}{abc}
-% \end{Itabb}
-% With the \opt{nokeyprefix} option, the prefix is turned of and the
-% labeling commands defaults to
-% \begin{Itabb}
-% \hspace{5em}\=hspace{5em}\=\kill
-% \argcmd{\rtp}{label}|{abc}|
-% \>\>~ $\rightarrow$ \cmd{\label}|{abc}|
-% \end{Itabb}
-% This is useful for old documents with existing labeling commands or
-% where the user prefer not to use the \argcmd{\rtp}{label} commands.
-%
-%
-% \end{description}
-%
-%
-%
-%
-% \subsection{Companion packages}
-%
-% The \RS\ packages is intended for large projects. It is therefore
-% important that it works together with, or has direct interfaces
-% to the following packages:
-% \begin{description}
-% \item[\pkg{varioref}:\footnotemark]
-% \footnotetext{\pkg{varioref} v1.3c, 2001/09/04 or later,
-% because the starred versions of the commands
-% are used.}
-% Produce sophisticated page and page range references.
-%
-% \item[\pkg{hyperref}:\footnotemark]
-% \footnotetext{\pkg{hyperref} v6.72r, 2002/05/27 or later,
-% where a bug for interference with
-% \pkg{varioref} was fixed.}
-% To establish hyper links between the references and the
-% labels.
-%
-% \item[\pkg{xr, xr-hyper}:]
-% To establish references to external documents.
-%
-% \item[\pkg{showkeys}:]
-% To show all the labels and references. This is very useful
-% to find labels in large documents.
-% \end{description}
-%
-% \clearpage
-% \section{User Interface}
-%
-% The \RS\ package has one configuring command, \DescribeMacro{\newref}
-% \cmd{\newref}, that internally creates a series of label and
-% reference commands:
-% \blankline
-%
-% \begin{cminipage}[\linewidth]
-% \newcommand*{\crsi}{\smash{\rule[0pt]{.4pt}{1.25em}\rule[.5ex]{1.5em}{.4pt}}}^^A
-% \newcommand*{\crsl}{\smash{\rule[.5ex]{.4pt}{1.5em}\rule[.5ex]{1.5em}{.4pt}}}^^A
-% \begin{Itabb}
-% \hspace*{2em}\=\hspace{2em}\=\hspace{10em}\=\kill
-% \cmd{\newref}\marg{\rtp}\mkeylst\tab\mbox{}\\[.75ex]
-% \>\crsi \>\argcmd{{\rtp}}{key} \> Reference argument prefix \\[.75ex]
-% \>\crsl \>\argcmd{{\rtp}}{label} \> Custom label \\[.75ex]
-% \>\crsl \>\argcmd{{\rtp}}{ref} \> In text reference \\[.75ex]
-% \>\crsl \>\argcmd{{\Rtp}}{ref} \> Start of sentence reference \\[.75ex]
-% \>\crsl \>\argcmd{{\rtp}}{rangeref} \> In text range reference \\[.75ex]
-% \>\crsl \>\argcmd{{\Rtp}}{rangeref} \> Start of sentence range reference\quad\mbox{}\\[.75ex]
-% \>\crsl \>\argcmd{{\rtp}}{pageref} \> Page reference
-% \end{Itabb}
-% \end{cminipage}
-% \blankline
-%
-% \noindent
-% All the \cmeta{\rtp}... commands, excluding \argcmd{{\rtp}}{key}
-% and \argcmd{{\rtp}}{label} are robust.
-% All the options for the referencing commands are set with a
-% key-value list. \Tabref[vref=far]{refopt} gives a full list of all the
-% key-values and defaults.
-%
-% The \RS\ package do not redefine any internal \LaTeX\ commands and
-% depends only on the \cmd{\label}, \cmd{\ref}, \cmd{\pageref} and
-% the \pkg{varioref} commands.
-% The internally defined commands do not overwrite any
-% existing command with the same name, and an error results if a command
-% already exists. The exception is commands declared with a previous
-% \cmd{\newref} call, can be redefined by calling \cmd{\newref} again
-% with a new set of parameter.
-% If the \pkg{amsmath} package is loaded, and you define
-% \cmd{\newref}|{eq}| for references to equations, you need to
-% undefine \cmd{\eqref} before issuing \cmd{\newref} by
-% \begin{Ipara}
-% \cmd{\let}\cmd{\eqref}|=|\cmd{\relax}
-% \end{Ipara}
-%
-%
-% \section{Command Descriptions}
-%
-% The structure of the label and reference commands is given by the
-% syntax diagrams that follows. Examples are included for references
-% to equations, defined according to the template in
-% \RScfg\ with the
-% \cmd{\newref}|{eq}|\mkeylst. See also \secref{keyvals} for
-% explanations of the key-values.
-%
-% \subsection{The reference key}
-%
-% \begin{cminipage}[\linewidth]
-% \begin{syntdiag}
-% \tok{\argcmd{\rtp}{key}}
-% \end{syntdiag}
-% \end{cminipage}
-% \blankline
-% \noindent
-% The \argcmd{\rtp}{key} command returns the prefix added to the
-% argument of the label and the reference commands, for example:
-%
-% \begin{Itabb}
-% \hspace{10em}\=hspace{5em}\=\kill
-% \cmd{\newref}\marg{\rtp}|{}|
-% \>\>\argcmd{\rtp}{key} $\rightarrow$ \meta{type\,:\,}\\
-% \cmd{\newref}\marg{\rtp}|{key=xxx-}|
-% \>\>\argcmd{\rtp}{key} $\rightarrow$ |xxx-|
-% \end{Itabb}
-%
-% \noindent
-% The \argcmd{\rtp}{key} command is not a general command, but was
-% provided only as a link to the standard \LaTeX{} \cmd{\ref} and
-% \cmd{\pageref} commands:
-%
-% \begin{Itabb}
-% \hspace{10em}\=hspace{5em}\=\kill
-% \cmd{\label}|{|\argcmd{\rtp}{key}| abc}|
-% \>\>~ $\rightarrow$ \cmd{\label}\rmeta{type\,:\,}{abc}\\
-% \cmd{\ref}|{|\argcmd{\rtp}{key}| abc}|
-% \>\>~ $\rightarrow$ \cmd{\ref}\rmeta{type\,:\,}{abc}
-% \end{Itabb}
-% Note if the the \opt{nokeyprefix} option is active then the \argcmd{\rtp}{key}
-% is empty.
-%
-% \blankline
-% \noindent
-% \textbf{\slshape Examples:} equations
-% with \cmd{\newref}|{eq}|\mkeylst:
-%
-% \begin{Itabb}
-% \hspace*{18em}\=\kill
-% |\eqkey| \> \eqkey \\
-% |in eq.~\ref{\eqkey e1} ...| \>in eq.~\ref{\eqkey e1} ... \\
-% |on page \pageref{\eqkey e1} ...|\>on page \pageref{\eqkey e1} ... \\
-% |\vpageref*{\eqkey e1} ... | \>\vpageref*{\eqkey e1} ...
-% \end{Itabb}
-%
-% \subsection{Reference label}
-%
-% \begin{cminipage}[\linewidth]
-% \begin{syntdiag}
-% \tok{\argcmd{\rtp}{label}"{"<lbl>"}"}
-% \end{syntdiag}
-% \end{cminipage}
-% \blankline
-%
-% \noindent
-% The command \argcmd{\rtp}{label} prefix the reference
-% string in the \cmd{\label} with the string \meta{type\,:\,}, or its
-% redefinition with the \opt{key} option.
-%
-% \begin{Itabb}
-% \hspace{10em}\=hspace{5em}\=\kill
-% \argcmd{\rtp}{label}|{abc}|
-% \>\>~ $\rightarrow$ \cmd{\label}\rmeta{type\,:\,}{abc}
-% \end{Itabb}
-% \blankline
-%
-% \noindent
-% \textbf{\slshape Examples:}
-%
-% \begingroup
-% \begin{Ipara}
-% Let $z = x+\mathrm{i} y$ and $\alpha = \beta + \mathrm{i}
-% \gamma$, with $\mathrm{i}^2 = -1$, then
-% \begin{align}
-% &\mathrm{e}^z = \mathrm{e}^x \left(\cos y + \mathrm{i} \sin y \right)
-% \spestag{e1}\\
-% &z^\alpha = \mathrm{e}^{\alpha \ln z}
-% \spestag{e2}\\
-% \intertext{\Eqref{e1,e2} lead to the following interesting results:}
-% &\mathrm{e}^{\mathrm{i} \pi} + 1 = 0 \spestag{e3}\\
-% &\mathrm{i}^\mathrm{i} = \mathrm{e}^{-\pi/2}\spestag{e4}
-% \end{align}
-% \end{Ipara}
-% \endgroup
-%
-%
-% \subsection{Reference commands}
-%
-% \begin{cminipage}[1.05\textwidth]
-% \begin{syntdiag}
-% \tok{\argcmd{\rtp}{ref}}
-% \begin{stack}\\ \tok{$\ast$} \end{stack}
-% \begin{stack}\\ \tok{\okeylst} \end{stack}
-% "{"
-% \begin{rep} \tok{<lbl>} \\ ~,~ \end{rep}
-% "}"
-% \end{syntdiag}
-% \end{cminipage}
-% \smallskip
-%
-% \begin{cminipage}[1.05\textwidth]
-% \begin{syntdiag}
-% \tok{\argcmd{\Rtp}{ref}}
-% \begin{stack}\\ \tok{$\ast$} \end{stack}
-% \begin{stack}\\ \tok{\okeylst} \end{stack}
-% \tok{"{"}
-% \begin{rep} \tok{<lbl>} \\ ~,~ \end{rep}
-% \tok{"}"}
-% \end{syntdiag}
-% \end{cminipage}
-% \blankline
-% \noindent
-% The |*| optional form of the \argcmd{\rtp}{ref} and
-% \argcmd{\Rtp}{ref} commands eliminates the
-% name prefix. The |[s]| optional key-value argument is for the
-% plural form of the name prefix.
-% \blankline
-%
-% \noindent
-% \textbf{\slshape Examples:}
-% \begin{Itabb}
-% \hspace*{21em}\=\kill
-% |in \eqref{e1} ...| \>in \eqref{e1} ... \\
-% |in \eqref[s]{e1}--\eqref*{e4} ...|\>in \eqref[s]{e1}--\eqref*{e4} ...\\
-% |in \eqref[name=eq.~]{e2} ...| \>in \eqref[name=eq.~]{e2} ...
-% \end{Itabb}
-% \pagebreak[1]
-% \noindent
-% A list of references can be used:
-% \begin{Itabb}
-% \hspace*{21em}\=\kill
-% |in \eqref{e1,e2} ...| \>in \eqref{e1,e2} ... \\
-% |in \eqref{e1,e2,e3} ...| \>in \eqref{e1,e2,e3} ... \\
-% |in \eqref[lsttxt={, and~}]{e1,e2,e3} ...| \>in \eqref[lsttxt={, and~}]{e1,e2,e3} ...
-% \end{Itabb}
-% \pagebreak[2]
-% The reference to the page can be included with the \opt{vref} or \opt{vref=far}
-% options that activates the \pkg{varioref} reference.
-% \begin{Itabb}
-% \hspace*{18em}\=\kill
-% |in \eqref[vref]{e1} ...| \>in \eqref[vref]{e1} ...\\
-% |in \eqref[vref=far]{e1} ...| \>in \eqref[vref=far]{e1} ...
-% \end{Itabb}
-% The \argcmd{\Rtp}{ref} command is identical to the
-% \argcmd{\rtp}{ref} command except that it uses the \opt{Name} and
-% \opt{Names} key-value options.
-% \begin{Itabb}
-% \hspace*{18em}\=\kill
-% |\Eqref{e1} is ...| \>\Eqref{e1} is ... \\
-% |\Eqref{e1,e2} are ...| \>\Eqref{e1,e2} are ... \\
-% |\Eqref[lsttxt={\ or~}]{e1,e2,e3}| \>\Eqref[lsttxt={\ or~}]{e1,e2,e3}
-% \end{Itabb}
-% \noindent
-% References to external documents can be added with the \opt{xr}
-% option. Please read the documentation of the \pkg{xr} package.
-%
-% \begin{Itabb}
-% \hspace{10em}\=hspace{5em}\=\kill
-% \cmd{\eqref}|[|\opt{xr}|=A-]{xyz}| \> \>$\rightarrow$~
-% |equation~\ref{A-eq:xyz}|
-% \end{Itabb}
-%
-%
-% \subsection{Range reference commands}
-%
-% \begin{cminipage}[\linewidth]
-% \begin{syntdiag}
-% \tok{\argcmd{\rtp}{rangeref}}
-% \begin{stack}\\ \tok{$\ast$} \end{stack}
-% \begin{stack}\\ \tok{\okeylst} \end{stack}
-% \tok{"{"<lbl>$_1$"}{"<lbl>$_2$"}"}
-% \end{syntdiag}
-% \end{cminipage}
-% \smallskip
-%
-% \begin{cminipage}[\linewidth]
-% \begin{syntdiag}
-% \tok{\argcmd{\Rtp}{rangeref}}
-% \begin{stack}\\ \tok{$\ast$} \end{stack}
-% \begin{stack}\\ \tok{\okeylst} \end{stack}
-% \tok{"{"<lbl>$_1$"}{"<lbl>$_2$"}"}
-% \end{syntdiag}
-% \end{cminipage}
-% \blankline
-%
-% \noindent
-% The \argcmd{\rtp}{rangeref} and \argcmd{\Rtp}{rangeref} commands
-% return a range of references and take two arguments. The |*|
-% optional form again eliminates the name prefix.
-% \blankline
-%
-% \noindent
-% \textbf{\slshape Examples:}
-% \begin{Itabb}
-% \hspace*{19em}\=\kill
-% |in \eqrangeref{e1}{e4} ...| \>in \eqrangeref{e1}{e4} ... \\
-% |... and \eqrangeref*{e1}{e4} ...| \>... and \eqrangeref*{e1}{e4} ... \\
-% |\Eqrangeref{e1}{e4} are ...| \>\Eqrangeref{e1}{e4} are ... \\
-% |\Eqrangeref[vref,rngtxt=--]{e1}{e4}| \>\Eqrangeref[rngtxt=--,vref]{e1}{e4}
-% \end{Itabb}
-%
-%
-% \subsection{Page reference command}\seclabel{PRefCmds}
-%
-% \begin{cminipage}
-% \begin{syntdiag}
-% \tok{\argcmd{\rtp}{pageref}}
-% \begin{stack}\\ \tok{\okeylst} \end{stack}
-% \tok{"{"<lbl>"}"}
-% \end{syntdiag}
-% \end{cminipage}
-% \blankline
-% \noindent
-% The \argcmd{\rtp}{pageref} commands returns the page number of a
-% reference.
-% \blankline
-%
-% \noindent
-% \textbf{\slshape Examples:}
-% \begin{Itabb}
-% \hspace*{18em}\=\kill
-% |it is on page \eqpageref{e1} ...| \>it is on page \eqpageref{e1} ...\\
-% |it is \eqpageref[vref]{e1} ...| \>it is \eqpageref[vref]{e1} ...
-% \end{Itabb}
-%
-%
-%^^A=================================================================
-% \begin{table}
-% \newcommand*{\Q}{\ensuremath{\blacksquare}}^^A
-% \newcommand*{\X}{\ensuremath{\square}}^^A
-% \setlength{\fboxsep}{1em}^^A
-% \centering
-% \caption[The available options and key-value parameters]^^A
-% {The available options and key-value parameters for
-% the label and reference commands of the \RS\ package.}
-% \tablabel{refopt}
-% \blankline
-% \begin{cminipage}[.9\textwidth]
-% \renewcommand{\thempfootnote}{\fnsymbol{mpfootnote}}
-% \renewcommand{\footnoterule}{}
-% \begin{tabular*}{\linewidth}{@{\extracolsep{\fill}}llccccccc@{}}
-% & & \multicolumn{7}{c}{Commands\footnote{^^A
-% The commands are obtained by calling the configuring command
-% \cmd{\newref} and setting the default key-values. The
-% active key-values can be changed temporarily inside the
-% commands.}} \\
-% \cline{3-9}
-% Parameter & Default &
-% \begin{turn}{90}\argcmd{{\rtp}}{key}~ \end{turn}&
-% \begin{turn}{90}\argcmd{{\rtp}}{label}~ \end{turn}&
-% \begin{turn}{90}\argcmd{{\rtp}}{ref}~ \end{turn}&
-% \begin{turn}{90}\argcmd{{\Rtp}}{ref}~ \end{turn}&
-% \begin{turn}{90}\argcmd{{\rtp}}{rangeref}~ \end{turn}&
-% \begin{turn}{90}\argcmd{{\Rtp}}{rangeref}~ \end{turn}&
-% \begin{turn}{90}\argcmd{{\rtp}}{pageref}~ \end{turn}\\
-% \hline
-% \noalign{\smallskip}
-% ~$\ast$ & &\X &\X &\Q &\Q &\Q &\Q &\X\\
-% \okeylst & &\X &\X &\Q &\Q &\Q &\Q &\Q\\[1ex]
-% \opt{key} &|={|\meta{\rtp:}|},| &\X &\X &\Q &\Q &\Q &\Q &\Q\\
-% \opt{s} & |={true}|\footnote{^^A
-% Options defaults to \opt{true} but is initialized
-% as \opt{false}. The \argcmd{{\rtp}}{ref}\texttt{[s]}\marg{lbl}
-% command results in the plural: \opt{names}.
-% The same principle is also valid for the \opt{vref}
-% option.\fnlabel{b}}|,|
-% &\X &\X &\Q &\Q &\X &\X &\X\\
-% \opt{vref} &|={true}|\fnref*{b}|,|
-% &\X &\X &\Q &\Q &\Q &\Q &\Q\\
-% \opt{xr} &|={},| &\X &\X &\Q &\Q &\Q &\Q &\Q\\[1ex]
-% \opt{name} &|={},| &\X &\X &\Q &\X &\X &\X &\X\\
-% \opt{names}\footnote{^^A
-% Option depends on the selection of the \texttt{s=true/false}
-% optional key-value for singular or plural.\fnlabel{c}}
-% &|={},| &\X &\X &\Q &\X &\Q &\X &\X\\
-% \opt{Name} &|={},| &\X &\X &\X &\Q &\X &\X &\X\\
-% \opt{Names}\fnref*{c}
-% &|={},| &\X &\X &\X &\Q &\X &\Q &\X\\
-% \opt{lsttwotxt} &|={\space and~},| &\X &\X &\Q &\Q &\X &\X &\X\\
-% \opt{lsttxt} &|={\space and~},| &\X &\X &\Q &\Q &\X &\X &\X\\
-% \opt{rngtxt} &|={\space to~},| &\X &\X &\X &\X &\Q &\Q &\X\\[1ex]
-% \opt{refcmd} &|=\ref{#1},| &\X &\X &\Q &\Q &\Q &\Q &\Q\\
-%
-% \hline
-% \noalign{\smallskip}
-%
-% \footnotesize \Q\ -- \makebox[0pt][l]{\footnotesize Available}\\
-% \footnotesize \X\ -- \makebox[0pt][l]{Not available}
-% \end{tabular*}
-% \end{cminipage}
-% \end{table}
-%^^A=================================================================
-%
-%
-%
-% \clearpage
-% \section{\pkg{Keyval} Optional Arguments}\seclabel{keyvals}
-%
-% Al the options for the referencing commands are set with a key-value
-% list. \Tabref[vref]{refopt} gives a full list of all the key-values and
-% defaults. The options can also be changed locally with the
-% \okeylst\ optional arguments.
-%
-%
-% \subsection{Identifier: \opt{key}}
-%
-% The \opt{key} key-value is the prefix to the reference label
-% of the \cmd{\ref} and \cmd{\pageref} commands.
-% The default is \opt{key=}\meta{type\,:\,}.
-% With the default \RScfg:
-%
-% \begin{Itabb}
-% \tab\=\hspace{3.5cm}\=\hspace{2em}\=\kill
-% \cmd{\newref}|{tab}{...}|\\[1ex]
-% \>|\tablabel{abc}|
-% \>~ $\rightarrow$ |\label{tab:abc}|\\
-% \>|\tabref{abc}|
-% \>~ $\rightarrow$ |table~\ref{tab:abc}|\\[1ex]
-% \cmd{\newref}|{tab}{key=xxx-,...}|\\[1ex]
-% \>|\tablabel{abc}|
-% \>~ $\rightarrow$ |\label{xxx-abc}|\\
-% \>|\tabref{abc}|
-% \>~ $\rightarrow$ |table~\ref{xxx-abc}|
-% \end{Itabb}
-% For existing documents containing labels such as |\label{tab:xx}|,
-% you can use the \opt{nokeyprefix} option which defines \opt{key}|={}|. The
-% normal \cmd{\label} command can then be used and the reference
-% commands defaults to
-% \begin{Itabb}
-% \tab\=\hspace{3.5cm}\=\hspace{2em}\=\kill
-% \>\cmd{\label}|{tab:xx}| \\
-% \>|\tabref{tab:xx}| \>~ $\rightarrow$ |table~\ref{tab:xx}|
-% \end{Itabb}
-%
-%
-% \subsection{Plural form: \opt{s}}
-%
-% The \opt{s} conditional option (\texttt{true/false}) switches the
-% singular/plural form of the reference on and off. The default is
-% \opt{s}\texttt{=true}, but it is initialized to \texttt{false}.
-% \begin{Itabb}
-% \tab\=\hspace{3.5cm}\=\hspace{2em}\=\kill
-% |\tabref{abc}|
-% \>\>~ $\rightarrow$ |table~\ref{tab:abc}|\\
-% |\tabref[s]{abc}|
-% \>\>~ $\rightarrow$ |tables~\ref{tab:abc}|
-% \end{Itabb}
-%
-%
-% \subsection{Extended reference: \opt{vref}}
-%
-% The \opt{vref} conditional option (\texttt{true/far/false}) switches the
-% \pkg{varioref} page referencing on and off. The default is
-% \opt{vref}\texttt{=true}, but it is initialized to \texttt{false}.
-%
-% \begin{Itabb}
-% \tab\=\hspace{3.5cm}\=\hspace{2em}\=\kill
-% |\tabref{abc}|
-% \>\>~ $\rightarrow$ |table~\ref{tab:abc}|\\
-% |\tabref[vref]{abc}|
-% \>\>~ $\rightarrow$ |table~\ref{tab:abc}|
-% |\vpageref[\unskip]{tab:abc}|\\
-% |\tabref[vref=far]{abc}|^^A
-% \>\>~ $\rightarrow$ |table~\ref{tab:abc}|
-% |\reftextfaraway{tab:abc}|
-% \end{Itabb}
-%
-%
-% \subsection{External interfaces: \opt{xr}}
-%
-% The \opt{xr} option is for references to external documents.
-% It inserts a prefix in the reference label, compatible with the
-% \pkg{xr} package. The default is \opt{xr}|={}|.
-%
-% External document can be defined in the preamble with the
-% \pkg{xr} or \pkg{xr-hyper} packages:
-% \begin{Ipara}
-% \cmd{\usepackage}|{xr}|\\
-% \cmd{\externaldocument}\oarg{xr\_key}\marg{filename}
-% \end{Ipara}
-%
-% \noindent
-% If, for example, an external document defined with
-% \meta{xr\_key}\texttt{=\{A-\}}, uses an identical setup (e.g.\ the same
-% \RScfg), then it can be referenced with
-%
-% \begin{Itabb}
-% \tab\=\hspace{3.5cm}\=\hspace{2em}\=\kill
-% |\tabref[xr=A-]{abc}|
-% \>\>~ $\rightarrow$ |table~\ref{A-tab:abc}|
-% \end{Itabb}
-% \noindent or otherwise
-% \begin{Itabb}
-% \tab\=\hspace{3.5cm}\=\hspace{2em}\=\kill
-% |\tabref[xr=A-,key=]{abc}|
-% \>\>~ $\rightarrow$ |table~\ref{A-abc}|
-% \end{Itabb}
-%
-%
-% \subsection{Language parameters: \opt{name}, \opt{names},
-% \opt{Name}, \opt{Names}, \opt{rngtxt}, \opt{lsttwotxt}, \opt{lsttxt}}
-% \seclabel{langopts}
-%
-% This key-values contain the text prefixes and insertions.
-% Every house style or user has his or her own preference for naming the reference types,
-% therefore are there no defaults provided.
-%
-% \begin{Itabb}
-% \hspace*{1.5cm}\=\hspace{7cm}\=\kill
-% \opt{name} \> ---~Inside sentence reference prefix (singular)
-% \> default=|{}|\\
-% \opt{names}\> ---~Inside sentence reference prefix (plural)
-% \> default=|{}|\\
-% \opt{Name} \> ---~First word reference prefix (singular)
-% \> default=|{}|\\
-% \opt{Names}\> ---~First word reference prefix (plural)
-% \> default=|{}|\\
-% \opt{rngtxt}\> ---~Range of references
-% \> default=|{\ to~}|\\
-% \opt{lsttwotxt}\> ---~List of references (two)
-% \> default=|{\ and~}|\\
-% \opt{lsttxt}\> ---~List of references (more than two)
-% \> default=|{\ and~}|
-% \end{Itabb}
-% \noindent
-% Good typographic style manuals recommend the minimum use of
-% capital letters and punctuation that breaks the flow of a sentence
-% or paragraph. For abbreviations, Bringhurst\cite{Bring1996}
-% recommends the Oxford house style: Use a period only when the word
-% stops prematurely. The period is omitted if the abbreviation
-% begins with the first letter and end with the last. As an example
-% for equations, use eq.~(1) or eqn~(1).
-% A good guideline is not to abbreviate any reference type names.
-% If a sentence starts with a
-% reference then the type name must always be written in full.
-% A typical example for references to a table is:
-% \begin{Ipara}
-% \opt{name}| ={table~}, |\opt{names}| ={tables~},|\\
-% \opt{Name}| ={Table~}, |\opt{Names}| ={Tables~},|\\
-% \opt{rngtxt}|={\ to~}, |\opt{lsttxt}|={, and~}, |\opt{lsttwotxt}|={\ and~},|
-% \end{Ipara}
-% Note the hardspace after the text. It is needed to keep the text
-% and the reference together on the same line.
-%
-% The \RS\ configuration file can be setup to interface with \pkg{babel}
-% for different languages or for automatic language changes inside a
-% document. The language specific key-values can be added to the
-% \pkg{babel} hook |\extras|\meta{language}. The command
-% \DescribeMacro{\DeclareLangOpt}\cmd{\DeclareLangOpt}\footnote{^^A
-% Only for use in \RScfg\ the default config file}
-% is provided to supply a \meta{language} option to the package
-% and to add the option contents to |\extras|\meta{language}. The
-% default config file contains the following lines for equations:
-% \begin{Ipara}
-% |\newcommand\RSenglish{% |\\
-% | \def\RSeqtxt{equation~}% |\\
-% | \def\RSeqstxt{equations~}%|\\
-% | \def\RSEqtxt{Equation~}% |\\
-% | \def\RSEqstxt{Equations~}%|\\
-% | : |\\
-% | } |\\
-% |\DeclareLangOpt{english}{\RSenglish}|
-% \end{Ipara}
-% \DescribeMacro{\RSaddto}or manually with the \cmd{\RSaddto} command
-% \begin{Ipara}
-% |\RSaddto{\extrasenglish}{\RSenglish}|
-% \end{Ipara}
-% The key-value options for language specific options
-% are then set as:
-% \begin{Ipara}
-% |\newref{eq}{% |\\
-% | name = \RSeqtxt, |\\
-% | names = \RSeqstxt,|\\
-% | Name = \RSEqtxt, |\\
-% | Names = \RSEqstxt,|\\
-% | : |\\
-% | } |
-% \end{Ipara}
-%
-% \noindent\LaTeX{}/\pkg{babel} provides some language specific
-% names that can be utilized.
-%
-% \begin{Ipara}
-% |\chaptername \appendixname|\\
-% |\figurename \tablename|\\
-% |\partname \pagename|
-% \end{Ipara}
-%
-% To setup a multilingual document with \pkg{babel},
-% \emph{always} make the language options global so that other
-% language compliant packages can detect it.
-% A typical setup for an Afrikaans/English document would be:
-% {\makeatletter\def\meta@font@select{\normalfont\ttfamily\slshape}
-% \begin{Ipara}
-% |\documentclass[UKenglish,afrikaans,|\meta{options}|]{|\meta{LaTeX\_class}|}|\\
-% |\usepackage[T1]{fontenc}%..|\texttt{\slshape hyphenation of words with accents}\\
-% |\usepackage{babel}%........|\texttt{\slshape language def's}\\
-% |\usepackage{varioref}%.....|\texttt{\slshape for \opt{vref} option}\\
-% |\usepackage{refstyle}|
-% \end{Ipara}}
-%
-%
-% \subsection{Reference formatting command: \opt{refcmd}}
-%
-% The \opt{refcmd} key-value holds the contents of the internal
-% command that formats the reference. The |#1| parameter
-% passed to the command is the full reference label.
-% For example:
-% \begin{Itabb}
-% \hspace{10em}\=hspace{5em}\=\kill
-% \opt{refcmd}|=(\ref{#1})| \> $\rightarrow$~
-% |(\ref{|\meta{label}|})|
-% \end{Itabb}
-%
-% External commands can be employed. For example, to make references
-% to equations identical to the \AmS\ \cmd{\eqref} command:
-% \begin{Itabb}
-% \opt{refcmd}|={\textup{\tagform@{\ref{#1}}}}%|~~It needs \file{amsmath.sty}
-% \end{Itabb}
-%
-% The \opt{refcmd} can be used in conjuntion with the |\ifRSstar|,
-% |\ifRSnameon|, |\ifRSplural| and |\ifRScapname| internal
-% conditional variables to format the reference. As an example for a
-% reference to a footnote, where a duplicate footnote mark is needed,
-% can the \opt{refcmd} be configured so that the starred form of the
-% reference command produce a superscripted duplicate mark:
-% \begin{Itabb}
-% |\newcommand{\RSfnmark}[1]{%|\\
-% | \begingroup |\\
-% | \unrestored@protected@xdef\@thefnmark{#1}%|\\
-% | \endgroup |\\
-% | \@footnotemark} |\\[1ex]
-% \opt{refcmd}|={\ifRSstar\RSfnmark{\ref{#1}}\else(\ref{#1})\fi}|
-% \end{Itabb}
-% \noindent The second footnote mark, \fnref*[name]{b}, in
-% \tabref[vref]{refopt}, was obtained in this way with the reference
-% |\fnref*{b}|. See \RScfg\ for another
-% example for references to chapters and appendices.
-%
-% The \pkg{nameref} package can easily be incorporated if you need elaborate
-% references which include the section or chapter name:
-% \begin{Ipara}
-% |\Secref[vref, refcmd={\S\ref{#1}, `\nameref{#1}'}]{PRefCmds}|
-% \end{Ipara}
-% gives
-% \begin{Ipara}
-% \Secref[vref, refcmd={\S\ref{#1}, `\nameref{#1}'}]{PRefCmds}
-% \end{Ipara}
-%
-% \section{Default configuration files}
-%
-% The \pkg{refstyle} package first searches for the \file{refstyle.def}
-% configuration file, and if it not found, then it uses the default
-% configuration file \RScfg\ that is supplied with the package.
-%
-% The default configuration file, \RScfg, makes a
-% number of default reference declarations and provides language
-% definitions for the language parameters. See the file
-% \file{refconfig.pdf} for the documentation.
-% \medskip
-%
-% \begin{center}
-% \begin{fminipage}[.55\textwidth]
-% \slshape Any user is welcome to customize the
-% local copy of the \RScfg\ file or copy
-% the relevant contents to your own \file{refstyle.def}
-% configuration file.
-% \end{fminipage}
-% \end{center}
-%
-% \begin{thebibliography}{99}
-% \bibitem{Bring1996}
-% {Bringhurst, R.} (1996), \emph{The elements of typographic style},
-% Hartley \& Marks Publishers, Point Roberts, WA, USA and Vancouver,
-% BC, Canada, second edn.
-% \end{thebibliography}
-%
-% \StopEventually{\PrintChanges\PrintIndex}
-% \clearpage
-%
-% \section{Implementation: \pkg{refstyle.sty}}
-%
-% \subsection{Identification}
-% \begin{macrocode}
-%<*pkg>
-\NeedsTeXFormat{LaTeX2e}[1999/12/01]
-\ProvidesPackage{refstyle}[\RefstyleFileDate\space
- \RefstyleFileVersion\space
- Reference formatting (DNJ Els)]
-\newcommand*{\RS@pkgname}{refstyle}
-% \end{macrocode}
-%
-%
-% \subsection{External packages}
-%
-% Load all the external packages.
-% \begin{macrocode}
-\RequirePackage{keyval}
-% \end{macrocode}
-%
-% \begin{macro}{\RS@setkeys}
-% \changes{v0.3}{2006/09/09}{original \cmd{\setkeys} copy}
-% Note if \pkg{xkeyval} is loaded, it redefines \pkg{keyval}'s
-% macros. To fix this bug, we need the original \cmd{\setkeys}
-% command.
-% \begin{macrocode}
-\def\RS@setkeys#1#2{%
- \def\KV@prefix{KV@#1@}%
- \let\@tempc\relax
- \KV@do#2,\relax,}
-% \end{macrocode}
-% \end{macro}
-%
-% \noindent A small bug-fix for \pkg{showkeys}. Will be removed
-% after release of new version.
-%
-% \begin{macrocode}
-\@ifundefined{vref@space}{\let\vref@space\space}{}
-% \end{macrocode}
-%
-% \begin{macro}{\@safe@activestrue}
-% \changes{v0.5}{2010/11/02}{Add \cmd{\@safe@activesfalse}}
-% \begin{macro}{\@safe@activesfalse}
-% \changes{v0.5}{2010/11/02}{Add \cmd{\@safe@activestrue}}
-% If \pkg{babel} is not loaded, make the following
-% commands inactive.
-% \begin{macrocode}
-\providecommand*{\@safe@activestrue}{}
-\providecommand*{\@safe@activesfalse}{}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \subsection{Utility commands}
-%
-% \begin{macro}{\RS@namelet}
-% \begin{macro}{\RS@nameuse}
-% \begin{macro}{\RS@namedef}
-% \begin{macro}{\RS@robustnamedef}
-% \noindent
-% The following is a list of commands that take a variable \marg{name}
-% as argument. This enables on-the-fly definitions of user commands.
-% \begin{Itabb}
-% Usage:~\=\cmd{\RS@robustnamedef}\marg{name}~\=\kill
-% Usage:
-% \>\cmd{\RS@namelet}\marg{name}
-% \> $\rightarrow$ \cmd{\let}\cmeta{name}\\
-% \>\cmd{\RS@nameuse}\marg{name}
-% \> $\rightarrow$ \cmeta{name}\\
-% \>\cmd{\RS@namedef}\marg{name}
-% \> $\rightarrow$ \cmd{\def}\cmeta{name}\\
-% \>\cmd{\RS@robustnamedef}\marg{name}
-% \> $\rightarrow$
-% \cmd{\def}\cmeta{name}|{\protect|\cmeta{name\textvisiblespace}|}|^^A
-% \cmd{\def}\cmeta{name\textvisiblespace}
-% \end{Itabb}
-% \begin{macrocode}
-\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 }}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\RS@ifundefined}
-% This is an improved definition\footnote{Posted by Markus Kohm
-% on c.t.t. 2002/11/11} for the \LaTeX{} kernel command
-% \cmd{\@ifundefined} that do not leave an undefined command
-% defined as \cmd{\relax} after the test.
-%
-% The usage is:
-% \cmd{\RS@ifundefined}\marg{name}\marg{true}\marg{false} executes
-% the contents of \meta{true} if \cmeta{name} is not defined and
-% \meta{false} if defined.
-% \begin{macrocode}
-\def\RS@ifundefined#1{%
- \begingroup\expandafter\expandafter\expandafter\endgroup
- \expandafter\ifx\csname#1\endcsname\relax
- \expandafter\@firstoftwo
- \else
- \expandafter\@secondoftwo
- \fi}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\RS@removedef}
-% The command removes the definition of a command, including
-% robust definitions.
-% \begin{macrocode}
-\newcommand*{\RS@removedef}[1]{%
- \RS@namelet{#1}\@undefined%
- \RS@ifundefined{#1 }{}{\RS@namelet{#1 }\@undefined}}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\RS@testednamedef}
-% \begin{macro}{\RS@testedrobustnamedef}
-% These command are identical to \cmd{\RS@namedef} and
-% \cmd{\RS@robustnamedef}, but only define the \cmeta{name}
-% command if it is legal. Otherwise an error message
-% is written to the log file and the program is terminated.
-% \begin{macrocode}
-\newcommand*{\RS@testednamedef}[1]{%
- \RS@ifnamedefinable{#1}\RS@namedef{#1}}
-% \end{macrocode}
-% \begin{macrocode}
-\newcommand*{\RS@testedrobustnamedef}[1]{%
- \RS@ifnamedefinable{#1}\RS@robustnamedef{#1}}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\RS@ifnamedefinable}
-% A modified version of the \LaTeX{} kernel command
-% (from ltdefns.dtx).
-% \begin{macrocode}
-\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}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\RS@notdefinable}
-% The error message when an illegal definition is attempted.
-% \begin{macrocode}
-\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.}%
- }
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\RS@setbool}
-% The command\footnote{Taken from the \pkg{ifthen} package.}
-% \cmd{\RS@setbool}\marg{conditional}\marg{true/false}
-% sets the \meta{conditional} to |true| or |false|.
-% \begin{Itabb}
-% Usage:~\=
-% \cmd{\RS@setbool}|{RSplural}{false}|\quad\=$\rightarrow$\quad
-% |\RSpluralfalse|\\
-% \>\cmd{\RS@setbool}|{RSplural}{true}|\quad\>$\rightarrow$\quad
-% |\RSpluraltrue|
-% \end{Itabb}
-%
-% \begin{macrocode}
-\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}}
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \subsection{First character case changes}
-%
-% \begin{macro}{\RS@firstcap}
-% This macro\footnote{Posted by Dan Luecking on c.t.t.} change the
-% first character of a string to uppercase and returns the result
-% in \cmd{\RS@cap}.
-% \begin{Ipara}
-% Usage:~|\RS@fistcap xxxx\@nil| then |\RS@cap| $\rightarrow$ |Xxxx|
-% \end{Ipara}
-% \begin{macrocode}
-\def\RS@firstcap#1#2\@nil{%
- \iffalse{\fi
- \uppercase{\edef\RS@cap{\iffalse}\fi#1}#2}}%
-% \end{macrocode}
-% \end{macro}
-%
-%
-%
-% \subsection{Reference building commands}
-%
-% \begin{macro}{\ifRS@keyactive}
-% \changes{v0.4}{2010/10/21}{Add \opt{nokeyprefix} to turn of the key prefix}
-% We need to peek into the options list for the \opt{nokeyprefix} option
-% before the options are processed to find out if the key prefix must be
-% included in the |\|\meta{key}|label| command. Make \opt{nokeyprefix}
-% not used afterwards.
-% \begin{macrocode}
-\newif\ifRS@keyactive
-\@ifpackagewith{\@currname}{nokeyprefix}%
- {\RS@keyactivefalse}%
- {\RS@keyactivetrue}
-\DeclareOption{nokeyprefix}{\OptionNotUsed}
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \begin{macro}{\ifRSstar}
-% \begin{macro}{\ifRSnameon}
-% \begin{macro}{\ifRScapname}
-% \begin{macro}{\ifRSplural}
-% \begin{macro}{\ifRSlsttwo}
-% \changes{v0.4}{2010/10/21}{Add \cmd{\ifRSlsttwo} test for list containing only two parameter}
-% The |\if| conditional values that are set by the reference commands.
-% These values can be accessed by user defined key-values.
-% \begin{macrocode}
-\newif\ifRSstar\RSstarfalse
-\newif\ifRSnameon\RSnameontrue
-\newif\ifRScapname\RScapnamefalse
-\newif\ifRSplural\RSpluralfalse
-\newif\ifRSlsttwo\RSlsttwofalse
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-%
-% \begin{macro}{\newref}
-% The main user interface for template setup. It take the |#1| or
-% \meta{key} parameter and make it lowercase before passing it on to
-% \cmd{\RS@newref}.
-%
-%
-% \begin{macrocode}
-\newcommand*{\newref}[1]{%
- \lowercase{\def\RS@tempa{#1}}%
- \expandafter\RS@newref\expandafter{\RS@tempa}}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\RS@newref}
-% \changes{v0.4}{2010/10/21}{Ad \texttt{lsttwotxt} option}
-% This command configures a new template.
-% \begin{macrocode}
-\newcommand*{\RS@newref}[2]{%
-% \end{macrocode}
-% \bNP[2.0]\noindent Clears an existing template before defining a new one.\eNP
-% \begin{macrocode}
- \RS@clearref{#1}%
-% \end{macrocode}
-% \bNP[2.0]\noindent Create |\ifRS@|\meta{key}|vref| conditional \eNP
-% \begin{macrocode}
-% \expandafter\newif\csname ifRS@#1vref\endcsname%
-% \end{macrocode}
-% \bNP[2.0]\noindent Creates a series of key-values for every template
-% that stores the setup for the specific template.\eNP
-% \begin{macrocode}
- \ifRS@keyactive
- \define@key{RS@#1}{key}[#1:]{\RS@namedef{RS@#1@key}{##1}}%
- \else
- \define@key{RS@#1}{key}[]{\RS@namedef{RS@#1@key}{##1}}%
- \fi
- \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}{lsttwotxt}[\space and~]{\RS@namedef{RS@#1@lsttwotxt}{##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}}%
-% \end{macrocode}
-% \bNP[2.0]\noindent Set default key-value parameters.\eNP
-% \begin{macrocode}
- \RS@setkeys{RS@#1}{key,
- s=false,
- name,names,Name,Names,
- rngtxt,lsttwotxt,lsttxt,
- refcmd,
- xr,
- vref=false}%
-% \end{macrocode}
-% \bNP[2.0]\noindent Set key-values according to user definitions.\eNP
-% \begin{macrocode}
- \RS@setkeys{RS@#1}{#2}%
-% \end{macrocode}
-% \bNP[2.0]\noindent Build the reference commands.\eNP
-% \begin{macrocode}
- \RS@buildref{#1}%
- }
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\RS@clearref}
-% Clear a reference template for redefinition. It check
-% if the template already exists and clear it if it does.
-%
-% \begin{macrocode}
-\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}%
- }%
- }
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\RS@buildref}
-% Build the reference commands. See \tabref{refopt} for the list of
-% commands. The \cmd{\RS@buildref}\marg{key} build commands to
-% call \cmd{\RS@cmd}\marg{cmd}\marg{key}, for example:
-% \begin{Ipara}
-% \cmeta{key}|ref| \quad$\rightarrow$\quad
-% |{\RScapnamefalse\RS@cmd{ref}|\marg{key}|}|
-% \end{Ipara}
-% \changes{v0.2}{2003/07/30}{Remove robust def of \argcmd{{\rtp}}{label}}
-% \begin{macrocode}
-\newcommand*{\RS@buildref}[1]{%
- \RS@firstcap#1\@nil
- \RS@testednamedef{#1key}{\RS@nameuse{RS@#1@key}}
- \RS@testednamedef{#1label}##1{\label{\RS@nameuse{RS@#1@key}##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}}
- }
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\RS@cmd}
-% \begin{macro}{\RS@@cmd}
-% The command \cmd{\RS@cmd}\marg{cmd}\marg{key} calls the final
-% reference formatting commands.
-% It checks for the starred form and set the conditionals
-% |\ifRSstar| and |\ifRSnameon| accordingly.
-% It also extracts the optional key-value list.
-% \begin{Itabb}
-% \hspace*{4.5cm}\=\kill
-% \cmd{\RS@cmd}|{ref}|\marg{key} \>$\rightarrow$\quad
-% |\RS@ref|\marg{key}\okeylst\\
-% \cmd{\RS@cmd}|{rangeref}|\marg{key} \>$\rightarrow$\quad
-% |\RS@rangeref|\marg{key}\okeylst\\
-% \cmd{\RS@cmd}|{pageref}|\marg{key} \>$\rightarrow$\quad
-% |\RS@pageref|\marg{key}\okeylst
-% \end{Itabb}
-% \begin{macrocode}
-\newcommand*{\RS@cmd}[2]{%
- \@ifstar{\RSstartrue\RSnameonfalse\RS@@cmd{#1}{#2}}%
- {\RSstarfalse\RSnameontrue\RS@@cmd{#1}{#2}}}
-% \end{macrocode}
-% \begin{macrocode}
-\newcommand*{\RS@@cmd}[2]{%
- \@ifnextchar[%
- {\RS@nameuse{RS@#1}{#2}}%
- {\RS@nameuse{RS@#1}{#2}[]}}
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-%
-% \subsection{Reference formatting commands}
-%
-% \begin{macro}{\RS@ref}
-% \changes{v0.5}{2010/11/02}{Add \cmd{\@safe@activestrue} to avoid active chars is ref list}
-% \begin{macro}{\RS@@ref}
-% \begin{macro}{\RS@@@ref}
-% \changes{v0.4}{2010/10/21}{Add \cmd{\ifRSlsttwo} test for list containing only two parameter}
-% The command \cmd{\RS@ref}\marg{key}\okeylst\marg{label\_lst}
-% typeset the references to the comma-separated reference
-% label list according to the configuration for \meta{key}.
-%
-% First of all, remove all spaces for the reference label list.
-% \begin{macrocode}
-\def\RS@ref#1[#2]#3{%
- \begingroup
- \RS@setkeys{RS@#1}{#2}%
- \@safe@activestrue%
- \edef\RS@tmpa{\zap@space#3 \@empty}%
- \@safe@activesfalse%
- \edef\RS@tmpa{\noexpand\RS@@ref{#1} \RS@tmpa,\relax\noexpand\@eolst}%
- \RS@tmpa%
- \endgroup}
-% \end{macrocode}
-% \end{macro}
-% Check if there is a single or multiple references in the
-% reference label list. If a single reference label then use the
-% form set by the \opt{s} key-value. If multiple reference labels
-% the use the plural form of the name prefix.\footnote{
-% The list of reference commands came from the \pkg{typedref} package.}
-%
-% \begin{macrocode}
-\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%
- \RSlsttwotrue%
- \RS@@@ref{#1} #3\@eolst%
- \fi}
-% \end{macrocode}
-% \end{macro}
-% For more than one reference in the reference list, typeset the
-% rest of the references.
-% \begin{macrocode}
-\def\RS@@@ref#1 #2,#3\@eolst{%
- \ifx\relax#3\relax
- \ifRSlsttwo
- \RS@nameuse{RS@#1@lsttwotxt}%
- \else
- \RS@nameuse{RS@#1@lsttxt}%
- \fi
- \RS@makeref{#1}{#2}%
- \RS@makevpageref{#1}{#2}%
- \else
- \RSlsttwofalse%
- \unskip,\space%
- \RS@makeref{#1}{#2}%
- \RS@makevpageref{#1}{#2}%
- \RS@@@ref{#1} #3\@eolst%
- \fi}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\RS@rangeref}
-% The command \cmd{\RS@rangeref}\marg{key}\okeylst\marg{lbl1}\marg{lbl2}
-% typeset the references as a range.
-% \begin{macrocode}
-\def\RS@rangeref#1[#2]#3#4{%
- \begingroup
- \RS@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}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\RS@pageref}
-% The command \cmd{\RS@pageref}\marg{key}\okeylst\marg{lbl} type
-% the page where \marg{lbl} was defined.
-% \begin{macrocode}
-\def\RS@pageref#1[#2]#3{%
- \begingroup%
- \RS@setkeys{RS@#1}{#2}%
- \RS@ifvref{#1}%
- {\mbox{}\vpageref*{\RS@lbl{#1}{#3}}}%
- {\reftextfaraway{\RS@lbl{#1}{#3}}}%
- {\pageref{\RS@lbl{#1}{#3}}}%
- \endgroup}
-% \end{macrocode}
-% \end{macro}
-%
-% \changes{v0.2}{2003/07/30}{Remove redundant \cmd{\RS@label}}
-%
-% \begin{macrocode}
-\newcommand*{\RS@true}{true}
-\newcommand*{\RS@false}{false}
-\newcommand*{\RS@far}{far}
-% \end{macrocode}
-%
-% \begin{macro}{\RS@ifvref}
-% The command \cmd{\RS@ifvref}\marg{key}\marg{true}\marg{faraway}\marg{false}
-% executes the contents of \meta{true} if the \opt{vref} option for
-% the \meta{key} reference type is true and \meta{false} otherwise.
-% \begin{macrocode}
-\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}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\RS@makename}
-% The command \cmd{\RS@makename}\marg{key} build the prefix
-% to the reference commands.
-% \begin{macrocode}
-\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
- }
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\RS@lbl}
-% This command builds the full label string for the \cmd{\ref}
-% command.
-% \begin{Ipara}
-% \cmd{\RS@lbl}\marg{key}\marg{label} \quad$\rightarrow$\quad
-% |{|\meta{xr_key}\meta{key}\meta{label}|}|
-% \end{Ipara}
-% \begin{macrocode}
-\newcommand*{\RS@lbl}[2]{%
- \RS@nameuse{RS@#1@xr}\RS@nameuse{RS@#1@key}#2%
- }
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\RS@makeref}
-% The command \cmd{\RS@makeref}\marg{key}\marg{label} formats
-% the \cmd{\ref} output
-% \begin{Ipara}
-% \cmd{\RS@makeref}\marg{key}\marg{label} \quad$\rightarrow$\quad
-% \cmeta{rcmd}|{\ref{|\meta{xr_key}\meta{key}\meta{label}|}}|
-% \end{Ipara}
-% \begin{macrocode}
-\newcommand{\RS@makeref}[2]{%
- \RS@nameuse{RS@#1@rcmd}{\RS@lbl{#1}{#2}}%
- }
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\RS@makevpageref}
-% The command \cmd{\RS@makevpageref}\marg{key}\marg{label} adds the
-% \pkg{varioref} page reference if the \opt{vref} option is true.
-% \begin{macrocode}
-\newcommand{\RS@makevpageref}[2]{%
- \RS@ifvref{#1}%
- {\vpageref[\unskip]{\RS@lbl{#1}{#2}}}%
- { \reftextfaraway{\RS@lbl{#1}{#2}}}%
- {}%
- }
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\RS@makevpagerefrange}
-% The command \cmd{\RS@makevpagerefrange}\marg{key}\marg{lbl1}\marg{lbl1}
-% adds the \pkg{varioref} page range reference if the \opt{vref}
-% option is true.
-% \begin{macrocode}
-\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}}}%
- {}%
- }
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \subsection{\pkg{varioref} command predefinitions}
-%
-% \begin{macrocode}
-\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}}
- }
-% \end{macrocode}
-%
-%
-% \subsection{Support for language option inclusions in config file}
-%
-% \begin{macro}{\RSaddto}
-% \changes{v0.2}{2003/07/30}{Rename \cmd{\RS@addto} to \cmd{\RSaddto}}
-% Command from the \pkg{varioref} package is used to add
-% language definitions to the |\extras|\meta{language} token
-% for \pkg{babel}.
-% \begin{macrocode}
-\def\RSaddto#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}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\DeclareLangOpt}
-% \changes{v0.5}{2010/11/02}{Add \cmd{\extras}\meta{language} to beginning of document.}
-% Command to declare a language option and add
-% language definitions to the |\extras|\meta{language} token
-% for \pkg{babel}.
-% \begin{macrocode}
-\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}{%
- \AtBeginDocument{\expandafter\RSaddto\csname extras#1\endcsname #2}}}%
- }
-% \end{macrocode}
-% \end{macro}
-%
-%
-%
-% \subsection{Configuration files}
-%
-% \begin{macro}{\RS@cfgfile,\RS@reffile}
-% \changes{v0.4}{2010/10/21}{Ad alternative definition file \cmd{refstyle.def}}
-% Define the config file and alternate definition file names.
-% \begin{macrocode}
-\newcommand*{\RS@cfgfile}{refstyle.cfg}
-\newcommand*{\RS@reffile}{refstyle.def}
-% \end{macrocode}
-% \end{macro}
-%
-% We need to peek into the options list before the
-% options are processed to find out if the config
-% file is to be loaded or not. The config file can
-% contain options and must be loaded before
-% \cmd{\ProcessOptions}. Make \opt{noconfig} not used
-% afterwards.
-%
-% We first test for a local config file \file{refstyle.def}
-% and then for the global config file \file{refstyle.cfg}.
-% \begin{macrocode}
-\@ifpackagewith{\@currname}{noconfig}%
- {\PackageInfo{\RS@pkgname}{No config file loaded}}%
- {\InputIfFileExists{\RS@reffile}%
- {\PackageInfo{\RS@pkgname}{Local config file \RS@reffile\space used}}
- {\InputIfFileExists{\RS@cfgfile}%
- {\PackageInfo{\RS@pkgname}{Config file \RS@cfgfile\space used}}%
- {\PackageInfo{\RS@pkgname}{No config file found}}}}
-% \end{macrocode}
-%
-% \begin{macrocode}
-\DeclareOption{noconfig}{\OptionNotUsed}%
-% \end{macrocode}
-%
-% Process the options, including options in config file.
-% \begin{macrocode}
-\ProcessOptions*\relax
-% \end{macrocode}
-%
-% The end of this package.
-% \begin{macrocode}
-%</pkg>
-% \end{macrocode}
-%
-% \Finale
-\endinput
+% \iffalse +% +% refstyle.dtx +% Copyright (C) 2002--2024 Danie Els +% +% ------------------------------------------------------------------- +% The refstyle package +% for the formatting of references +% ------------------------------------------------------------------- +% This work may be distributed and/or modified under the conditions +% of the LaTeX Project Public License, either version 1.3c 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.3c or later is part of all distributions of LaTeX +% version 2008/12/01 or later. +% +% This work has the LPPL maintenance status 'maintained'. +% +% This Current Maintainer of this work is Danie Els (dnjels@gmail.com) +% +% This package consists of the files: refstyle.dtx +% refconfig.dtx +% refstyle.ins +% and the derived files: refstyle.sty +% refstyle.cfg +% ------------------------------------------------------------------- +% +%<*pkg> +\newcommand*{\RefstyleFileDate}{2024/01/31} +\newcommand*{\RefstyleFileVersion}{v0.6} +%</pkg> +% +% +%<*driver> +\documentclass[a4paper]{ltxdoc} +\let\RefstyleFileDate\relax +\let\RefstyleFileVersion\relax +\usepackage{amsmath} +\usepackage{amsfonts} + \DeclareMathSymbol{\square} {\mathord}{AMSa}{"03} + \DeclareMathSymbol{\blacksquare}{\mathord}{AMSa}{"04} +\usepackage{calc} +\usepackage{rotating} +\usepackage[rounded]{syntax} +\usepackage{varioref} +\usepackage{refstyle} +\usepackage{color} + \definecolor{hrefcol}{rgb}{0.00,0.00,1.00} +\usepackage[pdfpagelabels]{hyperref} +\hypersetup{breaklinks=true, + linktocpage, + pdfstartview=FitH, + colorlinks = true, + linkcolor = hrefcol, + urlcolor = hrefcol, + menucolor = hrefcol, + filecolor = hrefcol, + citecolor = hrefcol, + linkbordercolor = {0.8 0.8 0.8}, + urlbordercolor = {0.8 0.8 0.8}, + menubordercolor = {0.8 0.8 0.8}, + filebordercolor = {0.8 0.8 0.8}, + runbordercolor = {0.8 0.8 0.8}, + citebordercolor = {0.8 0.8 0.8}, + pdftitle={refstyle}, + pdfauthor={Danie Els}} + +%---- macrocode env changes ------------------------------- + +\setlength{\MacroIndent}{1.5em} + +%---- Scratches ------------------------------------------- + +\newlength{\tdima} +\newsavebox{\tboxa} + +%---- Spacing --------------------------------------------- + +\newlength{\myskip} +\setlength{\myskip}{\topsep} + \addtolength{\myskip}{\parskip} + \addtolength{\myskip}{\partopsep} +\newcommand*{\blankline}{\par\addvspace{\myskip}} +\newlength{\mytab} +\setlength{\mytab}{2\parindent} +\newcommand{\tab}{\hspace*{\mytab}} + +%---- Indented environments ------------------------------- + +\newenvironment{IndentPara}[1][1] + {\list{}{\setlength{\leftmargin}{#1\mytab}% + \setlength{\labelwidth}{0pt}% + \setlength{\labelsep}{0pt}% + \setlength{\itemindent}{\parindent}% + \setlength{\listparindent}{\parindent}% + }\item[]}% + {\endlist} +\newenvironment{IndentParaX}[1][1] + {\list{}{\setlength{\leftmargin}{#1\mytab}% + \setlength{\topsep}{0pt}% + \setlength{\partopsep}{0pt}% + \setlength{\labelwidth}{0pt}% + \setlength{\labelsep}{0pt}% + \setlength{\itemindent}{\parindent}% + \setlength{\listparindent}{\parindent}% + }\item[]}% + {\endlist} +\newcommand\bNP{\begin{IndentParaX}} +\newcommand\eNP{\end{IndentParaX}} +\newenvironment{Ipara}[1][\small]% + {\begin{IndentPara}\noindent#1\ignorespaces}% + {\end{IndentPara}} +\newenvironment{Itabb}[1][\small]% + {\begin{IndentPara}#1\ignorespaces\begin{tabbing}\ignorespaces}% + {\end{tabbing}\end{IndentPara}} + +%---- Ruled & colored minipage ---------------------------- + +\definecolor{shadecolor}{gray}{0.9} + +\newenvironment{fminipage}[1][\linewidth] + {\setlength{\tdima}{#1-2\fboxsep-2\fboxrule}% + \begin{lrbox}{\tboxa}\begin{minipage}{\tdima}}% + {\end{minipage}\end{lrbox}\noindent\fbox{\usebox{\tboxa}}} +\newenvironment{cminipage}[1][\linewidth] + {\setlength{\tdima}{#1-2\fboxsep-2\fboxrule}% + \begin{lrbox}{\tboxa}\begin{minipage}{\tdima}}% + {\end{minipage}\end{lrbox}% + \noindent\colorbox{shadecolor}{\usebox{\tboxa}}} + +%---- Additional documenting commands --------------------- + +\def\lcbrack{\symbol{`\{}} +\def\rcbrack{\symbol{`\}}} +\makeatletter +\def\meta@font@select{\normalfont\slshape} +\makeatother +\DeclareRobustCommand{\cmeta}[1]{%<- \<xxx> + \texttt{\bslash}\meta{#1}} +\DeclareRobustCommand{\cmarg}[1]{%<- {\<xxx>} + \texttt{\lcbrack}\cmeta{#1}\texttt{\rcbrack}} +\DeclareRobustCommand{\coarg}[1]{%<- [\<xxx>] + \texttt{[}\cmeta{#1}\texttt{]}} +\DeclareRobustCommand{\argcmd}[2]{%<- \<xxx>yyy + \cmeta{#1}\texttt{#2}} +\newcommand{\rmeta}[3][]{% + \texttt{\lcbrack#1}\meta{#2}\texttt{#3\rcbrack}} +\newcommand{\refmeta}[3][]{\cmd{\brref}\rmeta[#1]{#2}{#3}} + +\newcommand*{\file}[1]{\texttt{#1}} +\newcommand*{\pkg}[1]{\textsf{#1}} +\newcommand*{\env}[1]{\texttt{#1}} +\newcommand*{\opt}[1]{\texorpdfstring{\normalfont\texttt{\slshape#1}}{#1}} +\newcommand*{\RS}{\pkg{refstyle}} +\newcommand*{\RScfg}{\file{refstyle.cfg}} +\newcommand*{\rtp}{type} +\newcommand*{\Rtp}{Type} +\newcommand*{\okeylst}{\oarg{key\_lst}} +\newcommand*{\mkeylst}{\marg{key\_lst}} + +%---- Special eq tag command ------------------------------ + +\def\spestag#1{\stepcounter{equation}% + \gdef\tagextra##1{% + \makebox[0pt][l]{\small\quad% + \cmd{\eqlabel}\texttt{\lcbrack##1\rcbrack}}% + \gdef\tagextra####1{}}% + \tag{\theequation\tagextra{#1}}\eqlabel{#1}} + +%---- other stuff ----------------------------------------- + +\newcommand*{\ArTab}{\>\quad$\rightarrow$\quad} + +%---------------------------------------------------------- + +\EnableCrossrefs +\CodelineIndex +\RecordChanges +\setlength\hfuzz{15pt} +\hbadness=7000 +\begin{document} + \DocInput{refstyle.dtx} +\end{document} + +%</driver> +% \fi +% +% \CheckSum{552} +% +% \CharacterTable +% {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 +% 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 +% Digits \0\1\2\3\4\5\6\7\8\9 +% Exclamation \! Double quote \" Hash (number) \# +% Dollar \$ Percent \% Ampersand \& +% Acute accent \' Left paren \( Right paren \) +% Asterisk \* Plus \+ Comma \, +% Minus \- Point \. Solidus \/ +% Colon \: Semicolon \; Less than \< +% Equals \= Greater than \> Question mark \? +% Commercial at \@ Left bracket \[ Backslash \\ +% Right bracket \] Circumflex \^ Underscore \_ +% Grave accent \` Left brace \{ Vertical bar \| +% Right brace \} Tilde \~} +% +% \changes{v0.0}{2002/12/01}{Initial version} +% \changes{v0.1}{2003/04/01}{First stable version} +% \changes{v0.2}{2003/07/30}{First updated version} +% \changes{v0.3}{2006/09/09}{Documentation update} +% \changes{v0.4}{2010/10/21}{Documentation update} +% \changes{v0.4}{2010/10/21}{Add \texttt{nokeyprefix} option} +% \changes{v0.5}{2010/11/02}{Documentation update} +% +% \DoNotIndex{ +% \@backslashchar, \@carcube, \@ehc, \@empty, \@firstoftwo, +% \@ifnextchar, \@ifpackageloaded, \@ifstar, \@ifundefined, \@nil, +% \@qend, \@qrelax, \@secondoftwo, \@tempa, \@undefined, +% \AtEndOfPackage, \begingroup, \csname, \CurrentOption, +% \DeclareOption, \def, \edef, \else, \endcsname, \endgroup, +% \expandafter, \fi, \gdef, \iffalse, \ifx, \InputIfFileExists, +% \let, \long, \lowercase, \MakeLowercase, \mbox, \MessageBreak, +% \NeedsTeXFormat, \newcommand, \newif, \noexpand, \PackageError, \PackageInfo, +% \PassOptionsToPackage, \RS@pkgname, \ProcessOptions, \protect, +% \providecommand, \ProvidesPackage, \relax, \renewcommand, +% \RequirePackage, \reserved@a, \reserved@b, \RS@tmpa, +% \RS@tmpb, \S, \RS@setkeys, \space, \string, \textsc, \textup, +% \unrestored@protected@xdef, \unskip, \uppercase, +% \zap@space} +% +%^^A==== Titling ========================================== +% \GetFileInfo{refstyle.sty} +% \title{\vspace*{-1cm} +% The \RS\ package\thanks{This file has version number +% \fileversion, last revised +% \filedate.}} +% \author{Danie Els\\[1ex] +% \normalsize e-mail: \texttt{\href{mailto:dnjels@gmail.com}% +% {dnjels@gmail.com}}} +% \date{\filedate} +% \maketitle +% \begin{center} +% \textbf{Overview of the \RS\ package} +% \end{center} +% \noindent +% When writing complex documents, often a large number of commands +% for different type of references are defined, for example: +% \begin{Ipara} +% |\newcommand*{\eqref}[1]{eqn~(\ref{#1})}|\\ +% |\newcommand*{\Eqref}[1]{Equation~(\ref{#1})}| +% \end{Ipara} +% The \RS\ package was developed to automate this process. The +% package provides a user interface to define sets of reference +% and label commands for each referable object such as an equation +% or a table, etc. When you declare, for example, a set of +% reference commands to an equation: +% \begin{Ipara} +% \cmd{\newref}|{eq}|\mkeylst\ +% \end{Ipara} +% \noindent +% a series of commands of the format \cmd{\eq...} and \cmd{\Eq...} +% are produced. The configuration options are set with a list of +% key-values. Prefixes, inserts and other options for all the +% different perturbations such as capitalized first letters, +% singular and plural from, etc.\ can be defined. The +% configuration can be changed temporarily with an optional list +% of key-values when the commands are used. A direct interface to +% the \pkg{varioref} package is also provided. +% This enables compact reference formats: +% \begin{Itabb} +% \hspace{14em}\=\kill +% |\eqref{e1} ...| \ArTab\eqref{e1} ...\\ +% |\Eqref[vref]{e1} ...| \ArTab\Eqref[vref]{e1} ...\\ +% |\eqref[s]{e1} and ...| \ArTab\eqref[s]{e1} and ...\\ +% |\eqref[name=eq.~]{e1} ...| \ArTab\eqref[name=eq.~]{e1} ... +% \end{Itabb} +% A range or a list of references can also be referred to in a +% consistent way. +% \begin{Itabb} +% \hspace{14em}\=\kill +% |\eqref{e1,e2,e3} ...| \ArTab\eqref{e1,e2,e3} ...\\ +% |\eqrangeref[vref]{e1}{e3} ...| \ArTab\eqrangeref[vref]{e1}{e3} ... +% \end{Itabb} +% +% Templates for the different reference types and different +% languages can be loaded with a configuring file. +% +% The package is aimed at large projects, enabling a consistent +% way of producing references throughout a project. Enough +% flexibility is provided to make local changes to a single +% reference. For large projects such as a series of books or a +% multi volume thesis, written as freestanding documents, a +% facility is provided to interface to the \pkg{xr} package for +% external document references. +% +% \medskip +% +% \begin{center} +% \begin{fminipage}[.6\textwidth] +% See also \pkg{refconfig.pdf} for setup and examples. +% \end{fminipage} +% \end{center} + +% \clearpage +% +% \tableofcontents +% \clearpage +% +% +% \section{Loading the \RS\ Package} +% +% \subsection{Document preamble} +% +% The \RS\ package is loaded in the preamble of the document: +% \begin{enumerate} +% \item[(a)] With a config file with \pkg{babel} language support +% \begin{Ipara} +% |\usepackage{varioref}[2001/09/04]%|~ +% ${\leftarrow}$ To use the \opt{vref} option\\ +% |\usepackage{refstyle}| +% \end{Ipara} +% When the package is loaded, it first searchers for a local user defined +% configuration file \file{refstyle.def}. If it is not available it +% looks for the global default config file \RScfg\ provided with this package. +% These configuration files are loaded before the package options are precess. +% It can therefore contain option commands using globally defined language +% options and can interface to \pkg{babel} for language changes. The macro +% \begin{Ipara} +% |\DeclareLangOpt{|\meta{language}|}{|\meta{definitions}|}| +% \end{Ipara} +% is provided to declare the package option \meta{language} and add +% \meta{definitions} to the |\extras|\meta{language} token for \pkg{babel}. +% It can only be used inside \RScfg\ or \file{refstyle.def}. +% +% \item[(b)] +% Or with an existing configuration with language support and addition +% of your own extensions +% \begin{Ipara} +% |\documentclass[norwegian]{article}|\\ +% |\usepackage{babel} |\\ +% |\usepackage{refstyle} |\\ +% |\RSaddto{\RSnorwegian}{% |\\ +% | \def\RSthmtxt{teorem~}% |\\ +% | \def\RSthmstxt{teorem~}% |\\ +% | \def\RSThmtxt{Teorem~}% |\\ +% | \def\RSThmstxt{Teorem~}} |\\ +% |\newref{thm}{ |\\ +% | name = \RSthmtxt, |\\ +% | names = \RSthmstxt, |\\ +% | Name = \RSThmtxt, |\\ +% | Names = \RSThmstxt, |\\ +% | rngtxt = \RSrngtxt, |\\ +% | lsttxt = \RSlsttxt, |\\ +% | lsttwotxt = \RSlsttwotxt} | +% \end{Ipara} +% +% \item[(c)] +% Or without any configuration file, but by declaring your own +% reference commands in the preamble. +% \begin{Itabb} +% \cmd{\usepackage}|[noconfig]{refstyle}|\\ +% \qquad\cmd{\newref}\marg{reftype$_{\,1}$}\mkeylst \\ +% \qquad\cmd{\newref}\marg{reftype$_{\,2}$}\mkeylst\\ +% \tab$\vdots$ +% \end{Itabb} +% +% \item[(d)] +% Or with your own configuration file (without babel language support) for a specific project: +% \begin{Itabb} +% |\usepackage[noconfig]{refstyle}|\\ +% |\input{thisproject.ref}| +% \end{Itabb} +% +% \end{enumerate} +% +% \subsection{Package options} +% +% \begin{description} +% \item[\opt{noconfig}] Neither of the user supplied \file{refstyle.def} config +% file or \file{refstyle.cfg} the config file supplied with this package +% are loaded. The user must declare his or her own definitions and templates. +% Note that these definitions are not passed on to \pkg{babel}'s language +% changing mechanisms. +% +% \item[\opt{nokeyprefix}] Custom labeling commands \argcmd{\rtp}{label} are generated +% by \pkg{refstyle} for every \meta{type} definition. It defaults to +% \begin{Itabb} +% \hspace{5em}\=hspace{5em}\=\kill +% \argcmd{\rtp}{label}|{abc}| +% \>\>~ $\rightarrow$ \cmd{\label}\rmeta{type\,:\,}{abc} +% \end{Itabb} +% With the \opt{nokeyprefix} option, the prefix is turned of and the +% labeling commands defaults to +% \begin{Itabb} +% \hspace{5em}\=hspace{5em}\=\kill +% \argcmd{\rtp}{label}|{abc}| +% \>\>~ $\rightarrow$ \cmd{\label}|{abc}| +% \end{Itabb} +% This is useful for old documents with existing labeling commands or +% where the user prefer not to use the \argcmd{\rtp}{label} commands. +% +% +% \end{description} +% +% +% +% +% \subsection{Companion packages} +% +% The \RS\ packages is intended for large projects. It is therefore +% important that it works together with, or has direct interfaces +% to the following packages: +% \begin{description} +% \item[\pkg{varioref}:\footnotemark] +% \footnotetext{\pkg{varioref} v1.3c, 2001/09/04 or later, +% because the starred versions of the commands +% are used.} +% Produce sophisticated page and page range references. +% +% \item[\pkg{hyperref}:\footnotemark] +% \footnotetext{\pkg{hyperref} v6.72r, 2002/05/27 or later, +% where a bug for interference with +% \pkg{varioref} was fixed.} +% To establish hyper links between the references and the +% labels. +% +% \item[\pkg{xr, xr-hyper}:] +% To establish references to external documents. +% +% \item[\pkg{showkeys}:] +% To show all the labels and references. This is very useful +% to find labels in large documents. +% \end{description} +% +% \clearpage +% \section{User Interface} +% +% The \RS\ package has one configuring command, \DescribeMacro{\newref} +% \cmd{\newref}, that internally creates a series of label and +% reference commands: +% \blankline +% +% \begin{cminipage}[\linewidth] +% \newcommand*{\crsi}{\smash{\rule[0pt]{.4pt}{1.25em}\rule[.5ex]{1.5em}{.4pt}}}^^A +% \newcommand*{\crsl}{\smash{\rule[.5ex]{.4pt}{1.5em}\rule[.5ex]{1.5em}{.4pt}}}^^A +% \begin{Itabb} +% \hspace*{2em}\=\hspace{2em}\=\hspace{10em}\=\kill +% \cmd{\newref}\marg{\rtp}\mkeylst\tab\mbox{}\\[.75ex] +% \>\crsi \>\argcmd{{\rtp}}{key} \> Reference argument prefix \\[.75ex] +% \>\crsl \>\argcmd{{\rtp}}{label} \> Custom label \\[.75ex] +% \>\crsl \>\argcmd{{\rtp}}{ref} \> In text reference \\[.75ex] +% \>\crsl \>\argcmd{{\Rtp}}{ref} \> Start of sentence reference \\[.75ex] +% \>\crsl \>\argcmd{{\rtp}}{rangeref} \> In text range reference \\[.75ex] +% \>\crsl \>\argcmd{{\Rtp}}{rangeref} \> Start of sentence range reference\quad\mbox{}\\[.75ex] +% \>\crsl \>\argcmd{{\rtp}}{pageref} \> Page reference +% \end{Itabb} +% \end{cminipage} +% \blankline +% +% \noindent +% All the \cmeta{\rtp}... commands, excluding \argcmd{{\rtp}}{key} +% and \argcmd{{\rtp}}{label} are robust. +% All the options for the referencing commands are set with a +% key-value list. \Tabref[vref=far]{refopt} gives a full list of all the +% key-values and defaults. +% +% The \RS\ package do not redefine any internal \LaTeX\ commands and +% depends only on the \cmd{\label}, \cmd{\ref}, \cmd{\pageref} and +% the \pkg{varioref} commands. +% The internally defined commands do not overwrite any +% existing command with the same name, and an error results if a command +% already exists. The exception is commands declared with a previous +% \cmd{\newref} call, can be redefined by calling \cmd{\newref} again +% with a new set of parameter. +% If the \pkg{amsmath} package is loaded, and you define +% \cmd{\newref}|{eq}| for references to equations, you need to +% undefine \cmd{\eqref} before issuing \cmd{\newref} by +% \begin{Ipara} +% \cmd{\let}\cmd{\eqref}|=|\cmd{\relax} +% \end{Ipara} +% +% +% \section{Command Descriptions} +% +% The structure of the label and reference commands is given by the +% syntax diagrams that follows. Examples are included for references +% to equations, defined according to the template in +% \RScfg\ with the +% \cmd{\newref}|{eq}|\mkeylst. See also \secref{keyvals} for +% explanations of the key-values. +% +% \subsection{The reference key} +% +% \begin{cminipage}[\linewidth] +% \begin{syntdiag} +% \tok{\argcmd{\rtp}{key}} +% \end{syntdiag} +% \end{cminipage} +% \blankline +% \noindent +% The \argcmd{\rtp}{key} command returns the prefix added to the +% argument of the label and the reference commands, for example: +% +% \begin{Itabb} +% \hspace{10em}\=hspace{5em}\=\kill +% \cmd{\newref}\marg{\rtp}|{}| +% \>\>\argcmd{\rtp}{key} $\rightarrow$ \meta{type\,:\,}\\ +% \cmd{\newref}\marg{\rtp}|{key=xxx-}| +% \>\>\argcmd{\rtp}{key} $\rightarrow$ |xxx-| +% \end{Itabb} +% +% \noindent +% The \argcmd{\rtp}{key} command is not a general command, but was +% provided only as a link to the standard \LaTeX{} \cmd{\ref} and +% \cmd{\pageref} commands: +% +% \begin{Itabb} +% \hspace{10em}\=hspace{5em}\=\kill +% \cmd{\label}|{|\argcmd{\rtp}{key}| abc}| +% \>\>~ $\rightarrow$ \cmd{\label}\rmeta{type\,:\,}{abc}\\ +% \cmd{\ref}|{|\argcmd{\rtp}{key}| abc}| +% \>\>~ $\rightarrow$ \cmd{\ref}\rmeta{type\,:\,}{abc} +% \end{Itabb} +% Note if the the \opt{nokeyprefix} option is active then the \argcmd{\rtp}{key} +% is empty. +% +% \blankline +% \noindent +% \textbf{\slshape Examples:} equations +% with \cmd{\newref}|{eq}|\mkeylst: +% +% \begin{Itabb} +% \hspace*{18em}\=\kill +% |\eqkey| \> \eqkey \\ +% |in eq.~\ref{\eqkey e1} ...| \>in eq.~\ref{\eqkey e1} ... \\ +% |on page \pageref{\eqkey e1} ...|\>on page \pageref{\eqkey e1} ... \\ +% |\vpageref*{\eqkey e1} ... | \>\vpageref*{\eqkey e1} ... +% \end{Itabb} +% +% \subsection{Reference label} +% +% \begin{cminipage}[\linewidth] +% \begin{syntdiag} +% \tok{\argcmd{\rtp}{label}"{"<lbl>"}"} +% \end{syntdiag} +% \end{cminipage} +% \blankline +% +% \noindent +% The command \argcmd{\rtp}{label} prefix the reference +% string in the \cmd{\label} with the string \meta{type\,:\,}, or its +% redefinition with the \opt{key} option. +% +% \begin{Itabb} +% \hspace{10em}\=hspace{5em}\=\kill +% \argcmd{\rtp}{label}|{abc}| +% \>\>~ $\rightarrow$ \cmd{\label}\rmeta{type\,:\,}{abc} +% \end{Itabb} +% \blankline +% +% \noindent +% \textbf{\slshape Examples:} +% +% \begingroup +% \begin{Ipara} +% Let $z = x+\mathrm{i} y$ and $\alpha = \beta + \mathrm{i} +% \gamma$, with $\mathrm{i}^2 = -1$, then +% \begin{align} +% &\mathrm{e}^z = \mathrm{e}^x \left(\cos y + \mathrm{i} \sin y \right) +% \spestag{e1}\\ +% &z^\alpha = \mathrm{e}^{\alpha \ln z} +% \spestag{e2}\\ +% \intertext{\Eqref{e1,e2} lead to the following interesting results:} +% &\mathrm{e}^{\mathrm{i} \pi} + 1 = 0 \spestag{e3}\\ +% &\mathrm{i}^\mathrm{i} = \mathrm{e}^{-\pi/2}\spestag{e4} +% \end{align} +% \end{Ipara} +% \endgroup +% +% +% \subsection{Reference commands} +% +% \begin{cminipage}[1.05\textwidth] +% \begin{syntdiag} +% \tok{\argcmd{\rtp}{ref}} +% \begin{stack}\\ \tok{$\ast$} \end{stack} +% \begin{stack}\\ \tok{\okeylst} \end{stack} +% "{" +% \begin{rep} \tok{<lbl>} \\ ~,~ \end{rep} +% "}" +% \end{syntdiag} +% \end{cminipage} +% \smallskip +% +% \begin{cminipage}[1.05\textwidth] +% \begin{syntdiag} +% \tok{\argcmd{\Rtp}{ref}} +% \begin{stack}\\ \tok{$\ast$} \end{stack} +% \begin{stack}\\ \tok{\okeylst} \end{stack} +% \tok{"{"} +% \begin{rep} \tok{<lbl>} \\ ~,~ \end{rep} +% \tok{"}"} +% \end{syntdiag} +% \end{cminipage} +% \blankline +% \noindent +% The |*| optional form of the \argcmd{\rtp}{ref} and +% \argcmd{\Rtp}{ref} commands eliminates the +% name prefix. The |[s]| optional key-value argument is for the +% plural form of the name prefix. +% \blankline +% +% \noindent +% \textbf{\slshape Examples:} +% \begin{Itabb} +% \hspace*{21em}\=\kill +% |in \eqref{e1} ...| \>in \eqref{e1} ... \\ +% |in \eqref[s]{e1}--\eqref*{e4} ...|\>in \eqref[s]{e1}--\eqref*{e4} ...\\ +% |in \eqref[name=eq.~]{e2} ...| \>in \eqref[name=eq.~]{e2} ... +% \end{Itabb} +% \pagebreak[1] +% \noindent +% A list of references can be used: +% \begin{Itabb} +% \hspace*{21em}\=\kill +% |in \eqref{e1,e2} ...| \>in \eqref{e1,e2} ... \\ +% |in \eqref{e1,e2,e3} ...| \>in \eqref{e1,e2,e3} ... \\ +% |in \eqref[lsttxt={, and~}]{e1,e2,e3} ...| \>in \eqref[lsttxt={, and~}]{e1,e2,e3} ... +% \end{Itabb} +% \pagebreak[2] +% The reference to the page can be included with the \opt{vref} or \opt{vref=far} +% options that activates the \pkg{varioref} reference. +% \begin{Itabb} +% \hspace*{18em}\=\kill +% |in \eqref[vref]{e1} ...| \>in \eqref[vref]{e1} ...\\ +% |in \eqref[vref=far]{e1} ...| \>in \eqref[vref=far]{e1} ... +% \end{Itabb} +% The \argcmd{\Rtp}{ref} command is identical to the +% \argcmd{\rtp}{ref} command except that it uses the \opt{Name} and +% \opt{Names} key-value options. +% \begin{Itabb} +% \hspace*{18em}\=\kill +% |\Eqref{e1} is ...| \>\Eqref{e1} is ... \\ +% |\Eqref{e1,e2} are ...| \>\Eqref{e1,e2} are ... \\ +% |\Eqref[lsttxt={\ or~}]{e1,e2,e3}| \>\Eqref[lsttxt={\ or~}]{e1,e2,e3} +% \end{Itabb} +% \noindent +% References to external documents can be added with the \opt{xr} +% option. Please read the documentation of the \pkg{xr} package. +% +% \begin{Itabb} +% \hspace{10em}\=hspace{5em}\=\kill +% \cmd{\eqref}|[|\opt{xr}|=A-]{xyz}| \> \>$\rightarrow$~ +% |equation~\ref{A-eq:xyz}| +% \end{Itabb} +% +% +% \subsection{Range reference commands} +% +% \begin{cminipage}[\linewidth] +% \begin{syntdiag} +% \tok{\argcmd{\rtp}{rangeref}} +% \begin{stack}\\ \tok{$\ast$} \end{stack} +% \begin{stack}\\ \tok{\okeylst} \end{stack} +% \tok{"{"<lbl>$_1$"}{"<lbl>$_2$"}"} +% \end{syntdiag} +% \end{cminipage} +% \smallskip +% +% \begin{cminipage}[\linewidth] +% \begin{syntdiag} +% \tok{\argcmd{\Rtp}{rangeref}} +% \begin{stack}\\ \tok{$\ast$} \end{stack} +% \begin{stack}\\ \tok{\okeylst} \end{stack} +% \tok{"{"<lbl>$_1$"}{"<lbl>$_2$"}"} +% \end{syntdiag} +% \end{cminipage} +% \blankline +% +% \noindent +% The \argcmd{\rtp}{rangeref} and \argcmd{\Rtp}{rangeref} commands +% return a range of references and take two arguments. The |*| +% optional form again eliminates the name prefix. +% \blankline +% +% \noindent +% \textbf{\slshape Examples:} +% \begin{Itabb} +% \hspace*{19em}\=\kill +% |in \eqrangeref{e1}{e4} ...| \>in \eqrangeref{e1}{e4} ... \\ +% |... and \eqrangeref*{e1}{e4} ...| \>... and \eqrangeref*{e1}{e4} ... \\ +% |\Eqrangeref{e1}{e4} are ...| \>\Eqrangeref{e1}{e4} are ... \\ +% |\Eqrangeref[vref,rngtxt=--]{e1}{e4}| \>\Eqrangeref[rngtxt=--,vref]{e1}{e4} +% \end{Itabb} +% +% +% \subsection{Page reference command}\seclabel{PRefCmds} +% +% \begin{cminipage} +% \begin{syntdiag} +% \tok{\argcmd{\rtp}{pageref}} +% \begin{stack}\\ \tok{\okeylst} \end{stack} +% \tok{"{"<lbl>"}"} +% \end{syntdiag} +% \end{cminipage} +% \blankline +% \noindent +% The \argcmd{\rtp}{pageref} commands returns the page number of a +% reference. +% \blankline +% +% \noindent +% \textbf{\slshape Examples:} +% \begin{Itabb} +% \hspace*{18em}\=\kill +% |it is on page \eqpageref{e1} ...| \>it is on page \eqpageref{e1} ...\\ +% |it is \eqpageref[vref]{e1} ...| \>it is \eqpageref[vref]{e1} ... +% \end{Itabb} +% +% +%^^A================================================================= +% \begin{table} +% \newcommand*{\Q}{\ensuremath{\blacksquare}}^^A +% \newcommand*{\X}{\ensuremath{\square}}^^A +% \setlength{\fboxsep}{1em}^^A +% \centering +% \caption[The available options and key-value parameters]^^A +% {The available options and key-value parameters for +% the label and reference commands of the \RS\ package.} +% \tablabel{refopt} +% \blankline +% \begin{cminipage}[.9\textwidth] +% \renewcommand{\thempfootnote}{\fnsymbol{mpfootnote}} +% \renewcommand{\footnoterule}{} +% \begin{tabular*}{\linewidth}{@{\extracolsep{\fill}}llccccccc@{}} +% & & \multicolumn{7}{c}{Commands\footnote{^^A +% The commands are obtained by calling the configuring command +% \cmd{\newref} and setting the default key-values. The +% active key-values can be changed temporarily inside the +% commands.}} \\ +% \cline{3-9} +% Parameter & Default & +% \begin{turn}{90}\argcmd{{\rtp}}{key}~ \end{turn}& +% \begin{turn}{90}\argcmd{{\rtp}}{label}~ \end{turn}& +% \begin{turn}{90}\argcmd{{\rtp}}{ref}~ \end{turn}& +% \begin{turn}{90}\argcmd{{\Rtp}}{ref}~ \end{turn}& +% \begin{turn}{90}\argcmd{{\rtp}}{rangeref}~ \end{turn}& +% \begin{turn}{90}\argcmd{{\Rtp}}{rangeref}~ \end{turn}& +% \begin{turn}{90}\argcmd{{\rtp}}{pageref}~ \end{turn}\\ +% \hline +% \noalign{\smallskip} +% ~$\ast$ & &\X &\X &\Q &\Q &\Q &\Q &\X\\ +% \okeylst & &\X &\X &\Q &\Q &\Q &\Q &\Q\\[1ex] +% \opt{key} &|={|\meta{\rtp:}|},| &\X &\X &\Q &\Q &\Q &\Q &\Q\\ +% \opt{s} & |={true}|\footnote{^^A +% Options defaults to \opt{true} but is initialized +% as \opt{false}. The \argcmd{{\rtp}}{ref}\texttt{[s]}\marg{lbl} +% command results in the plural: \opt{names}. +% The same principle is also valid for the \opt{vref} +% option.\fnlabel{b}}|,| +% &\X &\X &\Q &\Q &\X &\X &\X\\ +% \opt{vref} &|={true}|\fnref*{b}|,| +% &\X &\X &\Q &\Q &\Q &\Q &\Q\\ +% \opt{xr} &|={},| &\X &\X &\Q &\Q &\Q &\Q &\Q\\[1ex] +% \opt{name} &|={},| &\X &\X &\Q &\X &\X &\X &\X\\ +% \opt{names}\footnote{^^A +% Option depends on the selection of the \texttt{s=true/false} +% optional key-value for singular or plural.\fnlabel{c}} +% &|={},| &\X &\X &\Q &\X &\Q &\X &\X\\ +% \opt{Name} &|={},| &\X &\X &\X &\Q &\X &\X &\X\\ +% \opt{Names}\fnref*{c} +% &|={},| &\X &\X &\X &\Q &\X &\Q &\X\\ +% \opt{lsttwotxt} &|={\space and~},| &\X &\X &\Q &\Q &\X &\X &\X\\ +% \opt{lsttxt} &|={\space and~},| &\X &\X &\Q &\Q &\X &\X &\X\\ +% \opt{rngtxt} &|={\space to~},| &\X &\X &\X &\X &\Q &\Q &\X\\[1ex] +% \opt{refcmd} &|=\ref{#1},| &\X &\X &\Q &\Q &\Q &\Q &\Q\\ +% +% \hline +% \noalign{\smallskip} +% +% \footnotesize \Q\ -- \makebox[0pt][l]{\footnotesize Available}\\ +% \footnotesize \X\ -- \makebox[0pt][l]{Not available} +% \end{tabular*} +% \end{cminipage} +% \end{table} +%^^A================================================================= +% +% +% +% \clearpage +% \section{\pkg{Keyval} Optional Arguments}\seclabel{keyvals} +% +% Al the options for the referencing commands are set with a key-value +% list. \Tabref[vref]{refopt} gives a full list of all the key-values and +% defaults. The options can also be changed locally with the +% \okeylst\ optional arguments. +% +% +% \subsection{Identifier: \opt{key}} +% +% The \opt{key} key-value is the prefix to the reference label +% of the \cmd{\ref} and \cmd{\pageref} commands. +% The default is \opt{key=}\meta{type\,:\,}. +% With the default \RScfg: +% +% \begin{Itabb} +% \tab\=\hspace{3.5cm}\=\hspace{2em}\=\kill +% \cmd{\newref}|{tab}{...}|\\[1ex] +% \>|\tablabel{abc}| +% \>~ $\rightarrow$ |\label{tab:abc}|\\ +% \>|\tabref{abc}| +% \>~ $\rightarrow$ |table~\ref{tab:abc}|\\[1ex] +% \cmd{\newref}|{tab}{key=xxx-,...}|\\[1ex] +% \>|\tablabel{abc}| +% \>~ $\rightarrow$ |\label{xxx-abc}|\\ +% \>|\tabref{abc}| +% \>~ $\rightarrow$ |table~\ref{xxx-abc}| +% \end{Itabb} +% For existing documents containing labels such as |\label{tab:xx}|, +% you can use the \opt{nokeyprefix} option which defines \opt{key}|={}|. The +% normal \cmd{\label} command can then be used and the reference +% commands defaults to +% \begin{Itabb} +% \tab\=\hspace{3.5cm}\=\hspace{2em}\=\kill +% \>\cmd{\label}|{tab:xx}| \\ +% \>|\tabref{tab:xx}| \>~ $\rightarrow$ |table~\ref{tab:xx}| +% \end{Itabb} +% +% +% \subsection{Plural form: \opt{s}} +% +% The \opt{s} conditional option (\texttt{true/false}) switches the +% singular/plural form of the reference on and off. The default is +% \opt{s}\texttt{=true}, but it is initialized to \texttt{false}. +% \begin{Itabb} +% \tab\=\hspace{3.5cm}\=\hspace{2em}\=\kill +% |\tabref{abc}| +% \>\>~ $\rightarrow$ |table~\ref{tab:abc}|\\ +% |\tabref[s]{abc}| +% \>\>~ $\rightarrow$ |tables~\ref{tab:abc}| +% \end{Itabb} +% +% +% \subsection{Extended reference: \opt{vref}} +% +% The \opt{vref} conditional option (\texttt{true/far/false}) switches the +% \pkg{varioref} page referencing on and off. The default is +% \opt{vref}\texttt{=true}, but it is initialized to \texttt{false}. +% +% \begin{Itabb} +% \tab\=\hspace{3.5cm}\=\hspace{2em}\=\kill +% |\tabref{abc}| +% \>\>~ $\rightarrow$ |table~\ref{tab:abc}|\\ +% |\tabref[vref]{abc}| +% \>\>~ $\rightarrow$ |table~\ref{tab:abc}| +% |\vpageref[\unskip]{tab:abc}|\\ +% |\tabref[vref=far]{abc}|^^A +% \>\>~ $\rightarrow$ |table~\ref{tab:abc}| +% |\reftextfaraway{tab:abc}| +% \end{Itabb} +% +% +% \subsection{External interfaces: \opt{xr}} +% +% The \opt{xr} option is for references to external documents. +% It inserts a prefix in the reference label, compatible with the +% \pkg{xr} package. The default is \opt{xr}|={}|. +% +% External document can be defined in the preamble with the +% \pkg{xr} or \pkg{xr-hyper} packages: +% \begin{Ipara} +% \cmd{\usepackage}|{xr}|\\ +% \cmd{\externaldocument}\oarg{xr\_key}\marg{filename} +% \end{Ipara} +% +% \noindent +% If, for example, an external document defined with +% \meta{xr\_key}\texttt{=\{A-\}}, uses an identical setup (e.g.\ the same +% \RScfg), then it can be referenced with +% +% \begin{Itabb} +% \tab\=\hspace{3.5cm}\=\hspace{2em}\=\kill +% |\tabref[xr=A-]{abc}| +% \>\>~ $\rightarrow$ |table~\ref{A-tab:abc}| +% \end{Itabb} +% \noindent or otherwise +% \begin{Itabb} +% \tab\=\hspace{3.5cm}\=\hspace{2em}\=\kill +% |\tabref[xr=A-,key=]{abc}| +% \>\>~ $\rightarrow$ |table~\ref{A-abc}| +% \end{Itabb} +% +% +% \subsection{Language parameters: \opt{name}, \opt{names}, +% \opt{Name}, \opt{Names}, \opt{rngtxt}, \opt{lsttwotxt}, \opt{lsttxt}} +% \seclabel{langopts} +% +% This key-values contain the text prefixes and insertions. +% Every house style or user has his or her own preference for naming the reference types, +% therefore are there no defaults provided. +% +% \begin{Itabb} +% \hspace*{1.5cm}\=\hspace{7cm}\=\kill +% \opt{name} \> ---~Inside sentence reference prefix (singular) +% \> default=|{}|\\ +% \opt{names}\> ---~Inside sentence reference prefix (plural) +% \> default=|{}|\\ +% \opt{Name} \> ---~First word reference prefix (singular) +% \> default=|{}|\\ +% \opt{Names}\> ---~First word reference prefix (plural) +% \> default=|{}|\\ +% \opt{rngtxt}\> ---~Range of references +% \> default=|{\ to~}|\\ +% \opt{lsttwotxt}\> ---~List of references (two) +% \> default=|{\ and~}|\\ +% \opt{lsttxt}\> ---~List of references (more than two) +% \> default=|{\ and~}| +% \end{Itabb} +% \noindent +% Good typographic style manuals recommend the minimum use of +% capital letters and punctuation that breaks the flow of a sentence +% or paragraph. For abbreviations, Bringhurst\cite{Bring1996} +% recommends the Oxford house style: Use a period only when the word +% stops prematurely. The period is omitted if the abbreviation +% begins with the first letter and end with the last. As an example +% for equations, use eq.~(1) or eqn~(1). +% A good guideline is not to abbreviate any reference type names. +% If a sentence starts with a +% reference then the type name must always be written in full. +% A typical example for references to a table is: +% \begin{Ipara} +% \opt{name}| ={table~}, |\opt{names}| ={tables~},|\\ +% \opt{Name}| ={Table~}, |\opt{Names}| ={Tables~},|\\ +% \opt{rngtxt}|={\ to~}, |\opt{lsttxt}|={, and~}, |\opt{lsttwotxt}|={\ and~},| +% \end{Ipara} +% Note the hardspace after the text. It is needed to keep the text +% and the reference together on the same line. +% +% The \RS\ configuration file can be setup to interface with \pkg{babel} +% for different languages or for automatic language changes inside a +% document. The language specific key-values can be added to the +% \pkg{babel} hook |\extras|\meta{language}. The command +% \DescribeMacro{\DeclareLangOpt}\cmd{\DeclareLangOpt}\footnote{^^A +% Only for use in \RScfg\ the default config file} +% is provided to supply a \meta{language} option to the package +% and to add the option contents to |\extras|\meta{language}. The +% default config file contains the following lines for equations: +% \begin{Ipara} +% |\newcommand\RSenglish{% |\\ +% | \def\RSeqtxt{equation~}% |\\ +% | \def\RSeqstxt{equations~}%|\\ +% | \def\RSEqtxt{Equation~}% |\\ +% | \def\RSEqstxt{Equations~}%|\\ +% | : |\\ +% | } |\\ +% |\DeclareLangOpt{english}{\RSenglish}| +% \end{Ipara} +% \DescribeMacro{\RSaddto}or manually with the \cmd{\RSaddto} command +% \begin{Ipara} +% |\RSaddto{\extrasenglish}{\RSenglish}| +% \end{Ipara} +% The key-value options for language specific options +% are then set as: +% \begin{Ipara} +% |\newref{eq}{% |\\ +% | name = \RSeqtxt, |\\ +% | names = \RSeqstxt,|\\ +% | Name = \RSEqtxt, |\\ +% | Names = \RSEqstxt,|\\ +% | : |\\ +% | } | +% \end{Ipara} +% +% \noindent\LaTeX{}/\pkg{babel} provides some language specific +% names that can be utilized. +% +% \begin{Ipara} +% |\chaptername \appendixname|\\ +% |\figurename \tablename|\\ +% |\partname \pagename| +% \end{Ipara} +% +% To setup a multilingual document with \pkg{babel}, +% \emph{always} make the language options global so that other +% language compliant packages can detect it. +% A typical setup for an Afrikaans/English document would be: +% {\makeatletter\def\meta@font@select{\normalfont\ttfamily\slshape} +% \begin{Ipara} +% |\documentclass[UKenglish,afrikaans,|\meta{options}|]{|\meta{LaTeX\_class}|}|\\ +% |\usepackage[T1]{fontenc}%..|\texttt{\slshape hyphenation of words with accents}\\ +% |\usepackage{babel}%........|\texttt{\slshape language def's}\\ +% |\usepackage{varioref}%.....|\texttt{\slshape for \opt{vref} option}\\ +% |\usepackage{refstyle}| +% \end{Ipara}} +% +% +% \subsection{Reference formatting command: \opt{refcmd}} +% +% The \opt{refcmd} key-value holds the contents of the internal +% command that formats the reference. The |#1| parameter +% passed to the command is the full reference label. +% For example: +% \begin{Itabb} +% \hspace{10em}\=hspace{5em}\=\kill +% \opt{refcmd}|=(\ref{#1})| \> $\rightarrow$~ +% |(\ref{|\meta{label}|})| +% \end{Itabb} +% +% External commands can be employed. For example, to make references +% to equations identical to the \AmS\ \cmd{\eqref} command: +% \begin{Itabb} +% \opt{refcmd}|={\textup{\tagform@{\ref{#1}}}}%|~~It needs \file{amsmath.sty} +% \end{Itabb} +% +% The \opt{refcmd} can be used in conjuntion with the |\ifRSstar|, +% |\ifRSnameon|, |\ifRSplural| and |\ifRScapname| internal +% conditional variables to format the reference. As an example for a +% reference to a footnote, where a duplicate footnote mark is needed, +% can the \opt{refcmd} be configured so that the starred form of the +% reference command produce a superscripted duplicate mark: +% \begin{Itabb} +% |\newcommand{\RSfnmark}[1]{%|\\ +% | \begingroup |\\ +% | \unrestored@protected@xdef\@thefnmark{#1}%|\\ +% | \endgroup |\\ +% | \@footnotemark} |\\[1ex] +% \opt{refcmd}|={\ifRSstar\RSfnmark{\ref{#1}}\else(\ref{#1})\fi}| +% \end{Itabb} +% \noindent The second footnote mark, \fnref*[name]{b}, in +% \tabref[vref]{refopt}, was obtained in this way with the reference +% |\fnref*{b}|. See \RScfg\ for another +% example for references to chapters and appendices. +% +% The \pkg{nameref} package can easily be incorporated if you need elaborate +% references which include the section or chapter name: +% \begin{Ipara} +% |\Secref[vref, refcmd={\S\ref{#1}, `\nameref{#1}'}]{PRefCmds}| +% \end{Ipara} +% gives +% \begin{Ipara} +% \Secref[vref, refcmd={\S\ref{#1}, `\nameref{#1}'}]{PRefCmds} +% \end{Ipara} +% +% \section{Default configuration files} +% +% The \pkg{refstyle} package first searches for the \file{refstyle.def} +% configuration file, and if it not found, then it uses the default +% configuration file \RScfg\ that is supplied with the package. +% +% The default configuration file, \RScfg, makes a +% number of default reference declarations and provides language +% definitions for the language parameters. See the file +% \file{refconfig.pdf} for the documentation. +% \medskip +% +% \begin{center} +% \begin{fminipage}[.55\textwidth] +% \slshape Any user is welcome to customize the +% local copy of the \RScfg\ file or copy +% the relevant contents to your own \file{refstyle.def} +% configuration file. +% \end{fminipage} +% \end{center} +% +% \begin{thebibliography}{99} +% \bibitem{Bring1996} +% {Bringhurst, R.} (1996), \emph{The elements of typographic style}, +% Hartley \& Marks Publishers, Point Roberts, WA, USA and Vancouver, +% BC, Canada, second edn. +% \end{thebibliography} +% +% \StopEventually{\PrintChanges\PrintIndex} +% \clearpage +% +% \section{Implementation: \pkg{refstyle.sty}} +% +% \subsection{Identification} +% \begin{macrocode} +%<*pkg> +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{refstyle}[\RefstyleFileDate\space + \RefstyleFileVersion\space + Reference formatting (DNJ Els)] +\newcommand*{\RS@pkgname}{refstyle} +% \end{macrocode} +% +% +% \subsection{External packages} +% +% Load all the external packages. +% \begin{macrocode} +\RequirePackage{keyval} +% \end{macrocode} +% +% \begin{macro}{\RS@setkeys} +% \changes{v0.3}{2006/09/09}{original \cmd{\setkeys} copy} +% Note if \pkg{xkeyval} is loaded, it redefines \pkg{keyval}'s +% macros. To fix this bug, we need the original \cmd{\setkeys} +% command. +% \begin{macrocode} +\def\RS@setkeys#1#2{% + \def\KV@prefix{KV@#1@}% + \let\@tempc\relax + \KV@do#2,\relax,} +% \end{macrocode} +% \end{macro} +% +% \noindent A small bug-fix for \pkg{showkeys}. Will be removed +% after release of new version. +% +% \begin{macrocode} +\@ifundefined{vref@space}{\let\vref@space\space}{} +% \end{macrocode} +% +% \begin{macro}{\@safe@activestrue} +% \changes{v0.5}{2010/11/02}{Add \cmd{\@safe@activesfalse}} +% \begin{macro}{\@safe@activesfalse} +% \changes{v0.5}{2010/11/02}{Add \cmd{\@safe@activestrue}} +% If \pkg{babel} is not loaded, make the following +% commands inactive. +% \begin{macrocode} +\providecommand*{\@safe@activestrue}{} +\providecommand*{\@safe@activesfalse}{} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \subsection{Utility commands} +% +% \begin{macro}{\RS@namelet} +% \begin{macro}{\RS@nameuse} +% \begin{macro}{\RS@namedef} +% \begin{macro}{\RS@robustnamedef} +% \noindent +% The following is a list of commands that take a variable \marg{name} +% as argument. This enables on-the-fly definitions of user commands. +% \begin{Itabb} +% Usage:~\=\cmd{\RS@robustnamedef}\marg{name}~\=\kill +% Usage: +% \>\cmd{\RS@namelet}\marg{name} +% \> $\rightarrow$ \cmd{\let}\cmeta{name}\\ +% \>\cmd{\RS@nameuse}\marg{name} +% \> $\rightarrow$ \cmeta{name}\\ +% \>\cmd{\RS@namedef}\marg{name} +% \> $\rightarrow$ \cmd{\def}\cmeta{name}\\ +% \>\cmd{\RS@robustnamedef}\marg{name} +% \> $\rightarrow$ +% \cmd{\def}\cmeta{name}|{\protect|\cmeta{name\textvisiblespace}|}|^^A +% \cmd{\def}\cmeta{name\textvisiblespace} +% \end{Itabb} +% \begin{macrocode} +\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 }} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\RS@ifundefined} +% This is an improved definition\footnote{Posted by Markus Kohm +% on c.t.t. 2002/11/11} for the \LaTeX{} kernel command +% \cmd{\@ifundefined} that do not leave an undefined command +% defined as \cmd{\relax} after the test. +% +% The usage is: +% \cmd{\RS@ifundefined}\marg{name}\marg{true}\marg{false} executes +% the contents of \meta{true} if \cmeta{name} is not defined and +% \meta{false} if defined. +% \begin{macrocode} +\def\RS@ifundefined#1{% + \begingroup\expandafter\expandafter\expandafter\endgroup + \expandafter\ifx\csname#1\endcsname\relax + \expandafter\@firstoftwo + \else + \expandafter\@secondoftwo + \fi} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\RS@removedef} +% The command removes the definition of a command, including +% robust definitions. +% \begin{macrocode} +\newcommand*{\RS@removedef}[1]{% + \RS@namelet{#1}\@undefined% + \RS@ifundefined{#1 }{}{\RS@namelet{#1 }\@undefined}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\RS@testednamedef} +% \begin{macro}{\RS@testedrobustnamedef} +% These command are identical to \cmd{\RS@namedef} and +% \cmd{\RS@robustnamedef}, but only define the \cmeta{name} +% command if it is legal. Otherwise an error message +% is written to the log file and the program is terminated. +% \begin{macrocode} +\newcommand*{\RS@testednamedef}[1]{% + \RS@ifnamedefinable{#1}\RS@namedef{#1}} +% \end{macrocode} +% \begin{macrocode} +\newcommand*{\RS@testedrobustnamedef}[1]{% + \RS@ifnamedefinable{#1}\RS@robustnamedef{#1}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\RS@ifnamedefinable} +% A modified version of the \LaTeX{} kernel command +% (from ltdefns.dtx). +% \begin{macrocode} +\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} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\RS@notdefinable} +% The error message when an illegal definition is attempted. +% \begin{macrocode} +\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.}% + } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\RS@setbool} +% The command\footnote{Taken from the \pkg{ifthen} package.} +% \cmd{\RS@setbool}\marg{conditional}\marg{true/false} +% sets the \meta{conditional} to |true| or |false|. +% \begin{Itabb} +% Usage:~\= +% \cmd{\RS@setbool}|{RSplural}{false}|\quad\=$\rightarrow$\quad +% |\RSpluralfalse|\\ +% \>\cmd{\RS@setbool}|{RSplural}{true}|\quad\>$\rightarrow$\quad +% |\RSpluraltrue| +% \end{Itabb} +% +% \begin{macrocode} +\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}} +% \end{macrocode} +% \end{macro} +% +% +% \subsection{First character case changes} +% +% \begin{macro}{\RS@firstcap} +% This macro\footnote{Posted by Dan Luecking on c.t.t.} change the +% first character of a string to uppercase and returns the result +% in \cmd{\RS@cap}. +% \begin{Ipara} +% Usage:~|\RS@fistcap xxxx\@nil| then |\RS@cap| $\rightarrow$ |Xxxx| +% \end{Ipara} +% \begin{macrocode} +\def\RS@firstcap#1#2\@nil{% + \iffalse{\fi + \uppercase{\edef\RS@cap{\iffalse}\fi#1}#2}}% +% \end{macrocode} +% \end{macro} +% +% +% +% \subsection{Reference building commands} +% +% \begin{macro}{\ifRS@keyactive} +% \changes{v0.4}{2010/10/21}{Add \opt{nokeyprefix} to turn of the key prefix} +% We need to peek into the options list for the \opt{nokeyprefix} option +% before the options are processed to find out if the key prefix must be +% included in the |\|\meta{key}|label| command. Make \opt{nokeyprefix} +% not used afterwards. +% \begin{macrocode} +\newif\ifRS@keyactive +\@ifpackagewith{\@currname}{nokeyprefix}% + {\RS@keyactivefalse}% + {\RS@keyactivetrue} +\DeclareOption{nokeyprefix}{\OptionNotUsed} +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\ifRSstar} +% \begin{macro}{\ifRSnameon} +% \begin{macro}{\ifRScapname} +% \begin{macro}{\ifRSplural} +% \begin{macro}{\ifRSlsttwo} +% \changes{v0.4}{2010/10/21}{Add \cmd{\ifRSlsttwo} test for list containing only two parameter} +% The |\if| conditional values that are set by the reference commands. +% These values can be accessed by user defined key-values. +% \begin{macrocode} +\newif\ifRSstar\RSstarfalse +\newif\ifRSnameon\RSnameontrue +\newif\ifRScapname\RScapnamefalse +\newif\ifRSplural\RSpluralfalse +\newif\ifRSlsttwo\RSlsttwofalse +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% \begin{macro}{\newref} +% The main user interface for template setup. It take the |#1| or +% \meta{key} parameter and make it lowercase before passing it on to +% \cmd{\RS@newref}. +% +% +% \begin{macrocode} +\newcommand*{\newref}[1]{% + \lowercase{\def\RS@tempa{#1}}% + \expandafter\RS@newref\expandafter{\RS@tempa}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\RS@newref} +% \changes{v0.4}{2010/10/21}{Ad \texttt{lsttwotxt} option} +% This command configures a new template. +% \begin{macrocode} +\newcommand*{\RS@newref}[2]{% +% \end{macrocode} +% \bNP[2.0]\noindent Clears an existing template before defining a new one.\eNP +% \begin{macrocode} + \RS@clearref{#1}% +% \end{macrocode} +% \bNP[2.0]\noindent Create |\ifRS@|\meta{key}|vref| conditional \eNP +% \begin{macrocode} +% \expandafter\newif\csname ifRS@#1vref\endcsname% +% \end{macrocode} +% \bNP[2.0]\noindent Creates a series of key-values for every template +% that stores the setup for the specific template.\eNP +% \begin{macrocode} + \ifRS@keyactive + \define@key{RS@#1}{key}[#1:]{\RS@namedef{RS@#1@key}{##1}}% + \else + \define@key{RS@#1}{key}[]{\RS@namedef{RS@#1@key}{##1}}% + \fi + \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}{lsttwotxt}[\space and~]{\RS@namedef{RS@#1@lsttwotxt}{##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}}% +% \end{macrocode} +% \bNP[2.0]\noindent Set default key-value parameters.\eNP +% \begin{macrocode} + \RS@setkeys{RS@#1}{key, + s=false, + name,names,Name,Names, + rngtxt,lsttwotxt,lsttxt, + refcmd, + xr, + vref=false}% +% \end{macrocode} +% \bNP[2.0]\noindent Set key-values according to user definitions.\eNP +% \begin{macrocode} + \RS@setkeys{RS@#1}{#2}% +% \end{macrocode} +% \bNP[2.0]\noindent Build the reference commands.\eNP +% \begin{macrocode} + \RS@buildref{#1}% + } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\RS@clearref} +% Clear a reference template for redefinition. It check +% if the template already exists and clear it if it does. +% +% \begin{macrocode} +\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}% + }% + } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\RS@buildref} +% Build the reference commands. See \tabref{refopt} for the list of +% commands. The \cmd{\RS@buildref}\marg{key} build commands to +% call \cmd{\RS@cmd}\marg{cmd}\marg{key}, for example: +% \begin{Ipara} +% \cmeta{key}|ref| \quad$\rightarrow$\quad +% |{\RScapnamefalse\RS@cmd{ref}|\marg{key}|}| +% \end{Ipara} +% \changes{v0.2}{2003/07/30}{Remove robust def of \argcmd{{\rtp}}{label}} +% \begin{macrocode} +\newcommand*{\RS@buildref}[1]{% + \RS@firstcap#1\@nil + \RS@testednamedef{#1key}{\RS@nameuse{RS@#1@key}} + \RS@testednamedef{#1label}##1{\label{\RS@nameuse{RS@#1@key}##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}} + } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\RS@cmd} +% \begin{macro}{\RS@@cmd} +% The command \cmd{\RS@cmd}\marg{cmd}\marg{key} calls the final +% reference formatting commands. +% It checks for the starred form and set the conditionals +% |\ifRSstar| and |\ifRSnameon| accordingly. +% It also extracts the optional key-value list. +% \begin{Itabb} +% \hspace*{4.5cm}\=\kill +% \cmd{\RS@cmd}|{ref}|\marg{key} \>$\rightarrow$\quad +% |\RS@ref|\marg{key}\okeylst\\ +% \cmd{\RS@cmd}|{rangeref}|\marg{key} \>$\rightarrow$\quad +% |\RS@rangeref|\marg{key}\okeylst\\ +% \cmd{\RS@cmd}|{pageref}|\marg{key} \>$\rightarrow$\quad +% |\RS@pageref|\marg{key}\okeylst +% \end{Itabb} +% \begin{macrocode} +\newcommand*{\RS@cmd}[2]{% + \@ifstar{\RSstartrue\RSnameonfalse\RS@@cmd{#1}{#2}}% + {\RSstarfalse\RSnameontrue\RS@@cmd{#1}{#2}}} +% \end{macrocode} +% \begin{macrocode} +\newcommand*{\RS@@cmd}[2]{% + \@ifnextchar[% + {\RS@nameuse{RS@#1}{#2}}% + {\RS@nameuse{RS@#1}{#2}[]}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% \subsection{Reference formatting commands} +% +% \begin{macro}{\RS@ref} +% \changes{v0.5}{2010/11/02}{Add \cmd{\@safe@activestrue} to avoid active chars is ref list} +% \begin{macro}{\RS@@ref} +% \begin{macro}{\RS@@@ref} +% \changes{v0.4}{2010/10/21}{Add \cmd{\ifRSlsttwo} test for list containing only two parameter} +% The command \cmd{\RS@ref}\marg{key}\okeylst\marg{label\_lst} +% typeset the references to the comma-separated reference +% label list according to the configuration for \meta{key}. +% +% First of all, remove all spaces for the reference label list. +% \begin{macrocode} +\def\RS@ref#1[#2]#3{% + \begingroup + \RS@setkeys{RS@#1}{#2}% + \@safe@activestrue% + \edef\RS@tmpa{\zap@space#3 \@empty}% + \@safe@activesfalse% + \edef\RS@tmpa{\noexpand\RS@@ref{#1} \RS@tmpa,\relax\noexpand\@eolst}% + \RS@tmpa% + \endgroup} +% \end{macrocode} +% \end{macro} +% Check if there is a single or multiple references in the +% reference label list. If a single reference label then use the +% form set by the \opt{s} key-value. If multiple reference labels +% the use the plural form of the name prefix.\footnote{ +% The list of reference commands came from the \pkg{typedref} package.} +% +% \begin{macrocode} +\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% + \RSlsttwotrue% + \RS@@@ref{#1} #3\@eolst% + \fi} +% \end{macrocode} +% \end{macro} +% For more than one reference in the reference list, typeset the +% rest of the references. +% \begin{macrocode} +\def\RS@@@ref#1 #2,#3\@eolst{% + \ifx\relax#3\relax + \ifRSlsttwo + \RS@nameuse{RS@#1@lsttwotxt}% + \else + \RS@nameuse{RS@#1@lsttxt}% + \fi + \RS@makeref{#1}{#2}% + \RS@makevpageref{#1}{#2}% + \else + \RSlsttwofalse% + \unskip,\space% + \RS@makeref{#1}{#2}% + \RS@makevpageref{#1}{#2}% + \RS@@@ref{#1} #3\@eolst% + \fi} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\RS@rangeref} +% The command \cmd{\RS@rangeref}\marg{key}\okeylst\marg{lbl1}\marg{lbl2} +% typeset the references as a range. +% \begin{macrocode} +\def\RS@rangeref#1[#2]#3#4{% + \begingroup + \RS@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} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\RS@pageref} +% The command \cmd{\RS@pageref}\marg{key}\okeylst\marg{lbl} type +% the page where \marg{lbl} was defined. +% \begin{macrocode} +\def\RS@pageref#1[#2]#3{% + \begingroup% + \RS@setkeys{RS@#1}{#2}% + \RS@ifvref{#1}% + {\mbox{}\vpageref*{\RS@lbl{#1}{#3}}}% + {\reftextfaraway{\RS@lbl{#1}{#3}}}% + {\pageref{\RS@lbl{#1}{#3}}}% + \endgroup} +% \end{macrocode} +% \end{macro} +% +% \changes{v0.2}{2003/07/30}{Remove redundant \cmd{\RS@label}} +% +% \begin{macrocode} +\newcommand*{\RS@true}{true} +\newcommand*{\RS@false}{false} +\newcommand*{\RS@far}{far} +% \end{macrocode} +% +% \begin{macro}{\RS@ifvref} +% The command \cmd{\RS@ifvref}\marg{key}\marg{true}\marg{faraway}\marg{false} +% executes the contents of \meta{true} if the \opt{vref} option for +% the \meta{key} reference type is true and \meta{false} otherwise. +% \begin{macrocode} +\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} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\RS@makename} +% The command \cmd{\RS@makename}\marg{key} build the prefix +% to the reference commands. +% \begin{macrocode} +\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 + } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\RS@lbl} +% This command builds the full label string for the \cmd{\ref} +% command. +% \begin{Ipara} +% \cmd{\RS@lbl}\marg{key}\marg{label} \quad$\rightarrow$\quad +% |{|\meta{xr_key}\meta{key}\meta{label}|}| +% \end{Ipara} +% \begin{macrocode} +\newcommand*{\RS@lbl}[2]{% + \RS@nameuse{RS@#1@xr}\RS@nameuse{RS@#1@key}#2% + } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\RS@makeref} +% The command \cmd{\RS@makeref}\marg{key}\marg{label} formats +% the \cmd{\ref} output +% \begin{Ipara} +% \cmd{\RS@makeref}\marg{key}\marg{label} \quad$\rightarrow$\quad +% \cmeta{rcmd}|{\ref{|\meta{xr_key}\meta{key}\meta{label}|}}| +% \end{Ipara} +% \begin{macrocode} +\newcommand{\RS@makeref}[2]{% + \RS@nameuse{RS@#1@rcmd}{\RS@lbl{#1}{#2}}% + } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\RS@makevpageref} +% The command \cmd{\RS@makevpageref}\marg{key}\marg{label} adds the +% \pkg{varioref} page reference if the \opt{vref} option is true. +% \begin{macrocode} +\newcommand{\RS@makevpageref}[2]{% + \RS@ifvref{#1}% + {\vpageref[\unskip]{\RS@lbl{#1}{#2}}}% + { \reftextfaraway{\RS@lbl{#1}{#2}}}% + {}% + } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\RS@makevpagerefrange} +% The command \cmd{\RS@makevpagerefrange}\marg{key}\marg{lbl1}\marg{lbl1} +% adds the \pkg{varioref} page range reference if the \opt{vref} +% option is true. +% \begin{macrocode} +\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}}}% + {}% + } +% \end{macrocode} +% \end{macro} +% +% +% \subsection{\pkg{varioref} command predefinitions} +% +% \begin{macrocode} +\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}} + } +% \end{macrocode} +% +% +% \subsection{Support for language option inclusions in config file} +% +% \begin{macro}{\RSaddto} +% \changes{v0.2}{2003/07/30}{Rename \cmd{\RS@addto} to \cmd{\RSaddto}} +% Command from the \pkg{varioref} package is used to add +% language definitions to the |\extras|\meta{language} token +% for \pkg{babel}. +% \begin{macrocode} +\def\RSaddto#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} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\DeclareLangOpt} +% \changes{v0.5}{2010/11/02}{Add \cmd{\extras}\meta{language} to beginning of document.} +% Command to declare a language option and add +% language definitions to the |\extras|\meta{language} token +% for \pkg{babel}. +% \begin{macrocode} +\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}{% + \AtBeginDocument{\expandafter\RSaddto\csname extras#1\endcsname #2}}}% + } +% \end{macrocode} +% \end{macro} +% +% +% +% \subsection{Configuration files} +% +% \begin{macro}{\RS@cfgfile,\RS@reffile} +% \changes{v0.4}{2010/10/21}{Ad alternative definition file \cmd{refstyle.def}} +% Define the config file and alternate definition file names. +% \begin{macrocode} +\newcommand*{\RS@cfgfile}{refstyle.cfg} +\newcommand*{\RS@reffile}{refstyle.def} +% \end{macrocode} +% \end{macro} +% +% We need to peek into the options list before the +% options are processed to find out if the config +% file is to be loaded or not. The config file can +% contain options and must be loaded before +% \cmd{\ProcessOptions}. Make \opt{noconfig} not used +% afterwards. +% +% We first test for a local config file \file{refstyle.def} +% and then for the global config file \file{refstyle.cfg}. +% \begin{macrocode} +\@ifpackagewith{\@currname}{noconfig}% + {\PackageInfo{\RS@pkgname}{No config file loaded}}% + {\InputIfFileExists{\RS@reffile}% + {\PackageInfo{\RS@pkgname}{Local config file \RS@reffile\space used}} + {\InputIfFileExists{\RS@cfgfile}% + {\PackageInfo{\RS@pkgname}{Config file \RS@cfgfile\space used}}% + {\PackageInfo{\RS@pkgname}{No config file found}}}} +% \end{macrocode} +% +% \begin{macrocode} +\DeclareOption{noconfig}{\OptionNotUsed}% +% \end{macrocode} +% +% Process the options, including options in config file. +% \begin{macrocode} +\ProcessOptions*\relax +% \end{macrocode} +% +% The end of this package. +% \begin{macrocode} +%</pkg> +% \end{macrocode} +% +% \Finale +\endinput diff --git a/macros/latex/contrib/refstyle/refstyle.ins b/macros/latex/contrib/refstyle/refstyle.ins index ced9ef9722..5d69497509 100644 --- a/macros/latex/contrib/refstyle/refstyle.ins +++ b/macros/latex/contrib/refstyle/refstyle.ins @@ -1,97 +1,92 @@ -% refstyle.ins
-% Copyright (C) 2002--2010 Danie Els
-%
-% -------------------------------------------------------------------
-% The refstyle package
-% for the formatting of references
-% -------------------------------------------------------------------
-% This work may be distributed and/or modified under the conditions
-% of the LaTeX Project Public License, either version 1.3c 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.3c or later is part of all distributions of LaTeX
-% version 2005/12/01 or later.
-%
-% This work is "maintained" (as per LPPL maintenance status)
-% by Danie Els (dnjels@sun.ac.za).
-%
-% This package consists of the files: refstyle.dtx
-% refconfig.dtx
-% refstyle.ins
-% and the derived files: refstyle.sty
-% refstyle.cfg
-% -------------------------------------------------------------------
-% This file will generate fast loadable files and documentation
-% driver files from the doc files in this package when run through
-% LaTeX or TeX.
-% -------------------------------------------------------------------
-
-\def\batchfile{refstyle.ins}
-\def\filedate{2010/10/21}
-\input docstrip.tex
-\keepsilent
-
-\declarepreamble\package
-
-Copyright (C) 2002--2010 Danie Els
-
--------------------------------------------------------------------
- The refstyle package
- for the formatting of references
--------------------------------------------------------------------
-This work may be distributed and/or modified under the conditions
-of the LaTeX Project Public License, either version 1.3c 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.3c or later is part of all distributions of LaTeX
-version 2005/12/01 or later.
-
-This work is "maintained" (as per LPPL maintenance status)
-by Danie Els (dnjels@sun.ac.za).
--------------------------------------------------------------------
-
-\endpreamble
-
-\generate{%
- \askforoverwritefalse
- \usepreamble\package
- \file{refstyle.sty}{\from{refstyle.dtx}{pkg}}}
-
-
-
-
-\declarepreamble\config
-
--------------------------------------------------------------------
- The refstyle package
- for the formatting of references
--------------------------------------------------------------------
-This file may be customized to suit specific user requirements.
-
-Original by Danie Els <dnjels@sun.ac.za>
--------------------------------------------------------------------
-
-\endpreamble
-\generate{%
- \askforoverwritefalse
- \usepreamble\config
- \file{refstyle.cfg}{\from{refconfig.dtx}{cfg}}}
-
-
-\obeyspaces
-\Msg{**********************************************************}
-\Msg{* *}
-\Msg{* To finish the installation you have to move the *}
-\Msg{* following files into a directory searched by TeX: *}
-\Msg{* *}
-\Msg{* refstyle.sty *}
-\Msg{* refstyle.cfg *}
-\Msg{* *}
-\Msg{* To produce the documentation run the file ustitle.dtx *}
-\Msg{* through LaTeX. *}
-\Msg{* *}
-\Msg{* Happy TeXing! *}
-\Msg{**********************************************************}
-\endbatchfile
+% refstyle.ins +% Copyright (C) 2002--2024 Danie Els +% +% ------------------------------------------------------------------- +% The refstyle package +% for the formatting of references +% ------------------------------------------------------------------- +% This work may be distributed and/or modified under the conditions +% of the LaTeX Project Public License, either version 1.3c 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.3c or later is part of all distributions of LaTeX +% version 2008/12/01 or later. +% +% This work has the LPPL maintenance status 'maintained'. +% +% This Current Maintainer of this work is Danie Els (dnjels@gmail.com) +% +% This package consists of the files: refstyle.dtx +% refconfig.dtx +% refstyle.ins +% and the derived files: refstyle.sty +% refstyle.cfg +% ------------------------------------------------------------------- + +\def\batchfile{refstyle.ins} +\def\filedate{2024/01/31} +\input docstrip.tex +\keepsilent + +\declarepreamble\package + +Copyright (C) 2002--2024 Danie Els + +------------------------------------------------------------------- + The refstyle package + for the formatting of references +------------------------------------------------------------------- +This work may be distributed and/or modified under the conditions +of the LaTeX Project Public License, either version 1.3c 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.3c or later is part of all distributions of LaTeX +version 2008/12/01 or later. + +This work has the LPPL maintenance status 'maintained'. + +This Current Maintainer of this work is Danie Els (dnjels@gmail.com) +------------------------------------------------------------------- + +\endpreamble + +\generate{% + \askforoverwritefalse + \usepreamble\package + \file{refstyle.sty}{\from{refstyle.dtx}{pkg}}} + + +\declarepreamble\config + +------------------------------------------------------------------- + The refstyle package + for the formatting of references +------------------------------------------------------------------- +This file may be customized to suit specific user requirements. + +Original by Danie Els (dnjels@gmail.com) +------------------------------------------------------------------- + +\endpreamble +\generate{% + \askforoverwritefalse + \usepreamble\config + \file{refstyle.cfg}{\from{refconfig.dtx}{cfg}}} + + +\obeyspaces +\Msg{*************************************************************} +\Msg{* To finish the installation you have to move the *} +\Msg{* following files into a directory searched by TeX: *} +\Msg{* refstyle.sty *} +\Msg{* refstyle.cfg *} +\Msg{* *} +\Msg{* To produce the documentation run through LaTeX the files: *} +\Msg{* refstyle.dtx *} +\Msg{* refconfig.dtx *} +\Msg{* *} +\Msg{* Happy TeXing! *} +\Msg{*************************************************************} +\endbatchfile diff --git a/macros/latex/contrib/refstyle/refstyle.pdf b/macros/latex/contrib/refstyle/refstyle.pdf Binary files differindex 0e94b7db28..a7bc463295 100644 --- a/macros/latex/contrib/refstyle/refstyle.pdf +++ b/macros/latex/contrib/refstyle/refstyle.pdf diff --git a/macros/latex/contrib/refstyle/refstyle.sty b/macros/latex/contrib/refstyle/refstyle.sty deleted file mode 100644 index 11f0c3606b..0000000000 --- a/macros/latex/contrib/refstyle/refstyle.sty +++ /dev/null @@ -1,327 +0,0 @@ -%%
-%% This is file `refstyle.sty',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% refstyle.dtx (with options: `pkg')
-%%
-%% Copyright (C) 2002--2010 Danie Els
-%%
-%% -------------------------------------------------------------------
-%% The refstyle package
-%% for the formatting of references
-%% -------------------------------------------------------------------
-%% This work may be distributed and/or modified under the conditions
-%% of the LaTeX Project Public License, either version 1.3c 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.3c or later is part of all distributions of LaTeX
-%% version 2005/12/01 or later.
-%%
-%% This work is "maintained" (as per LPPL maintenance status)
-%% by Danie Els (dnjels@sun.ac.za).
-%% -------------------------------------------------------------------
-%%
-\newcommand*{\RefstyleFileDate}{2010/11/02}
-\newcommand*{\RefstyleFileVersion}{v0.5}
-
-\NeedsTeXFormat{LaTeX2e}[1999/12/01]
-\ProvidesPackage{refstyle}[\RefstyleFileDate\space
- \RefstyleFileVersion\space
- Reference formatting (DNJ Els)]
-\newcommand*{\RS@pkgname}{refstyle}
-\RequirePackage{keyval}
-\def\RS@setkeys#1#2{%
- \def\KV@prefix{KV@#1@}%
- \let\@tempc\relax
- \KV@do#2,\relax,}
-\@ifundefined{vref@space}{\let\vref@space\space}{}
-\providecommand*{\@safe@activestrue}{}
-\providecommand*{\@safe@activesfalse}{}
-\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\ifRS@keyactive
-\@ifpackagewith{\@currname}{nokeyprefix}%
- {\RS@keyactivefalse}%
- {\RS@keyactivetrue}
-\DeclareOption{nokeyprefix}{\OptionNotUsed}
-\newif\ifRSstar\RSstarfalse
-\newif\ifRSnameon\RSnameontrue
-\newif\ifRScapname\RScapnamefalse
-\newif\ifRSplural\RSpluralfalse
-\newif\ifRSlsttwo\RSlsttwofalse
-\newcommand*{\newref}[1]{%
- \lowercase{\def\RS@tempa{#1}}%
- \expandafter\RS@newref\expandafter{\RS@tempa}}
-\newcommand*{\RS@newref}[2]{%
- \RS@clearref{#1}%
- \ifRS@keyactive
- \define@key{RS@#1}{key}[#1:]{\RS@namedef{RS@#1@key}{##1}}%
- \else
- \define@key{RS@#1}{key}[]{\RS@namedef{RS@#1@key}{##1}}%
- \fi
- \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}{lsttwotxt}[\space and~]{\RS@namedef{RS@#1@lsttwotxt}{##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}}%
- \RS@setkeys{RS@#1}{key,
- s=false,
- name,names,Name,Names,
- rngtxt,lsttwotxt,lsttxt,
- refcmd,
- xr,
- vref=false}%
- \RS@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@testednamedef{#1label}##1{\label{\RS@nameuse{RS@#1@key}##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
- \RS@setkeys{RS@#1}{#2}%
- \@safe@activestrue%
- \edef\RS@tmpa{\zap@space#3 \@empty}%
- \@safe@activesfalse%
- \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%
- \RSlsttwotrue%
- \RS@@@ref{#1} #3\@eolst%
- \fi}
-\def\RS@@@ref#1 #2,#3\@eolst{%
- \ifx\relax#3\relax
- \ifRSlsttwo
- \RS@nameuse{RS@#1@lsttwotxt}%
- \else
- \RS@nameuse{RS@#1@lsttxt}%
- \fi
- \RS@makeref{#1}{#2}%
- \RS@makevpageref{#1}{#2}%
- \else
- \RSlsttwofalse%
- \unskip,\space%
- \RS@makeref{#1}{#2}%
- \RS@makevpageref{#1}{#2}%
- \RS@@@ref{#1} #3\@eolst%
- \fi}
-\def\RS@rangeref#1[#2]#3#4{%
- \begingroup
- \RS@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%
- \RS@setkeys{RS@#1}{#2}%
- \RS@ifvref{#1}%
- {\mbox{}\vpageref*{\RS@lbl{#1}{#3}}}%
- {\reftextfaraway{\RS@lbl{#1}{#3}}}%
- {\pageref{\RS@lbl{#1}{#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\RSaddto#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}{%
- \AtBeginDocument{\expandafter\RSaddto\csname extras#1\endcsname #2}}}%
- }
-\newcommand*{\RS@cfgfile}{refstyle.cfg}
-\newcommand*{\RS@reffile}{refstyle.def}
-\@ifpackagewith{\@currname}{noconfig}%
- {\PackageInfo{\RS@pkgname}{No config file loaded}}%
- {\InputIfFileExists{\RS@reffile}%
- {\PackageInfo{\RS@pkgname}{Local config file \RS@reffile\space used}}
- {\InputIfFileExists{\RS@cfgfile}%
- {\PackageInfo{\RS@pkgname}{Config file \RS@cfgfile\space used}}%
- {\PackageInfo{\RS@pkgname}{No config file found}}}}
-\DeclareOption{noconfig}{\OptionNotUsed}%
-\ProcessOptions*\relax
-\endinput
-%%
-%% End of file `refstyle.sty'.
|