diff options
author | Karl Berry <karl@freefriends.org> | 2007-09-19 23:57:56 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2007-09-19 23:57:56 +0000 |
commit | e21894e0a7fb413d9ff97eb11284b1fcdfdd3e13 (patch) | |
tree | a446608d77296ddc1f9281215b416a6b33c393e9 /Master/texmf-dist/source | |
parent | 1f205e9f4560f8e24ec798c1b4a5da440c30f3b3 (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.dtx | 702 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/chemstyle/chemstyle.ins | 34 |
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:} |