summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/rsc
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2007-01-03 01:19:34 +0000
committerKarl Berry <karl@freefriends.org>2007-01-03 01:19:34 +0000
commitae9b91f93a72faaf468c54d28dc3e09fccd562d9 (patch)
treedd55433fb4cb72bfc56bfdaff7a67646da44349b /Master/texmf-dist/source/latex/rsc
parentb2d661dce32486b0e6e8e45af0073c42bd196038 (diff)
rsc update (1jan07)
git-svn-id: svn://tug.org/texlive/trunk@3106 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/rsc')
-rw-r--r--Master/texmf-dist/source/latex/rsc/rsc.dtx1289
-rw-r--r--Master/texmf-dist/source/latex/rsc/rsc.ins29
2 files changed, 1003 insertions, 315 deletions
diff --git a/Master/texmf-dist/source/latex/rsc/rsc.dtx b/Master/texmf-dist/source/latex/rsc/rsc.dtx
index 750a3aaf83f..c5a27526a28 100644
--- a/Master/texmf-dist/source/latex/rsc/rsc.dtx
+++ b/Master/texmf-dist/source/latex/rsc/rsc.dtx
@@ -2,7 +2,7 @@
%<*driver>
% ----------------------------------------------------------------
% The rsc package - BibTeX and macro support for Royal Society
-% of Chemistry style articles
+% of Chemistry and Wiley chemistry articles
% Maintained by Joseph A. Wright
% E-mail: joseph.wright@morningstar2.co.uk
% Released under the GNU General Public License
@@ -15,7 +15,7 @@
\RecordChanges
\OnlyDescription
\GetFileInfo{rsc.sty}
-\title{The \textsf{rsc} package --- A \BibTeX\ style and utilities for
+\title{The \textsf{rsc} package --- BibTeX styles 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}}
@@ -31,72 +31,75 @@
%
% \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.
+% 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. It also provides a small number of useful chemistry
+% related functions.
%
% \end{abstract}
%
% \section{Introduction}
%
-% Although synthetic chemists do not, in the main, use \LaTeX\ for the
+% 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
+% 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.
+% for the style favoured by the Royal Society of Chemistry. The
+% package also provides support for the style used in Wiley-published
+% journals.
%
-% 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|
+% In addition to providing the core |*.bst| files, this package also
+% generates |*-mc.bst|, |rsc.sty| |rsc.tex|. The |*-mc.bst| files
% 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\
+% 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.
+% Along with almost every BibTeX style file, much of the |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!
%
-% 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.
+% 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, |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.
+% Unlike most BibTeX styles, the style files provided here do not
+% support cross-referencing between references. Using |crossref|
+% will still fill in missing information, but will not output
+% ``see ref.~X''. Chemistry references do not lend themselves
+% to the use of |crossref|.
%
% \subsection{Notes}
%
-% As in |pccp.bst|, notes are not output for most reference types.
+% 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.
+% \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.
+% \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.
+% \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}
@@ -108,7 +111,7 @@
%
% \subsection{Multiple citations}
%
-% By default, \BibTeX\ does not handle producing compound references.
+% 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}
@@ -117,10 +120,10 @@
% 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.
+% BibTeX style file, it seems a good idea to provide one
+% automatically. The |*-mc.bst| are produced with the necessary
+% modifications made to |*.bst|. Note that this requires
+% |\usepackage{mcite}| in your LaTeX source.
%
% \subsection{Additional entry types}
%
@@ -134,10 +137,13 @@
% \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
+% 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.
+% handling of the macros given here. The package follows the house
+% style of the RSC, by default. The |angew| option switches to the
+% Wiley house style, modelled on the approach taken in \emph{Angew.
+% Chem.}
%
% \subsection{Additional units}
%
@@ -145,10 +151,10 @@
% 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.
+% provide five 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
+% |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
@@ -167,7 +173,7 @@
% \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
+% you put |$\Delta S \standardstate$| to generate $\Delta S
%\standardstate$. Note that this is safe in text and maths mode.
%
% \subsection{Alkyl radicals}
@@ -175,11 +181,13 @@
% \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.
+% 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.
+% RSC journals. The package option |angew| changes the format to that
+% used in Wiley journals, so for example \cmd{\iPr} then gives
+% \makeatletter \RSC@angewtrue \iPr \RSC@angewfalse \makeatother.
%
% \subsection{Floating schemes}
%
@@ -193,8 +201,8 @@
% \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,
+% |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.
@@ -204,11 +212,21 @@
% 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}.%
+% This is where the scheme should go%
+% \caption{An exciting reaction, placed HERE.}%
% \label{sch1}
% \end{scheme}
% \end{verbatim}
+% To give:
+% \begin{quotation}
+% \noindent Some text about \ref{sch1}, which will appear directly
+% under this paragraph and will not float at all!
+% \begin{scheme}[H]
+% This is where the scheme should go%
+% \caption{An exciting reaction, placed HERE.}%
+% \label{sch1}
+% \end{scheme}
+% \end{quotation}
%
% In addition to providing the floats, referencing to schemes, figures
% and tables is formatted using the |varioref| package, to give
@@ -218,44 +236,59 @@
% \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
+% 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
+% 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.
+% be left-aligned using the |captionleft| (|cl|) option. The format
+% of the labels once again follows the RSC or Wiley house styles.
+% Note that the |angew| package option automatically sets |cl| as
+% well. Finally, schemes may be numbered within chapters by using
+% the |chapter| (|ch|) option. This is obviously provided for
+% theses and other very long documents.
%
% \iffalse
%<*template>
% \fi
%
-% \section{A \LaTeX\ template}
+% \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.
+% This is a very simple template for chemistry-related documents.
+% 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.
+% |bpchem| and |mhchem| are loaded, as both provide useful support
+% for the chemist. The |rsc| package loads |cite| automatically,
+% giving superscript citations which come after punctuation. With
+% the |angew| option, these are also surrounded by square brackets.
% \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{rsc} % Package options are angew, ch, 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
+\bibliographystyle{rsc} % Take your pick of reference style file
+%\bibliographystyle{rsc-mc}
+%\bibliographystyle{angew}
+%\bibliographystyle{angew-mc}
+\end{document}
% \end{macrocode}
+%
+% \section{BibLaTeX support}
+%
+% The next area of work for the |rsc| package is support for
+% Philipp Lehman's new BibLaTeX system. This is in development,
+% although currently a release date is not certain. The aim will
+% be to reproduce the functionallity of the current BibTeX style
+% files, taking account of the slight changes that BibLaTeX
+% introduces in database entries.
+%
% \iffalse
%</template>
% \fi
@@ -276,10 +309,14 @@
%
% First of all, the package identifies itself and loads other packages
% needed to function.
+% \changes{2006-12-31}{v1.1}{Moved |cite| to package}
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{rsc}[2006/11/08 v1.0 Useful chemistry functions]
+\ProvidesPackage{rsc}[2007/01/01 v1.1
+Useful chemistry functions]
\RequirePackage{unitsdef,graphicx,amssymb,fixltx2e,float,varioref}
+\RequirePackage[super]{cite}
+\RequirePackage[labelsep=quad,labelfont=bf]{caption}
% \end{macrocode}
%
% The package provides three options, all of which relate to float
@@ -293,6 +330,10 @@
\DeclareOption{cl}{\global\RSC@captioncentrefalse}
\newif\ifRSC@chapter\RSC@chapterfalse
\DeclareOption{chapter}{\global\RSC@chaptertrue}
+\DeclareOption{ch}{\global\RSC@chaptertrue}
+\newif\ifRSC@angew\RSC@angewfalse
+\DeclareOption{angew}{\global\RSC@angewtrue%
+\global\RSC@captioncentrefalse}
\ProcessOptions
% \end{macrocode}
%
@@ -316,10 +357,43 @@
% \end{macrocode}
%
% Next we provide alkyl radical symbols, in a convenient form.
+% The format depends on the journal asked for.
+% \changes{2006-12-31}{v1.1}{Made formatting journal-dependent}
% \begin{macrocode}
-\newcommand*{\iPr}{Pr\textsuperscript{i}}
-\newcommand*{\iBu}{Bu\textsuperscript{i}}
-\newcommand*{\tBu}{Bu\textsuperscript{t}}
+\newcommand*{\iPr}{\ifRSC@angew\emph{i}Pr\else Pr\textsuperscript{i}\fi}
+\newcommand*{\iBu}{\ifRSC@angew\emph{i}Bu\else Bu\textsuperscript{i}\fi}
+\newcommand*{\tBu}{\ifRSC@angew\emph{t}Pr\else Bu\textsuperscript{t}\fi}
+% \end{macrocode}
+% If the |angew| option is set, a modification is made to
+% the citation style. This is taken directly from |cite.sty|.
+% \begin{macrocode}
+\ifRSC@angew
+ \def\@citess#1{\textsuperscript{[#1]}}
+\fi
+% \end{macrocode}
+% If the |angew| option is set, then the format of float captions
+% needs to be modified. This is achieved using both the |float|
+% and |cation| packages.
+% \begin{macrocode}
+\ifRSC@angew
+ \floatstyle{plaintop}
+ \captionsetup[Table]{labelsep=colon}
+ \captionsetup[Scheme]{labelsep=period}
+ \captionsetup[Figure]{labelsep=period}
+\fi
+% \end{macrocode}
+% The position of the caption on the line is set using the
+% |caption| package. Slightly confusingly, a single line
+% caption can only be moved to the left-hand side using
+% the |singlelinecheck=off| command.
+% \changes{2007-01-01}{v1.1}{Switched to |cation| package
+% for centering labels}
+% \begin{macrocode}
+\ifRSC@captioncentre
+ \relax
+\else
+ \captionsetup{singlelinecheck=off}
+\fi
% \end{macrocode}
%
% The final task is to create a new float for chemical schemes.
@@ -329,10 +403,11 @@
% within chapters is also handled at this stage.
% If there are no chapters the fall-back is simply to ignore the
% request!
+% \changes{2007-01-01}{v1.1}{Altered error to package-specific}
% \begin{macrocode}
\ifRSC@chapter
\ifx\chapter\@undefined
- \@latex@warning{No chapters in this document}
+ \PackageError{rsc}{No chapters in this document}\@eha
\newfloat{Scheme}{htbp}{los}
\newfloat{Figure}{htbp}{lof}
\newfloat{Table}{htbp}{lot}
@@ -349,26 +424,17 @@
% \end{macrocode}
% Next the correct naming is set up for the captions.
% Note that figures are referred to simply as ``Fig.''
+% in RSC journals.
% \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}
+\ifRSC@angew
+ \floatname{Figure}{Figure}
\else
- \renewcommand\floatc@plain[2]{\textbf{{\@fs@cfont #1}}\quad #2}
+ \floatname{Figure}{Fig.}
\fi
% \end{macrocode}
-% We now test if we want centred or left-aligned floating content.
+% We now test if we want centered 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.
@@ -404,11 +470,15 @@
% \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!
+% references start with capital letters. Notice that figures called
+% ``Fig.'' in RSC journals.
% \begin{macrocode}
\labelformat{Scheme}{Scheme~#1}
-\labelformat{Figure}{Fig.~#1}
+\ifRSC@angew
+ \labelformat{Figure}{Figure~#1}
+\else
+ \labelformat{Figure}{Fig.~#1}
+\fi
\labelformat{Table}{Table~#1}
% \end{macrocode}
% \iffalse
@@ -422,8 +492,9 @@
% alterations. Note that most of the code is shared by |rsc.bst| and
% |rsc-mc.bst|.
% \iffalse
-%<*bib|bib-mc>
+%<*bib>
% \fi
+% \changes{2006-12-29}{v1.1}{Altered conditional code names}
% \begin{macrocode}
ENTRY
{ address
@@ -462,35 +533,43 @@ FUNCTION {init.state.consts}
#4 'after.item :=
}
+% \end{macrocode}
+% \changes{2006-12-29}{v1.1}{Updated add.comma to remove brace "correction"}
+% \changes{2006-12-29}{v1.1}{Replaced use of literal ", " with add.comma}
+% \begin{macrocode}
FUNCTION {add.comma}
-{ duplicate$
- #-1 #1 substring$ "}" =
- { #-2 #1024 substring$ ";} " * }
- { ", " * }
- if$
-}
+{ ", " * }
STRINGS { s t }
FUNCTION {output.nonnull}
{ 's :=
output.state mid.sentence =
- { ", " * write$ }
+ { add.comma write$ }
{ output.state after.block =
- { add.comma write$
- newline$
- "\newblock " write$
- }
- { output.state before.all =
- 'write$
- { output.state after.item =
- { " " * write$ }
- { add.period$ " " * write$ }
+% \iffalse
+%<*rsc|angew>
+% \fi
+% \begin{macrocode}
+ { add.comma write$
+% \end{macrocode}
+% \iffalse
+%</rsc|angew>
+%\fi
+% \begin{macrocode}
+ newline$
+ "\newblock " write$
+ }
+ { output.state before.all =
+ 'write$
+ { output.state after.item =
+ { " " * write$ }
+ { add.period$ " " * write$ }
+ if$
+ }
if$
}
- if$
- }
- if$
+ if$
mid.sentence 'output.state :=
}
if$
@@ -521,14 +600,12 @@ FUNCTION {output.bibitem}
""
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.
+% The correct function is produced here.
% \iffalse
-%<*bib>
+%<*!mc>
% \fi
% \begin{macrocode}
FUNCTION {fin.entry}
@@ -538,11 +615,8 @@ FUNCTION {fin.entry}
}
% \end{macrocode}
% \iffalse
-%</bib>
-% \fi
-% Then the alternative for use in |rsc-mc|.
-% \iffalse
-%<*bib-mc>
+%</!mc>
+%<*mc>
% \fi
% \begin{macrocode}
FUNCTION {fin.entry}
@@ -554,11 +628,7 @@ FUNCTION {fin.entry}
% \end{macrocode}
% \iffalse
-%</bib-mc>
-% \fi
-% The shared code now continues.
-% \iffalse
-%<*bib|bib-mc>
+%</mc>
% \fi
% \begin{macrocode}
FUNCTION {not}
@@ -610,30 +680,138 @@ FUNCTION {paren}
% \end{macrocode}
% As in |custom-bib|, the bulk of the literal stings are collected up
% here to make editing easier.
+% \changes{2006-12-29}{v1.1}{Added bbl.and function}
% \begin{macrocode}
+FUNCTION {bbl.and}
+{ "and" }
+
FUNCTION {bbl.chapter}
+% \end{macrocode}
+% \iffalse
+%<*rsc>
+% \fi
+% \begin{macrocode}
{ "ch." }
+% \end{macrocode}
+% \iffalse
+%</rsc>
+%<*angew>
+% \fi
+% \begin{macrocode}
+{ "Chapter" }
+% \end{macrocode}
+% \iffalse
+%</angew>
+% \fi
+% \begin{macrocode}
+
+% \end{macrocode}
+% \iffalse
+%<*rsc>
+% \fi
+% \begin{macrocode}
+FUNCTION {bbl.editor}
+{ "ed." }
+
+% \end{macrocode}
+% \iffalse
+%</rsc>
+%<*angew>
+% \fi
+% \begin{macrocode}
+FUNCTION {bbl.editor}
+{ "Ed.:" }
-FUNCTION {bbl.ed}
-{ "ed. " }
+FUNCTION {bbl.editors}
+{ "Eds.:" }
+% \end{macrocode}
+% \iffalse
+%</angew>
+% \fi
+% \begin{macrocode}
FUNCTION {bbl.edition}
+% \end{macrocode}
+% \iffalse
+%<*rsc>
+% \fi
+% \begin{macrocode}
{ "edn." }
+% \end{macrocode}
+% \iffalse
+%</rsc>
+%<*angew>
+% \fi
+% \begin{macrocode}
+{ "ed." }
+% \end{macrocode}
+% \iffalse
+%</angew>
+% \fi
+% \begin{macrocode}
+
+% \end{macrocode}
+% \changes{2006-12-29}{v1.1}{Added bbl.etal function}
+% \begin{macrocode}
+FUNCTION {bbl.etal}
+{ "et~al." emphasize }
+
+% \end{macrocode}
+% \changes{2006-12-29}{v1.1}{Added bbl.in function}
+% \begin{macrocode}
+FUNCTION {bbl.in}
+{ "in" }
FUNCTION {bbl.inpress}
{ "in press" }
+
FUNCTION {bbl.msc}
+% \end{macrocode}
+% \iffalse
+%<*rsc>
+% \fi
+% \begin{macrocode}
{ "M.Sc. thesis" }
+% \end{macrocode}
+% \iffalse
+%</rsc>
+%<*angew>
+% \fi
+% \begin{macrocode}
+{ "MSc thesis" }
+% \end{macrocode}
+% \iffalse
+%</angew>
+% \fi
+% \begin{macrocode}
FUNCTION {bbl.page}
{ "p." }
+
FUNCTION {bbl.pages}
{ "pp." }
FUNCTION {bbl.phd}
+% \end{macrocode}
+% \iffalse
+%<*rsc>
+% \fi
+% \begin{macrocode}
{ "Ph.D. thesis" }
+% \end{macrocode}
+% \iffalse
+%</rsc>
+%<*angew>
+% \fi
+% \begin{macrocode}
+{ "PhD thesis" }
+% \end{macrocode}
+% \iffalse
+%</angew>
+% \fi
+% \begin{macrocode}
FUNCTION {bbl.submitted}
{ "submitted for publication" }
@@ -642,7 +820,24 @@ FUNCTION {bbl.techreport}
{ "Technical Report" }
FUNCTION {bbl.volume}
-{ "vol."}
+% \end{macrocode}
+% \iffalse
+%<*rsc>
+% \fi
+% \begin{macrocode}
+{ "vol." }
+% \end{macrocode}
+% \iffalse
+%</rsc>
+%<*angew>
+% \fi
+% \begin{macrocode}
+{ "Vol." }
+% \end{macrocode}
+% \iffalse
+%</angew>
+% \fi
+% \begin{macrocode}
FUNCTION {bbl.first}
{ "1st" }
@@ -695,15 +890,70 @@ FUNCTION {eng.ord}
}
if$
}
+
% \end{macrocode}
-% The next two functions are again from |custom-bib|. They are used
-% later for formatting patent numbers.
+% \changes{2006-12-29}{v1.1}{Added Angew. Chem. style}
+% \iffalse
+%<*angew>
+% \fi
+% A number of functions to allow find and replace,
+% needed in the Angew. Chem. style
% \begin{macrocode}
+INTEGERS{ l }
+
+FUNCTION{string.length}
+{ #1 'l :=
+ { duplicate$ duplicate$ #1 l substring$ = not }
+ { l #1 + 'l := }
+ while$
+ pop$ l
+}
-FUNCTION {is.num}
-{ chr.to.int$
- duplicate$ "0" chr.to.int$ < not
- swap$ "9" chr.to.int$ > not and
+STRINGS{replace find text}
+
+INTEGERS{find_length}
+
+FUNCTION{find.replace}
+{ 'replace :=
+ 'find :=
+ 'text :=
+ find string.length 'find_length :=
+ ""
+ { text empty$ not }
+ { text #1 find_length substring$ find =
+ { replace *
+ text #1 find_length + global.max$ substring$ 'text :=
+ }
+ { text #1 #1 substring$ *
+ text #2 global.max$ substring$ 'text :=
+ }
+ if$
+ }
+ while$
+}
+
+% \end{macrocode}
+% \iffalse
+%</angew>
+% \fi
+% \changes{2006-12-29}{v1.1}{Simplified number checking}
+% 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$
+ "" =
}
FUNCTION {extract.num}
@@ -712,7 +962,7 @@ FUNCTION {extract.num}
{ t empty$ not }
{ t #1 #1 substring$
t #2 global.max$ substring$ 't :=
- duplicate$ is.num
+ duplicate$ is.a.number
{ s swap$ * 's := }
{ pop$ "" 't := }
if$
@@ -727,8 +977,7 @@ FUNCTION {extract.num}
FUNCTION {bibinfo.check}
{ swap$
duplicate$ missing$
- {
- pop$ pop$
+ { pop$ pop$
""
}
{ duplicate$ empty$
@@ -755,7 +1004,7 @@ FUNCTION {convert.edition}
{ bbl.fourth 't := }
{ s "fifth" = s "5" = or
{ bbl.fifth 't := }
- { s #1 #1 substring$ is.num
+ { s #1 #1 substring$ is.a.number
{ s eng.ord 't := }
{ edition 't := }
if$
@@ -781,38 +1030,59 @@ FUNCTION {tie.or.space.connect}
}
FUNCTION {space.connect}
-{ " "
- swap$ * *
-}
+{ " " swap$ * * }
INTEGERS { nameptr namesleft numnames }
+% \end{macrocode}
+% \changes{2006-12-29}{v1.1}{Uses bbl.etal in place of literal}
+% \changes{2006-12-29}{v1.1}{Uses bbl.and in place of literal}
+% \begin{macrocode}
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$
+ { s nameptr "{f.~}{vv~}{ll}{, jj}" format.name$ 't :=
+ nameptr #1 >
+ { namesleft #1 >
+ { add.comma t * }
+ { numnames #2 >
+ { "" * }
+ 'skip$
if$
- t "others" =
- { " \emph{et~al.}" * }
- { " and " * t * }
+ t "others" =
+ { bbl.etal space.connect }
+% \end{macrocode}
+% The format before the last name depends on
+% the journal style
+% \iffalse
+%<*rsc>
+% \fi
+% \begin{macrocode}
+ { bbl.and space.connect t space.connect }
+% \end{macrocode}
+% \iffalse
+%</rsc>
+%<*angew>
+% \fi
+% \begin{macrocode}
+ { add.comma t * }
+% \end{macrocode}
+% \iffalse
+%</angew>
+% \fi
+% \begin{macrocode}
if$
- }
- if$
- }
- 't
+ }
+ if$
+ }
+ 't
if$
nameptr #1 + 'nameptr :=
namesleft #1 - 'namesleft :=
- }
+ }
while$
}
@@ -824,36 +1094,65 @@ FUNCTION {format.authors}
if$
}
+% \end{macrocode}
+% The |strip.comma| function is used to "unwind"
+% the comma added by output.nonnull, so that editors
+% in brackets are easy to do
+% \iffalse
+%<*angew>
+% \fi
+% \begin{macrocode}
+FUNCTION {strip.comma}
+{ duplicate$
+ string.length 'find_length :=
+ duplicate$
+ find_length #1 - #1 substring$
+ "," =
+ { #1 find_length #2 - substring$
+ " " *
+ }
+ 'skip$
+ if$
+}
+
+% \end{macrocode}
+% \iffalse
+%</angew>
+% \fi
+% \begin{macrocode}
FUNCTION {format.editors}
{ editor empty$
{ "" }
{ #2 'author.or.editor :=
- bbl.ed *
+% \end{macrocode}
+% \iffalse
+%<*rsc>
+% \fi
+% \begin{macrocode}
+ bbl.editor " " * *
editor format.names
- }
- if$
-}
-
% \end{macrocode}
-% Two functions from Nicolas Markey for determining whether an
-% arbitrary string is an integer.
+% \iffalse
+%</rsc>
+%<*angew>
+% \fi
% \begin{macrocode}
-FUNCTION{is.a.digit}
-{
- duplicate$ "" =
- {pop$ #0}
- {chr.to.int$ #48 - duplicate$
- #0 < swap$ #9 > or not}
+ strip.comma
+ editor num.names$ #1 >
+ { bbl.editors }
+ { bbl.editor }
+ if$
+ " " *
+ editor format.names * paren
+% \end{macrocode}
+% \iffalse
+%</angew>
+% \fi
+% \begin{macrocode}
+ }
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
@@ -871,7 +1170,7 @@ FUNCTION {n.separate.multi}
t text.length$ #4 > t is.a.number and
{
{ t empty$ not }
- { t #-1 #1 substring$ is.num
+ { t #-1 #1 substring$ is.a.number
{ numnames #1 + 'numnames := }
{ #0 'numnames := }
if$
@@ -892,30 +1191,62 @@ FUNCTION {n.separate.multi}
if$
}
-FUNCTION {format.title.noemph}
-{ title empty$
+FUNCTION {format.bvolume}
+{ volume empty$
{ "" }
- { title }
+ { bbl.volume volume tie.or.space.connect }
if$
}
-FUNCTION {format.title}
-{ title empty$
+% \end{macrocode}
+% \changes{2006-12-29}{v1.1}{Restructured format.title.noemph system}
+% \changes{2006-12-29}{v1.1}{Restructured format.title system}
+% \begin{macrocode}
+FUNCTION {format.title.noemph}
+{ 't :=
+ t empty$
{ "" }
- { title emphasize }
+ { t }
if$
}
-
-FUNCTION {format.booktitle}
-{ booktitle title empty$
+FUNCTION {format.title}
+{ 't :=
+ t empty$
{ "" }
- { booktitle emphasize }
+ { t emphasize }
if$
}
-FUNCTION {n.dashify}
+% \end{macrocode}
+% The volume goes with the title for Angew. Chem.,
+% so a "combined" function is useful. Note that
+% |output| cannot be used form the book volume,
+% as this leads to problems with the stack order!
+% \iffalse
+%<*angew>
+% \fi
+% \begin{macrocode}
+FUNCTION {format.title.vol}
{ 't :=
+ t empty$
+ { "" }
+ { t emphasize }
+ if$
+ volume empty$
+ 'skip$
+ { format.bvolume emphasize
+ swap$ add.comma swap$ *
+ }
+ if$
+ }
+
+% \end{macrocode}
+% \iffalse
+%</angew>
+% \fi
+% \begin{macrocode}
+FUNCTION {n.dashify} { 't :=
""
{ t empty$ not }
{ t #1 #1 substring$ "-" =
@@ -942,14 +1273,48 @@ FUNCTION {n.dashify}
FUNCTION {format.date}
{ year empty$
{ "" }
- { year }
+% \end{macrocode}
+% \iffalse
+%<*rsc>
+% \fi
+% \begin{macrocode}
+ 'year
+% \end{macrocode}
+% \iffalse
+%</rsc>
+%<*angew>
+% \fi
+% \begin{macrocode}
+ { year boldface }
+% \end{macrocode}
+% \iffalse
+%</angew>
+% \fi
+% \begin{macrocode}
if$
}
FUNCTION {format.bdate}
{ year empty$
{ "There's no year in " cite$ * warning$ }
+% \end{macrocode}
+% \iffalse
+%<*rsc>
+% \fi
+% \begin{macrocode}
'year
+% \end{macrocode}
+% \iffalse
+%</rsc>
+%<*angew>
+% \fi
+% \begin{macrocode}
+ { year boldface }
+% \end{macrocode}
+% \iffalse
+%</angew>
+% \fi
+% \begin{macrocode}
if$
}
@@ -960,33 +1325,6 @@ FUNCTION {either.or.check}
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$
@@ -1031,7 +1369,7 @@ FUNCTION {format.pages}
}
% \end{macrocode}
-% The next function is used for page numbers which be be present and
+% The next function is used for page numbers which be be present and
% have ``p.'' or ``pp.'' added.
% \begin{macrocode}
@@ -1048,6 +1386,7 @@ FUNCTION {format.pages.required}
}
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
@@ -1076,17 +1415,51 @@ FUNCTION {format.pages.patent}
{ "There is no patent number for " cite$ * warning$ }
{ pages multi.page.check
{ pages n.dashify }
+% \end{macrocode}
+% \iffalse
+%<*rsc>
+% \fi
+% \begin{macrocode}
{ pages n.separate.multi }
+% \end{macrocode}
+% \iffalse
+%</rsc>
+%<*angew>
+% \fi
+% \begin{macrocode}
+ { pages }
+% \end{macrocode}
+% \iffalse
+%</angew>
+% \fi
+% \begin{macrocode}
if$
}
if$
}
FUNCTION {format.vol.pages}
+% \end{macrocode}
+% \iffalse
+%<*rsc>
+% \fi
+% \begin{macrocode}
{ volume boldface field.or.null
+% \end{macrocode}
+% \iffalse
+%</rsc>
+%<*angew>
+% \fi
+% \begin{macrocode}
+{ volume emphasize field.or.null
+% \end{macrocode}
+% \iffalse
+%</angew>
+% \fi
+% \begin{macrocode}
duplicate$ empty$
{ pop$ format.pages.required }
- { ", " * pages n.dashify * }
+ { add.comma pages n.dashify * }
if$
}
@@ -1100,51 +1473,71 @@ FUNCTION {format.chapter.pages}
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 * }
+ { add.comma format.pages * }
if$
}
if$
}
-FUNCTION {format.in.title.ed}
-{ title empty$
+% \end{macrocode}
+% \changes{2006-12-29}{v1.1}{Restructured format.title.in}
+% \begin{macrocode}
+FUNCTION {format.title.in}
+{ 's :=
+% \end{macrocode}
+% \iffalse
+%<*angew>
+% \fi
+% \begin{macrocode}
+ after.item 'output.state :=
+% \end{macrocode}
+% \iffalse
+%</angew>
+% \fi
+% \begin{macrocode}
+ s empty$
{ "" }
{ editor empty$
- { " in " title emphasize * }
- { " in " title emphasize * ", " * format.editors * }
+ { bbl.in s format.title space.connect }
+ { bbl.in s format.title space.connect
+ add.comma format.editors *
+ }
if$
}
if$
}
-FUNCTION {format.in.booktitle.ed}
-{ booktitle empty$
+% \end{macrocode}
+% \iffalse
+%<*angew>
+% \fi
+% \begin{macrocode}
+FUNCTION {format.title.vol.in}
+{ 's :=
+ after.item 'output.state :=
+ s empty$
{ "" }
{ editor empty$
- { " in " booktitle emphasize * }
- { " in " booktitle emphasize * ", " * format.editors * }
+ { bbl.in s format.title.vol space.connect }
+ { bbl.in s format.title.vol space.connect
+ add.comma format.editors *
+ }
if$
}
if$
}
+% \end{macrocode}
+% \iffalse
+%</angew>
+% \fi
+% \begin{macrocode}
FUNCTION {format.pub.address}
{ publisher empty$
{ "" }
{ address empty$
{ publisher }
- { publisher ", " * address *}
+ { publisher add.comma address *}
if$
}
if$
@@ -1178,14 +1571,42 @@ FUNCTION {format.thesis.type}
% \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).
+% Notice that the BibTeX |crossref| system is not used,
+% as it is not really used in chemistry.
% \begin{macrocode}
FUNCTION {article}
{ output.bibitem
format.authors "author" output.check
+% \end{macrocode}
+% \iffalse
+%<*rsc>
+% \fi
+% \begin{macrocode}
journal emphasize "journal" output.check
+% \end{macrocode}
+% \iffalse
+%</rsc>
+% Wiley journals have no commas in journal names,
+% so a find and replace function is used to avoid
+% needed database modifications
+%<*angew>
+% \fi
+% \begin{macrocode}
+ journal "," "" find.replace emphasize
+ "journal" output.check
+% \end{macrocode}
+% \iffalse
+%</angew>
+% Changing output state suppresses the comma here
+%<*angew>
+% \fi
+% \begin{macrocode}
+ after.item 'output.state :=
+% \end{macrocode}
+% \iffalse
+%</angew>
+% \fi
+% \begin{macrocode}
format.date "year" output.check
volume empty$
{ ""
@@ -1197,34 +1618,83 @@ FUNCTION {article}
}
% \end{macrocode}
+% \changes{v1.1}{2006-12-29}{Added optional pages to book}
% 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
+% \end{macrocode}
+% \iffalse
+%<*rsc>
+% \fi
+% \begin{macrocode}
+ { title format.title "title" output.check
+% \end{macrocode}
+% \iffalse
+%</rsc>
+%<*angew>
+% \fi
+% \begin{macrocode}
+ { title format.title.vol "title" output.check
+% \end{macrocode}
+% \iffalse
+%</angew>
+% \fi
+% \begin{macrocode}
editor empty$
- { "Need either an author or editor for " cite$ * warning$ }
- { "" format.editors * "editor" output.check }
- if$
+ { "Need either an author or editor for " cite$ * warning$ }
+ { "" format.editors * "editor" output.check }
+ if$
}
- { format.authors output.nonnull
+ { format.authors output
"author and editor" editor either.or.check
- format.title "title" output.check
+% \end{macrocode}
+% \iffalse
+%<*rsc>
+% \fi
+% \begin{macrocode}
+ title format.title "title" output.check
+% \end{macrocode}
+% \iffalse
+%</rsc>
+%<*angew>
+% \fi
+% \begin{macrocode}
+ title format.title.vol "title" output.check
+% \end{macrocode}
+% \iffalse
+%</angew>
+% \fi
+% \begin{macrocode}
}
if$
format.pub.address "publisher" output.check
format.edition output
format.bdate "year" output.check
+% \end{macrocode}
+% \iffalse
+%<*rsc>
+% \fi
+% \begin{macrocode}
format.bvolume output
+% \end{macrocode}
+% \iffalse
+%</rsc>
+% \fi
+% \begin{macrocode}
+ pages empty$
+ 'skip$
+ { format.pages output }
+ if$
fin.entry
}
FUNCTION {booklet}
{ output.bibitem
format.authors output
- format.title "title" output.check
+ title format.title "title" output.check
howpublished output
address output
format.date output
@@ -1234,20 +1704,64 @@ FUNCTION {booklet}
FUNCTION {inbook}
{ output.bibitem
author empty$
- { format.title "title" output.check
+% \end{macrocode}
+% \iffalse
+%<*rsc>
+% \fi
+% \begin{macrocode}
+ { title format.title "title" output.check
+% \end{macrocode}
+% \iffalse
+%</rsc>
+%<*angew>
+% \fi
+% \begin{macrocode}
+ { title format.title.vol "title" output.check
+% \end{macrocode}
+% \iffalse
+%</angew>
+% \fi
+% \begin{macrocode}
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
+ { format.authors output
+% \end{macrocode}
+% \iffalse
+%<*rsc>
+% \fi
+% \begin{macrocode}
+ title format.title.in "title" output.check
+% \end{macrocode}
+% \iffalse
+%</rsc>
+%<*angew>
+% \fi
+% \begin{macrocode}
+ title format.title.vol.in "title" output.check
+% \end{macrocode}
+% \iffalse
+%</angew>
+% \fi
+% \begin{macrocode}
}
if$
format.pub.address "publisher" output.check
format.edition output
format.bdate "year" output.check
+% \end{macrocode}
+% \iffalse
+%<*rsc>
+% \fi
+% \begin{macrocode}
format.bvolume output
+% \end{macrocode}
+% \iffalse
+%</rsc>
+% \fi
+% \begin{macrocode}
format.chapter.pages "chapter and pages" output.check
fin.entry
}
@@ -1260,20 +1774,64 @@ FUNCTION {inbook}
FUNCTION {incollection}
{ output.bibitem
author empty$
- { format.booktitle "booktitle" output.check
+% \end{macrocode}
+% \iffalse
+%<*rsc>
+% \fi
+% \begin{macrocode}
+ { booktitle format.title "booktitle" output.check
+% \end{macrocode}
+% \iffalse
+%</rsc>
+%<*angew>
+% \fi
+% \begin{macrocode}
+ { booktitle format.title.vol "booktitle" output.check
+% \end{macrocode}
+% \iffalse
+%</angew>
+% \fi
+% \begin{macrocode}
editor empty$
- { "Need at least an author or an editor for " cite$ * warning$ }
- { "" format.editors * "editor" output.check }
- if$
+ { "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
+ { format.authors output
+% \end{macrocode}
+% \iffalse
+%<*rsc>
+% \fi
+% \begin{macrocode}
+ booktitle format.title.in "booktitle" output.check
+% \end{macrocode}
+% \iffalse
+%</rsc>
+%<*angew>
+% \fi
+% \begin{macrocode}
+ booktitle format.title.vol.in "booktitle" output.check
+% \end{macrocode}
+% \iffalse
+%</angew>
+% \fi
+% \begin{macrocode}
}
if$
format.pub.address "publisher" output.check
format.edition output
format.bdate "year" output.check
+% \end{macrocode}
+% \iffalse
+%<*rsc>
+% \fi
+% \begin{macrocode}
format.bvolume output
+% \end{macrocode}
+% \iffalse
+%</rsc>
+% \fi
+% \begin{macrocode}
format.chapter.pages "chapter and pages" output.check
fin.entry
}
@@ -1289,12 +1847,36 @@ FUNCTION {inpress}
fin.entry
}
+% \end{macrocode}
+% \changes{v1.1}{2006-12-30}{Added optional pages to inproceedings}
+% \begin{macrocode}
FUNCTION {inproceedings}
{ output.bibitem
format.authors "author" output.check
- booktitle "booktitle" output.check
+% \end{macrocode}
+% \iffalse
+%<*rsc>
+% \fi
+% \begin{macrocode}
+ booktitle format.title.noemph "booktitle" output.check
+% \end{macrocode}
+% \iffalse
+%</rsc>
+%<*angew>
+% \fi
+% \begin{macrocode}
+ booktitle format.title "booktitle" output.check
+% \end{macrocode}
+% \iffalse
+%</angew>
+% \fi
+% \begin{macrocode}
address output
format.date "year" output.check
+ pages empty$
+ 'skip$
+ { format.pages output }
+ if$
fin.entry
}
@@ -1303,14 +1885,31 @@ FUNCTION {manual}
author empty$
{ organization empty$
'skip$
- { organization output.nonnull
+ { organization output
address output
}
if$
}
- { format.authors output.nonnull }
+ { format.authors output }
if$
- format.title "title" output.check
+% \end{macrocode}
+% \iffalse
+%<*rsc>
+% \fi
+% \begin{macrocode}
+ title format.title "title" output.check
+% \end{macrocode}
+% \iffalse
+%</rsc>
+%<*angew>
+% \fi
+% \begin{macrocode}
+ title format.title.noemph "title" output.check
+% \end{macrocode}
+% \iffalse
+%</angew>
+% \fi
+% \begin{macrocode}
author empty$
{ organization empty$
{ address output }
@@ -1329,19 +1928,57 @@ FUNCTION {manual}
FUNCTION {mastersthesis}
{ output.bibitem
format.authors "author" output.check
- bbl.msc emphasize format.thesis.type output.nonnull
+% \end{macrocode}
+% \iffalse
+%<*rsc>
+% \fi
+% \begin{macrocode}
+ bbl.msc emphasize format.thesis.type output
+% \end{macrocode}
+% \iffalse
+%</rsc>
+%<*angew>
+% \fi
+% \begin{macrocode}
+ bbl.msc format.thesis.type output
+% \end{macrocode}
+% \iffalse
+%</angew>
+% \fi
+% \begin{macrocode}
school "school" output.check
address output
format.date "year" output.check
fin.entry
}
+% \end{macrocode}
+% \changes{v1.1}{2006-12-29}{Error with missing year fixed in
+% misc type}
+% \begin{macrocode}
FUNCTION {misc}
{ output.bibitem
format.authors output
- format.title output
+ title format.title output
howpublished output
- format.bdate output
+% \end{macrocode}
+% \iffalse
+%<*rsc>
+% \fi
+% \begin{macrocode}
+ year output
+% \end{macrocode}
+% \iffalse
+%</rsc>
+%<*angew>
+% \fi
+% \begin{macrocode}
+ format.date output
+% \end{macrocode}
+% \iffalse
+%</angew>
+% \fi
+% \begin{macrocode}
note output
fin.entry
empty.misc.check
@@ -1372,18 +2009,59 @@ FUNCTION {patent}
FUNCTION {phdthesis}
{ output.bibitem
format.authors "author" output.check
- bbl.phd emphasize format.thesis.type output.nonnull
+% \end{macrocode}
+% \iffalse
+%<*rsc>
+% \fi
+% \begin{macrocode}
+ bbl.phd emphasize format.thesis.type output
+% \end{macrocode}
+% \iffalse
+%</rsc>
+%<*angew>
+% \fi
+% \begin{macrocode}
+ bbl.phd format.thesis.type output
+% \end{macrocode}
+% \iffalse
+%</angew>
+% \fi
+% \begin{macrocode}
school "school" output.check
address output
format.date "year" output.check
fin.entry
}
+% \end{macrocode}
+% \changes{v1.1}{2006-12-30}{Added optional pages to proceedings}
+% \begin{macrocode}
FUNCTION {proceedings}
{ output.bibitem
- format.title.noemph "title" output.check
+% \end{macrocode}
+% \iffalse
+%<*rsc>
+% \fi
+% \begin{macrocode}
+ title format.title.noemph "title" output.check
+% \end{macrocode}
+% \iffalse
+%</rsc>
+%<*angew>
+% \fi
+% \begin{macrocode}
+ title format.title "title" output.check
+% \end{macrocode}
+% \iffalse
+%</angew>
+% \fi
+% \begin{macrocode}
address output
format.date "year" output.check
+ pages empty$
+ 'skip$
+ { format.pages output }
+ if$
fin.entry
}
@@ -1403,15 +2081,15 @@ FUNCTION {submitted}
fin.entry
}
+% \end{macrocode}
+% The institution, report type and number are combined
+% as the RSC style suggests.
+% \begin{macrocode}
FUNCTION {techreport}
{ output.bibitem
format.authors "author" output.check
- format.title "title" output.check
+ title 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
@@ -1421,7 +2099,7 @@ FUNCTION {techreport}
{ "t" change.case$ }
{ number tie.or.space.connect }
if$
- output.nonnull
+ output
format.pub.address output
format.date "year" output.check
fin.entry
@@ -1429,7 +2107,8 @@ FUNCTION {techreport}
% \end{macrocode}
% For unpublished works, the note is used unless
-% there is a DOI.
+% there is a DOI. The format of the DOI is set by
+% the journal.
% \begin{macrocode}
FUNCTION {unpublished}
{ output.bibitem
@@ -1440,8 +2119,26 @@ FUNCTION {unpublished}
if$
doi empty$
{ note output }
+% \end{macrocode}
+% \iffalse
+%<*rsc>
+% \fi
+% \begin{macrocode}
{ format.date output
- "DOI:" doi tie.or.space.connect output }
+ "DOI:" doi tie.or.space.connect output
+ }
+% \end{macrocode}
+% \iffalse
+%</rsc>
+%<*angew>
+% \fi
+% \begin{macrocode}
+ { "DOI" doi tie.or.space.connect output }
+% \end{macrocode}
+% \iffalse
+%</angew>
+% \fi
+% \begin{macrocode}
if$
fin.entry
empty.doi.note
@@ -1498,13 +2195,11 @@ 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.
+% on whether |mcite| is to be used. First the standard function,
+% then the modified version.
% \iffalse
-%<*bib>
+%<*!mc>
% \fi
% \begin{macrocode}
FUNCTION {begin.bib}
@@ -1517,11 +2212,8 @@ FUNCTION {begin.bib}
% \end{macrocode}
% \iffalse
-%</bib>
-% \fi
-% Then the alternative for |mcite|.
-% \iffalse
-%<*bib-mc>
+%</!mc>
+%<*mc>
% \fi
% \begin{macrocode}
FUNCTION {begin.bib}
@@ -1534,12 +2226,8 @@ FUNCTION {begin.bib}
% \end{macrocode}
% \iffalse
-%</bib-mc>
+%</mc>
% \fi
-% Back with shared code.
-% \iffalse
-%<*bib|bib-mc>
-%\fi
% \begin{macrocode}
EXECUTE {begin.bib}
@@ -1549,11 +2237,7 @@ ITERATE {call.type$}
% \end{macrocode}
% \iffalse
-%</bib|bib-mc>
-% \fi
-% The final variations for |mcite|.
-% \iffalse
-%<*bib>
+%<*!mc>
% \fi
% \begin{macrocode}
FUNCTION {end.bib}
@@ -1563,11 +2247,8 @@ FUNCTION {end.bib}
% \end{macrocode}
% \iffalse
-%</bib>
-% \fi
-% |mcite| version.
-% \iffalse
-%<*bib-mc>
+%</!mc>
+%<*mc>
% \fi
% \begin{macrocode}
FUNCTION {end.bib}
@@ -1577,17 +2258,13 @@ FUNCTION {end.bib}
% \end{macrocode}
% \iffalse
-%</bib-mc>
-% \fi
-% Finish off
-% \iffalse
-%<*bib|bib-mc>
+%</mc>
% \fi
% \begin{macrocode}
EXECUTE {end.bib}
% \end{macrocode}
% \iffalse
-%</bib|bib-mc>
+%</bib>
% \fi
% Phew, all done!
% \PrintChanges
diff --git a/Master/texmf-dist/source/latex/rsc/rsc.ins b/Master/texmf-dist/source/latex/rsc/rsc.ins
index 4f2c40b815a..cc580058168 100644
--- a/Master/texmf-dist/source/latex/rsc/rsc.ins
+++ b/Master/texmf-dist/source/latex/rsc/rsc.ins
@@ -16,22 +16,33 @@
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\input docstrip.tex
+\askonceonly
\preamble
----------------------------------------------------------------
The rsc package - BibTeX and macro support for Royal Society
- of Chemistry style articles
+ of Chemistry and Wiley chemistry 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}}
+\Msg{Generating rsc files:}
+\usedir{tex/latex/contib/rsc}
+\generate{\file{rsc.sty}{\from{rsc.dtx}{package}}
+ \file{rsc-template.tex}{\from{rsc.dtx}{template}}
+}
+% In order to produce the correct ending for
+% BibTeX files, we have to kill the standard
+% DocStrip postamble. By using an empty one, but
+% not \empty, we still get the "end of file" message.
+\declarepostamble\bibtexable
+\endpostamble
+\usedir{bibtex/bst/rsc}
+\generate{\usepostamble\bibtexable
+ \file{rsc.bst}{\from{rsc.dtx}{bib,rsc}}
+ \file{rsc-mc.bst}{\from{rsc.dtx}{bib,rsc,mc}}
+ \file{angew.bst}{\from{rsc.dtx}{bib,angew}}
+ \file{angew-mc.bst}{\from{rsc.dtx}{bib,angew,mc}}
+}
\endbatchfile