summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2007-09-19 23:57:56 +0000
committerKarl Berry <karl@freefriends.org>2007-09-19 23:57:56 +0000
commite21894e0a7fb413d9ff97eb11284b1fcdfdd3e13 (patch)
treea446608d77296ddc1f9281215b416a6b33c393e9 /Master/texmf-dist/source
parent1f205e9f4560f8e24ec798c1b4a5da440c30f3b3 (diff)
chemstyle update (20sep07)
git-svn-id: svn://tug.org/texlive/trunk@4986 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source')
-rw-r--r--Master/texmf-dist/source/latex/chemstyle/chemstyle.dtx702
-rw-r--r--Master/texmf-dist/source/latex/chemstyle/chemstyle.ins34
2 files changed, 474 insertions, 262 deletions
diff --git a/Master/texmf-dist/source/latex/chemstyle/chemstyle.dtx b/Master/texmf-dist/source/latex/chemstyle/chemstyle.dtx
index 7a151502327..d7f219e11e0 100644
--- a/Master/texmf-dist/source/latex/chemstyle/chemstyle.dtx
+++ b/Master/texmf-dist/source/latex/chemstyle/chemstyle.dtx
@@ -3,13 +3,24 @@
% Copyright (C) 2007 by
% Joseph Wright <joseph.wright@morningstar2.co.uk>
%
-% Released under the GNU General Public License v2
-% See http://www.gnu.org/licenses/gpl.txt
+% 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. The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of
+% LaTeX version 2003/12/01 or later.
%
-% This work consists of the main source file chemstyle.dtx
-% and the derived files chemstyle.sty and chemstyle.pdf
+% This work has the LPPL maintenance status ``maintained.''
+%
+% The current maintainer of this work is Joseph Wright.
+%
+% This work consists of the main source files chemstyle.dtx
+% and chemstyle.ins and the derived files chemstyle.sty,
+% chemstyle.pdf and a number of .jdf files.
%
%<*driver>
+\PassOptionsToClass{a4paper}{article}
\documentclass{ltxdoc}
\EnableCrossrefs
\CodelineIndex
@@ -18,18 +29,28 @@
\usepackage[T1]{fontenc}
\usepackage[english,UKenglish]{babel}
\usepackage{mathpazo,booktabs,array,url,graphicx,courier,unitsdef}
-\usepackage{upgreek}
+\usepackage{upgreek,ifpdf}
\usepackage[scaled=0.95]{helvet}
\usepackage[version=3]{mhchem}
\usepackage[final]{microtype}
+% Some tricks from Heiko Oberdiek
+\ifpdf
+ \usepackage{embedfile}
+ \embedfile[%
+ stringmethod=escape,%
+ mimetype=plain/text,%
+ desc={LaTeX docstrip source archive for package `\jobname'}%
+ ]{\jobname.dtx}
+\fi
\usepackage{\jobname}
+\usepackage[numbered]{hypdoc}
\begin{document}
\DocInput{\jobname.dtx}
\end{document}
%</driver>
% \fi
%
-% \CheckSum{485}
+%\CheckSum{604}
%
% \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
@@ -52,6 +73,13 @@
%\changes{v1.0}{2006/08/06}{Initial release of package}
%\changes{v1.0b}{2007/09/04}{Added |microtype| and |notes2bib| to
% template}
+%\changes{v1.1}{2007/09/17}{License changed from GPL to LPPL}
+%\changes{v1.1}{2007/09/17}{Phrases modified to better avoid clash
+% with user's own commands}
+%\changes{v1.1}{2007/09/17}{Fixed error with spacing after
+% \emph{e.g.}~and \emph{i.e.}}
+%\changes{v1.1a}{2007/09/18}{Fixed error in documentation compilation
+% under LaTeX}
%
%\DoNotIndex{\@fs@capt,\@fs@cfont,\@fs@iftopcapt,\@fs@mid,\@fs@post}
%\DoNotIndex{\@fs@pre,\@ifclassloaded,\@ifnextchar,\@ifpackageloaded}
@@ -74,7 +102,10 @@
%\DoNotIndex{\restylefloat,\rotatebox,\selectlanguage,\space}
%\DoNotIndex{\tablename,\textsc,\textsuperscript,\unitsep}
%\DoNotIndex{\unitsuperscript,\usepackage,\varnothing,\vspace}
-%\DoNotIndex{\xspace}
+%\DoNotIndex{\xspace,\@tempa,\@tempb,\centi,\cubed,\deci}
+%\DoNotIndex{\DeclareMathSymbol,\DeclareSymbolFont,\dm}
+%\DoNotIndex{\mathord,\metre,\milli,\mole,\relax,\spacefactor}
+%\DoNotIndex{\usk}
%
% \title{\texttt{chemstyle} --- Writing chemistry with style%
% \thanks{This file describes version \fileversion, last revised
@@ -85,50 +116,49 @@
%
% \maketitle
%
-% \begin{abstract}
-%
+%\begin{abstract}
% The |chemstyle| package provides a ``one-stop shop'' for setting up
% formatting of LaTeX documents following the editorial policies of
% various chemical journals. It provides a number of handy
% chemistry-related commands, and loads several support packages to
% aid the chemist.
+%\end{abstract}
%
-% \end{abstract}
-%
-% \section{Introduction}
+%\begin{multicols}{2}
+%\tableofcontents
+%\end{multicols}
%
+%\section{Introduction}
% The aim of |chemstyle| is to provide a quick method to set up
-% various document parameters (such as caption formatting), simply
-% by specifying the model journal. The package has also been
-% designed to allow rapid addition of new journal styles. Each
-% style definition is a separate file, and new styles can be added
-% very readily. |chemstyle| has grown out of the |rsc| package,
-% which had a similar aim but was much more limited (and less
-% robustly implemented). The |chemstyle| package is also
-% designed with the use of |biblatex| in mind: the |rsc| package
-% is closely bound to traditional BibTeX use.
+% various document parameters (such as caption formatting), simply by
+% specifying the model journal. The package has also been designed
+% to allow rapid addition of new journal styles. Each style
+% definition is a separate file, and new styles can be added very
+% readily. |chemstyle| has grown out of the |rsc| package, which had
+% a similar aim but was much more limited (and less robustly
+% implemented). The |chemstyle| package is also designed with the
+% use of |biblatex| in mind: the |rsc| package is closely bound to
+% traditional BibTeX use.
%
% As a successor to the |rsc| package, |chemstyle| provides a range
% of chemistry-related additional macros. The set provided here is
-% an extended version of those provide by |rsc|. Everything that
-% can be done using the |rsc| LaTeX package is therefore possible
-% using the |chemstyle| package.
+% an extended version of those provide by |rsc|. Everything that can
+% be done using the |rsc| LaTeX package is therefore possible using
+% the |chemstyle| package.
%
% The formatting system provided by |chemstyle| are intended for
-% writing a variety of documents. Thus the stylistic changes made
-% by the package do not seek to reproduce the appearance of printed
+% writing a variety of documents. Thus the stylistic changes made by
+% the package do not seek to reproduce the appearance of printed
% journal articles. The package aims to be suitable for use in
% preparing drafts of papers, but also for writing reports, theses
% and so on.
%
-% \section{Style options for \texttt{chemstyle}}
-%
+%\section{Style options for \texttt{chemstyle}}
% |chemstyle| should be loaded with a package option specifying which
% journal style to follow. Currently, |chemstyle| is aware of a the
% styles listed in Table~\ref{styles}. New styles can be developed
% by creating a new file modelled on the existing definitions;
-% |chemstyle| will automatically search for
-% correctly-named styles.
+% |chemstyle| will automatically search for correctly-named styles.
% \begin{table}
% \begin{tabular}{ll}
% \toprule
@@ -154,22 +184,30 @@
%
% The |none| style is notable as it is not based on a journal.
% Instead this is a minimal style, which provides the additional
-% commands without making formatting changes. It is also the
-% default style if no option is given.
+% commands without making formatting changes. It is also the default
+% style if no option is given. This document has been compiled
+% implicity using the |none| option, for example.
%
-% \subsection{Package options}
+%\subsection{Package options}
%
-% In addition to the style options, |chemstyle| will pass options
-% through to the |chemscheme| package, which is used to provide
-% support for schemes. Users should consult the |chemscheme|
+% As well as the various journal styles provided with the package, a
+% number of options are recognised to alter compatibly with other
+% packages and to give the desired output. |chemstyle| will also pass
+% options through to the |chemscheme| package, which is used to
+% provide support for schemes. Users should consult the |chemscheme|
% documentation for the options applicable.
%
-% The package recognises the |nonotes| option, which affects
-% how the References section is headed. By default, |chemstyle|
-% alters the value of \cmd{\bibname} or \cmd{\refname} (as
-% appropriate) to the form of words chosen by the target journal
-% for the ``References and Notes'' section. The |nonotes| option
-% prevents this, and results in only ``References'' being output.
+% Currently, |chemstyle| has options |nonotes|, |nophrases|,
+% |siunits| and |xspace|. These are explained at the appropriate
+% places within this document. All are hopefully relatively clearly
+% named.
+%
+%\section{Naming of the references section}
+%
+% |chemstyle| alters the naming of the references section of a
+% document. By default, |chemstyle| alters the value of
+% \cmd{\bibname} or \cmd{\refname} (as appropriate) to the form of
+% words chosen by the target journal for the ``\refname'' section.
%
% The ``References'' naming commands are language-aware, \emph{via}
% the |babel| interface. Currently, |chemstyle| includes appropriate
@@ -177,80 +215,101 @@
% |french|.\footnote{The \texttt{french} option for \texttt{babel}
% causes a clash with \texttt{unitsdef} concerning the command
% \texttt{\textbackslash fg}. \texttt{babel} uses this for
-% guillemets, while \texttt{unitsdef} uses it as an abbreviation for
-% \texttt{\textbackslash femtogram}. The \texttt{chemstyle} package
-% prevents the clash, and leaves the \texttt{babel} definition intact.}
-% Other languages can be added if appropriate wordings are provided
-% to the author.
-%
-% \section{Additional macros}
-%
-% \subsection{Additional units}
-%
-% The |unitsdef| package provides a great number of easy to use unit
-% commands, and handles spacing between numbers and units very well.
-% However, it misses out a few useful units for chemistry. The
-% |unitsdef| package is loaded by |rsc.sty|, and is then used to
-% provide 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
-% obvious.
-% \DescribeMacro{\mmHg}
-% The command \cmd{\mmHg} has a non-breaking thin space, leading to
-% \mmHg.
-% \DescribeMacro{\molar}
-% \DescribeMacro{\Molar}
-% Two related commands are given for concentration: \cmd{\molar}
-% gives \molar, whilst \cmd{\Molar} gives \Molar.
-% \DescribeMacro{\cmc}
-% Finally, the command \cmd{\cmc} is provided for generating \cmc. All
-% space correctly with numbers, so inputting |10\cmc| gives 10\cmc,
-% with a non-breaking space.
+% \emph{guillemets}, while \texttt{unitsdef} uses it as an
+% abbreviation for \texttt{\textbackslash femtogram}. The
+% \texttt{chemstyle} package prevents the clash, and leaves the
+% \texttt{babel} definition intact.} Other languages can be added if
+% appropriate wordings are provided to the author.
+%
+% The |chemstyle| packages recognises the |nonotes| option, which
+% affects how the References section is headed. With the |nonotes|
+% option, the ``Notes'' part of the section name is omitted, and only
+% the ``References'' phrase is output.
+%
+%\section{Additional macros}
+%
+%\subsection{Additional units}
+% Both the |unitsdef| and |siunits| packages provide a great number
+% of easy to use unit commands, and handles spacing between numbers
+% and units very well. However, a few useful units seem to be
+% missing, and are provided here. By default, |chemstyle| uses the
+% |unitsdef| package to achieve this, but using the |siunits| option
+% will use that package instead.
+%\DescribeMacro{\Hz}
+%\DescribeMacro{\mmHg}
+%\DescribeMacro{\molar}
+%\DescribeMacro{\Molar}
+%\DescribeMacro{\cmc}
+% The most obvious of these is \cmd{\Hz}, which simply gives \Hz. The
+% command \cmd{\mmHg} has a non-breaking thin space, leading to
+% \mmHg. Two related commands are given for concentration:
+% \cmd{\molar} gives \molar, whilst \cmd{\Molar} gives \Molar.
+% Finally, the command \cmd{\cmc} is provided for generating \cmc.
+% When using |unitsdef|, all of the new macros space correctly with
+% numbers, so inputting |10\cmc| gives 10\cmc, with a non-breaking
+% space. Users of |siunits| will be familiar with the approach used
+% by that package.
%
%\subsection{The standard state symbol}
-%
-% \DescribeMacro{\standardstate}
-% Related to, but not exactly a unit is the \cmd{\standardstate}
-% command. This generates the tricky \standardstate\ symbol, letting
-% you put |$\Delta S \standardstate$| to generate $\Delta S
-% \standardstate$. Note that this is safe in either text or maths
-% mode.
-%
-% \subsection{Alkyl radicals}
-%
-% \DescribeMacro{\iPr}
-% \DescribeMacro{\iPr}
-% \DescribeMacro{\nBu}
-% \DescribeMacro{\iBu}
-% \DescribeMacro{\sBu}
-% \DescribeMacro{\tBu}
+%\DescribeMacro{\standardstate}
+% Related to the above, but not exactly a unit is the
+% \cmd{\standardstate} command. This generates the tricky
+% \standardstate\ symbol: |$\Delta S\standardstate$|
+% generates $\Delta S\standardstate$. Note that this is safe in
+% either text or maths mode.
+%
+%\subsection{Alkyl radicals}
+%
+%\DescribeMacro{\iPr}
+%\DescribeMacro{\iPr}
+%\DescribeMacro{\nBu}
+%\DescribeMacro{\iBu}
+%\DescribeMacro{\sBu}
+%\DescribeMacro{\tBu}
% There are a few alkyl radicals that come up all of the time. No
% one seems to have put these into a package, so they are provided
% here. As you would expect, \cmd{\iPr} gives \iPr, \cmd{\iBu} gives
-% \iBu and \cmd{\tBu} gives \tBu, and so on. The style of the output
-% depends on the journal style specified; most journals seem to
-% favour one version of the abbreviation.
-%
-% \subsection{Latin phrases}
-%
-% \DescribeMacro{\latin}
-% \DescribeMacro{\etc}
-% \DescribeMacro{\eg}
-% \DescribeMacro{\ie}
-% \DescribeMacro{\etal}
-% \DescribeMacro{\invacuo}
+% \iBu\ and \cmd{\tBu} gives \tBu, and so on. The style of the
+% output depends on the journal style specified; most journals seem
+% to favour one version of the abbreviation. When |chemstyle| is
+% loaded using the |xspace| option, the |xspace| package is
+% automatically used to add space after the command names, so that
+% |\iPr group| will result in ``\iPr\ group'' being
+% typeset.\footnote{Reader of the source of this document will see
+% that this document has been compiled \emph{without} the |xspace|
+% option!}
+%
+%\subsection{Latin phrases}
+%\DescribeMacro{\latin}
+%\DescribeMacro{\etc}
+%\DescribeMacro{\eg}
+%\DescribeMacro{\ie}
+%\DescribeMacro{\etal}
+%\DescribeMacro{\invacuo}
% The various Latin phrases commonly used in chemistry are made
-% available as the obvious commands. By altering the definition
-% of \cmd{\latin}, this allows ready switching from italic to
-% Roman typesetting. Notice that \cmd{\etc}, \cmd{\ie} and \cmd{\eg}
-% are aware of trailing periods, and so doubling-up should not occur.
+% available as the obvious commands. By altering the definition of
+% \cmd{\latin}, this allows ready switching from italic to Roman
+% typesetting. Notice that \cmd{\etc}, \cmd{\ie} and \cmd{\eg} are
+% aware of trailing periods, and so doubling-up should not occur. The
+% Once again, these macros use |xspace|, when given as a package
+% option, to handle automatic addition of spaces after these phrases.
+% For American journals, where it is obligatory to follow ``\eg''
+% and ``\ie'' with a comma, the package provides a mechanism for
+% handling this automatically. Thus, when using an appropriate
+% journal style, |\eg|, |\eg.| and |\eg,| will all result in
+% typesetting ``\eg,''.
+%
+% The \cmd{\etc} and \cmd{\etal} commands are set up on the
+% assumption that they come at the end of a sentence. Hence the
+% spacing after these will default to an inter-sentence space. If
+% you desire an inter-word space, use the normal methods
+% |\etc\ more text|, |\etc~more text|, \etc. If this is a big issue,
+% the package author may look at it again.
%
% \iffalse
%<*template>
% \fi
% \section{A template for chemical articles}
-%
% This is a very simple template for chemistry-related documents.
% Hopefully it contains a few extra hints for getting well-formatted
% documents quickly. For simplicity, the template assumes that the
@@ -264,7 +323,7 @@
% \begin{macrocode}
\documentclass[fontsize=10pt,paper=a4]{scrreprt}
% \end{macrocode}
-% The |geometry| package allows the sers to alter page layout
+% The |geometry| package allows the users to alter page layout
% with ease; much better than trying to hack the raw LaTeX system.
% \begin{macrocode}
\usepackage{geometry}
@@ -279,7 +338,7 @@
% to the |chemscheme| package. This also loads either |bpchem| or
% (optionally) |chemcompounds| to track compound numbers.
% \begin{macrocode}
-\usepackage[rsc]{chemstyle}
+\usepackage[rsc,xspace]{chemstyle}
% \end{macrocode}
% The |mhchem| package provides the \cmd{\ce} command for rapidly
% typesetting formulas, so that you can type |\ce{H2SO4}| and get
@@ -289,7 +348,7 @@
% \end{macrocode}
% Greek letters should be italic if used for variables, but upright
% (Roman) if used otherwise. So the standard LaTeX |$\delta$| is
-% fine for typesetting an NMR shift (\eg $\delta = \ldots$ ppm.),
+% fine for typesetting an NMR shift (\eg\ $\delta = \dots$ ppm.),
% but not for a $\upsigma$-bond or a $\uppi$-complex. The |upgreek|
% package provides commands such as |$\upsigma$| and |$\uppi$| which
% are ideal for this.
@@ -330,126 +389,56 @@
%</template>
% \fi
%
-% \section{Advice for users of \texttt{rsc} and \texttt{achemso}}
-%
+%\section{Advice for users of \texttt{rsc} and \texttt{achemso}}
% The |chemstyle| package is intended as a replacement for the |rsc|
% package. As such, it covers almost everything the the |rsc| LaTeX
% package does, and more. Users of |rsc| are strongly encouraged to
-% update to using |chemstyle|.
-%
-% Both |achemso| and |rsc| provide appropriate BibTeX styles. These
-% will continue to be supported, but
+% update to using |chemstyle|. The bibliography styles provided by
+% |achemso| and |rsc| will continue to be required, of course.
+% Migration of these styles to |biblatex| is an on-going project.
%
% \StopEventually{}
%
% \iffalse
%<*package>
% \fi
-% \section{The package code}
-%
-% \subsection{Setup code}
+%\section{The package code}
%
+%\subsection{Setup code}
% First of all, the package identifies itself and loads other
% packages needed to function. Loading |chemscheme| is deferred
% until later, to allow processing of options at the correct point.
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{chemstyle}
- [2007/09/04 v1.0b Writing chemistry with style]
-% \end{macrocode}
-% The \cmd{\fg} macro is defined in French as a \emph{guillemet} sign,
-% and so to avoid a clash a bit of patching is needed. A check to see
-% if |babel| has already defined \cmd{\fg}. If it has, the definition
-% is saved and deleted.
-% \begin{macrocode}
-\ifx\fg\@undefined
-\else
- \ifx\fg\relax
- \else
- \let\cst@fg\fg
- \let\fg\@undefined
- \fi
-\fi
+ [2007/09/18 v1.1a Writing chemistry with style]
% \end{macrocode}
-% Now package loading can take place.
+% Packages that are needed under all circumstances are loaded here.
%\changes{v1.0a}{2007/08/23}{No longer load \texttt{fixltx2e}
% package}
% \begin{macrocode}
-\RequirePackage{graphicx,amssymb,varioref,xspace,unitsdef}
-% \end{macrocode}
-% If \cmd{\cst@fg} exists, it is restored here, otherwise \cmd{\fg}
-% is undefined. At the beginning of the document, \cmd{\fg} is
-% defined as an abbreviation for a femtogram if it is not being used
-% by |babel|. This way there is not a problem if |babel| is loaded
-% after |chemstyle|.
-% \begin{macrocode}
-\ifx\cst@fg\@undefined
- \let\fg\@undefined
-\else
- \let\fg\cst@fg
-\fi
-\AtBeginDocument{%
- \ifx\fg\@undefined
- \newcommand{\fg}{\femtogram}
- \fi
-}
+\RequirePackage{graphicx,varioref}
% \end{macrocode}
%
-%\subsection{Extra units and related commands}
-%
-%\begin{macro}{\cubiccentimeter}
-%\begin{macro}{\cmc}
-%\begin{macro}{\Hz}
-%\begin{macro}{\Molar}
-%\begin{macro}{\molar}
-%\begin{macro}{\mmHg}
-%\begin{macro}{\mol}
-%\changes{v1.0b}{2007/09/04}{New macro}
-% A few additional unit types are provides, which the |unitsdef|
-% package omits for some reason. These do not change with different
-% journal styles, and so are declared directly.
-% \begin{macrocode}
-\newunit{\cubiccentimeter}{\cm\unitsuperscript{3}}
-\newcommand{\cmc}{\cubiccentimeter}
-\newcommand{\Hz}{\hertz}
-\newunit{\Molar}{\textsc{m}}
-\newunit{\molar}{\mole\unitsep\dm\unitsuperscript{--3}}
-\newunit{\mmHg}{mm\unitsep{}Hg}
-\newunit{\mol}{mol}
-% \end{macrocode}
-%\end{macro}
-%\end{macro}
-%\end{macro}
-%\end{macro}
-%\end{macro}
-%\end{macro}
-%\end{macro}
-%\begin{macro}{\standardstate}
-% In a very similar vein, the ``standard state'' symbol is handy. This
-% is produced by rotating a symbol from the \textsc{ams} symbol set.
-% Note that the rotation angle here has been carefully checked, but
-% is set by eye. Changing the font used for \cmd{\varnothing} will
-% mess this up.
-% \begin{macrocode}
-\newcommand*{\standardstate}%
- {\textsuperscript{\rotatebox[origin=c]{140.8}%
- {\ensuremath{\varnothing}}}}
-% \end{macrocode}
-% \end{macro}
-%
% \subsection{Alkyl radicals}
%
+%\begin{macro}{\cst@emph}
+%\begin{macro}{\cst@hyph}
+%\begin{macro}{\cst@super}
% Alkyl radical abbreviations are produced using the macro
% \cmd{\cst@radical}. This uses a series of formatting commands,
-% which have default values provided here. The names are
-% hopefully pretty self-explanatory.
+% which have default values provided here. The names are hopefully
+% pretty self-explanatory.
% \begin{macrocode}
\let\cst@emph\relax
\def\cst@hyph{}
\let\cst@super\relax
\newif \ifcst@prefix \cst@prefixtrue
% \end{macrocode}
-% \begin{macro}{\cst@radical}
+%\end{macro}
+%\end{macro}
+%\end{macro}
+%\begin{macro}{\cst@radical}
% The \cmd{\cst@radical} macro does the hard work of declaring
% each abbreviation. To ensure there is no unexpected clash of
% names, \cmd{\newcommand} is used first to check for any problems.
@@ -465,11 +454,11 @@
\else
#2\cst@hyph\cst@super{\cst@emph{#1}}%
\fi%
- \xspace
+ \cst@xspace
}
}
% \end{macrocode}
-% \end{macro}
+%\end{macro}
% With a mechanism in place, the abbreviations are declared. The
% format of the resulting output will depend upon the configuration
% file used.
@@ -483,18 +472,26 @@
% \end{macrocode}
%
% \subsection{Option handling}
-%
% Firstly, the ``pass through'' options are handled, as these will be
-% sent through to |chemscheme|. The package option |nonotes| is also
-% handled here.
+% sent through to |chemscheme|. The package options for |chemstyle|
+% are also handled here.
+%\changes{v1.1}{2007/09/17}{Added \texttt{phrases} option}
+%\changes{v1.1}{2007/09/17}{Added \texttt{siunits} option}
+%\changes{v1.1}{2007/09/17}{Added \texttt{xspace} option}
% \begin{macrocode}
\newif \ifcst@notes \cst@notestrue
+\newif \ifcst@phrases \cst@phrasestrue
+\newif \ifcst@si \cst@sifalse
+\newif \ifcst@xspace \cst@xspacefalse
\DeclareOption{ch}{\ExecuteOptions{chapter}}
\DeclareOption{chapter}%
{\PassOptionsToPackage{chapter}{chemscheme}}
\DeclareOption{chemcompounds}%
{\PassOptionsToPackage{chemcompounds}{chemscheme}}
\DeclareOption{nonotes}{\cst@notesfalse}
+\DeclareOption{nophrases}{\cst@phrasesfalse}
+\DeclareOption{siunits}{\cst@sitrue}
+\DeclareOption{xspace}{\cst@xspacetrue}
% \end{macrocode}
% In order to handle the loading of style definitions correctly, a
% bit of care is needed. The package options need to be loaded
@@ -512,10 +509,114 @@
\fi
\edef\cst@option{\CurrentOption}
}
+% \end{macrocode}
+% If |siunits| is already loaded, then the option has to be set.
+% \begin{macrocode}
+\@ifpackageloaded{siunits}
+ {\ExecuteOptions{siunits}}
+ {}
\ProcessOptions*
+\ifcst@si
+ \@ifpackageloaded{unitsdef}
+ {\PackageWarning{chemstyle}{%
+ You have set the siunits option,\MessageBreak
+ but have already loaded unitsdef!\MessageBreak
+ unitsdef will be used for extra unit macros}
+ \cst@sifalse}
+ {\RequirePackage{siunits}}
+\else
+% \end{macrocode}
+% The \cmd{\fg} macro is defined in French as a \emph{guillemet} sign,
+% and so to avoid a clash a bit of patching is needed. A check to see
+% if |babel| has already defined \cmd{\fg}. If it has, the definition
+% is saved and deleted.
+% \begin{macrocode}
+ \ifx\fg\@undefined
+ \else
+ \ifx\fg\relax
+ \else
+ \let\cst@fg\fg
+ \let\fg\@undefined
+ \fi
+ \fi
+ \RequirePackage{unitsdef}
+% \end{macrocode}
+% If \cmd{\cst@fg} exists, it is restored here, otherwise \cmd{\fg}
+% is undefined. At the beginning of the document, \cmd{\fg} is
+% defined as an abbreviation for a femtogram if it is not being used
+% by |babel|. This way there is not a problem if |babel| is loaded
+% after |chemstyle|.
+% \begin{macrocode}
+ \ifx\cst@fg\@undefined
+ \let\fg\@undefined
+ \else
+ \let\fg\cst@fg
+ \fi
+ \AtBeginDocument{%
+ \ifx\fg\@undefined
+ \newcommand{\fg}{\femtogram}
+ \fi
+ }
+\fi
\RequirePackage{chemscheme}
% \end{macrocode}
%
+%\subsection{Extra units and related commands}
+%
+%\begin{macro}{\cubiccentimeter}
+%\begin{macro}{\cmc}
+%\begin{macro}{\Hz}
+%\begin{macro}{\Molar}
+%\begin{macro}{\molar}
+%\begin{macro}{\mmHg}
+%\begin{macro}{\mol}
+%\changes{v1.0b}{2007/09/04}{New macro}
+% A few additional unit types are provides, which |unitsdef| and
+% |siunits| do not provide. Most of these require different set up
+% for the two supported packages.
+% \begin{macrocode}
+\ifcst@si
+ \newcommand{\cubiccentimeter}{\centi\metre\cubed}
+ \newcommand{\Molar}{\textsc{m}}
+ \newcommand{\molar}{\mole\usk\deci\metre\rpcubed}
+ \newcommand{\mmHg}{\milli\metre~Hg}
+ \newcommand{\mol}{\mole}
+\else
+ \newunit{\cubiccentimeter}{\cm\unitsuperscript{3}}
+ \newunit{\Molar}{\textsc{m}}
+ \newunit{\molar}{\mole\unitsep\dm\unitsuperscript{--3}}
+ \newunit{\mmHg}{mm\unitsep{}Hg}
+ \newunit{\mol}{\mole}
+\fi
+\newcommand{\cmc}{\cubiccentimeter}
+\newcommand{\Hz}{\hertz}
+% \end{macrocode}
+%\end{macro}
+%\end{macro}
+%\end{macro}
+%\end{macro}
+%\end{macro}
+%\end{macro}
+%\end{macro}
+%\begin{macro}{\cst@varnothing}
+%\changes{v1.1}{2007/09/17}{New macro}
+%\begin{macro}{\standardstate}
+% In a very similar vein, the ``standard state'' symbol is handy.
+% This is produced by rotating the ``varnothing'' symbol from the
+% \textsc{ams} set. Note that the rotation angle here has been
+% carefully checked, but is set by eye. The symbol is loaded directly
+% here, rather than using the |amssymb| package, to avoid any
+% clashes.
+% \begin{macrocode}
+\DeclareSymbolFont{CSTAMS}{U}{msb}{m}{n}
+\DeclareMathSymbol{\cst@varnothing} {\mathord}{CSTAMS}{"3F}
+\newcommand*{\standardstate}%
+ {\textsuperscript{\rotatebox[origin=c]{140.8}%
+ {\ensuremath{\cst@varnothing}}}}
+% \end{macrocode}
+%\end{macro}
+%\end{macro}
+%
% \subsection{Float formatting}
%
% The next step is to format the floats correctly. Unfortunately,
@@ -566,44 +667,153 @@
%
% \subsection{Latin words}
%
-% \begin{macro}{\latin}
-% \begin{macro}{\latinemphon}
-% \begin{macro}{\latinemphoff}
+%\begin{macro}{\latin}
+%\begin{macro}{\cst@latin}
+%\changes{v1.1}{2007/09/17}{New macro}
+%\begin{macro}{\latinemphon}
+%\begin{macro}{\latinemphoff}
% A series of Latin phrases are provided, with a quick switch to
% print them in Roman letters if needed. A mechanism is needed
% to alter the effect of the \cmd{\latin} command \emph{only}
% if the user does not have their own version. This is achieved
-% here. The default is then set to emphasise Latin words.
+% here, with precautions taken to ensure the user can define
+% their own \cmd{\latin} command \emph{after} loading |chemstyle|
+% and still have everything work properly.
% \begin{macrocode}
-\ifx\latin\@undefined
- \newcommand{\latinemphon}{\let\latin\emph}
- \newcommand{\latinemphoff}{\let\latin\relax}
- \latinemphon
+\let\latinemphon\relax
+\let\latinemphoff\relax
+\let\cst@latin\relax
+\ifcst@phrases
+ \newcommand{\latinemphon}{\let\cst@latin\emph}
+ \newcommand{\latinemphoff}{\let\cst@latin\relax}
+ \AtBeginDocument{%
+ \providecommand\latin{\cst@latin}
+ }
+\fi
+\latinemphon
+% \end{macrocode}
+%\end{macro}
+%\end{macro}
+%\end{macro}
+%\end{macro}
+%
+% In ACS journals, the abbreviations ``\eg'' and ``\ie'' are always
+% followed by a comma. In order to provide an automated way to do
+% this, a series of macros are needed to test the punctuation
+% trailing the macro names. Firstly, a switch is provided for the
+% journal style files.
+% \begin{macrocode}
+\newif \ifcst@comma \cst@commafalse
+% \end{macrocode}
+% The implementation of the testing code is delayed until the
+% beginning of the document to allow the switching to occur. First
+% the case where a comma is needed is handled.
+% \begin{macrocode}
+\AtBeginDocument{%
+ \ifcst@comma
+% \end{macrocode}
+%\begin{macro}{\cst@punct}
+% The \cmd{\cst@punct} macro holds the comma-containing punctuation
+% to be added.
+% \begin{macrocode}
+ \def\cst@punct{.,\cst@xspace}
+% \end{macrocode}
+%\end{macro}
+%\begin{macro}{\cst@addpunct}
+%\changes{v1.1}{2007/09/17}{New macro}
+%\begin{macro}{\cst@add@punct}
+%\changes{v1.1}{2007/09/17}{New macro}
+%\begin{macro}{\cst@add@punct@}
+%\changes{v1.1}{2007/09/17}{New macro}
+% The following macros are very closely based on those in the |cite|
+% package used for moving citations after punctuation. The first
+% macro is used as an initial hook. Notice that \cmd{\relax} is
+% essential here, as it provides an argument for \cmd{\cst@add@punct}
+% in the first round of checking.
+% \begin{macrocode}
+ \def\cst@addpunct{%
+ \cst@add@punct\relax%
+ }
+% \end{macrocode}
+% Here, a plain TeX \cmd{\futurelet} is used to test the next
+% character. Notice that this macro takes a single argument, which is
+% used to recursively gobble up punctuation.
+% \begin{macrocode}
+ \def\cst@add@punct#1{%
+ \futurelet\@tempa\cst@add@punct@%
+ }
+% \end{macrocode}
+% The checking occurs here. If a match is made, then the process is
+% repeated to allow the punctuation to be gobbled.
+% \begin{macrocode}
+ \def\cst@add@punct@{%
+ \ifx\@tempa.%
+ \let\@tempb\cst@add@punct%
+ \else
+ \ifx\@tempa,%
+ \let\@tempb\cst@add@punct%
+% \end{macrocode}
+% No match, and so new punctuation is to be added and the loop ended.
+% \begin{macrocode}
+ \else
+ \let\@tempb\cst@punct%
+ \fi
+ \fi
+ \@tempb%
+ }
+% \end{macrocode}
+%\end{macro}
+%\end{macro}
+% The case where a comma is not needed is much more simple. No fancy
+% work is done; instead a single check is made on the next character.
+% \begin{macrocode}
+ \else
+ \def\cst@addpunct{\@ifnextchar.{}{\spacefactor999.\cst@xspace}}
+ \fi
+}
+% \end{macrocode}
+%\end{macro}
+%
+%\begin{macro}{\cst@xspace}
+% The use of |xspace| is optional; this is handled using a package
+% option and the internal macro \cmd{\cst@xspace}.
+% \begin{macrocode}
+\ifcst@xspace
+ \RequirePackage{xspace}
+ \let\cst@xspace\xspace
\else
- \let\latinemphon\relax
- \let\latinemphoff\relax
+ \let\cst@xspace\relax
\fi
-
% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \begin{macro}{\etc}
-% \begin{macro}{\invacuo}
-% \begin{macro}{\etal}
-% \begin{macro}{\eg}
-% \begin{macro}{\ie}
+%\end{macro}
+%
+%\begin{macro}{\etc}
+%\begin{macro}{\invacuo}
+%\begin{macro}{\etal}
+%\begin{macro}{\eg}
+%\changes{v1.1}{2007/09/17}{Adds comma for ACS journals}
+%\begin{macro}{\ie}
+%\changes{v1.1}{2007/09/17}{Adds comma for ACS journals}
% For the macros themselves, care is taken about trailing full stops.
% The \cmd{\xspace} command deals with any problems of spacing.
% Things could go wrong with complex punctuation, as no other checks
% are performed. All of these functions use \cmd{\providecommand}
% to avoid standing on the user's own versions, if they exist.
% \begin{macrocode}
-\providecommand{\etc}{\latin{etc}\@ifnextchar.{}{.\xspace}}
-\providecommand{\invacuo}{\latin{in vacuo}\xspace}
-\providecommand{\etal}{\latin{et~al}\@ifnextchar.{}{.\xspace}}
-\providecommand{\eg}{\latin{e.g}\@ifnextchar.{}{.\xspace}}
-\providecommand{\ie}{\latin{i.e}\@ifnextchar.{}{.\xspace}}
+\ifcst@phrases
+ \AtBeginDocument{
+ \providecommand{\etc}%
+ {\latin{etc}\@ifnextchar.{}{.\cst@xspace}}
+ \providecommand{\invacuo}%
+ {\latin{in vacuo}\cst@xspace}
+ \providecommand{\etal}%
+ {\latin{et~al}\@ifnextchar.{}{.\cst@xspace}}
+ \providecommand{\eg}%
+ {\latin{e.g}\cst@addpunct}
+ \providecommand{\ie}%
+ {\latin{i.e}\cst@addpunct}
+ }
+\fi
% \end{macrocode}
% \end{macro}
% \end{macro}
@@ -625,9 +835,9 @@
% \begin{macrocode}
\def\cst@name@refs#1#2#3{%
\ifcst@notesbefore
- #3\ #2\ #1%
+ #3\space#2\space#1%
\else
- #1\ #2\ #3%
+ #1\space#2\space#3%
\fi
}
% \end{macrocode}
@@ -643,7 +853,7 @@
% \end{macro}
% \begin{macro}{\cst@refsection}
% The existence of a suitable reference section name command is
-% checked here. Some document classes (\eg minimal) may not define
+% checked here. Some document classes (\eg\ minimal) may not define
% a suitable command. Assuming that is not the case,
% \cmd{\cst@refsection} is used to store the name of the macro
% holding the references section.
@@ -664,7 +874,7 @@
% \begin{macro}{\cst@namerefs}
% \begin{macro}{\cst@language@check}
% The main macro of the heading-altering section takes four
-% parameters, \marg{language}, \marg{references}, \marg{and}
+% arguments, \marg{language}, \marg{references}, \marg{and}
% and \marg{notes}. The first is the |babel| label for the language
% that the words are four, and the other three parameters and the
% words ``References'', ``and'' and ``Notes'', respectively.
@@ -760,20 +970,21 @@
%
% \subsection{RSC style}
%\changes{v1.0b}{2007/09/04}{Fixed formatting of alkyls}
+%\changes{v1.1}{2007/09/17}{Fixed (another) error in alkyl formatting}
% \begin{macrocode}
-\ProvidesFile{rsc.jdf}[2007/09/04 v1.0b]
+\ProvidesFile{rsc.jdf}[2007/09/18 v1.1a]
% \end{macrocode}
%\changes{v1.0b}{2007/09/04}{Sorted a problem with \texttt{babel}
% and figure name format}
% \begin{macrocode}
-\AtBeginDocument{
+\AtBeginDocument{%
\renewcommand{\figurename}{Fig.}}
\RequirePackage[labelsep=quad,labelfont=bf]{caption}
\let\cst@emph\emph
\def\cst@hyph{-}
\let\cst@super\relax
\cst@prefixtrue
-\cst@prefixfalse
+\latinemphon
% \end{macrocode}
% \iffalse
%</rsc>
@@ -784,7 +995,7 @@
%\changes{v1.0a}{2007/08/23}{Fixed incorrect Latin formatting for
% \texttt{angew} option}
% \begin{macrocode}
-\ProvidesFile{cst-angew.def}[2007/09/04 v1.0b]
+\ProvidesFile{cst-angew.def}[2007/09/18 v1.1a]
\RequirePackage[labelsep=period,labelfont={bf,it},font=sf]{caption}
\captionsetup[table]{labelsep=colon}
\captionsetup{singlelinecheck=off}
@@ -799,10 +1010,9 @@
%<*jacs>
% \fi
%
-% \subsection{\emph{J.~Am.~Chem.~Soc.}~style}
-%
+%\subsection{\emph{J.~Am.~Chem.~Soc.}~style}
% \begin{macrocode}
-\ProvidesFile{jacs.jdf}[2007/09/04 v1.0b]
+\ProvidesFile{jacs.jdf}[2007/09/18 v1.1a]
\RequirePackage[labelfont={bf,it,sf},textfont=sf]{caption}
\DeclareCaptionLabelSeparator{perquad}{.\quad}
\captionsetup{labelsep=perquad}
@@ -817,18 +1027,18 @@
\floatstyle{plain}
\latinemphoff
\cst@notesbeforefalse
+\cst@commatrue
% \end{macrocode}
% \iffalse
%</jacs>
%<*ic>
% \fi
%
-% \subsection{\emph{Inorg.~Chem.}~style}
-%
+%\subsection{\emph{Inorg.~Chem.}~style}
% Almost exactly the same as for \emph{J.~Am.~Chem.~Soc.}, so most of
% the work is left to |jacs.jdf|.
% \begin{macrocode}
-\ProvidesFile{ic.jdf}[2007/09/04 v1.0b]
+\ProvidesFile{ic.jdf}[2007/09/18 v1.1a]
\input {jacs.jdf}
\captionsetup{textfont=rm}
% \end{macrocode}
@@ -839,9 +1049,8 @@
%
%\subsection{\emph{J.~Phys.~Chem.}~style}
%\changes{v1.0a}{2007/08/23}{Added \emph{J.~Phys.~Chem.}~style}
-%
% \begin{macrocode}
-\ProvidesFile{jpc.jdf}[2007/09/04 v1.0b]
+\ProvidesFile{jpc.jdf}[2007/09/18 v1.1a]
\RequirePackage[font=bf,labelsep=colon]{caption}
\DeclareCaptionFormat{labelcaps}{\MakeUppercase{#1}#2#3}
\captionsetup{format=labelcaps}
@@ -856,17 +1065,17 @@
\floatstyle{plain}
\latinemphoff
\cst@notesbeforefalse
+\cst@commatrue
% \end{macrocode}
%\iffalse
%</jpc>
%<*orglett>
% \fi
%
-% \subsection{\emph{Org.~Lett.}~style}
+%\subsection{\emph{Org.~Lett.}~style}
%\changes{v1.0a}{2007/08/23}{Added \emph{Org.~Lett.}~style}
-%
% \begin{macrocode}
-\ProvidesFile{orglett.jdf}[2007/09/04 v1.0b]
+\ProvidesFile{orglett.jdf}[2007/09/18 v1.1a]
\RequirePackage{xcolor}
% \end{macrocode}
%\begin{macro}{\OrgLettColour}
@@ -927,6 +1136,7 @@
\cst@prefixtrue
\latinemphoff
\cst@notesbeforefalse
+\cst@commatrue
% \end{macrocode}
% \iffalse
%</orglett>
@@ -939,10 +1149,10 @@
% any style changes, a ``do nothing'' style is provided. It simply
% makes sure that nothing changes compared to the LaTeX kernel.
% This requires undoing the defaults provided above. For commands
-% where a default is needed (\eg the \cmd{\latin} command) the
+% where a default is needed (\eg\ the \cmd{\latin} command) the
% style of the RSC is followed.
% \begin{macrocode}
-\ProvidesFile{none.jdf}[2007/09/04 v1.0b]
+\ProvidesFile{none.jdf}[2007/09/18 v1.1a]
\RequirePackage{caption}
\floatstyle{plain}
\restylefloat{table}
diff --git a/Master/texmf-dist/source/latex/chemstyle/chemstyle.ins b/Master/texmf-dist/source/latex/chemstyle/chemstyle.ins
index 6150876980a..26efa3c76ec 100644
--- a/Master/texmf-dist/source/latex/chemstyle/chemstyle.ins
+++ b/Master/texmf-dist/source/latex/chemstyle/chemstyle.ins
@@ -1,29 +1,31 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Copyright (C) 2007 by
+% Joseph Wright <joseph.wright@morningstar2.co.uk>
%
-% chemstyle is free software; you can redistribute it and/or modify it
-% under the terms of the GNU General Public License as published by
-% the Free Software Foundation; either version 2, or (at your option)
-% any later version.
+% 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. The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of
+% LaTeX version 2003/12/01 or later.
%
-% chemstyle is distributed in the hope that it will be useful, but
-% WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-% GNU General Public License for more details.
+% This work has the LPPL maintenance status ``maintained.''
%
-% You should have received a copy of the GNU General Public License
-% along with this program; if not, write to the Free Software
-% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+% The current maintainer of this work is Joseph Wright.
+%
+% This work consists of the main source files chemstyle.dtx
+% and chemstyle.ins and the derived files chemstyle.sty,
+% chemstyle.pdf and a number of .jdf files
%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\input docstrip.tex
-\askonceonly
+\askforoverwritefalse
\preamble
----------------------------------------------------------------
chemstyle - Writing chemistry with style
Maintained by Joseph Wright
E-mail: joseph.wright@morningstar2.co.uk
- Released under the GNU General Public License
- See http://www.gnu.org/licenses/gpl.txt
+ Released under the LaTeX Project Public License v1.3 or later
+ See http://www.latex-project.org/lppl.txt
----------------------------------------------------------------
\endpreamble
\Msg{Generating chemstyle files:}