summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/rsc
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-12-26 23:29:48 +0000
committerKarl Berry <karl@freefriends.org>2006-12-26 23:29:48 +0000
commit729ce53995492a87f35451ca5aa1075beca00c6b (patch)
tree30494c8c41d92c218424b0893754a1e9963cb38c /Master/texmf-dist/source/latex/rsc
parentbbd8230e72add61180e3071b90bf5c6a48908650 (diff)
rsc update
git-svn-id: svn://tug.org/texlive/trunk@2956 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/rsc')
-rw-r--r--Master/texmf-dist/source/latex/rsc/rsc.dtx1596
-rw-r--r--Master/texmf-dist/source/latex/rsc/rsc.ins37
2 files changed, 1633 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/rsc/rsc.dtx b/Master/texmf-dist/source/latex/rsc/rsc.dtx
new file mode 100644
index 00000000000..750a3aaf83f
--- /dev/null
+++ b/Master/texmf-dist/source/latex/rsc/rsc.dtx
@@ -0,0 +1,1596 @@
+% \iffalse
+%<*driver>
+% ----------------------------------------------------------------
+% The rsc package - BibTeX and macro support for Royal Society
+% of Chemistry style articles
+% Maintained by Joseph A. Wright
+% E-mail: joseph.wright@morningstar2.co.uk
+% Released under the GNU General Public License
+% See http://www.gnu.org/licenses/gpl.txt
+% ----------------------------------------------------------------
+\documentclass[a4paper]{ltxdoc}
+\usepackage[T1]{fontenc}
+\usepackage[english,UKenglish]{babel}
+\usepackage{rsc}
+\RecordChanges
+\OnlyDescription
+\GetFileInfo{rsc.sty}
+\title{The \textsf{rsc} package --- A \BibTeX\ style and utilities for
+ chemical documents\thanks{This file has version number \fileversion,
+ last revised \filedate.}}
+\author{Joseph Wright\thanks{E-mail: joseph.wright@morningstar2.co.uk}}
+\date{\filedate}
+\begin{document}
+\DocInput{rsc.dtx}
+\end{document}
+%</driver>
+% \fi
+% \CheckSum{169}
+% \changes{v1.00}{2006/11/08}{Initial release of packaged rsc.bst}
+% \maketitle
+%
+% \begin{abstract}
+%
+% The |rsc| package provides a \BibTeX\ style in accordance with the
+% requirements of the Royal Society of Chemistry. It was originally
+% based on the file |pccp.bst|, but also implements a number of styles
+% from the |achemso| package. It also provides a small number of
+% chemistry-related macros.
+%
+% \end{abstract}
+%
+% \section{Introduction}
+%
+% Although synthetic chemists do not, in the main, use \LaTeX\ for the
+% preparation of journal articles, it would be nice to be able to use
+% it for reports. The package |achemso| provides for a \BibTeX\ style
+% and other support for reports in the style of the American Chemical
+% Society. The aim of the |rsc| package is to provide similar support
+% for the style favoured by the Royal Society of Chemistry.
+%
+% In addition to providing the core |rsc.bst| file, this package also
+% generates |rsc-mc.bst|, |rsc.sty| |rsc.tex|. The file |rsc-mc.bst|
+% includes support for the |mcite| package, allowing the generation of
+% multiple references. The macro collection |rsc.sty| provides a few
+% useful features not catered for by other chemistry-related packages.
+% Finally, |rsc.tex| is a simple template for using the \BibTeX\
+% styles, including loading some other very useful chemistry packages.
+%
+% \section{Bibliography design decisions}
+%
+% Along with almost every \BibTeX\ style file, much of |rsc.bst| is
+% inherited from the original \BibTeX\ style files provided by Oren
+% Patashnik. However, while the original styles were designed to be
+% flexible, |rsc.bst| is designed to do a single job. Thus much of the
+% original flexibility has been stripped out to give a clearer design.
+% This has many be achieved by removing unused functions.
+%
+% The RSC give only minimal guidance on the design of references other
+% than for journal articles. Much of the format of other types of
+% reference is therefore based on current practice in \emph{Dalton
+% Trans.}, \emph{Chem. Commun.} and \emph{Org. Biomol. Chem.} Some of
+% this can be contradictory, so I have gone with what I feel is best.
+% Please e-mail me if you feel I have got things wrong!
+%
+% \section{Bibliography usage information}
+%
+% \subsection{Cross-references}
+%
+% Unlike most \BibTeX\ styles, |rsc.bst| does not support
+% cross-referencing between references. Using |crossref| will still
+% fill in missing information, but will not output ``see ref.~X''.
+% The reasoning is simple: this is not what the RSC do. It is not
+% really useful in chemical documents, and adds to the complexity of
+% the implementation.
+%
+% \subsection{Notes}
+%
+% As in |pccp.bst|, notes are not output for most reference types.
+% The reasoning here is that it is difficult to predict how people will
+% want to use notes. In chemistry, they may be used in several forms,
+% for example:
+% \begin{itemize}
+% \item See for example: I. V. Gostunskaya, V. S. Petrova, A. I.
+% Leonava, V. A. Mironava, M. Abubaker, and B. Kazanski,
+% \emph{Neftekhimiya}, 1967, \textbf{7}, 3--8.
+% \item I. V. Gostunskaya, V. S. Petrova, A. I. Leonava, V. A.
+% Mironava, M. Abubaker, and B. Kazanski, \emph{Neftekhimiya}, 1967,
+% \textbf{7}, 3--8 and references therein.
+% \item I. V. Gostunskaya, V. S. Petrova, A. I. Leonava, V. A.
+% Mironava, M. Abubaker, and B. Kazanski, \emph{Neftekhimiya}, 1967,
+% \textbf{7}, 3--8 (\emph{Chem. Abs.}, 1967, \textbf{67}, 21276t).
+% \end{itemize}
+% This is pretty much impossible to handle automatically, especially as
+% the format you want might change depending on the report you are
+% writing. So I would recommend using the |misc| type, and doing the
+% formatting by hand. If other people feel the behaviour is not the
+% best solution, please e-mail me.
+%
+% \subsection{Multiple citations}
+%
+% By default, \BibTeX\ does not handle producing compound references.
+% Although it is not perfect, the package |mcite| allows you to
+% produce references of the format:
+% \begin{enumerate}
+% \item K.~{\"O}fele, \emph{{J}. {O}rganomet. {C}hem.}, 1968,
+% \textbf{12}, P42--P43; C.~D. Abernethy, A.~H. Cowley and R.~A.
+% Jones, \emph{{J}. {O}rganomet. {C}hem.}, 2000, \textbf{596}, 3--5.
+% \end{enumerate}
+% Although the package only requires a minor modification of the
+% \BibTeX\ style file, it seems a good idea to provide one
+% automatically. The file |rsc-mc.bst| is produced with the necessary
+% modifications made to |rsc.bst|. Note that this requires
+% |\usepackage{mcite}| in your \LaTeX\ source.
+%
+% \subsection{Additional entry types}
+%
+% In order to ensure compatibility with the |achemso| package, the
+% non-standard entry types |remark|, |inpress| and |submitted| are
+% supported. The implementation is modelled on |achemso.bst|, but the
+% |notes| field is not used for |inpress| and |submitted|.
+%
+% \section{Additional macros}
+%
+% \subsection{Overview}
+%
+% The macros provide by |rsc.sty| are all very simple. They simply
+% fill in a few gaps in the available support for chemists in \LaTeX.
+% Most are built on other, more powerful, packages. As a result, it
+% is best to read the documents for the ``parent'' package to alter the
+% handling of the macros given here.
+%
+% \subsection{Additional units}
+%
+% The |unitsdef| package provides a great number of easy to use unit
+% commands, and handles spacing between numbers and units very well.
+% However, it misses out a few useful units for chemistry. The
+% |unitsdef| package is loaded by |rsc.sty|, and is then used to
+% provide 5 additional units.
+% \DescribeMacro{\Hz}
+% The most obvious of these is \cmd{\Hz}, which simply gives \Hz. The
+% |unitsdef| package only defines \cmd{\hertz}, which is not as
+% obvious.
+% \DescribeMacro{\mmHg}
+% The command \cmd{\mmHg} has a non-breaking thin space, leading to
+% \mmHg.
+% \DescribeMacro{\molar}
+% \DescribeMacro{\Molar}
+% Two related commands are given for concentration: \cmd{\molar}
+% gives \molar, whilst \cmd{\Molar} gives \Molar.
+% \DescribeMacro{\cmc}
+% Finally, the command \cmd{\cmc} is provided for generating \cmc. All
+% space correctly with numbers, so inputting |10\cmc| gives 10\cmc,
+% with a non-breaking space.
+%
+%\subsection{The standard state symbol}
+%
+% \DescribeMacro{\standardstate}
+% Related to, but not exactly a unit is the \cmd{\standardstate}
+% command. This generates the tricky \standardstate\ symbol, letting
+% you put |$\Delta S \standardstate$| to generate $\Delta S
+%\standardstate$. Note that this is safe in text and maths mode.
+%
+% \subsection{Alkyl radicals}
+%
+% \DescribeMacro{\iPr}
+% \DescribeMacro{\iBu}
+% \DescribeMacro{\tBu}
+% There are a few alkyl radicals, that come up all of the time. No one
+% seems to have put these into a package, so they are provided here.
+% As you would expect, \cmd{\iPr} gives \iPr, \cmd{iBu} gives \iBu\ and
+% \cmd{\tBu} gives \tBu. These are in the style most commonly seen in
+% RSC journals.
+%
+% \subsection{Floating schemes}
+%
+% A number of approaches can be taken to redefining all float
+% types in a consistent manner (I know, I've tried several!).
+% In the end, the easiest method seems to be to use an ``internal''
+% float type in the package, and then define a related environment to
+% present to the user. As a result, this part of the package is by
+% far the most complex.
+%
+% \DescribeEnv{scheme}
+% The |float| package allows new float types to be defined. This is
+% used to create a |scheme| environment, which works very much like the
+% |figure| environment. In contrast to the \LaTeX\ default, all
+% float types are defined to be ``here'' if possible by default,
+% then float to the top of the page. This is usually what chemists
+% expect to happen. All the float types are also defined to take one
+% optional argument to over-ride the provided placement behaviour.
+% The most likely use is to put |[H]| to force a float to be ``here'',
+% absolutely. So for example, we might have:
+% \begin{verbatim}
+% Some text about \ref{sch1}, which will appear directly under this
+% paragraph and will not float at all!
+% \begin{scheme}[H]
+% \includegraphics{scheme1}%
+% \caption{An exciting reaction, placed HERE}.%
+% \label{sch1}
+% \end{scheme}
+% \end{verbatim}
+%
+% In addition to providing the floats, referencing to schemes, figures
+% and tables is formatted using the |varioref| package, to give
+% references such as ``Scheme 1'', ``Table 2'', \emph{etc.} from
+% simple \cmd{\ref} commands.
+%
+% \DescribeMacro{\listofschemes}
+% A listing command for schemes \cmd{\lisofschemes}, is provided in
+% analogy to \cmd{\listoffigures}. It takes one optional argument to
+% alter the title of the list. The \cmd{\listoffigures} and
+%\cmd{\listoftables} commands are redefined to act in the same way.
+%
+% A number of package options are provided to alter the handling of
+% the floating environments. By default, the float contents are
+% centred on the page. The option |floatleft| (also shortened to |fl|)
+% is available to produce the standard \LaTeX\ behaviour of
+% left-aligned floats. Captions are also centred by default, but may
+% be left-aligned using the |captionleft| (|cl|) option. The format of
+% the labels once again follows the RSC house style. Finally, schemes
+% may be numbered within chapters by using the |chapter| option.
+% This is obviously provided for theses and other very long documents.
+%
+% \iffalse
+%<*template>
+% \fi
+%
+% \section{A \LaTeX\ template}
+%
+% This is a very simple template for chemistry-related documents. The
+% |cite| package is loaded to give the correct appearance for
+% reference numbers. The |babel| system is used to give UK hyphenation.
+% As well as the macros given in this package as |rsc|, the packages
+% |bpchem| and |mhchem| are loaded, as both provide useful support for
+% the chemist.
+% \begin{macrocode}
+\documentclass[12pt,a4paper]{article}
+\usepackage[T1]{fontenc}
+\usepackage[english,UKenglish]{babel}
+\usepackage[super]{cite}
+\usepackage[version=3]{mhchem}
+\usepackage{rsc} % Package options are chapter, fl and cl
+\usepackage{bpchem,mcite}
+\begin{document}
+\bibliography{refs} % Change this to your reference database!
+\bibliographystyle{rsc-mc} % Change to rsc if you don't
+\end{document} % want multiple citations
+% \end{macrocode}
+% \iffalse
+%</template>
+% \fi
+%
+% \StopEventually{}
+%
+% \iffalse
+%<*package>
+% \fi
+% \section{The package code}
+%
+% The style file |rsc.bst| stands on its own, and |rsc-mc.bst| only
+% needs the |mcite| in order to function correctly. However, a few
+% extra commands are useful for chemists, and are not available
+% elsewhere (to my knowledge). So this seems a good place to define
+% them. The code is all very simple, but for the interested reader
+% is provided here.
+%
+% First of all, the package identifies itself and loads other packages
+% needed to function.
+% \begin{macrocode}
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{rsc}[2006/11/08 v1.0 Useful chemistry functions]
+\RequirePackage{unitsdef,graphicx,amssymb,fixltx2e,float,varioref}
+% \end{macrocode}
+%
+% The package provides three options, all of which relate to float
+% handling. The necessary precautions are taken here.
+% \begin{macrocode}
+\newif\ifRSC@floatcentre\RSC@floatcentretrue
+\DeclareOption{floatleft}{\global\RSC@floatcentrefalse}
+\DeclareOption{fl}{\global\RSC@floatcentrefalse}
+\newif\ifRSC@captioncentre\RSC@captioncentretrue
+\DeclareOption{captionleft}{\global\RSC@captioncentrefalse}
+\DeclareOption{cl}{\global\RSC@captioncentrefalse}
+\newif\ifRSC@chapter\RSC@chapterfalse
+\DeclareOption{chapter}{\global\RSC@chaptertrue}
+\ProcessOptions
+% \end{macrocode}
+%
+% A few additional unit types are provides, which the |unitsdef|
+% package omits for some reason.
+% \begin{macrocode}
+\newunit{\cubiccentimeter}{\cm\unitsuperscript{3}}
+\newcommand*{\cmc}{\cubiccentimeter}
+\newcommand*{\Hz}{\hertz}
+\newunit{\Molar}{\textsc{m}}
+\newunit{\molar}{\mole\unitsep\dm\unitsuperscript{--3}}
+\newunit{\mmHg}{mm\unitsep{}Hg}
+% \end{macrocode}
+% In a very similar vein, the ``standard state'' symbol is handy. This
+% is produced by rotating a symbol from the AMS set. Note that the
+% rotation angle here has been carefully checked, but is set by eye!
+% \begin{macrocode}
+\newcommand*{\standardstate}%
+ {\textsuperscript{\rotatebox[origin=c]{140.8}%
+ {\ensuremath{\varnothing}}}}
+% \end{macrocode}
+%
+% Next we provide alkyl radical symbols, in a convenient form.
+% \begin{macrocode}
+\newcommand*{\iPr}{Pr\textsuperscript{i}}
+\newcommand*{\iBu}{Bu\textsuperscript{i}}
+\newcommand*{\tBu}{Bu\textsuperscript{t}}
+% \end{macrocode}
+%
+% The final task is to create a new float for chemical schemes.
+% In order to maintain consistency, we also redefine the table and
+% figure environments. This is done by first creating ``internal''
+% float types, then formatting these. The need for numbering
+% within chapters is also handled at this stage.
+% If there are no chapters the fall-back is simply to ignore the
+% request!
+% \begin{macrocode}
+\ifRSC@chapter
+ \ifx\chapter\@undefined
+ \@latex@warning{No chapters in this document}
+ \newfloat{Scheme}{htbp}{los}
+ \newfloat{Figure}{htbp}{lof}
+ \newfloat{Table}{htbp}{lot}
+ \else
+ \newfloat{Scheme}{htbp}{los}[chapter]
+ \newfloat{Figure}{htbp}{lof}[chapter]
+ \newfloat{Table}{htbp}{lot}[chapter]
+ \fi
+\else
+ \newfloat{Scheme}{htbp}{los}
+ \newfloat{Figure}{htbp}{lof}
+ \newfloat{Table}{htbp}{lot}
+\fi
+% \end{macrocode}
+% Next the correct naming is set up for the captions.
+% Note that figures are referred to simply as ``Fig.''
+% \begin{macrocode}
+\floatname{Scheme}{Scheme}
+\floatname{Table}{Table}
+\floatname{Figure}{Fig.}
+% \end{macrocode}
+% The format of the captions needs to be altered to look
+% right. This is achieved by redefining \cmd{\floatc@plain}.
+% We first check if we are asked for left-aligned labels, and act
+% accordingly.
+% \begin{macrocode}
+\ifRSC@captioncentre
+ \renewcommand\floatc@plain[2]%
+ {\setbox\@tempboxa\hbox{\textbf{{\@fs@cfont #1}}\quad #2}%
+ \ifdim\wd\@tempboxa>\hsize {\textbf{\@fs@cfont #1}}\quad #2\par
+ \else\hbox to\hsize{\hfil\box\@tempboxa\hfil}\fi}
+\else
+ \renewcommand\floatc@plain[2]{\textbf{{\@fs@cfont #1}}\quad #2}
+\fi
+% \end{macrocode}
+% We now test if we want centred or left-aligned floating content.
+% This is achieved by using environments with the correct alignment
+% options. We allow an optional argument to cover the use of the |[H]|
+% placement option.
+% \begin{macrocode}
+\ifRSC@floatcentre
+ \newenvironment{scheme}[1][htbp]{\begin{Scheme}[#1]\centering}
+ {\end{Scheme}}
+ \renewenvironment{figure}[1][htbp]{\begin{Figure}[#1]\centering}
+ {\end{Figure}}
+ \renewenvironment{table}[1][htbp]{\begin{Table}[#1]\centering}
+ {\end{Table}}
+\else
+ \newenvironment{scheme}[1][htbp]{\begin{Scheme}[#1]\flushleft}
+ {\end{Scheme}}
+ \renewenvironment{figure}[1][htbp]{\begin{Figure}[#1]\flushleft}
+ {\end{Figure}}
+ \renewenvironment{table}[1][htbp]{\begin{Table}[#1]\flushleft}
+ {\end{Table}}
+\fi
+% \end{macrocode}
+% A new |\listofschemes| command is needed, in analogy to
+% |\listoffigures|. An optional argument is provided so the
+% list can be renamed easily. The related commands for tables and
+% figures are redefined, as we are using |Figure| not |figure| and
+% |Table| not |table|!
+% \begin{macrocode}
+\newcommand*{\listofschemes}[1][List of Schemes]%
+ {\listof{Scheme}{#1}}
+\renewcommand*{\listoffigures}[1][List of Figures]%
+ {\listof{Figure}{#1}}
+\renewcommand*{\listoftables}[1][List of Tables]%
+ {\listof{Table}{#1}}
+% \end{macrocode}
+% Finally, the naming for cross-references is sorted out properly,
+% using the |varioref| package. The correct format is that the
+% references start with capital letters. Notice that figures are a bit
+% different from everything else!
+% \begin{macrocode}
+\labelformat{Scheme}{Scheme~#1}
+\labelformat{Figure}{Fig.~#1}
+\labelformat{Table}{Table~#1}
+% \end{macrocode}
+% \iffalse
+%</package>
+% \fi
+% \section{The style files}
+%
+% Much of the following is lifted more or less directly from
+% the standard style files, the |custom-bib| package or \emph{Taming
+% the BeaST}. Commenting is therefore limited to the notable
+% alterations. Note that most of the code is shared by |rsc.bst| and
+% |rsc-mc.bst|.
+% \iffalse
+%<*bib|bib-mc>
+% \fi
+% \begin{macrocode}
+ENTRY
+ { address
+ author
+ booktitle
+ chapter
+ doi
+ edition
+ editor
+ howpublished
+ institution
+ journal
+ note
+ number
+ organization
+ pages
+ publisher
+ school
+ series
+ title
+ type
+ volume
+ year
+ }
+ {}
+ { label }
+
+INTEGERS { output.state before.all mid.sentence after.sentence }
+INTEGERS { after.block after.item author.or.editor }
+
+FUNCTION {init.state.consts}
+{ #0 'before.all :=
+ #1 'mid.sentence :=
+ #2 'after.sentence :=
+ #3 'after.block :=
+ #4 'after.item :=
+}
+
+FUNCTION {add.comma}
+{ duplicate$
+ #-1 #1 substring$ "}" =
+ { #-2 #1024 substring$ ";} " * }
+ { ", " * }
+ if$
+}
+
+STRINGS { s t }
+
+FUNCTION {output.nonnull}
+{ 's :=
+ output.state mid.sentence =
+ { ", " * write$ }
+ { output.state after.block =
+ { add.comma write$
+ newline$
+ "\newblock " write$
+ }
+ { output.state before.all =
+ 'write$
+ { output.state after.item =
+ { " " * write$ }
+ { add.period$ " " * write$ }
+ if$
+ }
+ if$
+ }
+ if$
+ mid.sentence 'output.state :=
+ }
+ if$
+ s
+}
+
+FUNCTION {output}
+{ duplicate$ empty$
+ 'pop$
+ 'output.nonnull
+ if$
+}
+
+FUNCTION {output.check}
+{ 't :=
+ duplicate$ empty$
+ { pop$ "Empty " t * " in " * cite$ * warning$ }
+ 'output.nonnull
+ if$
+}
+
+FUNCTION {output.bibitem}
+{ newline$
+ "\bibitem{" write$
+ cite$ write$
+ "}" write$
+ newline$
+ ""
+ before.all 'output.state :=
+}
+% \end{macrocode}
+% \iffalse
+%</bib|bib-mc>
+% \fi
+% The |fin.entry| function is dependant on whether |mcite| is in use.
+% First the standard function is given.
+% \iffalse
+%<*bib>
+% \fi
+% \begin{macrocode}
+FUNCTION {fin.entry}
+{ add.period$
+ write$
+ newline$
+}
+% \end{macrocode}
+% \iffalse
+%</bib>
+% \fi
+% Then the alternative for use in |rsc-mc|.
+% \iffalse
+%<*bib-mc>
+% \fi
+% \begin{macrocode}
+FUNCTION {fin.entry}
+{ write$
+ "\relax" write$
+ newline$
+ "\relax" write$
+}
+
+% \end{macrocode}
+% \iffalse
+%</bib-mc>
+% \fi
+% The shared code now continues.
+% \iffalse
+%<*bib|bib-mc>
+% \fi
+% \begin{macrocode}
+FUNCTION {not}
+{ { #0 }
+ { #1 }
+ if$
+}
+
+FUNCTION {and}
+{ 'skip$
+ { pop$ #0 }
+ if$
+}
+
+FUNCTION {or}
+{ { pop$ #1 }
+ 'skip$
+ if$
+}
+
+FUNCTION {field.or.null}
+{ duplicate$ empty$
+ { pop$ "" }
+ 'skip$
+ if$
+}
+
+FUNCTION {emphasize}
+{ duplicate$ empty$
+ { pop$ "" }
+ { "\emph{" swap$ * "}" * }
+ if$
+}
+
+FUNCTION {boldface}
+{ duplicate$ empty$
+ { pop$ "" }
+ { "\textbf{" swap$ * "}" * }
+ if$
+}
+
+FUNCTION {paren}
+{ duplicate$ empty$
+ { pop$ "" }
+ { "(" swap$ * ")" * }
+ if$
+}
+
+% \end{macrocode}
+% As in |custom-bib|, the bulk of the literal stings are collected up
+% here to make editing easier.
+% \begin{macrocode}
+FUNCTION {bbl.chapter}
+{ "ch." }
+
+FUNCTION {bbl.ed}
+{ "ed. " }
+
+FUNCTION {bbl.edition}
+{ "edn." }
+
+FUNCTION {bbl.inpress}
+{ "in press" }
+
+FUNCTION {bbl.msc}
+{ "M.Sc. thesis" }
+
+FUNCTION {bbl.page}
+{ "p." }
+
+FUNCTION {bbl.pages}
+{ "pp." }
+
+FUNCTION {bbl.phd}
+{ "Ph.D. thesis" }
+
+FUNCTION {bbl.submitted}
+{ "submitted for publication" }
+
+FUNCTION {bbl.techreport}
+{ "Technical Report" }
+
+FUNCTION {bbl.volume}
+{ "vol."}
+
+FUNCTION {bbl.first}
+{ "1st" }
+
+FUNCTION {bbl.second}
+{ "2nd" }
+
+FUNCTION {bbl.third}
+{ "3rd" }
+
+FUNCTION {bbl.fourth}
+{ "4th" }
+
+FUNCTION {bbl.fifth}
+{ "5th" }
+
+FUNCTION {bbl.st}
+{ "st" }
+
+FUNCTION {bbl.nd}
+{ "nd" }
+
+FUNCTION {bbl.rd}
+{ "rd" }
+
+FUNCTION {bbl.th}
+{ "th" }
+
+% \end{macrocode}
+% The following is lifted from |custom-bib|, and gives automatic
+% ordinal numbers from plain input.
+% \begin{macrocode}
+FUNCTION {eng.ord}
+{ duplicate$ "1" swap$ *
+ #-2 #1 substring$ "1" =
+ { bbl.th * }
+ { duplicate$ #-1 #1 substring$
+ duplicate$ "1" =
+ { pop$ bbl.st * }
+ { duplicate$ "2" =
+ { pop$ bbl.nd * }
+ { "3" =
+ { bbl.rd * }
+ { bbl.th * }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+}
+% \end{macrocode}
+% The next two functions are again from |custom-bib|. They are used
+% later for formatting patent numbers.
+% \begin{macrocode}
+
+FUNCTION {is.num}
+{ chr.to.int$
+ duplicate$ "0" chr.to.int$ < not
+ swap$ "9" chr.to.int$ > not and
+}
+
+FUNCTION {extract.num}
+{ duplicate$ 't :=
+ "" 's :=
+ { t empty$ not }
+ { t #1 #1 substring$
+ t #2 global.max$ substring$ 't :=
+ duplicate$ is.num
+ { s swap$ * 's := }
+ { pop$ "" 't := }
+ if$
+ }
+ while$
+ s empty$
+ 'skip$
+ { pop$ s }
+ if$
+}
+
+FUNCTION {bibinfo.check}
+{ swap$
+ duplicate$ missing$
+ {
+ pop$ pop$
+ ""
+ }
+ { duplicate$ empty$
+ {
+ swap$ pop$
+ }
+ { swap$
+ pop$
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {convert.edition}
+{ extract.num "l" change.case$ 's :=
+ s "first" = s "1" = or
+ { bbl.first 't := }
+ { s "second" = s "2" = or
+ { bbl.second 't := }
+ { s "third" = s "3" = or
+ { bbl.third 't := }
+ { s "fourth" = s "4" = or
+ { bbl.fourth 't := }
+ { s "fifth" = s "5" = or
+ { bbl.fifth 't := }
+ { s #1 #1 substring$ is.num
+ { s eng.ord 't := }
+ { edition 't := }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ }
+ if$
+ t
+}
+
+FUNCTION {tie.or.space.connect}
+{ duplicate$ text.length$ #3 <
+ { "~" }
+ { " " }
+ if$
+ swap$ * *
+}
+
+FUNCTION {space.connect}
+{ " "
+ swap$ * *
+}
+
+INTEGERS { nameptr namesleft numnames }
+
+FUNCTION {format.names}
+{ 's :=
+ #1 'nameptr :=
+ s num.names$ 'numnames :=
+ numnames 'namesleft :=
+ { namesleft #0 > }
+ { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't :=
+ nameptr #1 >
+ { namesleft #1 >
+ { ", " * t * }
+ { numnames #2 >
+ { "" * }
+ 'skip$
+ if$
+ t "others" =
+ { " \emph{et~al.}" * }
+ { " and " * t * }
+ if$
+ }
+ if$
+ }
+ 't
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+}
+
+FUNCTION {format.authors}
+{ author empty$
+ { "" }
+ { #1 'author.or.editor :=
+ author format.names }
+ if$
+}
+
+FUNCTION {format.editors}
+{ editor empty$
+ { "" }
+ { #2 'author.or.editor :=
+ bbl.ed *
+ editor format.names
+ }
+ if$
+}
+
+% \end{macrocode}
+% Two functions from Nicolas Markey for determining whether an
+% arbitrary string is an integer.
+% \begin{macrocode}
+FUNCTION{is.a.digit}
+{
+ duplicate$ "" =
+ {pop$ #0}
+ {chr.to.int$ #48 - duplicate$
+ #0 < swap$ #9 > or not}
+ if$
+}
+
+FUNCTION{is.a.number}
+{
+ {duplicate$ #1 #1 substring$ is.a.digit }
+ {#2 global.max$ substring$}
+ while$
+ "" =
+}
+% \end{macrocode}
+% |n.separate| is given in the |custom-bib| package. The following
+% function is modified to separate out a number of any length into
+% digit groups, \emph{e.g.} 12345 turns into 12\,345, 1234567 in
+% 1\,234\,567 but 1234 or a12345 are left alone.
+% \begin{macrocode}
+FUNCTION {n.separate.multi}
+{ 't :=
+ ""
+ #0 'numnames :=
+% \end{macrocode}
+% This is the key line: the test is that the sting is both
+% at least 5 digits long and is an integer.
+% \begin{macrocode}
+ t text.length$ #4 > t is.a.number and
+ {
+ { t empty$ not }
+ { t #-1 #1 substring$ is.num
+ { numnames #1 + 'numnames := }
+ { #0 'numnames := }
+ if$
+ t #-1 #1 substring$ swap$ *
+ t #-2 global.max$ substring$ 't :=
+ numnames #4 =
+ { duplicate$ #1 #1 substring$ swap$
+ #2 global.max$ substring$
+ "\," swap$ * *
+ #1 'numnames :=
+ }
+ 'skip$
+ if$
+ }
+ while$
+ }
+ { t swap$ * }
+ if$
+}
+
+FUNCTION {format.title.noemph}
+{ title empty$
+ { "" }
+ { title }
+ if$
+}
+
+FUNCTION {format.title}
+{ title empty$
+ { "" }
+ { title emphasize }
+ if$
+}
+
+
+FUNCTION {format.booktitle}
+{ booktitle title empty$
+ { "" }
+ { booktitle emphasize }
+ if$
+}
+
+FUNCTION {n.dashify}
+{ 't :=
+ ""
+ { t empty$ not }
+ { t #1 #1 substring$ "-" =
+ { t #1 #2 substring$ "--" = not
+ { "--" *
+ t #2 global.max$ substring$ 't :=
+ }
+ { { t #1 #1 substring$ "-" = }
+ { "-" *
+ t #2 global.max$ substring$ 't :=
+ }
+ while$
+ }
+ if$
+ }
+ { t #1 #1 substring$ *
+ t #2 global.max$ substring$ 't :=
+ }
+ if$
+ }
+ while$
+}
+
+FUNCTION {format.date}
+{ year empty$
+ { "" }
+ { year }
+ if$
+}
+
+FUNCTION {format.bdate}
+{ year empty$
+ { "There's no year in " cite$ * warning$ }
+ 'year
+ if$
+}
+
+FUNCTION {either.or.check}
+{ empty$
+ 'pop$
+ { "Can't use both " swap$ * " fields in " * cite$ * warning$ }
+ if$
+}
+
+FUNCTION {format.bvolume}
+{ volume empty$
+ { "" }
+ { bbl.volume volume tie.or.space.connect }
+ if$
+}
+
+FUNCTION {format.number.series}
+{ volume empty$
+ { number empty$
+ { series field.or.null }
+ { output.state mid.sentence =
+ { "no." }
+ { "No." }
+ if$
+ number tie.or.space.connect
+ series empty$
+ { "There's a number but no series in " cite$ * warning$ }
+ { " in " * series * }
+ if$
+ }
+ if$
+ }
+ { "" }
+ if$
+}
+
+FUNCTION {format.edition}
+{ edition duplicate$ empty$
+ 'skip$
+ { convert.edition
+ bbl.edition bibinfo.check
+ " " * bbl.edition *
+ }
+ if$
+}
+
+INTEGERS { multiresult }
+
+FUNCTION {multi.page.check}
+{ 't :=
+ #0 'multiresult :=
+ { multiresult not
+ t empty$ not
+ and
+ }
+ { t #1 #1 substring$
+ duplicate$ "-" =
+ swap$ duplicate$ "," =
+ swap$ "+" =
+ or or
+ { #1 'multiresult := }
+ { t #2 global.max$ substring$ 't := }
+ if$
+ }
+ while$
+ multiresult
+}
+
+FUNCTION {format.pages}
+{ pages empty$
+ { "" }
+ { pages multi.page.check
+ { bbl.pages pages n.dashify tie.or.space.connect }
+ { bbl.page pages tie.or.space.connect }
+ if$
+ }
+ if$
+}
+
+% \end{macrocode}
+% The next function is used for page numbers which be be present and
+% have ``p.'' or ``pp.'' added.
+% \begin{macrocode}
+
+FUNCTION {format.pages.required}
+{ pages empty$
+ { ""
+ "There are no page numbers for " cite$ * warning$
+ output
+ }
+ { pages multi.page.check
+ { bbl.pages pages n.dashify tie.or.space.connect }
+ { bbl.page pages tie.or.space.connect }
+ if$
+ }
+ if$
+}
+% \end{macrocode}
+% Even if no volume is given, the RSC does not use ``p.'' or
+% ``pp.'' for journal articles. So two page formatting functions
+% are needed.
+% \begin{macrocode}
+FUNCTION {format.pages.nopp}
+{ pages empty$
+ { ""
+ "There are no page numbers for " cite$ * warning$
+ output
+ }
+ { pages multi.page.check
+ { pages n.dashify space.connect }
+ { pages space.connect }
+ if$
+ }
+ if$
+}
+
+% \end{macrocode}
+% Patent numbers have special formatting, including
+% digit grouping.
+% \begin{macrocode}
+FUNCTION {format.pages.patent}
+{ pages empty$
+ { "There is no patent number for " cite$ * warning$ }
+ { pages multi.page.check
+ { pages n.dashify }
+ { pages n.separate.multi }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.vol.pages}
+{ volume boldface field.or.null
+ duplicate$ empty$
+ { pop$ format.pages.required }
+ { ", " * pages n.dashify * }
+ if$
+}
+
+FUNCTION {format.chapter.pages}
+{ chapter empty$
+ 'format.pages
+ { type empty$
+ { bbl.chapter }
+ { type "l" change.case$ }
+ if$
+ chapter tie.or.space.connect
+ pages empty$
+ 'skip$
+ { ", " * format.pages * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.in.ed.booktitle}
+{ booktitle empty$
+ { "" }
+ { editor empty$
+ { "in " booktitle emphasize * }
+ { "in " format.editors * ", " * booktitle emphasize * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.in.title.ed}
+{ title empty$
+ { "" }
+ { editor empty$
+ { " in " title emphasize * }
+ { " in " title emphasize * ", " * format.editors * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.in.booktitle.ed}
+{ booktitle empty$
+ { "" }
+ { editor empty$
+ { " in " booktitle emphasize * }
+ { " in " booktitle emphasize * ", " * format.editors * }
+ if$
+ }
+ if$
+}
+
+FUNCTION {format.pub.address}
+{ publisher empty$
+ { "" }
+ { address empty$
+ { publisher }
+ { publisher ", " * address *}
+ if$
+ }
+ if$
+}
+
+FUNCTION {empty.misc.check}
+{ author empty$ title empty$ howpublished empty$
+ year empty$ note empty$
+ and and and and
+ { "all relevant fields are empty in " cite$ * warning$ }
+ 'skip$
+ if$
+}
+
+FUNCTION {empty.doi.note}
+{ doi empty$ note empty$ and
+ { "Need either a note or DOI for " cite$ * warning$ }
+ 'skip$
+ if$
+}
+
+FUNCTION {format.thesis.type}
+{ type empty$
+ 'skip$
+ { pop$
+ type emphasize
+ }
+ if$
+}
+
+% \end{macrocode}
+% The main style functions are now given in alphabetical
+% order. Cross-referenced functions are given at the end.
+% Notice that the \BibTeX\ |crossref| system is not used, as
+% this is not how the RSC give references (it is not really needed
+% for chemistry).
+% \begin{macrocode}
+FUNCTION {article}
+{ output.bibitem
+ format.authors "author" output.check
+ journal emphasize "journal" output.check
+ format.date "year" output.check
+ volume empty$
+ { ""
+ format.pages.nopp output
+ }
+ { format.vol.pages output }
+ if$
+ fin.entry
+}
+
+% \end{macrocode}
+% For a book, we have to have an editor or an author. This is
+% tested for here. If both are present, only the author is used.
+% \begin{macrocode}
+FUNCTION {book}
+{ output.bibitem
+ author empty$
+ { format.title "title" output.check
+ editor empty$
+ { "Need either an author or editor for " cite$ * warning$ }
+ { "" format.editors * "editor" output.check }
+ if$
+ }
+ { format.authors output.nonnull
+ "author and editor" editor either.or.check
+ format.title "title" output.check
+ }
+ if$
+ format.pub.address "publisher" output.check
+ format.edition output
+ format.bdate "year" output.check
+ format.bvolume output
+ fin.entry
+}
+
+FUNCTION {booklet}
+{ output.bibitem
+ format.authors output
+ format.title "title" output.check
+ howpublished output
+ address output
+ format.date output
+ fin.entry
+}
+
+FUNCTION {inbook}
+{ output.bibitem
+ author empty$
+ { format.title "title" output.check
+ editor empty$
+ { "Need at least an author or an editor for " cite$ * warning$ }
+ { "" format.editors * "editor" output.check }
+ if$
+ }
+ { format.authors output.nonnull
+ format.in.title.ed "title" output.check
+ }
+ if$
+ format.pub.address "publisher" output.check
+ format.edition output
+ format.bdate "year" output.check
+ format.bvolume output
+ format.chapter.pages "chapter and pages" output.check
+ fin.entry
+}
+
+% \end{macrocode}
+% As the RSC do not use chapter titles, this is almost
+% identical to inbook. We only have to swap the field 'title'
+% for 'booktitle'.
+% \begin{macrocode}
+FUNCTION {incollection}
+{ output.bibitem
+ author empty$
+ { format.booktitle "booktitle" output.check
+ editor empty$
+ { "Need at least an author or an editor for " cite$ * warning$ }
+ { "" format.editors * "editor" output.check }
+ if$
+ }
+ { format.authors output.nonnull
+ format.in.booktitle.ed "booktitle" output.check
+ }
+ if$
+ format.pub.address "publisher" output.check
+ format.edition output
+ format.bdate "year" output.check
+ format.bvolume output
+ format.chapter.pages "chapter and pages" output.check
+ fin.entry
+}
+
+% \end{macrocode}
+% A non-standard type, for compatibility with |achmeso|.
+% \begin{macrocode}
+FUNCTION {inpress}
+{ output.bibitem
+ format.authors "author" output.check
+ journal emphasize "journal" output.check
+ bbl.inpress output
+ fin.entry
+}
+
+FUNCTION {inproceedings}
+{ output.bibitem
+ format.authors "author" output.check
+ booktitle "booktitle" output.check
+ address output
+ format.date "year" output.check
+ fin.entry
+}
+
+FUNCTION {manual}
+{ output.bibitem
+ author empty$
+ { organization empty$
+ 'skip$
+ { organization output.nonnull
+ address output
+ }
+ if$
+ }
+ { format.authors output.nonnull }
+ if$
+ format.title "title" output.check
+ author empty$
+ { organization empty$
+ { address output }
+ 'skip$
+ if$
+ }
+ { organization output
+ address output
+ }
+ if$
+ format.edition output
+ format.date output
+ fin.entry
+}
+
+FUNCTION {mastersthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ bbl.msc emphasize format.thesis.type output.nonnull
+ school "school" output.check
+ address output
+ format.date "year" output.check
+ fin.entry
+}
+
+FUNCTION {misc}
+{ output.bibitem
+ format.authors output
+ format.title output
+ howpublished output
+ format.bdate output
+ note output
+ fin.entry
+ empty.misc.check
+}
+
+% \end{macrocode}
+% Although patent is not a standard \BibTeX\ entry type, it is
+% very useful to have it available. It is also aliased as
+% ``other''.
+% \begin{macrocode}
+FUNCTION {patent}
+{ output.bibitem
+ organization empty$
+ { format.authors "author and organization" output.check }
+ { author empty$
+ { organization }
+ { format.authors organization paren space.connect }
+ if$
+ "author and organization" output.check
+ }
+ if$
+ journal emphasize "journal" output.check
+ format.pages.patent "pages" output.check
+ format.date "year" output.check
+ fin.entry
+}
+
+FUNCTION {phdthesis}
+{ output.bibitem
+ format.authors "author" output.check
+ bbl.phd emphasize format.thesis.type output.nonnull
+ school "school" output.check
+ address output
+ format.date "year" output.check
+ fin.entry
+}
+
+FUNCTION {proceedings}
+{ output.bibitem
+ format.title.noemph "title" output.check
+ address output
+ format.date "year" output.check
+ fin.entry
+}
+
+% \end{macrocode}
+% A non-standard type, for compatibility with |achmeso|.
+% \begin{macrocode}
+FUNCTION {remark}
+{ output.bibitem
+ note "note" output.check
+ fin.entry
+}
+
+FUNCTION {submitted}
+{ output.bibitem
+ format.authors "author" output.check
+ bbl.submitted output
+ fin.entry
+}
+
+FUNCTION {techreport}
+{ output.bibitem
+ format.authors "author" output.check
+ format.title "title" output.check
+ institution
+% \end{macrocode}
+% At this point, we combined the institution,
+% report type and number as the RSC style suggests.
+% \begin{macrocode}
+ type empty$
+ 'bbl.techreport
+ 'type
+ if$
+ space.connect
+ number empty$
+ { "t" change.case$ }
+ { number tie.or.space.connect }
+ if$
+ output.nonnull
+ format.pub.address output
+ format.date "year" output.check
+ fin.entry
+}
+
+% \end{macrocode}
+% For unpublished works, the note is used unless
+% there is a DOI.
+% \begin{macrocode}
+FUNCTION {unpublished}
+{ output.bibitem
+ format.authors "author" output.check
+ journal empty$
+ 'skip$
+ { journal emphasize "journal" output.check }
+ if$
+ doi empty$
+ { note output }
+ { format.date output
+ "DOI:" doi tie.or.space.connect output }
+ if$
+ fin.entry
+ empty.doi.note
+}
+
+% \end{macrocode}
+% The following are all cross-referenced to
+% other types, so are grouped in one block.
+% \begin{macrocode}
+FUNCTION {conference} {inproceedings}
+
+FUNCTION {other} {patent}
+
+FUNCTION {default.type} {misc}
+
+MACRO {jan} {"January"}
+MACRO {feb} {"February"}
+MACRO {mar} {"March"}
+MACRO {apr} {"April"}
+MACRO {may} {"May"}
+MACRO {jun} {"June"}
+MACRO {jul} {"July"}
+MACRO {aug} {"August"}
+MACRO {sep} {"September"}
+MACRO {oct} {"October"}
+MACRO {nov} {"November"}
+MACRO {dec} {"December"}
+
+READ
+
+STRINGS { longest.label }
+
+INTEGERS { number.label longest.label.width }
+
+FUNCTION {initialize.longest.label}
+{ "" 'longest.label :=
+ #1 'number.label :=
+ #0 'longest.label.width :=
+}
+
+FUNCTION {longest.label.pass}
+{ number.label int.to.str$ 'label :=
+ number.label #1 + 'number.label :=
+ label width$ longest.label.width >
+ { label 'longest.label :=
+ label width$ 'longest.label.width :=
+ }
+ 'skip$
+ if$
+}
+
+EXECUTE {initialize.longest.label}
+
+ITERATE {longest.label.pass}
+
+% \end{macrocode}
+% \iffalse
+%</bib|bib-mc>
+% \fi
+% Once again, there is a variation in what is needed, depending
+% on whether |mcite| is to be used. First the standard functon.
+% \iffalse
+%<*bib>
+% \fi
+% \begin{macrocode}
+FUNCTION {begin.bib}
+{ preamble$ empty$
+ 'skip$
+ { preamble$ write$ newline$ }
+ if$
+ "\begin{thebibliography}{" longest.label * "}" * write$ newline$
+}
+
+% \end{macrocode}
+% \iffalse
+%</bib>
+% \fi
+% Then the alternative for |mcite|.
+% \iffalse
+%<*bib-mc>
+% \fi
+% \begin{macrocode}
+FUNCTION {begin.bib}
+{ preamble$ empty$
+ 'skip$
+ { preamble$ write$ newline$ }
+ if$
+ "\begin{mcbibliography}{" longest.label * "}" * write$ newline$
+}
+
+% \end{macrocode}
+% \iffalse
+%</bib-mc>
+% \fi
+% Back with shared code.
+% \iffalse
+%<*bib|bib-mc>
+%\fi
+% \begin{macrocode}
+EXECUTE {begin.bib}
+
+EXECUTE {init.state.consts}
+
+ITERATE {call.type$}
+
+% \end{macrocode}
+% \iffalse
+%</bib|bib-mc>
+% \fi
+% The final variations for |mcite|.
+% \iffalse
+%<*bib>
+% \fi
+% \begin{macrocode}
+FUNCTION {end.bib}
+{ newline$
+ "\end{thebibliography}" write$ newline$
+}
+
+% \end{macrocode}
+% \iffalse
+%</bib>
+% \fi
+% |mcite| version.
+% \iffalse
+%<*bib-mc>
+% \fi
+% \begin{macrocode}
+FUNCTION {end.bib}
+{ newline$
+ "\end{mcbibliography}" write$ newline$
+}
+
+% \end{macrocode}
+% \iffalse
+%</bib-mc>
+% \fi
+% Finish off
+% \iffalse
+%<*bib|bib-mc>
+% \fi
+% \begin{macrocode}
+EXECUTE {end.bib}
+% \end{macrocode}
+% \iffalse
+%</bib|bib-mc>
+% \fi
+% Phew, all done!
+% \PrintChanges
+% \Finale
+% \end{document}
+\endinput
diff --git a/Master/texmf-dist/source/latex/rsc/rsc.ins b/Master/texmf-dist/source/latex/rsc/rsc.ins
new file mode 100644
index 00000000000..4f2c40b815a
--- /dev/null
+++ b/Master/texmf-dist/source/latex/rsc/rsc.ins
@@ -0,0 +1,37 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% rsc is free software; you can redistribute it and/or modify it
+% under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2, or (at your option)
+% any later version.
+%
+% rsc is distributed in the hope that it will be useful, but
+% WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with this program; if not, write to the Free Software
+% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\input docstrip.tex
+\preamble
+ ----------------------------------------------------------------
+ The rsc package - BibTeX and macro support for Royal Society
+ of Chemistry style articles
+ Maintained by Joseph A. Wright
+ E-mail: joseph.wright@morningstar2.co.uk
+ Released under the GNU General Public License
+ See http://www.gnu.org/licenses/gpl.txt
+ ----------------------------------------------------------------
+\endpreamble
+\Msg{Generating package file rsc.bst:}
+\generateFile{rsc.bst}{f}{\from{rsc.dtx}{bib}}
+\Msg{Generating package file rsc-mc.bst:}
+\generateFile{rsc-mc.bst}{f}{\from{rsc.dtx}{bib-mc}}
+\Msg{Generating package file rsc.sty:}
+\generateFile{rsc.sty}{f}{\from{rsc.dtx}{package}}
+\Msg{Generating package file rsc.tex:}
+\generateFile{rsc.tex}{f}{\from{rsc.dtx}{template}}
+\endbatchfile