summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/rsc
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2008-09-08 00:26:52 +0000
committerKarl Berry <karl@freefriends.org>2008-09-08 00:26:52 +0000
commit06ebf7d14fd3c483ed229b86d938732cf3f6a5d2 (patch)
tree9e7ce6c30307798cacf45704443c9de484ab9603 /Master/texmf-dist/source/latex/rsc
parent883bf95bf548e81277aeb42fc6e26f1926744a3a (diff)
rsc 3.0 (27aug08)
git-svn-id: svn://tug.org/texlive/trunk@10467 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/rsc')
-rw-r--r--Master/texmf-dist/source/latex/rsc/rsc.dtx1248
-rw-r--r--Master/texmf-dist/source/latex/rsc/rsc.ins110
2 files changed, 762 insertions, 596 deletions
diff --git a/Master/texmf-dist/source/latex/rsc/rsc.dtx b/Master/texmf-dist/source/latex/rsc/rsc.dtx
index 7256cac6f41..dd5d0d8d577 100644
--- a/Master/texmf-dist/source/latex/rsc/rsc.dtx
+++ b/Master/texmf-dist/source/latex/rsc/rsc.dtx
@@ -5,33 +5,38 @@
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either
-% version 1.3 of this license or (at your option) any later
+% 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 has the LPPL maintenance status ``maintained.''
+% This work has the LPPL maintenance status `maintained'.
%
% The current maintainer of this work is Joseph Wright.
%
% This work consists of the source file rsc.dtx
% and the derived files rsc.ins,
% rsc.sty,
-% rsc.pdf,
% rsc.bst,
-% rscM.bst
-% rscnat.bst,
-% rsc-mc.bst,
% angew.bst,
-% angeM.bst
-% angewnat.bst,
-% angew-mc.bst and
-% jawltxdoc.sty
+% jawltxdoc.sty,
+% rsc-manual.pdf and
+% rsc.pdf
+%
+% TDS-ready files:
+% The compressed file rsc.tds.zip contains an unpacked version of
+% all of the files included here, and pre-compiled documentation
+% in PDF format. Simply decompress rsc.tds.dtx in your local TeX
+% directory, run your hash program (texhash, initexmf
+% --update-fndb, etc.) and everything will be ready to go. The
+% user documentation for the package is called rsc-manual.pdf; the
+% file rsc.pdf includes the user manual and the full source code.
+%
% Unpacking:
-% (a) If achemso.ins is present:
+% (a) If rsc.ins is present:
% tex rsc.ins
-% (b) Without achemso.ins:
+% (b) Without rsc.ins:
% tex rsc.dtx
% (c) If you use LaTeX to generate files:
% latex \let\install=y\input{rsc.dtx}
@@ -39,9 +44,10 @@
% Documentation:
% (a) Without write18 enabled:
% pdflatex rsc.dtx
-% makeindex -s gglo.ist -o rsc.gls rsc.glo
+% bibtex8 --wolfgang rsc
+% makeindex -s gind.ist rsc.idx
+% makeindex -s gglo.ist -o rsc.gls rsc.glo
% pdflatex rsc.dtx
-% makeindex -s gglo.ist -o rsc.gls rsc.glo
% pdflatex rsc.dtx
% (b) With write18 enabled:
% pdflatex rsc.dtx
@@ -49,14 +55,15 @@
% pdflatex rsc.dtx
%
% Installation:
-% Copy rsc.sty and the *.bst files to a location
-% searched by TeX, and if required by your TeX installation,
-% run the appropriate command to build a hash of files
-% (texhash, mpm --update-db, etc.)
+% Copy rsc.sty and the two .bst files to a location searched by
+% TeX, and if required by your TeX installation, run the
+% appropriate command to build a hash of files (texhash, initexmf
+% --update-fndb, etc.)
%
% Note:
-% The jawltxdoc.sty file is not needed for installation,
-% only for building the documentation. It may be deleted.
+% The jawltxdoc.sty file is not needed for installation, only for
+% building the documentation; it may be deleted after producing
+% the documentation (if necessary).
%
%<*ignore>
% This is all taken verbatim from Heiko Oberdiek's packages
@@ -74,54 +81,68 @@
\askforoverwritefalse
\preamble
----------------------------------------------------------------
- The rsc package - BibTeX support for Royal Society of Chemistry
- and Wiley style article
+ The rsc package --- BibTeX styles for Royal Society of Chemistry
+ and Wiley journals
Maintained by Joseph Wright
E-mail: joseph.wright@morningstar2.co.uk
- Released under the LaTeX Project Public License v1.3 or later
+ Released under the LaTeX Project Public License v1.3c or later
See http://www.latex-project.org/lppl.txt
----------------------------------------------------------------
\endpreamble
-\Msg{Generating achemso files:}
-\usedir{tex/latex/contib/rsc}
+\Msg{Generating rsc files:}
+\generate{\file{jawltxdoc.sty}{\from{\jobname.dtx}{jawltxdoc}}
+}
+\usedir{tex/latex/rsc}
+\generate{\file{\jobname.sty}{\from{\jobname.dtx}{package}}
+}
+\usedir{source/latex/rsc}
\generate{\file{\jobname.ins}{\from{\jobname.dtx}{install}}
- \file{\jobname.sty}{\from{\jobname.dtx}{package}}
- \file{jawltxdoc.sty}{\from{\jobname.dtx}{jawltxdoc}}
}
-\declarepostamble\bibtexable
-\endpostamble
+\nopostamble
\usedir{bibtex/bst/rsc}
-\generate{\usepostamble\bibtexable
- \file{rsc.bst}{\from{rsc.dtx}{bib,rsc}}
- \file{rscnat.bst}{\from{rsc.dtx}{bib,rsc,nat}}
- \file{rsc-mc.bst}{\from{rsc.dtx}{bib,rsc,mc}}
+\generate{\file{rsc.bst}{\from{rsc.dtx}{bib,rsc}}
\file{angew.bst}{\from{rsc.dtx}{bib,angew}}
- \file{angewnat.bst}{\from{rsc.dtx}{bib,angew,nat}}
- \file{angew-mc.bst}{\from{rsc.dtx}{bib,angew,mc}}
}
-\generate{\usepostamble\bibtexable
- \file{rscM.bst}{\from{rsc.dtx}{bib,rsc,mcp}}
- \file{angewM.bst}{\from{rsc.dtx}{bib,angew,mcp}}
- \file{rscnatM.bst}{\from{rsc.dtx}{bib,rsc,nat,mcp}}
- \file{angewnatM.bst}{\from{rsc.dtx}{bib,angew,nat,mcp}}
+\nopreamble\nopostamble
+\usedir{doc/latex/rsc}
+\generate{\file{README.txt}{\from{\jobname.dtx}{readme}}
+ \file{\jobname.bib}{\from{\jobname.dtx}{refs}}
}
\endbatchfile
%</install>
+%<*readme>
+----------------------------------------------------------------
+The rsc package --- BibTeX styles for Royal Society of Chemistry
+and Wiley journals
+Maintained by Joseph Wright
+E-mail: joseph.wright@morningstar2.co.uk
+Released under the LaTeX Project Public License v1.3c or later
+See http://www.latex-project.org/lppl.txt
+----------------------------------------------------------------
+
+The rsc package provides BibTeX style files to produce
+bibliographies in accordance with the guidelines of the Royal
+Society of Chemistry and Wiley chemistry-related journals. The
+styles require the use of natbib and mciteplus. In addition, a
+short LaTeX package is included; this provides a convenient
+user interface to the customisation hooks made available by the
+BibTeX styles.
+%</readme>
%<*ignore>
\fi
% Will Robertson's trick
+\immediate\write18{bibtex8 --wolfgang \jobname}
+\immediate\write18{makeindex -s gglo.ist -o \jobname.gls \jobname.glo}
\immediate\write18{makeindex -s gglo.ist -o \jobname.gls \jobname.glo}
%</ignore>
%<*driver>
\PassOptionsToClass{a4paper}{article}
-\documentclass{ltxdoc}
+\documentclass[german,english,UKenglish]{ltxdoc}
\EnableCrossrefs
\CodelineIndex
\RecordChanges
%\OnlyDescription
-% The various formatting commands used in this file are collected
-% together in |jawltxdoc|.
\usepackage{jawltxdoc}
\begin{document}
\DocInput{\jobname.dtx}
@@ -129,7 +150,7 @@
%</driver>
% \fi
%
-%\CheckSum{42}
+%\CheckSum{118}
%
% \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
@@ -149,26 +170,16 @@
%
%\GetFileInfo{\jobname.sty}
%
-%\changes{v2.1}{2007/08/05}{Moved float centring to
-% \pkg{chemscheme} package}
-%\changes{v2.0}{2007/07/21}{Complete re-write of float support}
-%\changes{v2.0}{2007/07/21}{General tidying of code}
-%\changes{v1.0}{2006/11/08}{Initial release of packaged rsc.bst}
-%\changes{v2.1a}{2007/08/24}{Fixed error in \BibTeX\ misc output}
-%\changes{v2.2}{2007/10/16}{Added \textsc{url} support to
-% \texttt{Misc} field}
-%\changes{v2.2}{2007/10/16}{License change to LPPL}
-%\changes{v2.2}{2007/10/16}{Improved packaging}
-%\changes{v2.2}{2007/10/16}{\LaTeX\ package converted to stub}
-%\changes{v2.2a}{2008/01/16}{Added \pkg{mciteplus} support}
-%\changes{v2.2a}{2008/01/16}{Documentation improvements}
-%\changes{v2.2b}{2008/01/16}{Added combined \pkg{mciteplus} and
-% \pkg{natbib} support}
+%\changes{v1.0}{2006/11/08}{Initial release of packaged
+% \file{rsc.bst}}
+%\changes{v2.0}{2007/07/21}{First re-write of package}
+%\changes{v3.0}{2008/07/20}{Second re-write of package}
%
-%\DoNotIndex{}
+%\setkeys{lst}{language=[LaTeX]{TeX},moretexcs={citet,
+% citeyear,citeauthor}}
%
-%\title{The \currpkg\ package --- \texorpdfstring{\BibTeX}{BibTeX}
-% support for Royal Society of Chemistry and Wiley style articles^^A
+%\title{\currpkg\ --- \texorpdfstring{\BibTeX}{BibTeX} styles for
+% Royal Society of Chemistry and Wiley journals^^A
% \thanks{This file describes version \fileversion, last revised
% \filedate.}}
%\author{Joseph Wright^^A
@@ -180,12 +191,17 @@
%\begin{abstract}
% The \currpkg package provides \BibTeX\ style files to produce
% bibliographies in accordance with the guidelines of the Royal
-% Society of Chemistry and Wiley chemistry-related journals. The
-% style files are available in versions for the standard \LaTeX\
-% citation methods and for use with \pkg{natbib}. Versions for use
-% with \pkg{mcite} and \pkg{mciteplus} are also available.
+% Society of Chemistry and Wiley chemistry-related journals. The
+% styles require the use of \pkg{natbib} and \pkg{mciteplus}. In
+% addition, a short \LaTeX\ package is included; this provides a
+% convenient user interface to the customisation hooks made available
+% by the \BibTeX\ styles.
%\end{abstract}
%
+%\begin{multicols}{2}
+% \tableofcontents
+%\end{multicols}
+%
%\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
@@ -196,222 +212,211 @@
% of Chemistry. The package also provides support for the style used
% in Wiley-published journals.
%
-% The \ext{bst} files are available in a number of variations. Those
-% for RSC journals are names \file{rsc\meta{id}.bst}, those for Wiley
-% journals are \file{angew\meta{id}.bst}. The value of \meta{id} can
-% be:
-%\begin{itemize}
-% \item \meta{(none)} For use with standard \LaTeX\ citations (or
-% the \pkg{cite} package;
-% \item \meta{nat} \pkg{natbib}-compatible styles (which need the
-% \opt{numbers,super} options with \pkg{natbib};
-% \item \meta{M} Designed for use with the \pkg{mciteplus} package;
-% \item \meta{natM} Combine \pkg{mciteplus} and \pkg{natbib} support;
-% \item \meta{-mc} For use with the \pkg{mcite} package, and provided
-% for back-compatibility only.
-%\end{itemize}
-%
-% For backward-compatibility the package provides the
-% \file{rsc.sty} file. This has been superseded by the
-% \pkg{chemstyle} package, and may be dropped in a future version of
-% \pkg{rsc}.
+% As of version 3, this bundle requires the use of \pkg{natbib} and
+% \pkg{mciteplus}. These two packages make creating bibliographies
+% much easier for chemists. As both require correctly-designed
+% \BibTeX\ styles, providing versions supporting different combinations
+% had become error-prone and confusing.
%
-%\section{Bibliography design decisions}
-% Along with almost every \BibTeX\ style file, much of the \ext{bst}
-% file design is inherited from the original \BibTeX\ style files
-% provided by Oren Patashnik. However, while the original styles
-% were designed to be flexible, the style files here are 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 style files provided here are
-% therefore poor examples for others to work from!
-%
-% Chemistry journals give only minimal guidance on the format of
-% references other than for journal articles. Most of the
-% other types are therefore based on current practice in
-% RSC and Wiley journals. Some of this is contradictory, and so
-% I have gone with I feel is most consistent.
-% Please e-mail me if you feel I have got things wrong!
-%
-%\section{Bibliography usage information}
-%\subsection{Cross-references}
-% Unlike most \BibTeX\ styles, the style files provided here do not
-% support cross-referencing between references. Using \opt{crossref}
-% will still fill in missing information, but will not output ``see
-% ref.~X''. Chemistry references do not lend themselves to the use
-% of \opt{crossref}.
-%
-%\subsection{Notes}
-% As in \file{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.
-% The \pkg{mciteplus} package solves this problem, and is highly
-% recommended to users of \currpkg. This allows you to put something
-% like:
-%\begin{LaTeXexample}[\typesetcodeonly]
+%\section{Using the styles}
+% The styles are used in the normal way for \BibTeX\ styles, as the
+% argument to the \cs{bibliographystyle} macro. As both \pkg{natbib}
+% and \pkg{mciteplus} are required, these must of course be loaded.
+% Citations can then be given as normal:
+%\begin{LaTeXexample}
+% Some standard citations
+% \cite{Abernethy2003,Cotton1999}.\\
+% A multiple citation
+% \cite{Arduengo1992,*Arduengo1994}.\\
+% Some \textsf{natbib}-specific features:
+% \citet{Abernethy2003} have said something,
+% as reported by \citeauthor{Cotton1999},
+% in \citeyear{Arduengo1992}.
+%\end{LaTeXexample}
+% To make life slightly easier for the user, a small \LaTeX\ package
+% accompanies the \BibTeX\ files. It automatically loads the support
+% packages, and handles customisation (see the next section).
+%\begin{LaTeXexample}[noexample]
% \documentclass{article}
-% \usepackage{mciteplus}
+% \usepackage{rsc}
% \begin{document}
-% \cite{Ofele1968,*Abernethy2000}
-% \bibliography{example}
-% \bibliographystyle{rscM}
+% % Document body here
+% \bibliographystyle{rsc} % or angew
+% \bibliography{your-bibtex-database}
% \end{document}
%\end{LaTeXexample}
-% and get output of the form:
-%\begin{enumerate}
-% \item (\emph{a}) K.~\"Ofele, \emph{J.~Organomet.~Chem.}, 1968,
-% \textbf{12}, P42--P43; (\emph{b}) C.~D.~Abernethy, A.~H.~Cowley
-% and R.~A.\ Jones, \emph{J.~Organomet.~Chem.}, 2000,
-% \textbf{596}, 3--5.
-%\end{enumerate}
-% in the bibliography.
%
-% Previous versions of \currpkg recommended the \pkg{mcite} package
-% for compound citations. With the release of \pkg{mciteplus},
-% \pkg{mcite} is superseded for this
-% purpose.\footnote{\pkg{mciteplus} fixes a number of bugs in
-% \pkg{mcite} and adds the ability to add labels to each compound
-% reference.} However, \currpkg continues to provide the
-% \file{rsc-mc} and \file{angew-mc} \BibTeX\ styles for users of
-% \pkg{mcite}.
+%\section{Customising the styles: the \texorpdfstring{\LaTeX}{LaTeX}
+% package}
+% Both of the styles provide a small number of control hooks to
+% modify the output behaviour. These can be altered directly, using
+% a mechanism similar to that used by \pkg{IEEEtrans}. However, for
+% most users, this is overly complex. A short \LaTeX\ package is
+% therefore provided, which provides high-level access to the
+% customisation.
%
-%\subsection{\pkg{natbib} support}
-% The files \file{rscnat.bst} and \file{angewnat.bst} provide support
-% for the generation of bibliographies for use with the \pkg{natbib}
-% package. As well as altering the \cs{bibliographystyle} command
-% appropriately, you also need to load \pkg{natbib}. The \currpkg
-% package file provides the option \opt{natbib}, which loads
-% \pkg{natbib} automatically (normally, \currpkg loads the \pkg{cite}
-% package).
+%\DescribeOption{maxnames}
+%\DescribeOption{usetitle}
+%\DescribeOption{usedoi}
+% The \opt{maxnames} option sets whether and when a long list of
+% authors is truncated, and takes an integer value. Giving the value
+% \opt{0} means that no truncation occurs, otherwise the list is
+% truncated if the number of names exceeds the given value. The
+% \opt{usetitle} and \opt{usedoi} options are simple Boolean
+% switches. The \opt{usetitle} option sets whether to include the
+% titles of journal articles in the bibliography. The default is
+% \opt{false}; the only \textsc{rsc} journal using article titles is
+% \emph{Photochemical \& Photobiological Sciences}. The \opt{usedoi}
+% option forces the use of \textsc{doi} information in cases where it
+% would not normally be present (for example journal articles with
+% page ranges available). This is intended to make it easier for
+% readers to find journal information.
%
-%\subsection{Additional entry types}
-% In order to ensure compatibility with the \pkg{achemso} package,
-% the non-standard entry types |remark|, |inpress| and |submitted|
-% are supported. The implementation is modelled on
-% \file{achemso.bst}, but the |notes| field is not used for |inpress|
-% and |submitted|.
+%\DescribeOption{super}
+% The \opt{super} Boolean option turns on superscript citations, and
+% is \opt{true} by default. It also causes the \pkg{natmove} package
+% to be loaded if available (\pkg{natmove} is part of the
+% \pkg{achemso} bundle). This ensures that citations appear
+% \emph{after} punctuation even if given before in the text. This
+% documentation has been compiled using \pkg{natmove}: see the input
+% of the example citations in the previous section.
%
-%\StopEventually{}
+%\bibliographystyle{rsc}
+%\StopEventually{%
+% \PrintChanges
+% \PrintIndex
+% \bibliography{rsc}}
%
-% \iffalse
+%\iffalse
%<*package>
-% \fi
-%\section{The package code}
-%\subsection{Setup code}
-% First of all, the package identifies itself.
+%\fi
+%
+%\section{The \texorpdfstring{\LaTeX}{LaTeX} source}
+% The package starts with the usual identification.
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{rsc}[2008/01/16 v2.2b
- Useful chemistry functions]
-% \end{macrocode}
-% A warning is given that the package has been superseded.
-% \begin{macrocode}
-\PackageInfo{rsc}{The rsc package has been superseded!}
-% \end{macrocode}
-% Various options from the original package have to
-% be processed correctly.
-% \begin{macrocode}
-\DeclareOption{floatleft}{\AtEndOfPackage{\floatcontentsleft}}
-\DeclareOption{fl}{\ExecuteOptions{floatleft}}
-\DeclareOption{natbib}{\AtEndOfPackage{%
- \RequirePackage[numbers,sort&compress,super]{natbib}}}
-% \end{macrocode}
-% The default option is \opt{rsc}. This loads \pkg{chemstyle} with
-% the appropriate option, then alters the bibliography format and
-% reports back to the user.
-% \begin{macrocode}
-\DeclareOption{rsc}{%
- \PassOptionsToPackage{\CurrentOption}{chemstyle}%
- \def\@biblabel#1{#1}%
- \PackageInfo{rsc}%
- {Loading the chemstyle package with the `rsc' option}%
-}
+\ProvidesPackage{rsc}
+ [2008/08/27 v3.0 Support for RSC and Wiley journals]
+\RequirePackage{mciteplus,kvoptions}
% \end{macrocode}
-% The other possible journal style is |angew|. Once again,
-% |chemstyle| is loaded and information is given. A bit of
-% re-formatting of citations is then carried out as the |chemstyle|
-% package does not do this.
+%\begin{macro}{\ifrsc@super}
+%\begin{macro}{\ifrsc@usetitle}
+%\begin{macro}{\ifrsc@usedoi}
+%\begin{macro}{\rsc@maxauthors}
+% To make life easier for the user, the control values for the
+% bibliography are converted into \LaTeX\ package options using
+% \pkg{kvoptions}.
% \begin{macrocode}
-\DeclareOption{angew}{%
- \PassOptionsToPackage{\CurrentOption}{chemstyle}%
- \PackageInfo{rsc}%
- {Loading the chemstyle package with the `angew' option}%
- \AtBeginDocument{%
- \@ifpackageloaded{natbib}
- {\renewcommand*\NAT@open{[}\renewcommand*\NAT@close{]}}
- {\def\@citess#1{\textsuperscript{[#1]}}}
- }
-}
+\SetupKeyvalOptions{
+ family = rsc,
+ prefix = rsc@}
+\DeclareBoolOption{super}
+\DeclareBoolOption{usetitle}
+\DeclareBoolOption{usedoi}
+\DeclareStringOption{maxauthors}
+\setkeys{rsc}{
+ maxauthors = 0,
+ usetitle = false,
+ usedoi = false,
+ super = true}
+\ProcessKeyvalOptions{rsc}
% \end{macrocode}
-% Anything else is passed to \pkg{chemstyle}.
+%\end{macro}
+%\end{macro}
+%\end{macro}
+%\end{macro}
+%\begin{macro}{\rsc@prefix}
+%\begin{macro}{\rsc@msg}
+% Some set up work is carried out for writing to the control
+% bibliography.
% \begin{macrocode}
-\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{chemstyle}}
+\newcommand*{\rsc@prefix}{rsc-}
+\edef\rsc@msg{%
+ This is an auxiliary file used by the `rsc' package.^^J%
+ This file may safely be deleted. It will be recreated as
+ required.^^J}
% \end{macrocode}
-% The \currpkg option is the default.
+%\end{macro}
+%\end{macro}
+%\begin{macro}{\rsc@out}
+%\begin{macro}{\rsc@stream}
+% Assuming files are being written, the control values are placed in
+% the control \BibTeX\ database.
% \begin{macrocode}
-\ExecuteOptions{rsc}
-\ProcessOptions\relax
+\if@filesw
+ \newwrite\rsc@out
+ \newcommand*\rsc@stream{\rsc@prefix\jobname.bib}%
+ \immediate\openout\rsc@out\rsc@stream\relax
+ \immediate\write\rsc@out{\rsc@msg}%
+ \edef\@tempa#1#2{\space\space#1\space=\space"#2",^^J}%
+ \immediate\write\rsc@out{%
+ @Control\string{rsc-control,^^J%
+ \@tempa{ctrl-use-title}{\ifrsc@usetitle yes\else no\fi}%
+ \@tempa{ctrl-etal-number}{\rsc@maxauthors}%
+ \@tempa{ctrl-use-doi-all}{\ifrsc@usedoi yes\else no\fi}%
+ \string}^^J}%
+\fi
% \end{macrocode}
-% \pkg{chemstyle} can now be loaded.
+%\end{macro}
+%\end{macro}
+%\begin{macro}{\rsc@bibliography}
+%\begin{macro}{\bibliography}
+% Finally, the control database and a suitable citation are added to
+% the document body. The citation has to come right at the end of
+% the \cs{document} macro.
% \begin{macrocode}
-\RequirePackage{chemstyle}
-\floatcontentscentre
+\AtBeginDocument{
+ \let\rsc@bibliography\bibliography
+ \renewcommand*{\bibliography}[1]{%
+ \rsc@bibliography{\rsc@prefix\jobname,#1}}}
+\g@addto@macro{\document}{%
+ \if@filesw
+ \immediate\write\@auxout{%
+ \string\citation\string{rsc-control\string}}%
+ \fi}
% \end{macrocode}
-% If \pkg{natbib} is not loaded, then \pkg{cite} is needed.
+%\end{macro}
+%\end{macro}
+% Citation support is loaded.
% \begin{macrocode}
-\AtEndOfPackage{
- \@ifpackageloaded{natbib}{}
- {\RequirePackage[super]{cite}}
-}
+\ifrsc@super
+ \RequirePackage[sort&compress,numbers,super]{natbib}
+ \IfFileExists{natmove.sty}
+ {\RequirePackage{natmove}}
+ {}
+\else
+ \RequirePackage[sort&compress,numbers]{natbib}
+\fi
% \end{macrocode}
%
-% \iffalse
+%\iffalse
%</package>
-% \fi
-%\section{The \texorpdfstring{\BibTeX}{BibTeX} style files}
-% A great deal of the \BibTeX\ style file information is lifted more
-% or less directly from the standard style files, the
-% \pkg{custom-bib} package or \emph{Taming the BeaST}. The rest
-% consists of minor edits to obtain the correct format or support the
-% \pkg{natbib}, \pkg{mcite} and \pkg{mciteplus} packages. Only two
-% functions are novel to this package, and are given here for the
-% interested reader.
-%
-% \iffalse
%<*bib>
+%\fi
+%\section{The \texorpdfstring{\BibTeX}{BibTeX} source}
+% Very little of the \BibTeX\ source is very exciting, with
+% most of it taken from the standard classes, the \pkg{natbib} and
+% \pkg{mciteplus} classes or \emph{Tame the BeaST}.
% \begin{macrocode}
ENTRY
{ address
author
booktitle
chapter
+% \end{macrocode}
+% The next three entries are used to allow formatting control, in
+% the style of \pkg{biblatex}.
+% \begin{macrocode}
+ ctrl-use-title
+ ctrl-etal-number
+ ctrl-use-doi-all
doi
edition
editor
howpublished
institution
journal
-%<nat> key
+ key
note
number
organization
@@ -426,16 +431,14 @@ ENTRY
year
}
{}
-%<!nat> { label }
-%<*nat>
{ label
extra.label
short.list
}
-%</nat>
-INTEGERS { output.state before.all mid.sentence after.sentence }
-INTEGERS { after.block after.item author.or.editor }
+INTEGERS { output.state before.all mid.sentence }
+INTEGERS { after.sentence after.block after.item }
+INTEGERS { author.or.editor }
FUNCTION {init.state.consts}
{ #0 'before.all :=
@@ -445,6 +448,29 @@ FUNCTION {init.state.consts}
#4 'after.item :=
}
+% \end{macrocode}
+% Using a trick from \pkg{biblatex}, some integers are made available
+% to control some formatting aspects without needing a new style.
+% \begin{macrocode}
+INTEGERS { is.use.title etal.number use.doi.all }
+
+% \end{macrocode}
+% A simple Boolean switch for controlling title output.
+% \begin{macrocode}
+FUNCTION {default.is.use.title} { #0 }
+
+% \end{macrocode}
+% The number of names that force ``\emph{et al.}'' to be used
+%If set to 0, all names are displayed
+% \begin{macrocode}
+FUNCTION {default.etal.number} { #0 }
+
+% \end{macrocode}
+% A simple Boolean switch for controlling DOI printing for normal
+% entries.
+% \begin{macrocode}
+FUNCTION {default.use.doi.all} { #0 }
+
FUNCTION {add.comma}
{ ", " * }
@@ -490,37 +516,11 @@ FUNCTION {output.check}
if$
}
-%<*!nat>
-FUNCTION {output.bibitem}
-{ newline$
- "\bibitem{" write$
- cite$ write$
- "}" write$
- newline$
- ""
- before.all 'output.state :=
-}
-
-%</!nat>
-%<*!mc&!mcp>
-FUNCTION {fin.entry}
-{ add.period$
- write$
- newline$
-}
-
-%</!mc&!mcp>
-%<*mc>
-FUNCTION {fin.entry}
-{ write$
- "\relax" write$
- newline$
- "\relax" write$
-}
+% \end{macrocode}
+% Some functions taken more or less verbatim from \pkg{mciteplus}.
+% \begin{macrocode}
+INTEGERS { would.add.period.textlen }
-%</mc>
-%<*mcp>
-INTEGERS {would.add.period.textlen}
FUNCTION {would.add.period}
{ duplicate$
add.period$
@@ -554,8 +554,6 @@ FUNCTION {fin.entry}
"\EndOfBibitem" write$
}
-%</mcp>
-
FUNCTION {not}
{ { #0 }
{ #1 }
@@ -602,6 +600,10 @@ FUNCTION {paren}
if$
}
+% \end{macrocode}
+% Using independent strings makes editing easier. Here, a number of
+% variations between the RSC and Wiley styles show up.
+% \begin{macrocode}
FUNCTION {bbl.and}
{ "and" }
@@ -609,6 +611,10 @@ FUNCTION {bbl.chapter}
%<rsc>{ "ch." }
%<angew>{ "Chapter" }
+FUNCTION {bbl.doi}
+%<rsc>{ "DOI:" }
+%<angew>{ "DOI" }
+
FUNCTION {bbl.editor}
%<rsc>{ "ed." }
%<angew>{ "Ed.:" }
@@ -702,7 +708,9 @@ FUNCTION {eng.ord}
if$
}
-%<*angew>
+% \end{macrocode}
+% A search and replace system taken from \emph{Tame the BeaST}.
+% \begin{macrocode}
INTEGERS{ l }
FUNCTION{string.length}
@@ -736,7 +744,22 @@ FUNCTION{find.replace}
while$
}
-%</angew>
+% \end{macrocode}
+% Also some checks on whether a ``string'' is really a number.
+% \begin{macrocode}
+FUNCTION {chr.to.value}
+{ chr.to.int$ #48 -
+ duplicate$ duplicate$
+ #0 < swap$ #9 > or
+ { #48 + int.to.chr$
+ " is not a number..." *
+ warning$
+ pop$ #0
+ }
+ {}
+ if$
+}
+
FUNCTION{is.a.digit}
{ duplicate$ "" =
{pop$ #0}
@@ -836,29 +859,40 @@ FUNCTION {format.names}
#1 'nameptr :=
s num.names$ 'numnames :=
numnames 'namesleft :=
- { namesleft #0 > }
- { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't :=
- nameptr #1 >
- { namesleft #1 >
- { add.comma t * }
- { numnames #2 >
- { "" * }
- 'skip$
- if$
- t "others" =
- { bbl.etal space.connect }
-%<rsc> { bbl.and space.connect t space.connect }
-%<angew> { add.comma t * }
+% \end{macrocode}
+% Names are truncated if there are more than |etal.number|, and it is
+% not set to zero.
+% \begin{macrocode}
+ numnames etal.number > etal.number #0 > and
+ { s #1 "{f.~}{vv~}{ll}{, jj}" format.name$ 't :=
+ t bbl.etal space.connect
+ }
+ {
+ { namesleft #0 > }
+ { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't :=
+ nameptr #1 >
+ { namesleft #1 >
+ { add.comma t * }
+ { numnames #2 >
+ { "" * }
+ 'skip$
+ if$
+ t "others" =
+ { bbl.etal space.connect }
+%<rsc> { bbl.and space.connect t space.connect }
+%<angew> { add.comma t * }
+ if$
+ }
if$
}
- if$
- }
- 't
- if$
- nameptr #1 + 'nameptr :=
- namesleft #1 - 'namesleft :=
- }
- while$
+ 't
+ if$
+ nameptr #1 + 'nameptr :=
+ namesleft #1 - 'namesleft :=
+ }
+ while$
+ }
+ if$
}
FUNCTION {format.authors}
@@ -870,14 +904,9 @@ FUNCTION {format.authors}
}
% \end{macrocode}
-% \fi
-% The |strip.comma| function is used to ``unwind''
-% the comma added by output.nonnull, so that editors
-% in brackets are easy to do. This is needed for the |angew|
-% option.
-% \iffalse
-%<*angew>
-% \fi
+% The |strip.comma| function is used to ``unwind'' the comma added by
+% |output.nonnull|, so that editors in brackets are easy to do. This
+% is needed for the Wiley style.
% \begin{macrocode}
FUNCTION {strip.comma}
{ duplicate$
@@ -892,37 +921,38 @@ FUNCTION {strip.comma}
if$
}
-% \end{macrocode}
-% \iffalse
-%</angew>
-% \begin{macrocode}
FUNCTION {format.editors}
{ editor empty$
{ "" }
{ #2 'author.or.editor :=
-%<*rsc>
- bbl.editor " " * *
- editor format.names
-%</rsc>
-%<*angew>
- strip.comma
- editor num.names$ #1 >
- { bbl.editors }
- { bbl.editor }
+%<rsc> bbl.editor " " * *
+%<rsc> editor format.names
+%<angew> strip.comma
+%<angew> editor num.names$ #1 >
+%<angew> { bbl.editors }
+%<angew> { bbl.editor }
+%<angew> if$
+%<angew> " " *
+%<angew> editor format.names * paren
+ }
+ if$
+}
+
+FUNCTION {format.doi}
+{ use.doi.all
+ { doi empty$
+ { bbl.doi doi tie.or.space.connect output }
+ 'skip$
if$
- " " *
- editor format.names * paren
-%</angew>
}
+ 'skip$
if$
}
% \end{macrocode}
-% \fi
-%
-% |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
+% |n.separate| is given in the \pkg{custom-bib} package. The
+% following function is modified to separate out a number of any
+% length into digit groups, \eg~12345 turns into 12\,345, 1234567 in
% 1\,234\,567 but 1234 or a12345 are left alone.
% \begin{macrocode}
FUNCTION {n.separate.multi}
@@ -957,9 +987,6 @@ FUNCTION {n.separate.multi}
if$
}
-% \end{macrocode}
-% \iffalse
-% \begin{macrocode}
FUNCTION {format.bvolume}
{ volume empty$
{ "" }
@@ -990,7 +1017,6 @@ FUNCTION {format.url}
if$
}
-%<*angew>
FUNCTION {format.title.vol}
{ 't :=
t empty$
@@ -1005,8 +1031,6 @@ FUNCTION {format.title.vol}
if$
}
-%</angew>
-%<*nat>
FUNCTION {format.full.names}
{'s :=
#1 'nameptr :=
@@ -1092,7 +1116,6 @@ FUNCTION {output.bibitem} { newline$
before.all 'output.state :=
}
-%</nat>
FUNCTION {n.dashify} { 't :=
""
{ t empty$ not }
@@ -1136,7 +1159,8 @@ FUNCTION {format.bdate}
FUNCTION {either.or.check}
{ empty$
'pop$
- { "Can't use both " swap$ * " fields in " * cite$ * warning$ }
+ { "Can't use both " swap$ * " fields in "
+ * cite$ * warning$ }
if$
}
@@ -1263,7 +1287,6 @@ FUNCTION {format.title.in}
if$
}
-%<*angew>
FUNCTION {format.title.vol.in}
{ 's :=
after.item 'output.state :=
@@ -1279,7 +1302,6 @@ FUNCTION {format.title.vol.in}
if$
}
-%</angew>
FUNCTION {format.pub.address}
{ publisher empty$
{ "" }
@@ -1319,19 +1341,25 @@ FUNCTION {format.thesis.type}
FUNCTION {article}
{ output.bibitem
format.authors "author" output.check
+% \end{macrocode}
+% To allow titles to appear in article citations without needing a
+% separate \BibTeX\ style file.
+% \begin{macrocode}
+ is.use.title
+ { title format.title.noemph "title" output.check }
+ 'skip$
+ if$
%<rsc> journal emphasize "journal" output.check
-%<*angew>
- journal "," "" find.replace emphasize
- "journal" output.check
- after.item 'output.state :=
-%</angew>
+%<angew>
+%<angew> journal "," "" find.replace emphasize
+%<angew> "journal" output.check
+%<angew> after.item 'output.state :=
format.date "year" output.check
volume empty$
- { ""
- format.pages.nopp output
- }
- { format.vol.pages output }
+ { "" format.pages.nopp output }
+ { format.vol.pages output }
if$
+ format.doi
fin.entry
}
@@ -1341,7 +1369,8 @@ FUNCTION {book}
%<rsc> { title format.title "title" output.check
%<angew> { title format.title.vol "title" output.check
editor empty$
- { "Need either an author or editor for " cite$ * warning$ }
+ { "Need either an author or editor for "
+ cite$ * warning$ }
{ "" format.editors * "editor" output.check }
if$
}
@@ -1359,6 +1388,7 @@ FUNCTION {book}
'skip$
{ format.pages output }
if$
+ format.doi
fin.entry
}
@@ -1369,6 +1399,7 @@ FUNCTION {booklet}
howpublished output
address output
format.date output
+ format.doi
fin.entry
}
@@ -1378,7 +1409,8 @@ FUNCTION {inbook}
%<rsc> { title format.title "title" output.check
%<angew> { title format.title.vol "title" output.check
editor empty$
- { "Need at least an author or an editor for " cite$ * warning$ }
+ { "Need at least an author or an editor for "
+ cite$ * warning$ }
{ "" format.editors * "editor" output.check }
if$
}
@@ -1392,22 +1424,28 @@ FUNCTION {inbook}
format.bdate "year" output.check
%<rsc> format.bvolume output
format.chapter.pages "chapter and pages" output.check
+ format.doi
fin.entry
}
FUNCTION {incollection}
{ output.bibitem
author empty$
-%<rsc> { booktitle format.title "booktitle" output.check
-%<angew> { booktitle format.title.vol "booktitle" output.check
+ { booktitle
+%<rsc> format.title
+%<angew> format.title.vol
+ "booktitle" output.check
editor empty$
- { "Need at least an author or an editor for " cite$ * warning$ }
+ { "Need at least an author or an editor for "
+ cite$ * warning$ }
{ "" format.editors * "editor" output.check }
if$
}
{ format.authors output
-%<rsc> booktitle format.title.in "booktitle" output.check
-%<angew> booktitle format.title.vol.in "booktitle" output.check
+ booktitle
+%<rsc> format.title
+%<angew> format.title.vol
+ "booktitle" output.check
}
if$
format.pub.address "publisher" output.check
@@ -1415,6 +1453,7 @@ FUNCTION {incollection}
format.bdate "year" output.check
%<rsc> format.bvolume output
format.chapter.pages "chapter and pages" output.check
+ format.doi
fin.entry
}
@@ -1423,6 +1462,7 @@ FUNCTION {inpress}
format.authors "author" output.check
journal emphasize "journal" output.check
bbl.inpress output
+ format.doi
fin.entry
}
@@ -1437,6 +1477,7 @@ FUNCTION {inproceedings}
'skip$
{ format.pages output }
if$
+ format.doi
fin.entry
}
@@ -1466,6 +1507,7 @@ FUNCTION {manual}
if$
format.edition output
format.date output
+ format.doi
fin.entry
}
@@ -1477,6 +1519,7 @@ FUNCTION {mastersthesis}
school "school" output.check
address output
format.date "year" output.check
+ format.doi
fin.entry
}
@@ -1492,6 +1535,7 @@ FUNCTION {misc}
%<angew> format.date output
format.url output
note output
+ format.doi
fin.entry
empty.misc.check
}
@@ -1510,6 +1554,7 @@ FUNCTION {patent}
journal emphasize "journal" output.check
format.pages.patent "pages" output.check
format.date "year" output.check
+ format.doi
fin.entry
}
@@ -1521,6 +1566,7 @@ FUNCTION {phdthesis}
school "school" output.check
address output
format.date "year" output.check
+ format.doi
fin.entry
}
@@ -1534,19 +1580,7 @@ FUNCTION {proceedings}
'skip$
{ format.pages output }
if$
- fin.entry
-}
-
-FUNCTION {remark}
-{ output.bibitem
- note "note" output.check
- fin.entry
-}
-
-FUNCTION {submitted}
-{ output.bibitem
- format.authors "author" output.check
- bbl.submitted output
+ format.doi
fin.entry
}
@@ -1567,6 +1601,7 @@ FUNCTION {techreport}
output
format.pub.address output
format.date "year" output.check
+ format.doi
fin.entry
}
@@ -1579,17 +1614,104 @@ FUNCTION {unpublished}
if$
doi empty$
{ note output }
-%<*rsc>
- { format.date output
- "DOI:" doi tie.or.space.connect output
- }
-%</rsc>
-%<angew> { "DOI" doi tie.or.space.connect output }
+ {
+%<rsc> format.date output
+ bbl.doi doi tie.or.space.connect output
+ }
if$
fin.entry
empty.doi.note
}
+% \end{macrocode}
+% Using the same mechanism as in \pkg{biblatex}, control of output
+% can be achieved using a special entry type. The auxiliary macros
+% come from \pkg{biblatex} and \emph{Tame the BeaST}.
+% \begin{macrocode}
+INTEGERS { a b }
+
+FUNCTION {mult}
+{ 'a :=
+ 'b :=
+ b #0 <
+ {#-1 #0 b - 'b :=}
+ {#1}
+ if$
+ #0
+ {b #0 >}
+ { a +
+ b #1 - 'b :=
+ }
+ while$
+ swap$
+ 'skip$
+ {#0 swap$ -}
+ if$
+}
+
+FUNCTION {str.to.int.aux}
+{ {duplicate$ empty$ not}
+ { swap$ #10 mult 'a :=
+ duplicate$ #1 #1 substring$
+ chr.to.value a +
+ swap$
+ #2 global.max$ substring$
+ }
+ while$
+ pop$
+}
+
+FUNCTION {str.to.int}
+{ duplicate$ #1 #1 substring$ "-" =
+ {#1 swap$ #2 global.max$ substring$}
+ {#0 swap$}
+ if$
+ #0 swap$ str.to.int.aux
+ swap$
+ {#0 swap$ -}
+ {}
+ if$
+}
+
+FUNCTION {yes.no.to.int}
+{ "l" change.case$ duplicate$
+ "yes" =
+ { pop$ #1 }
+ { duplicate$ "no" =
+ { pop$ #0 }
+ { "unknown Boolean " quote$ * swap$ * quote$ *
+ " in " * cite$ * warning$
+ #0
+ }
+ if$
+ }
+ if$
+}
+
+FUNCTION {Control}
+{ ctrl-use-title
+ empty$
+ { skip$ }
+ { ctrl-use-title
+ yes.no.to.int
+ 'is.use.title := }
+ if$
+ ctrl-etal-number
+ empty$
+ { skip$ }
+ { ctrl-etal-number
+ str.to.int
+ 'etal.number := }
+ if$
+ ctrl-use-doi-all
+ empty$
+ { skip$ }
+ { ctrl-use-doi-all
+ yes.no.to.int
+ 'use.doi.all := }
+ if$
+}
+
FUNCTION {conference} {inproceedings}
FUNCTION {other} {patent}
@@ -1611,34 +1733,15 @@ MACRO {dec} {"December"}
READ
-%<*!nat>
-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$
+% \end{macrocode}
+% Set up the special control entries.
+% \begin{macrocode}
+FUNCTION {initialize.controls}
+{ default.is.use.title 'is.use.title :=
+ default.etal.number 'etal.number :=
+ default.use.doi.all 'use.doi.all :=
}
-EXECUTE {initialize.longest.label}
-
-ITERATE {longest.label.pass}
-
-%</!nat>
-%<*nat>
INTEGERS { len }
FUNCTION {chop.word}
@@ -1660,7 +1763,8 @@ FUNCTION {format.lab.names}
'skip$
{ s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
{ bbl.etal space.connect }
- { bbl.and space.connect s #2 "{vv~}{ll}" format.name$ space.connect }
+ { bbl.and space.connect s #2 "{vv~}{ll}"
+ format.name$ space.connect }
if$
}
if$
@@ -1699,7 +1803,8 @@ FUNCTION {author.key.organization.label}
{ key empty$
{ organization empty$
{ cite$ #1 #3 substring$ }
- { "The " #4 organization chop.word #3 text.prefix$ }
+ { "The " #4 organization chop.word #3
+ text.prefix$ }
if$
}
'key
@@ -1714,7 +1819,8 @@ FUNCTION {editor.key.organization.label}
{ key empty$
{ organization empty$
{ cite$ #1 #3 substring$ }
- { "The " #4 organization chop.word #3 text.prefix$ }
+ { "The " #4 organization chop.word #3
+ text.prefix$ }
if$
}
'key
@@ -1788,25 +1894,6 @@ EXECUTE {initialize.longest.label}
ITERATE {forward.pass}
-%</nat>
-%<*!mcp>
-FUNCTION {begin.bib}
-{ preamble$ empty$
- 'skip$
- { preamble$ write$ newline$ }
- if$
- "\providecommand{\url}[1]{\texttt{#1}}"
- write$ newline$
-%<!nat&!mc> "\begin{thebibliography}{" longest.label * "}" * write$ newline$
-%<!nat&mc> "\begin{mcbibliography}{" longest.label * "}" * write$ newline$
-%<nat> "\begin{thebibliography}{" number.label int.to.str$ * "}" *
-%<nat> write$ newline$
-%<nat> "\providecommand{\natexlab}[1]{#1}"
-%<nat> write$ newline$
-}
-
-%</!mcp>
-%<*mcp>
FUNCTION {begin.bib}
{ preamble$ empty$
'skip$
@@ -1814,73 +1901,126 @@ FUNCTION {begin.bib}
if$
"\ifx\mcitethebibliography\mciteundefinedmacro"
write$ newline$
-%<rsc> "\PackageError{rscM.bst}{mciteplus.sty has not been loaded}"
-%<angew> "\PackageError{angewM.bst}{mciteplus.sty has not been loaded}"
+ " \PackageError"
+%<rsc> "{rsc.bst}"
+%<angew> "{angew.bst}"
+ "{mciteplus.sty has not been loaded}" * *
+ write$ newline$
+ " {This bibstyle requires the use of the"
+ " mciteplus package.}" *
+ write$ newline$
+ "\fi"
+ write$ newline$
+ "\begin{mcitethebibliography}{"
+ number.label int.to.str$ * "}" *
write$ newline$
- "{This bibstyle requires the use of the mciteplus package.}\fi"
+ "\providecommand{\natexlab}[1]{#1}"
write$ newline$
-%<!nat> "\begin{mcitethebibliography}{" longest.label * "}" * write$ newline$
-%<nat> "\begin{mcitethebibliography}{" number.label int.to.str$ * "}" *
-%<nat> write$ newline$
-%<nat> "\providecommand{\natexlab}[1]{#1}"
-%<nat> write$ newline$
"\mciteSetBstSublistMode{f}"
write$ newline$
-%<rsc> "\mciteSetBstMaxWidthForm{subitem}{(\emph{\alph{mcitesubitemcount}})}"
-%<angew> "\mciteSetBstMaxWidthForm{subitem}{\alph{mcitesubitemcount})}"
+ "\mciteSetBstMaxWidthForm{subitem}"
write$ newline$
- "\mciteSetBstSublistLabelBeginEnd{\mcitemaxwidthsubitemform\space}"
+%<rsc> "{(\emph{\alph{mcitesubitemcount}})}"
+%<angew> "{\alph{mcitesubitemcount})}"
+ write$ newline$
+ "\mciteSetBstSublistLabelBeginEnd"
+ write$ newline$
+ "{\mcitemaxwidthsubitemform\space}"
write$ newline$
"{\relax}{\relax}"
write$ newline$
}
-%</mcp>
EXECUTE {begin.bib}
EXECUTE {init.state.consts}
ITERATE {call.type$}
-%<*!mc&!mcp>
-FUNCTION {end.bib}
-{ newline$
- "\end{thebibliography}" write$ newline$
-}
-
-%</!mc&!mcp>
-%<*mc>
-FUNCTION {end.bib}
-{ newline$
- "\end{mcbibliography}" write$ newline$
-}
-
-%</mc>
-%<*mcp>
FUNCTION {end.bib}
{ newline$
"\end{mcitethebibliography}" write$ newline$
}
-%</mcp>
EXECUTE {end.bib}
% \end{macrocode}
+%\iffalse
%</bib>
%\fi
-%\PrintChanges
+%
%\Finale
%\iffalse
+%<*refs>
+@ARTICLE{Abernethy2003,
+ author = {Colin D. Abernethy and Gareth M. Codd and Mark D. Spicer
+ and Michelle K. Taylor},
+ title = {{A} highly stable {N}-heterocyclic carbene complex of
+ trichloro-oxo-vanadium(\textsc{v}) displaying novel
+ {C}l---{C}(carbene) bonding interactions},
+ journal = {{J}. {A}m. {C}hem. {S}oc.},
+ year = {2003},
+ volume = {125},
+ pages = {1128--1129},
+ number = {5},
+ doi = {10.1021/ja0276321},
+}
+
+@ARTICLE{Arduengo1992,
+ author = {Arduengo, III, Anthony J. and H. V. Rasika Dias and
+ Richard L. Harlow and Michael Kline},
+ title = {{E}lectronic stabilization of nucleophilic carbenes},
+ journal = {{J}.~{A}m.\ {C}hem.\ {S}oc.},
+ year = {1992},
+ volume = {114},
+ pages = {5530--5534},
+ number = {14},
+ doi = {10.1021/ja00040a007},
+}
+
+@ARTICLE{Arduengo1994,
+ author = {Arduengo, III, Anthony J. and Siegfried F. Gamper and
+ Joseph C. Calabrese and Fredric Davidson},
+ title = {{L}ow-coordinate carbene complexes of nickel(0) and
+ platinum(0)},
+ journal = jacsat,
+ year = {1994},
+ volume = {116},
+ pages = {4391--4394},
+ number = {10},
+ doi = {10.1021/ja00089a029},
+}
+
+@BOOK{Cotton1999,
+ title = {{A}dvanced {I}norganic {C}hemistry},
+ publisher = {Wiley},
+ year = {1999},
+ author = {Cotton, Frank Albert and Wilkinson, Geoffrery and
+ Murillio, Carlos A. and Bochmann, Manfred},
+ address = {Chichester},
+ edition = {6},
+}
+%</refs>
%<*jawltxdoc>
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{jawltxdoc}
\usepackage[T1]{fontenc}
-\usepackage[english,UKenglish]{babel}
+\usepackage{lmodern}
+\usepackage[final]{listings,graphicx,microtype}
\usepackage[scaled=0.95]{helvet}
\usepackage[version=3]{mhchem}
-\usepackage[final]{microtype}
\usepackage[osf]{mathpazo}
-\usepackage{booktabs,array,url,graphicx,courier,xspace}
-\usepackage{upgreek,ifpdf,listings}
+\usepackage{booktabs,array,url,courier,xspace,varioref}
+\usepackage{upgreek,ifpdf,float,caption,longtable,babel}
+\begingroup
+ \@ifundefined{eTeXversion}
+ {\aftergroup\@gobble}
+ {\aftergroup\@firstofone}
+\endgroup
+ {\usepackage{etoolbox}}
+\floatstyle{plaintop}
+\restylefloat{table}
+\labelformat{figure}{\figurename~#1}
+\labelformat{table}{\tablename~#1}
\ifpdf
\usepackage{embedfile}
\embedfile[%
@@ -1892,118 +2032,148 @@ EXECUTE {end.bib}
\IfFileExists{\jobname.sty}
{\usepackage{\jobname}}{}
\usepackage[numbered]{hypdoc}
+\setcounter{IndexColumns}{2}
\newlength\LaTeXwidth
\newlength\LaTeXoutdent
\newlength\LaTeXgap
\setlength\LaTeXgap{1em}
\setlength\LaTeXoutdent{-0.15\textwidth}
-\newcommand*{\typesetexampleandcode}{%
- \begin{list}{}{%
- \setlength\itemindent{0pt}
- \setlength\leftmargin\LaTeXoutdent
- \setlength\rightmargin{0pt}
- }
- \item
- \setlength\LaTeXoutdent{-0.15\textwidth}
- \begin{minipage}[c]{\textwidth-\LaTeXwidth-\LaTeXoutdent-\LaTeXgap}
- \lst@sampleInput
- \end{minipage}%
- \hfill%
- \begin{minipage}[c]{\LaTeXwidth}%
- \hbox to\linewidth{\box\lst@samplebox\hss}%
- \end{minipage}%
- \end{list}
-}
-\newcommand*{\typesetcodeandexample}{%
- \begin{list}{}{%
- \setlength\itemindent{0pt}
- \setlength\leftmargin{0pt}
- \setlength\rightmargin{0pt}
- }
- \item
- \begin{minipage}[c]{\LaTeXwidth}%
- \hbox to\linewidth{\box\lst@samplebox\hss}%
- \end{minipage}%
- \lst@sampleInput
- \end{list}
-}
-\newcommand*{\typesetfloatexample}{%
- \begin{list}{}{%
- \setlength\itemindent{0pt}
- \setlength\leftmargin{0pt}
- \setlength\rightmargin{0pt}
- }
- \item
- \lst@sampleInput
- \begin{minipage}[c]{\LaTeXwidth}%
- \hbox to\linewidth{\box\lst@samplebox\hss}%
- \end{minipage}%
- \end{list}
-}
-\newcommand*{\typesetcodeonly}{%
- \begin{list}{}{%
- \setlength\itemindent{0pt}
- \setlength\leftmargin{0pt}
- \setlength\rightmargin{0pt}
- }
- \item
- \begin{minipage}[c]{\LaTeXwidth}%
- \hbox to\linewidth{\box\lst@samplebox\hss}%
- \end{minipage}%
- \end{list}
-}
+\newbox\lst@samplebox
\edef\LaTeXexamplefile{\jobname.tmp}
\lst@RequireAspects{writefile}
-\newbox\lst@samplebox
-\lstnewenvironment{LaTeXexample}[1][\typesetexampleandcode]{%
- \let\typesetexample#1
+\lstnewenvironment{LaTeXexample}[1][example]{%
\global\let\lst@intname\@empty
+ \ifcsname LaTeXcode#1\endcsname
+ \expandafter\let\expandafter\LaTeXcode
+ \csname LaTeXcode#1\endcsname
+ \expandafter\let\expandafter\LaTeXcodeend
+ \csname LaTeXcode#1end\endcsname
+ \else
+ \PackageError{jawltxdoc}
+ {Undefined example type `#1'}
+ \@ehd
+ \let\LaTeXcode\relax
+ \let\LaTeXcodeend\relax
+ \fi
+ \LaTeXcode}
+ {\lst@EndWriteFile
+ \LaTeXcodeend}
+\newcommand*{\LaTeXcodeexample}{%
\setbox\lst@samplebox=\hbox\bgroup
- \setkeys{lst}{language=[LaTeX]{TeX},tabsize=4,gobble=3,%
- breakindent=0pt,basicstyle=\small\ttfamily,basewidth=0.51em,%
- keywordstyle=\color{blue},%
- morekeywords={% notes2bib
- niibsetup,bibnote,bibnotetext,bibnotemark,thebibnote,%
- flushnotestack,citenote,printbibnotes}}
- \lst@BeginAlsoWriteFile{\LaTeXexamplefile}
-}{%
- \lst@EndWriteFile\egroup
- \setlength\LaTeXwidth{\wd\lst@samplebox}
- \typesetexample%
-}
-\newcommand*{\lst@sampleInput}{%
+ \LaTeXcodefloat}
+\let\LaTeXcoderesultonly\LaTeXcodeexample
+\newcommand*{\LaTeXcodeexampleend}{%
+ \egroup
+ \setlength\LaTeXwidth{\wd\lst@samplebox}%
+ \begin{list}{}{%
+ \setlength\itemindent{0pt}
+ \setlength\leftmargin\LaTeXoutdent
+ \setlength\rightmargin{0pt}}%
+ \item
+ \setlength\LaTeXoutdent{-0.15\textwidth}
+ \begin{minipage}[c]{%
+ \textwidth-\LaTeXwidth-\LaTeXoutdent-\LaTeXgap}
+ \LaTeXcodefloatend
+ \end{minipage}%
+ \hfill
+ \begin{minipage}[c]{\LaTeXwidth}%
+ \hbox to\linewidth{\box\lst@samplebox\hss}%
+ \end{minipage}%
+ \end{list}}
+\newcommand*{\LaTeXcodefloat}{%
+ \setkeys{lst}{tabsize=4,gobble=3,breakindent=0pt,
+ basicstyle=\small\ttfamily,basewidth=0.51em,
+ keywordstyle=\color{blue}}%
+ \lst@BeginAlsoWriteFile{\LaTeXexamplefile}}
+\let\LaTeXcodenoexample\LaTeXcodefloat
+\let\LaTeXcodenoexampleend\@empty
+\newcommand*{\LaTeXcodefloatend}{%
\MakePercentComment\catcode`\^^M=10\relax
- \small%
+ \small
{\setkeys{lst}{SelectCharTable=\lst@ReplaceInput{\^\^I}%
{\lst@ProcessTabulator}}%
\leavevmode \input{\LaTeXexamplefile}}%
- \MakePercentIgnore%
-}
+ \MakePercentIgnore}
+\newcommand*{\LaTeXcoderesultonlyend}{\egroup\LaTeXcodefloatend}
+\lstnewenvironment{BibTeXexample}{%
+ \global\let\lst@intname\@empty
+ \setbox\lst@samplebox=\hbox\bgroup
+ \setkeys{lst}{tabsize=4,gobble=3,breakindent=0pt,
+ basicstyle=\small\ttfamily,basewidth=0.51em,
+ keywordstyle=\color{black}}
+ \lst@BeginAlsoWriteFile{\LaTeXexamplefile}}
+ {\lst@EndWriteFile
+ \LaTeXcodeexampleend}
+\newcommand*{\DescribeOption}{%
+ \leavevmode\@bsphack\begingroup\MakePrivateLetters
+ \Describe@Option}
+\newcommand*{\Describe@Option}[1]{\endgroup
+ \marginpar{\raggedleft\PrintDescribeEnv{#1}}%
+ \SpecialOptionIndex{#1}\@esphack\ignorespaces}
+\newcommand*{\SpecialOptionIndex}[1]{\@bsphack
+ \index{#1\actualchar{\protect\ttfamily#1}
+ (option)\encapchar usage}%
+ \index{options:\levelchar#1\actualchar{\protect\ttfamily#1}%
+ \encapchar usage}\@esphack}
+\newcommand*{\indexopt}[1]{\DescribeOption{#1}\opt{#1}}
+\newcommand*{\DescribeOptionInfo}[2]{%
+ \DescribeOption{#1}%
+ \opt{#1=\meta{#2}}\xspace}
+\newcommand*{\ofixarg}[1]{%
+ {\ttfamily[}%
+ \ifmmode \expandafter \nfss@text \fi
+ {%
+ \meta@font@select
+ \edef\meta@hyphen@restore{%
+ \hyphenchar\the\font\the\hyphenchar\font}%
+ \hyphenchar\font\m@ne
+ \language\l@nohyphenation
+ #1\/%
+ \meta@hyphen@restore
+ }%
+ {\ttfamily]}}
\newcommand*{\pkg}[1]{\textsf{#1}}
\newcommand*{\currpkg}{\pkg{\jobname}\xspace}
\newcommand*{\opt}[1]{\texttt{#1}}
+\newcommand*{\defaultopt}[1]{\opt{\textbf{#1}}}
\newcommand*{\file}[1]{\texttt{#1}}
\newcommand*{\ext}[1]{\file{.#1}}
\newcommand*{\latin}[1]{\emph{#1}}
\newcommand*{\etc}{%
\@ifnextchar.
{\latin{etc}}
- {\latin{etc.}}
- \xspace}
+ {\latin{etc}.\xspace}}
\newcommand*{\eg}{%
\@ifnextchar.
{\latin{e.g}}
- {\latin{e.g.}}
- \xspace}
+ {\latin{e.g}.\xspace}}
\newcommand*{\ie}{%
\@ifnextchar.
{\latin{i.e}}
- {\latin{i.e.}}
- \xspace}
+ {\latin{i.e}.\xspace}}
+\newcommand*{\etal}{%
+ \@ifnextchar.
+ {\latin{et~al.}}
+ {\latin{et~al}.\xspace}}
\newcommand*{\AMS}{{\protect\usefont{OMS}{cmsy}{m}{n}%
A\kern-.1667em\lower.5ex\hbox{M}\kern-.125emS}}
\providecommand*{\eTeX}{\ensuremath{\varepsilon}-\TeX}
-\newcommand*{\XeTeX}
+\DeclareRobustCommand*{\XeTeX}
{X\kern-.125em\lower.5ex\hbox{\reflectbox{E}}\kern-.1667em\TeX}
+\providecommand*{\CTAN}{\textsc{ctan}}
+\@ifpackageloaded{etoolbox}
+ {\patchcmd{\@addmarginpar}
+ {\@latex@warning@no@line {Marginpar on page \thepage\space moved}}
+ {\relax}{}{}}
+ {}
+\newcounter{argument}
+\g@addto@macro\endmacro{\setcounter{argument}{0}}
+\newcommand*\darg[1]{%
+ \stepcounter{argument}%
+ {\ttfamily\char`\#\theargument~:~}#1\par\noindent\ignorespaces}
+\newcommand*\doarg[1]{%
+ \stepcounter{argument}%
+ {\ttfamily\makebox[0pt][r]{[}%
+ \char`\#\theargument]:~}#1\par\noindent\ignorespaces}
%</jawltxdoc>
%\fi
diff --git a/Master/texmf-dist/source/latex/rsc/rsc.ins b/Master/texmf-dist/source/latex/rsc/rsc.ins
index c0967115191..afe2edd1d0d 100644
--- a/Master/texmf-dist/source/latex/rsc/rsc.ins
+++ b/Master/texmf-dist/source/latex/rsc/rsc.ins
@@ -1,57 +1,53 @@
-%%
-%% This is file `rsc.ins',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% rsc.dtx (with options: `install')
-%% ----------------------------------------------------------------
-%% The rsc package - BibTeX support for Royal Society of Chemistry
-%% and Wiley style article
-%% Maintained by Joseph Wright
-%% E-mail: joseph.wright@morningstar2.co.uk
-%% Released under the LaTeX Project Public License v1.3 or later
-%% See http://www.latex-project.org/lppl.txt
-%% ----------------------------------------------------------------
-%%
-\input docstrip.tex
-\keepsilent
-\askforoverwritefalse
-\preamble
- ----------------------------------------------------------------
- The rsc package - BibTeX support for Royal Society of Chemistry
- and Wiley style article
- Maintained by Joseph Wright
- E-mail: joseph.wright@morningstar2.co.uk
- Released under the LaTeX Project Public License v1.3 or later
- See http://www.latex-project.org/lppl.txt
- ----------------------------------------------------------------
-
-\endpreamble
-\Msg{Generating achemso files:}
-\usedir{tex/latex/contib/rsc}
-\generate{\file{\jobname.ins}{\from{\jobname.dtx}{install}}
- \file{\jobname.sty}{\from{\jobname.dtx}{package}}
- \file{jawltxdoc.sty}{\from{\jobname.dtx}{jawltxdoc}}
-}
-\declarepostamble\bibtexable
-\endpostamble
-\usedir{bibtex/bst/rsc}
-\generate{\usepostamble\bibtexable
- \file{rsc.bst}{\from{rsc.dtx}{bib,rsc}}
- \file{rscnat.bst}{\from{rsc.dtx}{bib,rsc,nat}}
- \file{rsc-mc.bst}{\from{rsc.dtx}{bib,rsc,mc}}
- \file{angew.bst}{\from{rsc.dtx}{bib,angew}}
- \file{angewnat.bst}{\from{rsc.dtx}{bib,angew,nat}}
- \file{angew-mc.bst}{\from{rsc.dtx}{bib,angew,mc}}
-}
-\generate{\usepostamble\bibtexable
- \file{rscM.bst}{\from{rsc.dtx}{bib,rsc,mcp}}
- \file{angewM.bst}{\from{rsc.dtx}{bib,angew,mcp}}
- \file{rscnatM.bst}{\from{rsc.dtx}{bib,rsc,nat,mcp}}
- \file{angewnatM.bst}{\from{rsc.dtx}{bib,angew,nat,mcp}}
-}
-\endbatchfile
-\endinput
-%%
-%% End of file `rsc.ins'.
+%%
+%% This is file `rsc.ins',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% rsc.dtx (with options: `install')
+%% ----------------------------------------------------------------
+%% The rsc package --- BibTeX styles for Royal Society of Chemistry
+%% and Wiley journals
+%% Maintained by Joseph Wright
+%% E-mail: joseph.wright@morningstar2.co.uk
+%% Released under the LaTeX Project Public License v1.3c or later
+%% See http://www.latex-project.org/lppl.txt
+%% ----------------------------------------------------------------
+%%
+\input docstrip.tex
+\keepsilent
+\askforoverwritefalse
+\preamble
+ ----------------------------------------------------------------
+ The rsc package --- BibTeX styles for Royal Society of Chemistry
+ and Wiley journals
+ Maintained by Joseph Wright
+ E-mail: joseph.wright@morningstar2.co.uk
+ Released under the LaTeX Project Public License v1.3c or later
+ See http://www.latex-project.org/lppl.txt
+ ----------------------------------------------------------------
+
+\endpreamble
+\Msg{Generating rsc files:}
+\generate{\file{jawltxdoc.sty}{\from{\jobname.dtx}{jawltxdoc}}
+}
+\usedir{tex/latex/rsc}
+\generate{\file{\jobname.sty}{\from{\jobname.dtx}{package}}
+}
+\usedir{source/latex/rsc}
+\generate{\file{\jobname.ins}{\from{\jobname.dtx}{install}}
+}
+\nopostamble
+\usedir{bibtex/bst/rsc}
+\generate{\file{rsc.bst}{\from{rsc.dtx}{bib,rsc}}
+ \file{angew.bst}{\from{rsc.dtx}{bib,angew}}
+}
+\nopreamble\nopostamble
+\usedir{doc/latex/rsc}
+\generate{\file{README.txt}{\from{\jobname.dtx}{readme}}
+ \file{\jobname.bib}{\from{\jobname.dtx}{refs}}
+}
+\endbatchfile
+\endinput
+%%
+%% End of file `rsc.ins'.