diff options
author | Karl Berry <karl@freefriends.org> | 2009-06-07 23:22:28 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2009-06-07 23:22:28 +0000 |
commit | 8f0c39ea0736ec81b5d289f9699c5343cc3c88e3 (patch) | |
tree | 75ad2c33945efa3b4e4a1b2d12bd31af03db65c8 /Master/texmf-dist/source/latex/chemstyle/chemstyle.dtx | |
parent | dc1c34928a4b35b5f377940b8bdd7406820ddd70 (diff) |
chemstyle 2 (6jun09)
git-svn-id: svn://tug.org/texlive/trunk@13659 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/chemstyle/chemstyle.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/chemstyle/chemstyle.dtx | 4327 |
1 files changed, 2823 insertions, 1504 deletions
diff --git a/Master/texmf-dist/source/latex/chemstyle/chemstyle.dtx b/Master/texmf-dist/source/latex/chemstyle/chemstyle.dtx index 3bead4da261..d212c772739 100644 --- a/Master/texmf-dist/source/latex/chemstyle/chemstyle.dtx +++ b/Master/texmf-dist/source/latex/chemstyle/chemstyle.dtx @@ -1,139 +1,14 @@ % \iffalse meta-comment -% !TEX encoding = ISO-8859-1 -% -% Copyright (C) 2007-08 by -% Joseph Wright <joseph.wright@morningstar2.co.uk> -% -% This work may be distributed and/or modified under the -% conditions of the LaTeX Project Public License, either -% version 1.3c of this license or (at your option) any later -% version. The latest version of this license is in -% http://www.latex-project.org/lppl.txt -% and version 1.3c or later is part of all distributions of -% LaTeX version 2005/12/01 or later. -% -% This work has the LPPL maintenance status `maintained'. -% -% The current maintainer of this work is Joseph Wright. -% -% This work consists of the source file chemscheme.dtx -% and the derived files chemstyle.ins, -% chemstyle.sty, -% chemstyle.pdf, -% chemstyle-manual.pdf, -% chemstyle-demo.ltx, -% rsc.jdf, -% angew.jdf, -% tetlett.jdf, -% jomc.jdf, -% jacs.jdf, -% ic.jdf, -% jpc.jdf, -% orglett.jdf, -% none.jdf, -% jawltxdoc.sty and -% README -% -% TDS-ready files: -% The compressed file chemstyle.tds.zip contains an unpacked -% version of all of the files included here, and pre-compiled -% documentation in PDF format. Simply decompress -% chemstyle.tds.dtx in your local TeX directory, run your hash -% program (texhash, initexmf --update-fndb, etc.) and everything -% will be ready to go. The user documentation for the package is -% called chemstyle-manual.pdf; the file chemstyle.pdf includes the -% user manual and the fully-indexed source code. -% -% Unpacking: -% (a) If chemstyle.ins is present: -% tex chemstyle.ins -% (b) Without chemstyle.ins: -% tex chemstyle.dtx -% (c) If you use LaTeX to generate files: -% latex \let\install=y\input{chemstyle.dtx} -% -% Documentation: -% (a) Without write18 enabled: -% pdflatex chemstyle.dtx -% makeindex -s gind.ist chemstyle.idx -% makeindex -s gglo.ist -o chemstyle.gls chemstyle.glo -% pdflatex chemstyle.dtx -% pdflatex chemstyle.dtx -% (b) With write18 enabled: -% pdflatex chemstyle.dtx -% pdflatex chemstyle.dtx -% pdflatex chemstyle.dtx -% -% Installation: -% Copy chemstyle.sty to a location searched by TeX, and if -% required by your TeX installation, run the appropriate command -% to build a hash of files (texhash, initexmf --update-fndb, -% etc.) -% -% Note: -% The jawltxdoc.sty file is not needed for installation, -% only for building the documentation; it may be deleted -% after producing the documentation (if necessary). -% -%<*ignore> -% This is all taken verbatim from Heiko Oberdiek's packages -\begingroup - \def\x{LaTeX2e}% -\expandafter\endgroup -\ifcase 0\ifx\install y1\fi\expandafter - \ifx\csname processbatchFile\endcsname\relax\else1\fi - \ifx\fmtname\x\else 1\fi\relax -\else\csname fi\endcsname -%</ignore> -%<*install> -\input docstrip.tex -\keepsilent -\askforoverwritefalse -\preamble - ---------------------------------------------------------------- - The chemstyle bundle --- Schemes and style for chemistry - Maintained by Joseph Wright - E-mail: joseph.wright@morningstar2.co.uk - Released under the LaTeX Project Public License v1.3c or later - See http://www.latex-project.org/lppl.txt - ---------------------------------------------------------------- - -\endpreamble -\Msg{Generating chemstyle files:} -\generate{\file{jawltxdoc.sty}{\from{\jobname.dtx}{jawltxdoc}} -} -\usedir{tex/latex/chemstyle} -\generate{\file{\jobname.sty}{\from{\jobname.dtx}{package}} - \file{chemscheme.sty}{\from{chemscheme.dtx}{package}} -} -\usedir{source/latex/chemstyle} -\generate{\file{\jobname.ins}{\from{\jobname.dtx}{install}} -} -\usedir{tex/latex/chemstyle/config} -\generate{\file{rsc.jdf}{\from{chemstyle.dtx}{rsc}} - \file{angew.jdf}{\from{chemstyle.dtx}{angew}} - \file{tetlett.jdf}{\from{chemstyle.dtx}{tetlett}} - \file{jomc.jdf}{\from{chemstyle.dtx}{jomc}} - \file{jacs.jdf}{\from{chemstyle.dtx}{jacs}} - \file{ic.jdf}{\from{chemstyle.dtx}{ic}} - \file{jpc.jdf}{\from{chemstyle.dtx}{jpc}} - \file{orglett.jdf}{\from{chemstyle.dtx}{orglett}} -} -\generate{\file{none.jdf}{\from{chemstyle.dtx}{none}} -} -\nopreamble\nopostamble -\usedir{doc/latex/chemstyle} -\generate{\file{chemstyle-demo.ltx}{\from{\jobname.dtx}{demo}} - \file{README.txt}{\from{\jobname.dtx}{readme}} -} -\endbatchfile -%</install> +% !TEX program = pdflatex +% !TEX encoding = ISO-8859-1 +%<*internal> +\iffalse +%</internal> %<*readme> ---------------------------------------------------------------- The chemstyle bundle --- Schemes and style for chemistry -Maintained by Joseph Wright E-mail: joseph.wright@morningstar2.co.uk -Released under the LaTeX Project Public License v1.3 or later +Released under the LaTeX Project Public License v1.3c or later See http://www.latex-project.org/lppl.txt ---------------------------------------------------------------- @@ -154,174 +29,376 @@ of various chemical journals. It provides a number of handy chemistry-related commands, and loads several support packages to aid the chemist. %</readme> -%<*ignore> +%<*internal> +\fi +\def\nameofplainTeX{plain} +\ifx\fmtname\nameofplainTeX\else + \expandafter\begingroup +\fi +%</internal> +%<*install> +\input docstrip.tex +\keepsilent +\askforoverwritefalse +\preamble +---------------------------------------------------------------- +The chemstyle bundle --- Schemes and style for chemistry +E-mail: joseph.wright@morningstar2.co.uk +Released under the LaTeX Project Public License v1.3c or later +See http://www.latex-project.org/lppl.txt +---------------------------------------------------------------- + +\endpreamble +\postamble + +Copyright (C) 2006-2009 by + Joseph Wright <joseph.wright@morningstar2.co.uk> + +It may be distributed and/or modified under the conditions of +the LaTeX Project Public License (LPPL), either version 1.3c of +this license or (at your option) any later version. The latest +version of this license is in the file: + + http://www.latex-project.org/lppl.txt + +This work is "maintained" (as per LPPL maintenance status) by + Joseph Wright. + +This work consists of the file chemstyle.dtx and + chemstyle.cdx, + and the derived files chemstyle.pdf, + chemstyle.ins, + chemstyle.sty, + chemscheme.sty, + +\endpostamble +\usedir{tex/latex/chemstyle} +\generate{ + \file{chemstyle.sty}{\from{chemstyle.dtx}{package}} + \file{chemscheme.sty}{\from{chemstyle.dtx}{chemscheme}} +} +\usedir{tex/latex/chemstyle/config} +\generate{ + \file{angew.chemstyle.cfg}{\from{chemstyle.dtx}{angew}} + \file{ic.chemstyle.cfg}{\from{chemstyle.dtx}{ic}} + \file{jacs.chemstyle.cfg}{\from{chemstyle.dtx}{jacs}} + \file{jomc.chemstyle.cfg}{\from{chemstyle.dtx}{jomc}} + \file{rsc.chemstyle.cfg}{\from{chemstyle.dtx}{rsc}} + \file{orglett.chemstyle.cfg}{\from{chemstyle.dtx}{orglett}} + \file{tetlett.chemstyle.cfg}{\from{chemstyle.dtx}{tetlett}} +} +%</install> +%<install>\endbatchfile +%<*internal> +\usedir{source/latex/chemstyle} +\generate{ + \file{chemstyle.ins}{\from{chemstyle.dtx}{install}} +} +\nopreamble\nopostamble +\usedir{doc/latex/chemstyle} +\generate{ + \file{README.txt}{\from{chemstyle.dtx}{readme}} + \file{chemstyle-demo.tex}{\from{chemstyle.dtx}{demo}} + \file{scheme-one.eps}{\from{chemstyle.dtx}{scheme}} + \file{scheme-two.eps}{\from{chemstyle.dtx}{scheme,labels}} +} +\ifx\fmtname\nameofplainTeX + \expandafter\endbatchfile +\else + \expandafter\endgroup \fi -% Will Robertson's trick -\immediate\write18{makeindex -s gind.ist -o \jobname.ind \jobname.idx} -\immediate\write18{makeindex -s gglo.ist -o \jobname.gls \jobname.glo} -%</ignore> +\immediate\write18{makeindex -s gglo.ist -o chemstyle.gls chemstyle.glo} +\immediate\write18{makeindex -s gind.ist -o chemstyle.ind chemstyle.idx} +%</internal> +%<*package|chemscheme> +\NeedsTeXFormat{LaTeX2e} +%</package|chemscheme> %<*driver> -\PassOptionsToClass{a4paper}{article} -\documentclass[german,english,UKenglish]{ltxdoc} +\documentclass[a4paper]{ltxdoc} +\usepackage[T1]{fontenc} +\usepackage{array,booktabs,chemstyle,lmodern} +\usepackage[scaled=0.95]{helvet} +\usepackage[final]{listings,microtype} +\usepackage[osf]{mathpazo} +\usepackage[version=3]{mhchem} +\usepackage[crop=off,ext=dtx,final,runs=2]{auto-pst-pdf} +\usepackage[numbered]{hypdoc} \EnableCrossrefs \CodelineIndex \RecordChanges -%\OnlyDescription -\usepackage[final]{graphicx} -\usepackage[journal=none,xspace=true]{chemstyle} -\usepackage{jawltxdoc} -% To show the features of \eg, \ie and so on, a bit of work is -% required, as they are defined by jawltxdoc and by chemstyle -\let\eg\undefined -\let\ie\undefined -\let\latin\undefined -\let\etc\undefined \begin{document} - \DocInput{\jobname.dtx} + \DocInput{chemstyle.dtx} \end{document} %</driver> % \fi % -%\CheckSum{646} -% -% \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 -% Lower-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 -% Digits \0\1\2\3\4\5\6\7\8\9 -% Exclamation \! Double quote \" Hash (number) \# -% Dollar \$ Percent \% Ampersand \& -% Acute accent \' Left paren \( Right paren \) -% Asterisk \* Plus \+ Comma \, -% Minus \- Point \. Solidus \/ -% Colon \: Semicolon \; Less than \< -% Equals \= Greater than \> Question mark \? -% Commercial at \@ Left bracket \[ Backslash \\ -% Right bracket \] Circumflex \^ Underscore \_ -% Grave accent \` Left brace \{ Vertical bar \| -% Right brace \} Tilde \~} -% -% \GetFileInfo{\jobname.sty} +%\CheckSum{0} +% +%\GetFileInfo{chemstyle.sty} +% +%\makeatletter +% +%^^A \DescribeOption is in l3doc but not ltxdoc +%\newcommand*{\DescribeOption}{^^A +% \leavevmode +% \@bsphack +% \begingroup +% \MakePrivateLetters +% \Describe@Option +%} +%\newcommand*{\Describe@Option}[1]{^^A +% \endgroup +% \marginpar{^^A +% \raggedleft +% \PrintDescribeEnv{#1}^^A +% }% +% \SpecialOptionIndex{#1}^^A +% \@esphack +% \ignorespaces +%} +%\newcommand*{\SpecialOptionIndex}[1]{^^A +% \@bsphack +% \index{^^A +% #1\actualchar{\protect\ttfamily#1} (option)\encapchar usage^^A +% }^^A +% \index{^^A +% options:\levelchar#1\actualchar{\protect\ttfamily#1} +% \encapchar usage^^A +% }^^A +% \@esphack +%} +% +%^^A For creating examples with nice highlighting of code, and so +%^^A on; based on the system used in the listings source (lstsample). +%\lst@RequireAspects{writefile} +%\newsavebox{\LaTeXdemo@box} +%\lstnewenvironment{LaTeXdemo}[1][code and example]{^^A +% \global\let\lst@intname\@empty +% \expandafter\let\expandafter\LaTeXdemo@end +% \csname LaTeXdemo@#1@end\endcsname +% \@nameuse{LaTeXdemo@#1}^^A +%}{^^A +% \LaTeXdemo@end +%} +%\newcommand*\LaTeXdemo@new[3]{^^A +% \expandafter\newcommand\expandafter*\expandafter +% {\csname LaTeXdemo@#1\endcsname}{#2}^^A +% \expandafter\newcommand\expandafter*\expandafter +% {\csname LaTeXdemo@#1@end\endcsname}{#3}^^A +%} +%\newcommand*\LaTeXdemo@common{^^A +% \setkeys{lst}{ +% basicstyle = \small\ttfamily, +% basewidth = 0.51em, +% gobble = 3, +% keywordstyle = \color{blue}, +% language = [LaTeX]{TeX}, +% moretexcs = { +% ce, +% cmc, +% cstsetup, +% etc, +% eg, +% etal, +% floatcontentscenter, +% floatcontentscentre, +% floatcontentsleft, +% floatcontentsright, +% floatsetup, +% floatstyle, +% Hz, +% ie, +% iBu, +% iPr, +% includegraphics, +% invacuo, +% latin, +% mmHg, +% molar, +% Molar, +% nBu, +% nPr, +% restylefloat, +% sBu, +% standardstate, +% tBu +% } +% }^^A +%} +%\newcommand*\LaTeXdemo@input{^^A +% \MakePercentComment +% \catcode`\^^M=10\relax +% \small +% \begingroup +% \setkeys{lst}{ +% SelectCharTable=\lst@ReplaceInput{\^\^I}{\lst@ProcessTabulator} +% }^^A +% \leavevmode +% \input{chemstyle.tmp}^^A +% \endgroup +% \MakePercentIgnore +%} +%\LaTeXdemo@new{code and example}{^^A +% \setbox\LaTeXdemo@box=\hbox\bgroup +% \lst@BeginAlsoWriteFile{chemstyle.tmp}^^A +% \LaTeXdemo@common +%}{^^A +% \lst@EndWriteFile +% \egroup +% \begin{center} +% \ifdim\wd\LaTeXdemo@box>0.48\linewidth\relax +% \hbox to\linewidth{\box\LaTeXdemo@box\hss}^^A +% \begin{minipage}{\linewidth} +% \LaTeXdemo@input +% \end{minipage} +% \else +% \begin{minipage}{0.48\linewidth} +% \LaTeXdemo@input +% \end{minipage} +% \hfill +% \begin{minipage}{0.48\linewidth} +% \hbox to\linewidth{\box\LaTeXdemo@box\hss}^^A +% \end{minipage} +% \fi +% \end{center} +%} +%\LaTeXdemo@new{code and float}{^^A +% \lst@BeginAlsoWriteFile{chemstyle.tmp}^^A +% \LaTeXdemo@common +%}{^^A +% \lst@EndWriteFile +% \LaTeXdemo@input +%} +%\LaTeXdemo@new{code only}{^^A +% \LaTeXdemo@common +%}{^^A +%} +% +%\providecommand*\eTeX{\ensuremath{\varepsilon}-\TeX} +%\providecommand*\file{\texttt} +%\providecommand*\opt{\texttt} +%\providecommand*\pkg{\textsf} +% +%\DoNotIndex{\begin,\documentclass,\end,\usepackage} +% +%\makeatother +% +%\title{^^A +% The \textsf{chemstyle} bundle --- Schemes and style for +% chemistry\thanks{^^A +% This file describes version \fileversion, last revised +% \filedate.^^A +% }^^A +%} +%\author{^^A +% Joseph Wright\thanks{E-mail: joseph.wright@morningstar2.co.uk}^^A +%} +%\date{Released \filedate} +% +%\maketitle % %\changes{v1.0}{2006/08/06}{Initial release of package} -%\changes{v1.0b}{2007/09/04}{Added \pkg{microtype} and -% \pkg{notes2bib} to template} -%\changes{v1.1}{2007/09/17}{License changed from \textsc{gpl} to -% \textsc{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.1}{2007/09/17}{Added \opt{phrases} option} -%\changes{v1.1}{2007/09/17}{Added \opt{siunits} option} -%\changes{v1.1}{2007/09/17}{Added \opt{xspace} option} -%\changes{v1.1a}{2007/09/18}{Fixed error in documentation compilation -% under \LaTeX} -%\changes{v1.1c}{2007/09/23}{Fixed problems with capitalisation -% of \pkg{SIunits}} -%\changes{v1.1c}{2007/09/23}{Documentation improved} -%\changes{v1.1c}{2007/09/23}{Added \pkg{SIunits} option} -%\changes{v1.1e}{2007/10/07}{Fixed packaging problem} -%\changes{v1.2}{2008/03/07}{Various internal tweaks} -%\changes{v1.2}{2008/03/07}{Removed obsolete \opt{ch} and -% \opt{chapter} options} -%\changes{v1.2a}{2008/03/21}{Fixed error with restyling -% \texttt{scheme} floats, caused by change in \pkg{chemscheme}} -% -%\setkeys{lst}{language=[LaTeX]{TeX},moretexcs={mmHg,Molar, -% molar,cmc,Hz,SI,standardstate,iPr,nPr,nBu,sBu,tBu,iBu, -% cstsetup,latin,eg,ie,etc,invacuo,etal,floatstyle,restylefloat, -% upsigma,uppi}} -% -%\DoNotIndex{\@fs@capt,\@fs@cfont,\@fs@iftopcapt,\@fs@mid,\@fs@post} -%\DoNotIndex{\@fs@pre,\@gobblefour,\@ifclassloaded,\@ifnextchar} -%\DoNotIndex{\@ifpackagelater,\@ifpackageloaded,\@ifundefined} -%\DoNotIndex{\@nameuse,\@undefined,\abovecaptionskip,\addto} -%\DoNotIndex{\AtBeginDocument,\begingroup,\belowcaptionskip} -%\DoNotIndex{\bfseries,\bibname,\captionsetup,\centi,\cm,\color} -%\DoNotIndex{\csgappto,\csname,\cubed,\CurrentOption,\deci} -%\DoNotIndex{\DeclareCaptionFormat,\DeclareCaptionLabelSeparator} -%\DoNotIndex{\DeclareMathSymbol,\DeclareOptionX} -%\DoNotIndex{\DeclareRobustCommand,\DeclareSymbolFont,\def} -%\DoNotIndex{\define@boolkey,\define@choicekey,\define@cmdkeys} -%\DoNotIndex{\define@key,\dm,\edef,\else,\emph,\endcsname} -%\DoNotIndex{\endgroup,\endinput,\ensuremath,\ExecuteOptionsX} -%\DoNotIndex{\expandafter,\fi,\figurename,\floatc@plain} -%\DoNotIndex{\floatc@ruled,\floatcontentscentre,\floatplacement} -%\DoNotIndex{\floatstyle,\futurelet,\gdef,\hertz,\hrule,\iffalse} -%\DoNotIndex{\ifnum,\iftrue,\ifx,\input,\InputIfFileExists} -%\DoNotIndex{\kern,\labelformat,\languagename,\let,\makeatletter} -%\DoNotIndex{\makeatother,\MakeUppercase,\mathord,\MessageBreak} -%\DoNotIndex{\metre,\milli,\mmHg,\mole,\NeedsTeXFormat,\newcommand} -%\DoNotIndex{\newcounter,\newfloat,\newif,\newunit,\OrgLettColour} -%\DoNotIndex{\PackageError,\PackageInfo,\PackageWarning} -%\DoNotIndex{\PassOptionsToPackage,\ProcessOptionsX,\providecommand} -%\DoNotIndex{\ProvidesFile,\ProvidesPackage,\quad,\refname,\relax} -%\DoNotIndex{\renewcommand,\RequirePackage,\restylefloat,\rotatebox} -%\DoNotIndex{\rpcubed,\schemename,\selectlanguage,\setkeys} -%\DoNotIndex{\requiresiconfigs,\space,\spacefactor,\tablename,\textsc} -%\DoNotIndex{\textsuperscript,\the,\unitsep,\unitsuperscript,\usk} -%\DoNotIndex{\value,\vspace,\xspace,\z@} -% -%\DoNotIndex{\',\begin,\end,\documentclass,\usepackage} -% -% \title{\currpkg\ --- Writing chemistry with style^^A -% \thanks{This file describes version \fileversion, last revised -% \filedate.}} -% \author{Joseph Wright^^A -% \thanks{E-mail: joseph.wright@morningstar2.co.uk}} -% \date{Released \filedate} -% -% \maketitle % %\begin{abstract} -% The \currpkg 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. +% The \textsf{chemstyle} bundle provides two packages: +% \textsf{chemstyle} and \textsf{chemscheme}. Both are intended to +% help chemists create floating graphics and match published styles. +% +% The \textsf{chemscheme} package consists of two parts, both related +% to chemical schemes. The package adds a scheme float type to the +% \LaTeX\ default types figure and table. The scheme float type acts in +% the same way as those defined by the \LaTeX\ kernel, but is intended +% for chemical schemes. The package also provides a method for adding +% automatic chemical numbering to schemes. +% +% The \textsf{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} % %\begin{multicols}{2} -%\tableofcontents +% \tableofcontents %\end{multicols} % %\section{Introduction} -% The aim of \currpkg 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. \currpkg has grown out of the \pkg{rsc} package, which had -% a similar aim but was much more limited (and less robustly -% implemented). The \currpkg package is also designed with the use -% of \pkg{biblatex} in mind: the \pkg{rsc} package is closely bound -% to traditional \BibTeX\ use. -% -% As a successor to the \pkg{rsc} package, \currpkg provides a range -% of chemistry-related additional macros. The set provided here is -% an extended version of those provide by \pkg{rsc}. Everything that -% can be done using the \pkg{rsc} \LaTeX\ package is therefore -% possible using the \currpkg package. -% -% The formatting system provided by \currpkg 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 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 \currpkg} +% +% The \pkg{chemstyle} bundle consists of two parts. The first, +% the \pkg{chemstyle} package itself, aims to provide an easy and +% reliable 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. The formatting system provided by +% \pkg{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 journal articles. The package +% aims to be suitable for use in preparing drafts of papers, but also +% for writing reports, theses and so on. +% +% The second part of the bundle is the \pkg{chemscheme} package, which +% is loaded automatically by \pkg{chemstyle}. \pkg{chemscheme} +% undertakes two tasks. First, it provides a floating \texttt{scheme} +% environment, which acts in the same way as the kernel \texttt{figure} +% and \texttt{table} floats. Secondly, it interfaces with either the +% \pkg{chemcompounds} or \pkg{bpchem} packages to allow automatic +% numbering of chemical compounds inside graphics. +% +% This manual is written to cover both packages. All of the material +% is relevant to users of the \pkg{chemstyle} package. For those only +% using \pkg{chemscheme}, +% +%\section{Installation} +% +% The entire bundle is supplied with the TDS-ready ZIP file, +% \file{chemstyle.tds.zip}. Simply unzip this into your local texmf +% tree and run your hash program: \texttt{texhash} should work with +% recent versions of either \TeX\ Live or MiK\TeX. +% +% To extract the bundle of files from \file{chemstyle.dtx}, run +% (pdf)\TeX\ on \file{chemstyle.dtx}. This will produce all of the +% package files, and also \file{README.txt}. To extract the +% files and build the documentation, run (pdf)\LaTeX\ on +% \texttt{chemstyle.dtx}: you will need to enable ``write18'' if +% you compile in PDF mode. +% +%\section{Requirements} +% +% The \pkg{chemstyle} class requires the following packages: +%\begin{itemize} +% \item \pkg{amstext} (part of the AMS bundle); +% \item \pkg{caption}; +% \item either \pkg{float} or \pkg{floatrow}; +% \item \pkg{kvoptions} (part of the \pkg{oberdiek} bundle); +% \item either \pkg{siunitx} or \pkg{SIunits} (otherwise no +% units are defined); +% \item \pkg{psfrag}; +% \item \pkg{varioref} (part of the standard \pkg{tools} bundle); +% \item \pkg{xspace} (part of the standard \pkg{tools} bundle). +%\end{itemize} +% These are normally present in the current major \TeX\ distributions, +% but are also available from \href{http://www.ctan.org}{The +% Comprehensive TeX Archive Network}. +% +%\section{The \pkg{chemstyle} package: tools for chemistry} +% +% The package recognises a number of key--value options when loading. +% Some of these are also available in the document body, and are +% described along with the relevant commands. Options which apply to +% \pkg{chemscheme} can be given when loading \pkg{chemstyle} and will +% be applied correctly. +% %\DescribeOption{journal} -% \currpkg should be loaded with a package option specifying which -% journal style to follow. Currently, \currpkg is aware of a the -% styles listed in \ref{styles}. New styles can be developed by -% creating a new file modelled on the existing definitions; \currpkg -% will automatically search for correctly-named styles. +% \pkg{chemstyle} is supplied with a number of configuration files, +% based on the styles adopted by a number of chemistry journals +% (\ref{styles}). A style can be chosen by loading the package with +% the \opt{journal=\meta{style}} key. %\begin{table} % \begin{tabular}{ll} % \toprule % Option & Journals using this style \\ % \midrule -% none & Not applicable\\ % angew & \emph{Angew.\ Chem.}, \emph{Chem.\ Eur.\ J.} \\ % jomc & \emph{J.\ Organomet.\ Chem.}, % \emph{Coord.\ Chem.\ Rev.} \\ @@ -334,79 +411,32 @@ to aid the chemist. % tetlett & \emph{Tetrahedron}, \emph{Tetrahedron Lett.} \\ % \bottomrule % \end{tabular} -% \caption{Styles provided by \currpkg}\label{styles} +% \caption{Styles provided by \pkg{chemstyle}} +% \label{styles} %\end{table} -% The style files provided with \currpkg have been derived from -% current practice in the target journals. It is not always easy to -% pick the correct stylistic settings from (sometimes inconsistent) -% real-world examples. The package author welcomes feedback on the -% styles provided. -% -% The \opt{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. This document has been compiled -% implicity using the \opt{none} option, for example. -% -%\subsection{Creating styles} -% The process of creating a new styles for \currpkg is intended to be -% relatively easy. New styles should be saved as files with the -% extension \ext{jdf} (standing for for Journal Definition File), and -% should be saved somewhere in the path searched by -% \TeX.\footnote{Depending on your \TeX\ distribution, you may need -% to rebuild your file database after creating a new style. For -% Mik\TeX\ users, this can be done graphically or by typing -% \texttt{mpm --update-db} at the command line; for TeXLive, run -% \texttt{texhash}.} The definition files included in the package -% should provide a guide to the basic options available for producing -% new styles. Arbitrary \TeX\ commands can be included, if they are -% necessary for a particular style. For example, other packages can -% be loaded in \cs{usepackage}. -% -% The maintainer of \currpkg is happy to add new styles to the -% package, either by contribution by users or on request (when he has -% sufficient time!). If you have a new style to add (or corrections -% to an existing one), please contact the package author. -% -%\subsection{Package options} -%\DescribeOption{journal} -% As of version 1.2, \currpkg uses the \pkg{keyval} system for -% option management. The choice of journal style can therefore be -% given as a normal option or by using the key \opt{journal=}. The -% other package options provided by the package are described as they -% arise in the documentation. -% +% %\DescribeMacro{\cstsetup} -% Some of the package options can only be set when loading the -% package. The choice of journal style is one of these. Others can -% be altered anywhere in the document, using the \cs{cstsetup} macro. -% This accepts a \pkg{keyval} list and processes it as needed. -% -%\DescribeOption{chemcompounds} -%\DescribeOption{floatrow} -% \currpkg loads the \pkg{chemscheme} package, and therefore will -% pass through the \opt{chemcompounds} option. It can also request -% floats are created either by \pkg{float} or \pkg{floatrow}; this is -% controlled by the \opt{floatrow} option. Setting -% \opt{floatrow=false} means that \pkg{float} is used to generate -% floats; the default value is \defaultopt{true}. -% +% Many of the package options can be altered anywhere in the document, +% using the \cs{cstsetup} macro. This accepts a \pkg{keyval} list and +% processes it as needed. +% %\section{Naming of the references section} -% \currpkg alters the naming of the references section of a document. -% By default, \currpkg alters the value of \cs{bibname} or -% \cs{refname} (as appropriate) to the form of words chosen by the +% +% \pkg{chemstyle} alters the naming of the references section of a +% document. By default, \pkg{chemstyle} alters the value of \cs{bibname} +% or \cs{refname} (as appropriate) to the form of words chosen by the % target journal for the ``References'' section. % % The ``\refname'' naming commands are language-aware, \emph{via} the -% \pkg{babel} interface. Currently, \currpkg includes appropriate -% labels for \pkg{babel} languages \opt{english}, \opt{UKenglish}, -% \opt{ngerman} and \opt{french}. Other languages can be added if -% appropriate wordings are provided to the author. The naming system -% is designed to work correctly with both \pkg{natbib} and -% \pkg{biblatex}. +% \pkg{babel} interface. Currently, \pkg{chemstyle} includes appropriate +% labels for \pkg{babel} languages \opt{english}, \opt{german} and +% \opt{french}. Other languages can be added if appropriate wordings are +% provided to the author. The naming system is designed to work +% correctly with both \pkg{natbib} and \pkg{biblatex}. % %\DescribeOption{notes} %\DescribeOption{nonotes} +%\DescribeOption{notesbefore} % The package recognises the \opt{notes} option for controlling how % the references section is named. The accepts the values % \opt{true}, \opt{false} and \opt{auto}. The Boolean values either @@ -416,100 +446,55 @@ to aid the chemist. % added, ``Notes and'' is included in the section title, whereas if % no notes are given the section title remains as ``References''. % The \opt{nonotes} option is equivalent to \opt{notes=false}. -% -%\DescribeOption{notesbefore} % The second option for this area is \opt{notesbefore}. This takes % \opt{true} and \opt{false} only, and sets whether ``Notes and % References'' or ``References and Notes'' is produced. -% -%\section{Additional macros} +% %\subsection{Additional units} +% +%\DescribeMacro{\cmc} %\DescribeMacro{\Hz} -%\DescribeMacro{\mmHg} %\DescribeMacro{\molar} %\DescribeMacro{\Molar} -%\DescribeMacro{\cmc} +%\DescribeMacro{\mmHg} % Both the \pkg{SIunits} and \pkg{unitsdef} packages provide methods % for handling a range of units, but do not include a small number of % unit macros useful to chemists. In contrast, the \pkg{siunitx} % package provides all of these using the \opt{synchem} module. If -% \pkg{SIunits} or \pkg{unitsdef} are loaded, \currpkg provides the -% missing units. On the other hand, if no unit package is loaded, -% \pkg{siunitx} is loaded and provides the units itself. -%\begin{LaTeXexample} -% \SI{10}{\Hz}\\ -% \SI{20}{\mmHg}\\ -% \SI{30}{\molar}\\ -% \SI{40}{\Molar}\\ -% \SI{50}{\cmc} -%\end{LaTeXexample} +% \pkg{SIunits} or \pkg{unitsdef} are loaded, \pkg{chemstyle} provides +% the missing units. On the other hand, if no unit package is loaded, +% \pkg{siunitx} is loaded and provides the units itself: if +% \pkg{siunitx} is not available on the system, \emph{these macros are +% not defined}. +%\begin{LaTeXdemo} +% \SI{10}{\cmc} \\ +% \SI{20}{\Hz} \\ +% \SI{30}{\molar} \\ +% \SI{40}{\Molar} \\ +% \SI{50}{\mmHg} +%\end{LaTeXdemo} % %\subsection{The standard state symbol} +% %\DescribeMacro{\standardstate} % Related to the above, but not exactly a unit is the % \cs{standardstate} command.\footnote{The \cs{standardstate} macro % is only defined if the user does not have their own version.} This % generates the tricky \cs{standardstate} symbol. The symbol will % adapt to local sizing. -%\begin{LaTeXexample} +%\begin{LaTeXdemo} % the standard conditions are indicated: \standardstate\\ % Common but not correct: % $\Delta G_\mathrm{f}^\standardstate$ or -% $\Delta G_\mathrm{f}{}^\standardstate$ \\ +% $\Delta G_\mathrm{f}{}^\standardstate$ \\ % Better: -% $\Delta_\mathrm{f}G^\standardstate$\\ +% $\Delta_\mathrm{f}G^\standardstate$ \\ % Sizing: % $\int^{T_{\mathrm{out}}}_{T^\standardstate}$ -%\end{LaTeXexample} -% -%\subsection{Alkyl radicals} -%\changes{v1.3d}{2009/01/09}{Alkyl radicals work in \cs{ce} macro} -%\DescribeMacro{\nPr} -%\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, \cs{iPr} gives \iPr, \cs{iBu} gives \iBu -% and \cs{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. -%\begin{LaTeXexample} -% The alkyl group could be \nPr, \iPr\\ -% or \nBu without affecting the selectivity. -%\end{LaTeXexample} -% These should also work inside the \cs{ce} macro of \pkg{mhchem} when -% if escaped mode: -%\begin{LaTeXexample} -% \ce{$\nBu$2CH-C($\iPr$)3} -%\end{LaTeXexample} -% -%\DescribeOption{xspace} -% When \currpkg is loaded using the \opt{xspace} option, the -% \pkg{xspace} package is automatically used to add space after the -% command names, so that |\iPr group| will result in ``\iPr\ group'' -% being typeset. -% -%\DescribeOption{radhyphen} -%\DescribeOption{rademph} -%\DescribeOption{radsuper} -%\DescribeOption{radprefix} -% The appearance of these radical abbreviations is controlled by the -% package options \opt{radhyphen}, \opt{rademph}, \opt{radsuper} and -% \opt{radprefix}. The journal styles set these automatically, but -% they can be redefined at any point. The options work as might be -% expected, and are Boolean switches. -%\begin{LaTeXexample} -% \cstsetup{radhyphen=false,radsuper=true}\\ -% \iPr \tBu -% \cstsetup{radhyphen=true,radsuper=false,% -% radprefix=false,rademph=false}\\ -% \iBu \sBu -%\end{LaTeXexample} -% +%\end{LaTeXdemo} +% %\subsection{Latin phrases} +% %\DescribeMacro{\latin} %\DescribeMacro{\etc} %\DescribeMacro{\eg} @@ -520,19 +505,25 @@ to aid the chemist. % available as the obvious commands. By altering the definition of % \cs{latin}, this allows ready switching from italic to Roman % typesetting. Notice that \cs{etc}, \cs{ie} and \cs{eg} are aware -% of trailing periods, and so doubling-up should not occur. Once -% again, these macros use \pkg{xspace} when given as a package option -% to handle automatic addition of spaces after these phrases. +% of trailing periods, and so doubling-up should not occur. +%\begin{LaTeXdemo} +% \latin{some text} \\ +% \eg \\ +% \etal \\ +% \etc \\ +% \ie \\ +% \invacuo +%\end{LaTeXdemo} % %\DescribeOption{abbremph} % The use of italic for these abbreviations is set by altering the % package option \opt{abbremph}, which takes values \opt{true} and % \opt{false}. -%\begin{LaTeXexample} -% \etal or \invacuo plus \latin{some text}\\ +%\begin{LaTeXdemo} +% \etal\ \ie \\ % \cstsetup{abbremph=false} -% \ie equals \eg perhaps \etc -%\end{LaTeXexample} +% \etal\ \ie \\ +%\end{LaTeXdemo} % %\DescribeOption{abbrcomma} % For American journals, where it is obligatory to follow ``\eg'' and @@ -540,57 +531,386 @@ to aid the chemist. % this automatically. Thus, when using an appropriate journal style, % |\eg|, |\eg.| and |\eg,| will all result in typesetting ``\eg,''. % The Boolean package option \opt{abbrcomma} controls this. -%\begin{LaTeXexample} +%\begin{LaTeXdemo} % \eg this\\ % \cstsetup{abbrcomma=true} % \ie that -%\end{LaTeXexample} +%\end{LaTeXdemo} % % The \cs{etc} and \cs{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 -%\begin{LaTeXexample} +%\begin{LaTeXdemo} % \etc\ more text \\ % \etal~have shown -%\end{LaTeXexample} +%\end{LaTeXdemo} % +%\DescribeOption{phrases} %\DescribeOption{nophrases} % The definitions of all of the phrases are designed not to overwrite % any given by the user \emph{in the preamble}. So, if you have your -% own \cs{latin} macro, it will be used even if you load \currpkg. If -% you encounter any problems, try loading the package with the +% own \cs{latin} macro, it will be used even if you load \pg{chemstyle}. +% If you encounter any problems, try loading the package with the % \opt{nophrases} option; this option prevents the package even -% trying to define any of the phrase macros. +% trying to define any of the phrase macros. The \opt{phrases} option +% acts as a complement to \opt{nopharses}, so that \opt{phrases=false} +% is the same as \opt{nophrases=true}. +% +%\subsection{Alkyl radicals} +% +%\DescribeMacro{\nPr} +%\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, \cs{iPr} gives \iPr, \cs{iBu} gives \iBu +% and \cs{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. +%\begin{LaTeXdemo} +% The alkyl group could be \\ +% \nPr, \iPr or \nBu without \\ +% affecting the selectivity. +%\end{LaTeXdemo} +% These should also work inside the \cs{ce} macro of \pkg{mhchem} when +% if escaped mode: +%\begin{LaTeXdemo} +% \ce{$\nBu$2CH-C($\iPr$)3} +%\end{LaTeXdemo} % -%\DescribeMacro{\latinemphon} -%\DescribeMacro{\latinemphoff} -% For backward-compatibiltiy with previous versions of \currpkg, the -% macros \cs{latinemphon} and \cs{latinemphoff} are provided. These -% work as would be expected, to alter the formatting produced by -% \cs{latin}. The more general \pkg{keyval} method is now preferred -% for making this change. +%\DescribeOption{rademph} +%\DescribeOption{radhyphen} +%\DescribeOption{radprefix} +%\DescribeOption{radsuper} +% The appearance of these radical abbreviations is controlled by the +% package options \opt{rademph}, \opt{radhyphen}, \opt{radprefix} and +% \opt{radsuper}. The journal styles set these automatically, but +% they can be redefined at any point. The options work as might be +% expected, and are Boolean switches. +%\begin{LaTeXdemo} +% \cstsetup{ +% radhyphen = false, +% radsuper = true} +% \iPr \tBu \\ +% \cstsetup{ +% radhyphen = true, +% radsuper = false, +% radprefix = false, +% rademph = false +% } +% \iBu \sBu +%\end{LaTeXdemo} % +%\DescribeOption{xspace} +% The package can use \pkg{xspace} to automatically insert space after +% the alkyl radical macros. This is controlled using the \opt{xspace} +% option. +%\begin{LaTeXdemo} +% \cstsetup{ +% xspace = true +% } +% Some text \iPr some more text\\ +% \cstsetup{ +% xspace = false +% } +% Some text \iPr some more text +%\end{LaTeXdemo} +% +%\section{The \pkg{chemscheme} package: graphics for chemistry} +% +%\subsection{Floating schemes} +% +% By default, \LaTeX\ defines two float types, \texttt{figure} and +% \texttt{table}. Synthetic chemists make heavy use of schemes, +% which need a \texttt{scheme} float type. This is provided by +% \pkg{chemscheme}, in a manner consistent with the kernel floats. +% +%\DescribeEnv{scheme} +% The package provides a new float type, scheme, accessed in the +% usual way. +%\begin{LaTeXdemo}[code and float] +% \begin{scheme}[ht] +% \includegraphics{scheme-one} +% \caption{A scheme with no compound numbers.} +% \end{scheme} +%\end{LaTeXdemo} +% The \texttt{scheme} float is designed to behave in the same way as the +% standard \LaTeX\ float environments \texttt{figure} and +% \texttt{table}. Thus schemes will be placed at the top of a page, +% where possible. As shown in the example, the use of positional +% modifiers is allowed. Labelling and referencing schemes also follows +% the \LaTeX\ conventions. \pkg{chemscheme} works hard to emulate the +% document class in use, and so the exact behaviour will depend on +% whether the standard classes, \textsc{koma}-Script or \pkg{memoir} +% are being used. +% +%\DescribeMacro{\schemename} +% \cs{schemename} contains the text used in scheme captions (by +% default \schemename). This is used in the same manner as +% \cs{figurename} or \cs{tablename} to set up the text used in scheme +% captions. +%\begin{LaTeXdemo}[code and float] +% \renewcommand*{\schemename}{Illustration} +% \begin{scheme}[ht] +% \includegraphics{scheme-one} +% \caption{A scheme that is not a Scheme!} +% \end{scheme} +%\end{LaTeXdemo} +% +%\DescribeMacro{\listofschemes} +%\DescribeMacro{\listschemename} +% To match the \cs{listoffigures} and \cs{listoftables} macros +% provided by the \LaTeX\ kernel, \pkg{chemscheme} provides a +% \cs{listofschemes} command. This works in the same way as the +% kernel commands, with the default text stored in the macro +% \cs{listschemename}. The standard output is illustrated below. +% \listofschemes +% +%\DescribeOption{floats} +% Which method is used to generate the new float is controlled by +% the \opt{floats} option, which recognises \opt{float}, \opt{floatrow} +% and \opt{memoir}. The \opt{memoir} option is ignored if not using +% the \pkg{memoir} class, or if \pkg{chemstyle} is in +% use.\footnote{\pkg{memoir} is not capable of some of the float +% manipulation needed by \pkg{chemstyle}.} +% +%\subsection{Reference numbers in graphics} +% +% There are a number of packages available for tracking compound +% reference numbers. The two with the most up to date and +% comprehensive features are \pkg{bpchem} and \pkg{chemcompounds}. +% Both allow in-text numbering to be handled automatically. However, +% neither will allow the use of these numbers directly in schemes, +% figures, \etc. Both leave it to the user to manually adapt schemes +% to match any changes in numbering. +% +% The \pkg{chemscheme} package provides a mechanism for rectifying this +% issue. The package makes use of the \pkg{psfrag} package, which +% means that it can only directly produce DVI output (using \LaTeX). +% However, direct PDF output using pdf\LaTeX\ is possible: see +% Section~\ref{demo}. +% +% Getting automated numbers into schemes is a two step procedure. In +% the first step, schemes (or other graphics) should be prepared as +% normal and saved as encapsulated postscript (EPS) files. The most +% popular chemistry drawing package, \textsc{ChemDraw}, is able to do +% this from the \texttt{Save As \ldots} dialogue. The positions where +% the auto-labels should be have to be marked in the EPS file. The +% marker should consist of an ``indicator'' that the text is to be +% replaced, followed by a reference number or letter. For automated +% substitution, the ``indicator'' text should be the same in all +% graphics. +% +%\DescribeMacro{\schemeref} +% In the second step, the command \cs{schemeref} is used to indicate +% the mapping of the temporary markers to the automatically-managed +% numbering. The syntax of the command is +% \cs{chemschemeref}\oarg{temp-marker}\marg{label}, where +% \meta{temp-marker} is the marker used in the graphic, and +% \meta{label} is the name assigned to the compound by the user. By +% default, \pkg{chemscheme} will assume that \meta{temp-marker} +% consists of the marker plus a number, beginning at 1 and +% incrementing by 1 for each additional structure inside one float. +% Each replacement requires a separate \cs{chemschemeref}, all of +% which should appear before the relevant \cs{includegraphics} command. +% +% An example will make usage clearer. In the example used in this +% document, the starting material is given label \texttt{IMesHCl} and +% the product is called \texttt{IMes}. As is shown in the next +% example, in the EPS file these are labelled \textsf{TMP1} and +% \textsf{TMP2}, respectively. The automated package defaults are +% used. +%\begin{LaTeXdemo}[code and float] +% \begin{scheme}[ht] +% \includegraphics{scheme-two} +% \caption{A scheme with temporary compound numbers.} +% \end{scheme} +% \begin{scheme}[ht] +% \schemeref{IMesHCl} +% \schemeref{IMes} +% \includegraphics{scheme-two} +% \caption{A scheme with automated compound numbers.} +% \end{scheme} +%\end{LaTeXdemo} +% If the marker text is given as an optional argument to +% \cs{schemeref}, it must include the entire text to be matched. +%\begin{LaTeXdemo}[code and float] +% \begin{scheme}[ht] +% \schemeref[TMP1]{IMesHCl} +% \schemeref[TMP2]{IMes} +% \includegraphics{scheme-two} +% \caption{A scheme with explicitly numbered temporary labels.} +% \end{scheme} +%\end{LaTeXdemo} +% Notice that the new label is centred on the middle of the temporary +% marker, with the same baseline. This should allow the user to +% obtain good alignment of labels and structures. +% +%\DescribeMacro{\schemerefmarker} +% When using automatic substitution mode, the ``marker'' text to be +% searched for is stored as \cs{schemerefmarker}, which has +% default value \texttt{\schemerefmarker}. Thus the graphics should +% contain labels \textsf{\schemerefmarker1}, \textsf{\schemerefmarker2}, +% \emph{etc}. The value can be changed using \cs{renewcommand*}. +% +%\DescribeMacro{\schemerefformat} +% The format of chemical references is controlled by the underlying +% package, \pkg{bpchem} or \pkg{chemcompounds}. However, it is +% useful to be able to specify additional formatting for schemes. By +% default, \pkg{chemscheme} formats all reference numbers in a sans +% serif font. This is controlled by \cs{schemerefformat}. +%\begin{LaTeXdemo}[code and float] +% % This needs the color or xcolor package loaded +% \renewcommand*{\schemerefformat}{% +% \color{magenta}\textit +% }% +% \begin{scheme}[ht] +% \schemeref{IMesHCl} +% \schemeref{IMes} +% \includegraphics{scheme-two} +% \caption{A scheme with altered label formatting.} +% \end{scheme} +%\end{LaTeXdemo} +% +%\DescribeMacro{\schemerefsub} +% The \pkg{bpchem} package allows tracking of sub-labels (\textbf{1a}, +% \textbf{1b}, \emph{etc.}). To allow use of these in schemes, the +% \cs{schemerefsub} command is provided. This takes an additional +% argument \marg{sub-label}, which is used to generate the +% appropriate text. When used with \pkg{chemcompounds}, this command +% will gobble its arguments and issue a warning; no substitution will +% take place. +% +%\DescribeOption{tracking} +% The choice of using \pkg{chemcompounds} or \pkg{bpchem} can be made +% by giving the key--value option \opt{tracking=\meta{package}} when +% loading \pkg{chemscheme}. This recognises the values \opt{bpchem} +% and \opt{chemcompounds}, with the later as the default. +% +%\section{Horizontal positioning of all floats} +% +%\DescribeMacro{\floatcontentscentre} +%\DescribeMacro{\floatcontentscenter} +%\DescribeMacro{\floatcontentsleft} +%\DescribeMacro{\floatcontentsright} +% The \LaTeX\ default is to position all float contents flush-left. +% There is no ``hook'' provided to alter this. The \pkg{chemschem} +% package therefore provides commands to align all float contents +% automatically. As the macro names make clear, +% \cs{floatcontentscentre} will make all floats centred (for users +% speaking U.S.~English, the alternative spelling +% \cs{floatcontentscenter} is also available). The default behaviour +% is restored using the command \cs{floatcontentsleft}. Finally, +% \cs{floatcontentsright} is provided for use if needed. Notice that +% the float positioning commands should be given \emph{outside} +% floating environments, and apply to all subsequent floats. +%\begin{LaTeXdemo}[code and float] +% \floatcontentsleft +% \begin{scheme}[ht] +% \includegraphics{scheme-one} +% \caption{A flush-left scheme.} +% \end{scheme} +% \floatcontentsright +% \begin{scheme}[ht] +% \includegraphics{scheme-one} +% \caption{A flush-right scheme.} +% \end{scheme} +% \floatcontentscentre +%\end{LaTeXdemo} +% +% It is important to note that the positioning mechanism used here +% relies on a low-level hack of the \LaTeX\ kernel. This has been +% tested with the standard \LaTeX\ classes, the \pkg{memoir} class +% and the \textsc{koma}-Script bundled. Other document classes may +% not give the desired behaviour. +% +%\section{Some thoughts on generating chemical schemes} +% +%\subsection{Overview} +% There are a number of ways of generating the graphical content of +% schemes. The choice of method will depend on what is available to +% the user, and how complex the schemes desired are. In this section, +% an overview of several approaches is given.\footnote{Thanks to +% Norwid-R.\ Behrnd for suggesting this section and giving a number +% of useful examples and tips.} The package author, who is a +% research worker in a university, favours using \textsc{ChemDraw} as +% it is regarded by many synthetic chemists as the best tool for this +% job. However, this is clearly overkill for users requiring a +% single diagram on a one-off basis. \textsc{ChemDraw} is also a +% commercial package running only under Windows and MacOS X. The +% following is necessarily somewhat brief and selective. +% +%\subsection{Macro-based methods} +% At the most basic, a chemical scheme is simply a collection of +% lines and symbols, as with any vector diagram. Hence, it is +% possible to construct schemes directly using packages such as +% PSTricks or \pkg{pgf}/Ti\emph{k}z. This is a complex method, and +% cannot be recommended for anyone except the very experienced and +% brave. +% +% At a more practical level, there are two packages available which +% allow typesetting of chemical structures in \TeX, using +% specialised commands: XyM\TeX\ and ppch\TeX. Recent versions of +% the XyM\TeX\ package have not been made available on \textsc{CTAN}, +% and the version held there is therefore considered to be obsolete. +% On the +% other hand, the ppch\TeX\ system, developed originally for +% Con\TeX{}t, is available. Both systems suffer from the lack of +% chemical logic in the input: it is very hard to tell from the code +% what is being represented. Drawing items such as ``curly arrows'', +% or making subtle alterations to positioning, is very challenging in +% purely macro-based systems. For these reasons, it is usually much +% more sensible to examine the available graphical methods. +% +%\subsection{Graphical methods} +% +% Moving to graphical systems, there is no reason that +% general-purpose vector drawing packages cannot be used for schemes. +% There are obviously several commercial (\textsc{CorelDraw}, +% \textsc{Adobe Illustrator}, \etc) and freeware (for example +% the \textsc{gimp}) drawing packages that can be used in this way. +% Simply rings and lines can easily be constructed, although in +% general-purpose programs the user has to watch that all bonds +% are the same length. +% +% For producing a large number of complex schemes, the particular +% abilities of dedicated software become a necessity. As well as the +% already-mentioned \textsc{ChemDraw}, programs such as \textsc{ISIS +% Draw} and \textsc{ChemSketch} are available free for personal +% use;\footnote{``Free'' as in without charge, not as in open +% source.} these programs are all Windows specific. In the +% open-source arena, there are a number of packages such as +% \textsc{XDrawChem} and \textsc{BKchem}, which offer cross-platform +% functionality. The differences between the various packages are in +% the ease of use, and ability to generate well-formatted output (for +% example, aligning structures). A more recent addition to this +% group of packages is the cross-platform \textsc{ChemDoodle}, which +% look promising but is not free in any sense. +% +% One which deserves mention for the \TeX\ user is TpX. This is a +% general purpose Windows graphics program specifically aimed at +% producing \TeX-friendly output (such as PSTricks and Ti\emph{k}z +% code) from a graphical interface. TpX can accept clipboard data +% from other programs, so can be used to produce EPS files from +% programs which do not have native export facilities (such as +% \textsc{ISIS Draw}). +% %\section{Additional information} -%\subsection{Advice for users of the \pkg{rsc} package} -% The \currpkg package is intended as a replacement for the \pkg{rsc} -% package. As such, it covers almost everything the the \pkg{rsc} -% \LaTeX\ package does, and more. Users of \pkg{rsc} are strongly -% encouraged to update to using \currpkg. The bibliography styles -% provided by \pkg{rsc} will continue to be required, of course. -% Migration of these styles to \pkg{biblatex} is an on-going project. % %\subsection{Interactions with other packages} -% The \currpkg package has been designed to avoid, as far as -% possible, clashes with other packages. The package requires the -% presence of the standard \pkg{graphicx} and \pkg{varioref} -% packages. If these packages need to be loaded with explicit -% options, this should be done \emph{before} loading \currpkg. The -% \pkg{chemscheme} package is also needed, as it provides the -% floating \texttt{scheme} environment essential in synthetic -% chemistry documents. +% +% \pkg{chemstyle} and \pkg{chemscheme} are designed to avoid, as far as +% possible, clashes with other packages. The standard packages +% \pkg{graphicx} and \pkg{varioref} are used by the budnle. If you +% need to load these with specific options, this needs to be done +% \emph{before} loading \pkg{chemstyle} (or \pkg{chemscheme}). % %\subsection{Captions above floats} +% % The \texttt{scheme} float type is generated using either the % \pkg{float} or \pkg{floatrow} package. This has the side-effect % that the placement of captions for floats does not depended on @@ -598,176 +918,104 @@ to aid the chemist. % environment.\footnote{Normally this is a good thing.} If you wish % to alter the placement of captions, the mechanism of the underlying % package will be needed. There are some subtle differences between -% the two: altough \pkg{floatrow} provides the \pkg{float} macros, -% they are not all 100\% compatible. This document is compiled using -% \pkg{floatrow}, and so to fix the position of captions the +% the two: although \pkg{floatrow} provides the \pkg{float} macros, +% they are not all $100\,\%$ compatible. This document is compiled +% using \pkg{floatrow}, and so to fix the position of captions the % following code is appropriate. -% -%\begin{LaTeXexample}[float] +%\begin{LaTeXdemo}[code and float] % \begin{table}[ht] -% The float contents -% \caption{A caption below the float contents in the source} +% \fbox{First float contents} +% \caption{A caption below the float contents in the source.} % \end{table} -% \floatsetup[table]{style=plain} % When using floatrow -% % \floatstyle{plain} -% % \restylefloat{table} When using float +% \floatsetup[table]{style=plain} % \begin{table}[ht] -% The second float contents, which should be above the caption -% \caption{A second caption below the float contents -% in the source} +% \fbox{Second float contents} +% \caption{A second caption below the float contents in the source.} % \end{table} -%\end{LaTeXexample} -% -%\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 -% user is writing a thesis for a U.K.~university. Hence it uses -% U.K.~defaults and RSC-based styling. Most of the packages used have -% good documentation, but a brief summary of why they are recommend -% follows. -%\iffalse -%<*demo> -%\fi +%\end{LaTeXdemo} +% Using the \pkg{float} package, the same effect is achieved using: +%\begin{LaTeXdemo}[code only] +% \begin{table}[ht] +% \fbox{First float contents} +% \caption{A caption below the float contents in the source.} +% \end{table} +% \floatstyle{plain} +% \restylefloat{table} +% \begin{table}[ht] +% \fbox{Second float contents} +% \caption{A second caption below the float contents in the source.} +% \end{table} +%\end{LaTeXdemo} +% +%\section{A demonstration file\label{demo}} +% +% This is a simple demonstration file for using the \pkg{chemstyle} +% package. By using the \pkg{auto-pst-pdf} package, it is possible to +% use EPS graphics with pdf\LaTeX. % \begin{macrocode} -\documentclass[fontsize=10pt,paper=a4,english,UKenglish] - {scrreprt} -\usepackage{geometry,upgreek,booktabs,babel} -\usepackage[journal=rsc,xspace=true]{chemstyle} -\usepackage[version=3]{mhchem} -\usepackage[footnotes]{notes2bib} -\usepackage[final]{microtype} -\usepackage[final,inactive]{pst-pdf} -\usepackage[colorlinks]{hyperref} +%<*demo> +\documentclass[a4paper]{article} +\usepackage[T1]{fontenc} % Modern font encoding +\usepackage[runs=2]{auto-pst-pdf} % Use EPS graphics with pdfLaTeX +\usepackage{booktabs} % Better table layouts +\usepackage[journal=rsc]{chemstyle} % Of course! +\usepackage{geometry} % Easy page laout +\usepackage{lmodern} % Use Latin Modern fonts +\usepackage[version=3]{mhchem} % Formula subscripts using \ce{} \begin{document} - Document contents go here \end{document} -% \end{macrocode} -%\iffalse %</demo> -%\fi -% -% The versatile \textsc{koma}-script bundle provides more advanced -% versions of the standard document classes. If you want paragraphs -% separated out, with no indents (a common style for theses), add the -% \opt{parskip} option to the font and paper size ones given here. -% -% The \pkg{babel} system is loaded to sort out hyphenation and so on, -% and could be useful if there are any foreign-language quotes. -% -% \pkg{geometry} allows the users to alter page layout with ease: -% much better than trying to hack the raw \LaTeX\ system. -% \pkg{booktabs} gives much nicer looking tables than the \LaTeXe\ -% default. \pkg{upgreek} provides non-italic lowercase Greek letters, -% which should be used for things such as bond descriptions. -%\begin{LaTeXexample} -% $\uppi$-bond $\upsigma^*$-orbital -%\end{LaTeXexample} -% -% Load \currpkg (of course) to give not only some easy formatting, -% but also to automatically provide a float type for schemes, thanks -% to the \pkg{chemscheme} package. This also loads either -% \pkg{chemcompounds} or (optionally) \pkg{bpchem} to track compound -% numbers. -% -% The \pkg{mhchem} package provides the \cs{ce} command for rapidly -% typesetting formulas, so that you can type |\ce{H2SO4}| and get -% $\ce{H2SO4}$.\footnote{There is a slight cheat here, as this -% document uses lower-case numerals in the text. The example is -% written as \texttt{\$\textbackslash ce\{H2SO4\}\$}.} -% -% The \pkg{microtype} package improves formatting when used with the -% pdf\TeX\ engine. By giving the \opt{final} option, it is active -% even when using \opt{draft} as a global option. -% -% Using \pkg{notes2bib} allows the user to automatically add notes to -% the bibliography from within the document body. So you can put -% |\bibnote{A note}| in the source, and this will move into the -% References section without any further effort. The \opt{footnotes} -% option means that footnotes do the same. -% -% Finally, the \pkg{hyperref} package makes headings, citations and -% so on into hyperlinks. -% -%\StopEventually{} +% \end{macrocode} % -%\iffalse -%<*package> -%\fi -%\section{The package code} -%\subsection{Setup code} -%\begin{macro}{\cst@id} -%\begin{macro}{\cst@ver} -% First of all, the package identifies itself and loads other -% packages needed to function. Loading \pkg{chemscheme} is deferred -% until later, to allow processing of options at the correct point. +%\StopEventually{^^A +% \PrintChanges +% \PrintIndex +%} +% +%\section{Implementation} +% +% A few support packages. % \begin{macrocode} -\NeedsTeXFormat{LaTeX2e} -\def\cst@id$#1: #2.#3 #4 #5-#6-#7 #8 #9${% - \def\cst@ver{#5/#6/#7\space v1.3d\space}} -\cst@id $Id: chemstyle.dtx 51 2009-01-09 16:21:24Z joseph $ +%<*package> \ProvidesPackage{chemstyle} - [\cst@ver Writing chemistry with style] -% \end{macrocode} -%\end{macro} -%\end{macro} -%\changes{v1.1d}{2007/10/04}{Require caption in all cases} -%\changes{v1.0a}{2007/08/23}{No longer load \texttt{fixltx2e} -% package} -%\changes{v1.2}{2008/03/05}{Added \pkg{xkeyval} interface} -%\changes{v1.3d}{2009/01/09}{Require \pkg{amstext}} -% Packages that are needed under all circumstances are loaded here. -% There are some limitations on the age of \pkg{xkeyval}. -% \begin{macrocode} -\RequirePackage{xkeyval}[2005/05/07] -\RequirePackage{amstext,graphicx,varioref,caption,xspace} + [2009/06/06 v2.0 Schemes and style for chemistry] +\RequirePackage{amstext,caption,chemscheme,varioref,xspace} +\SetupKeyvalOptions{ + family=cst, + prefix=cst@ +} % \end{macrocode} +% %\begin{macro}{\cst@tempa} -%\changes{v1.2}{2008/03/05}{New macro} -%\begin{macro}{\cst@tempb} -%\changes{v1.2}{2008/03/05}{New macro} -% A couple of temporary private macros. +% A temporary macro. % \begin{macrocode} -\newcommand*{\cst@tempa}{} -\newcommand*{\cst@tempb}{} +\newcommand*\cst@tempa{} % \end{macrocode} -%\end{macro} -%\end{macro} -% -%\subsection{Option handling} -%\begin{macro}{\cst@boolkey} -% Option handling is processed using \pkg{xkeyval}. As a number of -% Boolean keys are needed, a shortcut is handy. -% \begin{macrocode} -\newcommand*{\cst@boolkey}[1]{ - \define@boolkey[cst]{opt}[cst@]{#1}[true]{}} -% \end{macrocode} -%\end{macro} -%\begin{macro}{\ifcst@chemcompounds} -%\begin{macro}{\ifcst@floatrow} -%\begin{macro}{\ifcst@xspace} +%\end{macro} +% +%\begin{macro}{\ifcst@abbrcomma} +%\begin{macro}{\ifcst@abbremph} +%\begin{macro}{\ifcst@notesbefore} %\begin{macro}{\ifcst@phrases} -%\begin{macro}{\ifcst@radprefix} %\begin{macro}{\ifcst@rademph} -%\begin{macro}{\ifcst@radsuper} %\begin{macro}{\ifcst@radhyphen} -%\begin{macro}{\ifcst@abbremph} -%\begin{macro}{\ifcst@abbrcomma} -%\begin{macro}{\ifcst@notesbefore} -% The Boolean keys are now defined. +%\begin{macro}{\ifcst@radpreix} +%\begin{macro}{\ifcst@radsuper} +%\begin{macro}{\ifcst@xspace} +% Some simple Boolean options. % \begin{macrocode} -\cst@boolkey{chemcompounds} -\cst@boolkey{floatrow} -\cst@boolkey{xspace} -\cst@boolkey{phrases} -\cst@boolkey{radprefix} -\cst@boolkey{rademph} -\cst@boolkey{radsuper} -\cst@boolkey{radhyphen} -\cst@boolkey{abbremph} -\cst@boolkey{abbrcomma} -\cst@boolkey{notesbefore} +\DeclareBoolOption[false]{abbrcomma} +\DeclareBoolOption[true]{abbremph} +\DeclareBoolOption[true]{notesbefore} +\DeclareBoolOption[true]{phrases} +\DeclareComplementaryOption{nophrases}{phrases} +\DeclareBoolOption[true]{rademph} +\DeclareBoolOption[true]{radhyphen} +\DeclareBoolOption[true]{radprefix} +\DeclareBoolOption[false]{radsuper} +\DeclareBoolOption[true]{xspace} % \end{macrocode} +%\end{macro} %\end{macro} %\end{macro} %\end{macro} @@ -776,124 +1024,113 @@ to aid the chemist. %\end{macro} %\end{macro} %\end{macro} +% +%\begin{macro}{\cst@language} +%\begin{macro}{\cst@journal} +% Simple string options. +% \begin{macrocode} +\DeclareStringOption{journal} +\DeclareDefaultOption{% + \ifx\CurrentOptionValue\relax + \edef\cst@journal{\CurrentOptionKey}% + \else + \PackageWarning{chemstyle}{% + Unknown key option `\CurrentOptionKey'% + }% + \fi +} +\DeclareStringOption{language} +\setkeys{cst}{% + journal = , + language = english +} +% \end{macrocode} %\end{macro} %\end{macro} -%\end{macro} +% %\begin{macro}{\ifcst@notes} %\begin{macro}{\ifcst@autonotes} -%\begin{macro}{\cst@tempa} -%\begin{macro}{\cst@tempb} -% For notes, some choices are available. These need a bit of -% testing. +%\begin{macro}{\cst@opt@auto} +%\begin{macro}{\cst@opt@notestrue} +%\begin{macro}{\cst@opt@notesfalse} +%\begin{macro}{\cst@opt@notesauto} +%\begin{macro}{\cst@opt@noteserror} +% For the \opt{notes} option, there are three possible values. Some of +% the internal code of \pkg{kvoptions} is borrowed and modified to keep +% things simple. % \begin{macrocode} \newif\ifcst@notes \newif\ifcst@autonotes -\define@choicekey*[cst]{opt}{notes}[\cst@tempa] - {true,false,auto}[true] - {\cst@notesfalse - \cst@autonotesfalse - \edef\cst@tempb{auto} - \ifx\cst@tempa\cst@tempb - \cst@notestrue - \cst@autonotestrue - \fi - \edef\cst@tempb{true} - \ifx\cst@tempa\cst@tempb - \cst@notestrue - \fi} +\newcommand*\cst@opt@auto{auto} +\define@key{cst}{notes}[true]{% + \edef\KVO@param{#1}% + \@onelevel@sanitize\KVO@param + \ifx\KVO@param\KVO@true + \expandafter\cst@opt@notestrue + \else + \ifx\KVO@param\KVO@false + \expandafter\expandafter\expandafter\cst@opt@notesfalse + \else + \ifx\KVO@param\cst@opt@auto + \expandafter\expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\cst@opt@notesauto + \else + \expandafter\expandafter\expandafter\expandafter\expandafter + \expandafter\expandafter\cst@opt@noteserror + \fi + \fi + \fi +} +\newcommand*\cst@opt@notestrue{% + \cst@notestrue + \cst@autonotesfalse +} +\newcommand*\cst@opt@notesfalse{% + \cst@notesfalse + \cst@autonotesfalse +} +\newcommand*\cst@opt@notesauto{% + \cst@notestrue + \cst@autonotestrue +} +\newcommand*\cst@opt@noteserror{% + \PackageWarning{chemstyle}{% + Value `\KVO@param' is not supported by\MessageBreak + option `notes'% + }% +} +\DeclareComplementaryOption{nonotes}{notes} % \end{macrocode} %\end{macro} %\end{macro} %\end{macro} %\end{macro} -% Some old options are no longer needed at all. -% \begin{macrocode} -\DeclareOptionX[cst]<opt>{siunits} - {\PackageInfo{chemstyle}{Option siunits no longer required}} -\DeclareOptionX[cst]<opt>{SIunits} - {\PackageInfo{chemstyle}{Option siunits no longer required}} -\DeclareOptionX[cst]<opt>{nonotes} - {\ExecuteOptionsX[cst]<opt>{notes=false}} -\DeclareOptionX[cst]<opt>{nophrases} - {\ExecuteOptionsX[cst]<opt>{phrases=false}} -% \end{macrocode} -%\begin{macro}{\cst@journal} -%\begin{macro}{\cst@language} -% The \opt{journal} option can be given with or without -% \opt{journal=}. -% \begin{macrocode} -\define@cmdkeys[cst]{opt}[cst@]{journal,language} -\DeclareOptionX*{\edef\cst@journal{\CurrentOption}} -% \end{macrocode} %\end{macro} %\end{macro} -% The default options are executed, and the user options are -% processed. -% \begin{macrocode} -\setkeys[cst]{opt}{ - notes=true, - phrases=true, - chemcompounds=true, - xspace=true, - floatrow=true, - journal=none, - radprefix=true, - rademph=true, - radsuper=false, - radhyphen=true, - abbremph=true, - abbrcomma=false, - language=english, - notesbefore=true} -\ProcessOptionsX[cst]<opt> -% \end{macrocode} -% With the options processed, those to be passed to \pkg{chemscheme} -% are sorted out. -% \begin{macrocode} -\ifcst@chemcompounds - \PassOptionsToPackage{chemcompounds}{chemscheme} -\fi -\ifcst@floatrow - \RequirePackage[floats=floatrow]{chemscheme} -\else - \RequirePackage[floats=float]{chemscheme} -\fi -% \end{macrocode} -%\begin{macro}{\cst@disablekey} -% Some of the options are no longer relevant once the package is -% loaded. These are disabled here with a suitable message. -% \begin{macrocode} -\newcommand*{\cst@disablekey}[1]{ - \define@key[cst]{opt}{#1}{\PackageWarning{chemstyle} - {Option `#1' only valid when loading package}}} -\AtBeginDocument{ - \cst@disablekey{floatrow} - \cst@disablekey{journal} - \cst@disablekey{phrases} - \cst@disablekey{nophrases} - \cst@disablekey{notes} - \cst@disablekey{nonotes} - \cst@disablekey{chemcompounds}} -% \end{macrocode} %\end{macro} +% %\begin{macro}{\cstsetup} -% A macro for changing the settings at run-time without needing to -% know the internals of the package. +% For allowing run-time changes. % \begin{macrocode} -\newcommand*{\cstsetup}[1]{% - \iffalse{\fi\ifnum0=`}\fi - \setkeys[cst]{opt}{#1}% - \ifnum0=`{\fi\iffalse}\fi} +\newcommand*\cstsetup{% + \setkeys{cst} +} % \end{macrocode} %\end{macro} % +%\begin{macro}{\cst@xspace} +% A re-usable \cs{xspace}-based macro. +% \begin{macrocode} +\newcommand*\cst@xspace{% + \ifcst@xspace + \expandafter\xspace + \fi +} +% \end{macrocode} +%\end{macro} +% %\subsection{Extra units} -%\changes{v1.2}{2008/03/06}{Re-write of units section} -%\changes{v1.2b}{2008/04/14}{Change due to name change of \pkg{si} -% package to \pkg{siunitx}} -%\changes{v1.2c}{2008/06/10}{Altered call to \pkg{siunitx} -% function} -%\changes{v1.3b}{2008/06/24}{Default to loading \pkg{siunitx}} +% %\begin{macro}{\cmc} %\begin{macro}{\Hz} %\begin{macro}{\cubiccentimeter} @@ -903,31 +1140,47 @@ to aid the chemist. %\begin{macro}{\mol} % The \pkg{siunitx} package provides all of the units desired here. % So if it is loaded, the module \opt{synchem} is all that needs to -% be loaded. Otherwise, a series of tests are needed for -% \pkg{SIunits} and \pkg{unitsdef}. If either of these are loaded, -% they are used; if not, then \pkg{siunitx} is loaded in any case. +% be loaded. % \begin{macrocode} -\@ifpackageloaded{siunitx} - {\requiresiconfigs{synchem}} - {\@ifpackageloaded{SIunits} - {\newcommand*{\cubiccentimeter}{\centi\metre\cubed} - \newcommand*{\Molar}{\textsc{m}} - \newcommand*{\molar}{\mole\usk\deci\metre\rpcubed} - \newcommand*{\mmHg}{\milli\metre Hg} - \newcommand*{\mol}{\mole} - \newcommand*{\cmc}{\cubiccentimeter} - \newcommand*{\Hz}{\hertz}} - {\@ifpackageloaded{unitsdef} - {\newunit{\cubiccentimeter}{% - \cm\unitsuperscript{3}} - \newunit{\Molar}{\textsc{m}} - \newunit{\molar}{% - \mole\unitsep\dm\unitsuperscript{--3}} - \newunit{\mmHg}{mmHg} - \newunit{\mol}{\mole} - \newcommand*{\cmc}{\cubiccentimeter} - \newcommand*{\Hz}{\hertz}} - {\RequirePackage[alsoload=synchem]{siunitx}}}} +\@ifpackageloaded{siunitx}{ + \requiresiconfigs{synchem} +}{% + \@ifpackageloaded{SIunits}{}{% + \@ifpackageloaded{unitsdef}{}{% + \IfFileExists{siunitx.sty}{% + \RequirePackage[alsoload=synchem]{siunitx} + }{% + \IfFileExists{SIunits.sty}{% + \RequirePackage{SIunits} + }{% + \PackageWarning{chemstyle}{% + Could not find siunitx or SIunits package:\MessageBreak + additional units not defined% + } + } + } + } + } +} +\@ifpackageloaded{SIunits}{% + \newcommand*\cubiccentimeter{\centi\metre\cubed} + \newcommand*\Molar{\textsc{m}} + \newcommand*\molar{\mole\usk\deci\metre\rpcubed} + \newcommand*\mmHg{\milli\metre Hg} + \newcommand*\mol{\mole} + \newcommand*\cmc{\cubiccentimeter} + \newcommand*\Hz{\hertz} +}{% + \@ifpackageloaded{unitsdef}{% + \newunit{\cubiccentimeter}{\cm\unitsuperscript{3}} + \newunit{\Molar}{\textsc{m}} + \newunit{\molar}{\mole\unitsep\dm\unitsuperscript{--3}} + \newunit{\mmHg}{mmHg} + \newunit{\mol}{\mole} + \newcommand*\cmc{\cubiccentimeter} + \newcommand*\Hz{\hertz} + }{} +} % \end{macrocode} %\end{macro} %\end{macro} @@ -938,85 +1191,193 @@ to aid the chemist. %\end{macro} % %\subsection{Standard state symbol} +% %\begin{macro}{\standardstate} -%\changes{v1.3a}{2008/07/21}{Completely new definition} -%\begin{macro}{\cst@sstate} -%\begin{macro}{\cst@s@state} -% The ``standard state'' symbol is handy. This definition -% is adapted from one posted several times to -% \texttt{comp.text.tex} by Donald Arseneau. +%\begin{macro}{\cst@standardstate} +%\begin{macro}{\cst@standardstate@aux} +% The ``standard state'' symbol is handy. This definition is adapted +% from one posted several times to \texttt{comp.text.tex} by Donald +% Arseneau. % \begin{macrocode} -\providecommand*{\standardstate}{% - {\ensuremath{\protect\cst@sstate}}} -\newcommand*{\cst@sstate}{\mathpalette\cst@s@state\circ} -\newcommand*{\cst@s@state}[2]{% - \ooalign{\hfil$#1-$\hfil\cr\hfil$#1#2$\hfil\cr}} +\providecommand*\standardstate{% + {% + \ensuremath{\protect\cst@standardstate}% + }% +} +\newcommand*\cst@standardstate{% + \mathpalette\cst@standardstate@aux\circ +} +\newcommand*\cst@standardstate@aux[2]{% + \ooalign{% + \hfil + $#1-$% + \hfil + \cr + \hfil + $#1#2$% + \hfil + \cr + }% +} % \end{macrocode} %\end{macro} %\end{macro} %\end{macro} % -%\subsection{Alkyl radicals} -%\begin{macro}{\cst@radical} -%\changes{v1.2}{2008/03/07}{Re-write to allow definition to change at -% run-time} -% The \cs{cst@radical} macro does the hard work of declaring each -% abbreviation. The commands are made robust so they can (hopefully) -% be used anywhere. -% \begin{macrocode} -\newcommand*{\cst@radical}[2]{% - \expandafter\DeclareRobustCommand\expandafter*\expandafter{% - \csname #1#2\endcsname}{% - \text{% -% \end{macrocode} -%\begin{macro}{\cst@emph} -%\begin{macro}{\cst@hyphen} -%\begin{macro}{\cst@super} -% To allow redefinition while running, the various component parts of -% the system are defined each time an abbreviation is used. +%\subsection{Latin phrases} +% +%\begin{macro}{\latin} +%\begin{macro}{\cst@latin} +%\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 \cs{latin} command \emph{only} if the user +% does not have their own version. This is achieved here, with +% precautions taken to ensure the user can define their own +% \cs{latin} command \emph{after} loading \pkg{chemstyle} and still have +% everything work properly. % \begin{macrocode} - \ifcst@radhyphen - \def\cst@hyphen{-}% - \else - \let\cst@hyphen\relax - \fi - \ifcst@radsuper - \let\cst@super\textsuperscript - \else - \let\cst@super\relax - \fi - \ifcst@rademph - \let\cst@emph\emph - \else - \let\cst@emph\relax - \fi +\newcommand*\cst@latin{% + \ifcst@abbremph + \expandafter\emph + \else + \expandafter\@firstofone + \fi +} +\newcommand*{\latinemphon}{% + \cstsetup{abbremph=true}% +} +\newcommand*{\latinemphoff}{% + \cstsetup{abbremph=false}% +} +\AtBeginDocument{% + \providecommand*\latin{\cst@latin}% +} % \end{macrocode} %\end{macro} %\end{macro} %\end{macro} -% The final check is for a prefix, which is easiest to do here. +%\end{macro} +% +%\begin{macro}{\cst@phrases@make} +%\begin{macro}{\eg} +%\begin{macro}{\etal} +%\begin{macro}{\etc} +%\begin{macro}{\ie} +%\begin{macro}{\invacuo} +% The outer functions for phrases are simple. % \begin{macrocode} - \ifcst@radprefix - \cst@super{\cst@emph{#1}}\cst@hyphen#2% - \else - #2\cst@hyphen\cst@super{\cst@emph{#1}}% - \fi - \cst@xspace - }% +\newcommand*\cst@phrases@make{% + \providecommand*\etal{% + \cst@phrase{et~al}% + }% + \providecommand*\eg{% + \cst@phrase@comma{e.g\spacefactor999\relax}% + }% + \providecommand*\etc{% + \cst@phrase{etc}% + }% + \providecommand*\ie{% + \cst@phrase@comma{i.e\spacefactor999\relax}% + }% + \providecommand*\invacuo{% + \latin{in vacuo}% + \cst@xspace + }% +} +\AtBeginDocument{% + \ifcst@phrases + \expandafter\cst@phrases@make + \fi +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +%\begin{macro}{\cst@phrase} +%\begin{macro}{\cst@phrase@comma} +% For phrases which never have a comma, life is easy. If there may be a +% comma to add, the flag is checked before proceeding. +% \begin{macrocode} +\newcommand*\cst@phrase[1]{% + \latin{#1}% + \@ifnextchar.{}{% + .% + \cst@xspace }% } +\newcommand*\cst@phrase@comma{% + \ifcst@abbrcomma + \expandafter\cst@phrase@with@comma + \else + \expandafter\cst@phrase + \fi +} % \end{macrocode} +%\end{macro} +%\end{macro} +%\begin{macro}{\cst@phrase@with@comma} +%\begin{macro}{\cst@phrase@with@comma@token} +%\begin{macro}{\cst@phrase@with@comma@aux@i} +%\begin{macro}{\cst@phrase@with@comma@aux@ii} +%\begin{macro}{\cst@phrase@with@comma@end} +%\begin{macro}{\cst@phrase@with@comma@next} +% If a comma is needed, the macros here search through the trailing +% punctuation and gobble all of commas and full-stops. The appropriate +% punctuation is then added. Notice that the \cs{relax} here is +% important, and that the test is category-code neural. +% \begin{macrocode} +\newcommand*\cst@phrase@with@comma[1]{% + \latin{#1}% + \cst@phrase@with@comma@aux@i\relax +} +\newcommand*\cst@phrase@with@comma@token{} +\newcommand*\cst@phrase@with@comma@aux@i[1]{% + \futurelet\cst@phrase@with@comma@token\cst@phrase@with@comma@aux@ii +} +\newcommand*\cst@phrase@with@comma@aux@ii{% + \let\cst@phrase@with@comma@next\cst@phrase@with@comma@aux@i + \if.\cst@phrase@with@comma@token\else + \if,\cst@phrase@with@comma@token\else + \let\cst@phrase@with@comma@next\cst@phrase@with@comma@end + \fi + \fi + \cst@phrase@with@comma@next +} +\newcommand*\cst@phrase@with@comma@end{% + .,% + \cst@xspace +} +\newcommand*\cst@phrase@with@comma@next{} +% \end{macrocode} +%\end{macro} +%\end{macro} %\end{macro} -%\begin{macro}{\cst@xspace} -%\changes{v1.2}{2008/03/07}{New definition} -% A re-useable \cs{xspace}-based macro. +%\end{macro} +%\end{macro} +%\end{macro} +% +%\subsection{Alkyl radicals} +% +%\begin{macro}{\cst@radical@make} +% The \cs{cst@radical@amke} macro does the hard work of declaring each +% abbreviation. The commands are made robust so they can (hopefully) +% be used anywhere. % \begin{macrocode} -\newcommand*{\cst@xspace}{% - \ifcst@xspace - \expandafter\xspace% - \fi} +\newcommand*\cst@radical@make[2]{% + \expandafter\DeclareRobustCommand\expandafter*\csname #1#2\endcsname{% + \text{\cst@radical{#1}{#2}}% + \cst@xspace + }% +} % \end{macrocode} %\end{macro} +% %\begin{macro}{\nPr} %\begin{macro}{\iPr} %\begin{macro}{\nBu} @@ -1027,12 +1388,12 @@ to aid the chemist. % format of the resulting output will depend upon the configuration % file used. % \begin{macrocode} -\cst@radical{n}{Pr}% -\cst@radical{i}{Pr}% -\cst@radical{n}{Bu}% -\cst@radical{i}{Bu}% -\cst@radical{s}{Bu}% -\cst@radical{t}{Bu}% +\cst@radical@make{n}{Pr} +\cst@radical@make{i}{Pr} +\cst@radical@make{n}{Bu} +\cst@radical@make{i}{Bu} +\cst@radical@make{s}{Bu} +\cst@radical@make{t}{Bu} % \end{macrocode} %\end{macro} %\end{macro} @@ -1041,850 +1402,1808 @@ to aid the chemist. %\end{macro} %\end{macro} % -%\subsection{Float formatting} -% The next step is to format the floats correctly. The standard float -% types are now restyled to place the captions correctly (for most -% journals). Normally in chemical documents the author expects the -% float to be ``here'' if possible; this is therefore set as the -% default. -% \begin{macrocode} -\floatstyle{plaintop} -\restylefloat{table} -\floatstyle{plain} -\restylefloat{figure} -\floatplacement{table}{htbp} -\floatplacement{figure}{htbp} -% \end{macrocode} -% Work with |scheme|s needs to be done after \pkg{hyperref} might be -% loaded. +%\begin{macro}{\cst@radical@emph} +%\begin{macro}{\cst@radical@hyphen} +%\begin{macro}{\cst@radical@hyphen@false} +%\begin{macro}{\cst@radical@super} +% A few set up macros. % \begin{macrocode} -\AtBeginDocument{ - \restylefloat{scheme} - \floatplacement{scheme}{htbp}} +\newcommand*\cst@radical@emph{} +\newcommand*\cst@radical@hyphen{} +\newcommand*\cst@radical@hyphen@true{-} +\newcommand*\cst@radical@super{} % \end{macrocode} -% The contents of floats are centred by default, using the hook -% from the \pkg{chemscheme} package. +%\end{macro} +%\end{macro} +%\end{macro} +%\end{macro} +% +%\begin{macro}{\cst@radical} +%\begin{macro}{\cst@radical@pre} +%\begin{macro}{\cst@radical@post} +% The main body functions set everything up carefully, then actually +% prints things. % \begin{macrocode} -\floatcontentscentre +\newcommand*\cst@radical{% + \let\cst@radical@emph\@firstofone + \ifcst@rademph + \let\cst@radical@emph\emph + \fi + \let\cst@radical@hyphen\relax + \ifcst@radhyphen + \let\cst@radical@hyphen\cst@radical@hyphen@true + \fi + \let\cst@radical@super\@firstofone + \ifcst@radsuper + \let\cst@radical@super\textsuperscript + \fi + \ifcst@radprefix + \expandafter\cst@radical@pre + \else + \expandafter\cst@radical@post + \fi +} +\newcommand*\cst@radical@pre[2]{% + \cst@radical@super{% + \cst@radical@emph{#1}% + }% + \cst@radical@hyphen + #2% +} +\newcommand*\cst@radical@post[2]{% + #2% + \cst@radical@hyphen + \cst@radical@super{% + \cst@radical@emph{#1}% + }% +} % \end{macrocode} +%\end{macro} +%\end{macro} +%\end{macro} % %\subsection{Cross-references} -%\changes{v1.1g}{2007/10/19}{Fixed problem with cross-referencing -% when \pkg{babel} is not loaded} +% % The naming for cross-references is sorted out properly using the -% \pkg{varioref} package. +% \pkg{varioref} package. Schemes are done at the start of the document +% as the definition of \cs{schemename} may not exist yet. % \begin{macrocode} \labelformat{figure}{\figurename~#1} \labelformat{table}{\tablename~#1} -\AtBeginDocument{\labelformat{scheme}{\schemename~#1}} +\AtEndOfPackage{% + \AtBeginDocument{% + \labelformat{scheme}{\schemename~#1}% + }% +} % \end{macrocode} +% +% \subsection{Handling reference section naming} % -% \subsection{Latin phrases} -%\begin{macro}{\latin} -%\begin{macro}{\cst@latin} -%\changes{v1.1}{2007/09/17}{New macro} -%\changes{v1.2}{2008/03/07}{Change of definition to allow better -% working with run-time options} -%\begin{macro}{\latinemphon} -%\changes{v1.2}{2008/03/07}{New definition to work with \pkg{xkeyval} -% system} -%\begin{macro}{\latinemphoff} -%\changes{v1.2}{2008/03/07}{New definition to work with \pkg{xkeyval} -% system} -% 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 \cs{latin} command \emph{only} if the user -% does not have their own version. This is achieved here, with -% precautions taken to ensure the user can define their own -% \cs{latin} command \emph{after} loading \currpkg and still have -% everything work properly. +%\begin{macro}{bibnote} +% For the \opt{notes=auto} option, the \LaTeX\ counter \texttt{bibnote} +% needs to be defined even if \pkg{notes2bib} is not loaded. % \begin{macrocode} -\newcommand*{\cst@latin}{% - \ifcst@abbremph - \expandafter\emph% - \fi} -\newcommand*{\latinemphon}{\cstsetup{abbremph=true}} -\newcommand*{\latinemphoff}{\cstsetup{abbremph=false}} -\AtBeginDocument{\providecommand*\latin{\cst@latin}} +\AtBeginDocument{% + \@ifpackageloaded{notes2bib}{}{% + \newcounter{bibnote}% + }% +} % \end{macrocode} %\end{macro} -%\end{macro} -%\end{macro} -%\end{macro} -%\begin{macro}{\etc} -%\begin{macro}{\invacuo} -%\begin{macro}{\etal} -%\changes{v1.1f}{2007/10/14}{Fixed problem with full stop spacing} -%\begin{macro}{\eg} -%\changes{v1.1}{2007/09/17}{Adds comma for \textsc{acs} journals} -%\changes{v1.1f}{2007/10/14}{Fixed problem with full stop spacing} -%\changes{v1.1f}{2007/10/14}{Definition comma-mode dependent} -%\changes{v1.2}{2008/03/07}{Dynamic definition for comma mode} -%\begin{macro}{\ie} -%\changes{v1.1}{2007/09/17}{Adds comma for \textsc{acs} journals} -%\changes{v1.1f}{2007/10/14}{Fixed problem with full stop spacing} -%\changes{v1.1f}{2007/10/14}{Definition comma-mode dependent} -%\changes{v1.2}{2008/03/07}{Dynamic definition for comma mode} -% For the macros themselves, care is taken about trailing full stops. -% The \cs{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 \cs{providecommand} -% to avoid standing on the user's own versions, if they exist. +% +%\begin{macro}{\cst@refsec@name} +%\begin{macro}{\cst@refsec@find} +%\begin{macro}{\cst@refsec@find@aux} +%\begin{macro}{\cst@refsec@set@name} +% A search for the references section: if this ends up empty then there +% is no section and later code will not do anything. This is used to +% disable the relevant code if \opt{notes=false} is set. % \begin{macrocode} -\ifcst@phrases - \AtBeginDocument{ - \providecommand*{\etc} - {\@ifnextchar.{\cst@etc}{\cst@etc.\cst@xspace}} - \providecommand*{\invacuo} - {\latin{in vacuo}\cst@xspace} - \providecommand*{\etal} - {\@ifnextchar.{\cst@etal}{\cst@etal.\cst@xspace}} - \providecommand*{\eg} - {\ifcst@abbrcomma - \expandafter\cst@commaabbr% - \else - \expandafter\cst@nocommaabbr% - \fi - {eg}} - \providecommand*{\ie} - {\ifcst@abbrcomma - \expandafter\cst@commaabbr% - \else - \expandafter\cst@nocommaabbr% - \fi - {ie}}} +\newcommand*\cst@refsec@name{} +\newcommand*\cst@refsec@find[1]{% + \begingroup\expandafter\expandafter\expandafter\endgroup + \expandafter\ifx\csname #1\endcsname\relax + \expandafter\cst@refsec@set@name + \else + \expandafter\@gobble + \fi + {#1}% +} +\newcommand*\cst@refsec@set@name[1]{% + \def\cst@refsec@name{#1}% +} +\cst@refsec@find{bibname}% +\cst@refsec@find{refname}% +\ifx\cst@refsec@name\@empty + \expandafter\cst@notesfalse \fi % \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -%\begin{macro}{\cst@etal} -%\changes{v1.1f}{2007/10/14}{New macro} -%\begin{macro}{\cst@etc} -%\changes{v1.1f}{2007/10/14}{New macro} -%\begin{macro}{\cst@eg} -%\changes{v1.1f}{2007/10/14}{New macro} -%\begin{macro}{\cst@ie} -%\changes{v1.1f}{2007/10/14}{New macro} -% Internal macros are used for items ending in a full stop, to allow -% clean handling of spacing. Notice that \cs{ie} and \cs{eg} -% cannot come at the end of a sentence, they are designed to give -% only an inter-word space. -% \begin{macrocode} -\newcommand*{\cst@etal}{\latin{et~al}} -\newcommand*{\cst@etc}{\latin{etc}} -\newcommand*{\cst@ie}{\latin{i.e\spacefactor999\relax}} -\newcommand*{\cst@eg}{\latin{e.g\spacefactor999\relax}} -% \end{macrocode} %\end{macro} %\end{macro} %\end{macro} %\end{macro} -%\begin{macro}{\cst@commaabbr} -%\changes{v1.2}{2008/03/07}{New macro} -%\begin{macro}{\cst@nocommaabbr} -%\changes{v1.2}{2008/03/07}{New macro} -% To handle the comma issue, two general macros are used. +% +%\begin{macro}{\cst@refsec@lang} +%\begin{macro}{\cst@refsec@lang@clist} +%\begin{macro}{\cst@refsec@lang@define} +% The language-dependent definitions are created. % \begin{macrocode} -\newcommand*{\cst@commaabbr}[1]{% - \csname cst@#1\endcsname% - \cst@addpunct} -\newcommand*{\cst@nocommaabbr}[1]{% - \@ifnextchar.% - {\csname cst@#1\endcsname} - {\csname cst@#1\endcsname.\cst@xspace}} +\newcommand*\cst@refsec@lang{} +\newcommand*\cst@refsec@lang@clist{} +\newcommand*\cst@refsec@lang@define[4]{% + \ifx\cst@refsec@lang@clist\@empty + \def\cst@refsec@lang@clist{#1}% + \else + \edef\cst@refsec@lang@clist{% + \cst@refsec@lang@clist + ,#1% + }% + \fi + \@namedef{cst@refsec@lang@#1@references}{#2}% + \@namedef{cst@refsec@lang@#1@and}{#3}% + \@namedef{cst@refsec@lang@#1@notes}{#4}% +} +\cst@refsec@lang@define{english}{References}{and}{Notes} +\cst@refsec@lang@define{UKenglish}{References}{and}{Notes} +\cst@refsec@lang@define{ngerman}{Literatur}{und}{Notizen} +\cst@refsec@lang@define{german}{Literatur}{und}{Notizen} +\cst@refsec@lang@define{french}{R\'ef\'erences}{et}{Notes} +\cst@refsec@lang@define{frenchb}{R\'ef\'erences}{et}{Notes} % \end{macrocode} %\end{macro} %\end{macro} -%\begin{macro}{\cst@addpunct} -%\changes{v1.1}{2007/09/17}{New macro} -%\changes{v1.1f}{2007/10/14}{No longer used when comma not required} -% The following macros are very closely based on those in the -% \pkg{cite} package used for moving citations after punctuation. -% The first macro is used as an initial hook. Notice that -% \cs{relax} is essential here, as it provides an argument for -% \cs{cst@add@punct} in the first round of checking. -% \begin{macrocode} -\newcommand*{\cst@addpunct}{% - \cst@add@punct\relax} -% \end{macrocode} %\end{macro} -%\begin{macro}{\cst@add@punct} -%\changes{v1.1}{2007/09/17}{New macro} -% Here, a plain \TeX\ \cs{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{macro}{\cst@refsec@set} +%\begin{macro}{\cst@refsec@set@biblatex} +%\begin{macro}{\cst@refsec@set@babel} +%\begin{macro}{\cst@refsec@set@language} +% The method for setting up the section heading depends on the +% other packages in use. \pkg{biblatex} has its own system, and with +% \pkg{babel} there is also a mechanism to attach to. % \begin{macrocode} -\newcommand*{\cst@add@punct}[1]{% - \futurelet\cst@tempa\cst@add@punct@} +\ifcst@notes + \AtBeginDocument{\cst@refsec@set} +\fi +\newcommand*\cst@refsec@set{% + \@ifpackageloded{biblatex}{% + \@for\cst@refsec@lang:=\cst@refsec@lang@clist\do{% + \cst@refsec@set@biblatex\cst@refsec@lang + }% + }{% + \@ifpackageloded{babel}{% + \@for\cst@refsec@lang:=\cst@refsec@lang@clist\do{% + \cst@refsec@set@babel\cst@refsec@lang + }% + \expandafter\selectlanguage\expandafter{\languagename}% + }{% + \@for\cst@refsec@lang:=\cst@refsec@lang@clist\do{% + \cst@refsec@set@language\cst@refsec@lang + }% + }% + } +} +\newcommand*\cst@refsec@set@biblatex[1]{% + \edef\cst@tempa{% + \noexpand\csgappto{bib@strings@#1}{% + \noexpand\def\expandafter\noexpand + \csname\cst@refsec@name\endcsname{% + \noexpand\cst@refsec@make@name{#1}% + }% + }% + }% + \cst@tempa +} +\newcommand*\cst@refsec@set@babel[1]{% + \edef\cst@tempa{% + \noexpand\addto{\expandafter\noexpand\csname captions#1\endcsname}{% + \noexpand\def\expandafter\noexpand + \csname\cst@refsec@name\endcsname{% + \noexpand\cst@refsec@make@name{#1}% + }% + }% + }% + \cst@tempa +} +\newcommand*\cst@refsec@set@language[1]{% + \ifx#1\cst@language + \edef\cst@tempa{% + \noexpand\def\expandafter\noexpand + \csname\cst@refsec@name\endcsname{% + \noexpand\cst@refsec@make@name{#1}% + }% + }% + \cst@tempa + \fi +} % \end{macrocode} %\end{macro} -%\begin{macro}{\cst@add@punct@} -%\changes{v1.1}{2007/09/17}{New macro} -%\changes{v1.2}{2008/03/07}{Internal tweaks} -%\begin{macro}{\cst@tempa} -%\begin{macro}{\cst@tempb} -% The checking occurs here. If a match is made, then the process is -% repeated to allow the punctuation to be gobbled. +%\end{macro} +%\end{macro} +%\end{macro} +% +%\begin{macro}{\cst@refsec@make@name} +%\begin{macro}{\cst@refsec@make@name@fixed} +%\begin{macro}{\cst@refsec@make@name@auto} +%\begin{macro}{\cst@refsec@make@name@nonotes} +% Actually making the name is pretty easy: the only complexity is +% the possibility of automation. % \begin{macrocode} -\newcommand*{\cst@add@punct@}{% - \ifx.\cst@tempa - \let\cst@tempb\cst@add@punct +\newcommand*\cst@refsec@make@name@fixed[1]{% + \ifcst@notesbefore + \@nameuse{cst@refsec@lang@#1@notes} + \@nameuse{cst@refsec@lang@#1@and} + \@nameuse{cst@refsec@lang@#1@references}% \else - \ifx,\cst@tempa - \let\cst@tempb\cst@add@punct -% \end{macrocode} -% No match, and so new punctuation is to be added and the loop ended. -% \begin{macrocode} - \else - \let\cst@tempb\cst@commapunct - \fi + \@nameuse{cst@refsec@lang@#1@references} + \@nameuse{cst@refsec@lang@#1@and} + \@nameuse{cst@refsec@lang@#1@notes}% + \fi +} +\newcommand*\cst@refsec@make@name@auto{% + \ifnum\the\value{bibnote}>\z@\relax + \expandafter\cst@refsec@make@name@fixed + \else + \expandafter\cst@refsec@make@name@nonotes + \fi +} +\newcommand*\cst@refsec@make@name@nonotes[1]{% + \@nameuse{cst@refsec@lang@#1@references}% +} +\let\cst@refsec@make@name\cst@refsec@make@name@fixed +\ifcst@notes + \ifcst@autonotes + \let\cst@refsec@make@name\cst@refsec@make@name@auto \fi - \cst@tempb} +\fi % \end{macrocode} %\end{macro} %\end{macro} %\end{macro} -%\begin{macro}{\cst@commapunct} -%\changes{v1.2}{2008/03/07}{Name change from \cs{cst@punct}} -% The \cs{cst@punct} macro holds the comma-containing punctuation to -% be added. +%\end{macro} +% +% With everything set up, options can be processed. % \begin{macrocode} -\newcommand*{\cst@commapunct}{.,\cst@xspace} +\ProcessKeyvalOptions{cst} % \end{macrocode} -%\end{macro} +% +%\subsection{Float formatting} % +%\begin{macro}{\cst@float@memoir@correct} +% Floats are now re-formatted, using the tools provided by either +% \pkg{float} or \pkg{floatrow}. First, a check to make sure that +% \pkg{chemscheme} was not loaded with the \opt{memoir} option. The +% checks there mean that this is only possible if neither \pkg{floatrow} +% nor \pkg{float} are already loaded. +% \begin{macrocode} +\newcommand*\cst@float@memoir@correct{% + \let\newfloat\@undefined +} +\ifx\cst@float@pkg\cst@opt@memoir + \expandafter\cst@float@memoir@correct +\fi +\cst@float@load +\cst@float@execute{\@nameuse{cst@float@make@\cst@float@pkg}} +% \end{macrocode} +%\end{macro} +% +% With that done, the package can safely re-define appearance. +% \begin{macrocode} +\@ifpackageloaded{floatrow}{% + \floatsetup{objectset=centering} + \floatplacement{figure}{htbp} + \floatplacement{scheme}{htbp} + \floatplacement{table}{htbp} + \floatsetup[table]{style=plaintop} +}{% + \floatstyle{plaintop} + \restylefloat{table} + \floatstyle{plain} + \restylefloat{figure} + \floatplacement{table}{htbp} + \floatplacement{figure}{htbp} + \AtBeginDocument{% + \restylefloat{scheme} + \floatplacement{scheme}{htbp} + } +} +% \end{macrocode} +% %\subsection{Loading the style definition} +% % The style definition is loaded here, once everything necessary is -% in place. A style must be loaded, so a default is provided to be -% on the safe side. The journal style file must have extension -% \ext{jdf}. -%\changes{v1.1b}{2007/09/19}{Load \pkg{caption} even when -% journal style does not exist} +% in place. % \begin{macrocode} -\InputIfFileExists{\cst@journal.jdf} - {\PackageInfo{chemstyle} - {Loaded \cst@journal.jdf}} - {\PackageWarning{chemstyle} - {Requested style `\cst@journal' does not exist\MessageBreak - Loading default style} - \InputIfFileExists{none.jdf}{} - {\PackageError{chemstyle}{Failed to load none.jdf} - {The default journal definition file was not - found\MessageBreak This is a core part of - chemstyle\MessageBreak Something is wrong with - the installation}}} +\ifx\cst@journal\@empty\else + \InputIfFileExists{\cst@journal.chemstyle.cfg}{% + \setkeys{cst}{ + abbrcomma = false, + abbremph = true, + notesbefore = true, + rademph = true, + radhyphen = true, + radprefix = true, + radsuper = false, + } + }{% + \PackageWarning{chemstyle}{% + Requested style `\cst@journal' does not exist\MessageBreak + } + } +\fi % \end{macrocode} % -% \subsection{Handling reference section naming} -%\changes{v1.2}{2008/03/07}{Re-write of reference-section renaming -% code} -%\begin{macro}{\cst@refsec} -%\changes{v1.2}{2008/03/07}{New macro} -% To enable the renaming of \cs{bibname} or \cs{refname} to the -% desired value, some work is needed. Both \pkg{natbib} and -% \pkg{biblatex} alter the behaviour here subtly. The \pkg{babel} -% package also requires careful handling. The initial step is to fin -% whether the document class defines chapters, as this affects -% whether \cs{refname} or \cs{bibname} should be changed. This is -% done inside a group so that a false definition is not left -% around.\footnote{If \cs{@undefined} is ever fixed, this will no -% longer be needed. If \eTeX\ was required, the \cs{ifdefined} would be -% a choice here; however, \eTeX\ is not going to be required just for -% this.} A second check is needed, in case the document class does not -% define any reference section at all (for example, minimal does -% not). +% All done for \pkg{chemstyle}. % \begin{macrocode} -\begingroup - \@ifundefined{chapter} - {\@ifundefined{refname} - {\PackageInfo{chemstyle} - {No bibliography name command found} - \cstsetup{notes=false}} - {\gdef\cst@refsec{\refname}}} - {\gdef\cst@refsec{\bibname}} -\endgroup +\cst@ref@load +%</package> +% \end{macrocode} +% +%\subsection{The \pkg{chemscheme} package} +% +%\subsubsection{Making new floats} +% +% The code for making floats is stored in the \pkg{chemscheme} package: +% in this way there should be no issues with loading things in any +% order. +% \begin{macrocode} +%<*chemscheme> +\ProvidesPackage{chemscheme} + [2009/06/06 v2.0 Schemes for chemistry] +\RequirePackage{kvoptions,psfrag} +\SetupKeyvalOptions{ + family=cst, + prefix=cst@ +} % \end{macrocode} +% +%\begin{macro}{\ifcst@floatrow} +%\begin{macro}{\ifcst@chemcompounds} +% Some simple Boolean options. +% \begin{macrocode} +\DeclareBoolOption[true]{chemcompounds} +\DeclareComplementaryOption{bpchem}{chemcompounds} +\DeclareBoolOption[true]{floatrow} +% \end{macrocode} +%\end{macro} %\end{macro} -%\begin{macro}{\c@bibnote} -% The business-end of the work is only carried out if the \opt{notes} -% option is set to \opt{true} or \opt{auto}. The check above means -% that a reference section is also defined. First, some checking for -% the \opt{auto} option occurs; the counter used by \pkg{notes2bib} -% needs to be defined even if the package is not loaded. +% +%\begin{macro}{\cst@opt@bpchem} +%\begin{macro}{\cst@opt@chemcompounds} +%\begin{macro}{\cst@opt@ref@error} +% The \opt{tracking} option has two possible values. % \begin{macrocode} -\ifcst@autonotes - \AtBeginDocument{ - \@ifpackageloaded{notes2bib}{} - {\newcounter{bibnote}}} -\fi +\define@key{cst}{tracking}[chemcompounds]{% + \edef\KVO@param{#1}% + \@onelevel@sanitize\KVO@param + \ifx\KVO@param\cst@opt@bpchem + \expandafter\cst@chemcompoundsfalse + \else + \ifx\KVO@param\cst@opt@chemcompounds + \expandafter\expandafter\expandafter\cst@chemcompoundstrue + \else + \expandafter\expandafter\expandafter\cst@opt@ref@error + \fi + \fi +} +\newcommand*\cst@opt@bpchem{bpchem} +\newcommand*\cst@opt@chemcompounds{chemcompounds} +\newcommand*\cst@opt@ref@error{% + \PackageWarning{chemscheme}{% + Value `\KVO@param' is not supported by\MessageBreak + option `tracking'% + }% +} % \end{macrocode} %\end{macro} -%\begin{macro}{\cst@refname} -%\changes{v1.2}{2008/03/07}{New macro} -%\begin{macro}{\cst@ref@name} -%\changes{v1.2}{2008/03/07}{New macro} -%\begin{macro}{\cst@ref@name@} -%\changes{v1.2}{2008/03/07}{New macro} -% The internal macros to actually display the reference section name -% deals with the various options. The \cs{expandafter}s are for -% caution here: nothing \emph{should} go wrong with the nested -% \cs{if} statements. +%\end{macro} +%\end{macro} +% +%\begin{macro}{\ifcst@memoir} +%\begin{macro}{\cst@opt@float} +%\begin{macro}{\cst@opt@floatrow} +%\begin{macro}{\cst@opt@memoir} +%\begin{macro}{\cst@opt@floats@error} +% For \opt{floats}, the number of choices is slightly higher. % \begin{macrocode} -\newcommand*{\cst@refname}{% - \ifcst@notes - \ifcst@autonotes - \ifnum\the\value{bibnote}>\z@ +\newif\ifcst@memoir +\define@key{cst}{floats}{% + \edef\KVO@param{#1}% + \cst@floatrowtrue + \cst@memoirfalse + \ifx\KVO@param\cst@opt@float + \expandafter\cst@floatrowfalse + \else + \ifx\KVO@param\cst@opt@floatrow\else + \ifx\KVO@param\cst@opt@memoir \expandafter\expandafter\expandafter\expandafter - \expandafter\expandafter\expandafter\cst@ref@name - \else + \expandafter\expandafter\expandafter\cst@memoirtrue + \else \expandafter\expandafter\expandafter\expandafter - \expandafter\expandafter\expandafter\cst@ref@name@ + \expandafter\expandafter\expandafter\cst@opt@floats@error \fi - \else - \expandafter\expandafter\expandafter\cst@ref@name \fi + \fi +} +\newcommand*\cst@opt@float{float} +\newcommand*\cst@opt@floatrow{floatrow} +\newcommand*\cst@opt@memoir{memoir} +\newcommand*\cst@opt@floats@error{% + \PackageWarning{chemscheme}{% + Value `\KVO@param' is not supported by\MessageBreak + option `floats'% + }% +} +% \end{macrocode} +%\end{macro} +%\end{macro} +%\end{macro} +%\end{macro} +%\end{macro} +% +%\begin{environment}{scheme} +%\begin{macro}{\cst@float@pkg} +%\begin{macro}{\cst@float@execute} +%\begin{macro}{\cst@float@load} +%\begin{macro}{\cst@float@load@float} +%\begin{macro}{\cst@float@load@floatrow} +% With options processed, the appropriate packages can be loaded as +% necessary. The are some checks so that only one package is tried. +% \begin{macrocode} +\newcommand*\cst@float@pkg{} +\newcommand*\cst@float@execute{} +\newcommand*\cst@float@load{% + \IfFileExists{floatrow.sty}{}{% + \ifcst@floatrow + \expandafter\cst@floatrowfalse + \fi + }% + \ifcst@floatrow + \expandafter\cst@float@load@floatrow \else - \expandafter\cst@ref@name@% - \fi} -\newcommand*{\cst@ref@name}[3]{% - \ifcst@notesbefore - #3\space#2\space#1% - \else - #1\space#2\space#3% - \fi} -\newcommand*{\cst@ref@name@}[3]{#1} + \expandafter\cst@float@load@float + \fi +} +\newcommand*\cst@float@load@float{% + \RequirePackage{float} + \def\cst@float@pkg{float} + \def\cst@float@execute{\AtBeginDocument} +} +\newcommand*\cst@float@load@floatrow{% + \RequirePackage{floatrow} + \def\cst@float@pkg{floatrow} + \def\cst@float@execute{\@firstofone} +} % \end{macrocode} %\end{macro} %\end{macro} %\end{macro} -%\begin{macro}{\cst@setrefname} -%\changes{v1.2}{2008/03/07}{New macro} -% Setting up the section name is a tricky affair. If no section is -% defined, then the whole process is skipped. Otherwise, the first -% check made s if the default language matches the definition given. -% If so, the heading is changed now. +%\end{macro} +%\end{macro} +% +%\begin{macro}{\cst@float@chapter} +%\begin{macro}{\cst@float@chapter@hook} +% A method to add to the \cs{@chapter} macro is needed. This is +% not compatible with \cs{g@addto@macro} directly, so a more +% complex method is used by providing a suitable hook. % \begin{macrocode} -\@ifundefined{cst@refsec} - {\let\cst@setrefname\@gobblefour} - {\newcommand*{\cst@setrefname}[4]{ - \edef\cst@tempa{#1}% - \ifx\cst@tempa\cst@language - \expandafter\renewcommand\expandafter*\expandafter{% - \cst@refsec} - {\cst@refname{#2}{#3}{#4}} - \fi +\newcommand*\cst@float@chapter@hook{} +\newcommand*\cst@float@chapter{} +\ifx\@chapter\@undefined\else + \let\cst@float@chapter\@chapter + \def\@chapter{% + \cst@float@chapter@hook + \cst@float@chapter + } +\fi % \end{macrocode} -%\begin{macro}{cst@tempa} -% At the beginning of the document, a check needs to be made for -% \pkg{babel} and \pkg{biblatex}. For the later, a low-level hack is -% made to attach to the mechanism. For \pkg{babel} the appropriate -% commands are added to the \cs{captions\ldots} macro. +%\end{macro} +%\end{macro} +% +%\begin{macro}{\cst@float@chapter@fix} +% So that floats inside chapters work correctly. % \begin{macrocode} - \AtBeginDocument{ - \@ifpackageloaded{biblatex} - {\def\cst@tempa{\csgappto{bib@strings@#1}} - \expandafter\cst@tempa\expandafter{\expandafter - \renewcommand\expandafter*\expandafter{% - \cst@refsec}{% - \cst@refname{#2}{#3}{#4}}}} - {\@ifpackageloaded{babel} - {\def\cst@tempa{\expandafter\addto\expandafter{% - \csname captions#1\endcsname}} - \expandafter\cst@tempa\expandafter - {\expandafter\renewcommand\expandafter*% - \expandafter{\cst@refsec}{% - \cst@refname{#2}{#3}{#4}}} +\newcommand*\cst@float@chapter@fix{% + \g@addto@macro{\cst@float@chapter@hook}{% + \addtocontents{los}{\protect\addvspace{10\p@}}% + }% + \begingroup\expandafter\expandafter\expandafter\endgroup + \expandafter\ifx\csname KOMAScriptVersion\endcsname\relax + \@namedef{thescheme}{% + \ifnum\c@chapter>\z@\relax + \thechapter.% + \fi + \arabic{scheme}% + }% + \fi +} % \end{macrocode} %\end{macro} -% To make sure the changes are applied \emph{now}, the current -% language is re-selected. +% +%\begin{macro}{\cst@float@make@float} +% When using \pkg{float}, definition depends on the existence of +% chapters. The name and ``list of'' macros are then created separately. % \begin{macrocode} - \expandafter\selectlanguage\expandafter{% - \languagename}} - {}}}}} +\newcommand*\cst@float@make@float{% + \begingroup\expandafter\expandafter\expandafter\endgroup + \expandafter\ifx\csname chapter\endcsname\relax + \newfloat{scheme}{tbp}{los}% + \else + \newfloat{scheme}{tbp}{los}[chapter]% + \expandafter\cst@float@chapter@fix + \fi + \floatname{scheme}{\schemename}% + \newcommand*\listofschemes{% + \listof{scheme}{\listschemename}% + }% +} % \end{macrocode} %\end{macro} -% Default names are loaded for a range of languages. Most -% journals stick to the same words, with only the order changing. -%\changes{v1.1c}{2007/09/23}{Added \texttt{german} alias for -% \texttt{ngerman}} -%\changes{v1.1c}{2007/09/23}{Added \texttt{frenchb} alias for -% \texttt{french}} +%\begin{macro}{\cst@float@make@floatrow} +% For \pkg{floatrow}, the interface to everything is rather simple. % \begin{macrocode} -\cst@setrefname{english}{References}{and}{Notes} -\cst@setrefname{UKenglish}{References}{and}{Notes} -\cst@setrefname{ngerman}{Literatur}{und}{Notizen} -\cst@setrefname{german}{Literatur}{und}{Notizen} -\cst@setrefname{french}{R\'ef\'erences}{et}{Notes} -\cst@setrefname{frenchb}{R\'ef\'erences}{et}{Notes} +\newcommand*\cst@float@make@floatrow{% + \begingroup\expandafter\expandafter\expandafter\endgroup + \expandafter\ifx\csname chapter\endcsname\relax + \DeclareNewFloatType{scheme}{% + fileext = los, + placement = tbp, + name = Scheme + }% + \else + \DeclareNewFloatType{scheme}{% + fileext = los, + placement = tbp, + name = Scheme, + within = chapter + }% + \cst@float@chapter@fix + \fi + \newcommand*\listofschemes{% + \listof{scheme}{\listschemename}% + }% +} % \end{macrocode} +%\end{macro} % -% \iffalse -%</package> -% \fi -% -% \section{Configuration files} +%\begin{macro}{\cst@float@make@memoir} +% \pkg{memoir} has a lot of things to set up for a float. This list is +% essentially the same as the \pkg{memoir} kernel uses. +% \begin{macrocode} +\newcommand*\cst@float@make@memoir{% + \newfloat[chapter]{scheme}{los}{\schemename}% + \newlistof{listofschemes}{los}{\listschemename}% + \addtodef{\@smemfront}{}{\counterwithout{scheme}{chapter}}% + \addtodef{\@smemmain}{}{% + \ifartopt\else + \counterwithin{scheme}{chapter}% + \fi + }% + \addtodef{\backmatter}{}{% + \ifartopt\else + \counterwithout{scheme}{chapter}% + \setcounter{scheme}{0}% + \fi + }% + \newlistentry[chapter]{scheme}{los}{0}% + \cftsetindents{scheme}{0em}{2.3em}% + \addtodef{\insertchapterspace}{}{% + \addtocontents{los}{\protect\addvspace{10pt}}% + }% + \ifartopt + \counterwithout{scheme}{chapter}% + \fi +} +% \end{macrocode} +%\end{macro} % -% Each journal style needs slightly differing commands to get the -% formatting just right. This is handled here, with each style in -% a separate file. There is not a lot happening in most of these -% files, as the information is by its nature quite repetitive. +% Options are set. +% \begin{macrocode} +\ProcessKeyvalOptions{cst} +% \end{macrocode} +% +% Everything is set up, and so the support can finally be loaded. +% \begin{macrocode} +\@ifpackageloaded{floatrow}{% + \def\cst@float@pkg{floatrow} + \def\cst@float@execute{\@firstofone} +}{% + \@ifpackageloaded{float}{% + \def\cst@float@pkg{float} + \def\cst@float@execute{\AtBeginDocument} + }{% + \@ifclassloaded{memoir}{% + \def\cst@float@pkg{memoir} + \def\cst@float@execute{\AtBeginDocument} + }{% + \@ifpackageloaded{chemstyle}{}{% + \cst@float@load + }% + }% + }% +} +\ifx\cst@float@pkg\cst@opt@memoir\else + \let\newfloat\@undefined +\fi +\@ifpackageloaded{chemstyle}{}{% + \cst@float@execute{\@nameuse{cst@float@make@\cst@float@pkg}} +} +% \end{macrocode} +%\end{environment} +% +%\subsubsection{Supporting \pkg{babel} for schemes} % -% \iffalse -%<*rsc> -% \fi +%\begin{macro}{\schemename} +%\begin{macro}{\listschemename} +% To start, the names in English. +% \begin{macrocode} +\@ifpackageloaded{floatrow}{}{% + \newcommand*\schemename{Scheme} +} +\newcommand*\listschemename{List of Schemes} +% \end{macrocode} +%\end{macro} +%\end{macro} % -% \subsection{RSC style} -%\changes{v1.0b}{2007/09/04}{Sorted a problem with \texttt{babel} -% and figure name format} -%\changes{v1.0b}{2007/09/04}{Fixed formatting of alkyls} -%\changes{v1.1}{2007/09/17}{Fixed (another) error in alkyl formatting} +% Some simple label changes. % \begin{macrocode} -\ProvidesFile{rsc.jdf} - [\cst@ver RSC journal style] \AtBeginDocument{% - \renewcommand{\figurename}{Fig.}} -\captionsetup{labelsep=quad,labelfont=bf} -\setkeys[cst]{opt}{ - radprefix=true, - rademph=true, - radsuper=false, - radhyphen=true, - abbremph=true, - abbrcomma=false} + \@ifpackageloaded{babel}{% + \addto{\captionsfrench}{% + \def\listschemename{Table des sch\`emes}% + \def\schemename{{\scshape Sch\`eme}}% + }% + \addto{\captionsgerman}{% + \def\listschemename{Schemenverzeichnis}% + \def\schemename{Schema}% + }% + \expandafter\selectlanguage\expandafter{\languagename}% + }{}% +} % \end{macrocode} -% \iffalse -%</rsc> -%<*angew> -% \fi +% +%\subsubsection{Positioning float contents} +% +%\begin{macro}{\floatcontentscentre} +%\begin{macro}{\floatcontentscenter} +%\begin{macro}{\floatcontentsleft} +%\begin{macro}{\floatcontentsright} +% When using \pkg{floatrow}, centring all floats is easy. This is +% not the case for other methods, and so some macros are provided. +% The definitions depend on whether \pkg{floatrow} is in use. +% \begin{macrocode} +\@ifpackageloaded{floatrow}{% + \newcommand*\floatcontentscentre{% + \floatsetup{objectset=centering}% + } + \newcommand*\floatcontentscenter{% + \floatsetup{objectset=centering}% + } + \newcommand*\floatcontentsright{% + \floatsetup{objectset=raggedleft}% + } + \newcommand*\floatcontentsleft{% + \floatsetup{objectset=raggedright}% + } +}{% +% \end{macrocode} +%\begin{macro}{\cst@floatboxreset} +%\begin{macro}{\@floatboxreset} +%\begin{macro}{\cst@everyfloat} +% When \pkg{floatrow} is not in use, then a low-level hack of +% \cs{@floatboxtreset} is used. +% \begin{macrocode} + \newcommand*\cst@floatboxreset{} + \newcommand*\cst@everyfloat{} + \let\cst@floatboxreset\@floatboxreset + \def\@floatboxreset{% + \cst@everyfloat + \cst@floatboxreset + } + \newcommand*{\floatcontentscentre}{% + \let\cst@everyfloat\centering + } + \newcommand*{\floatcontentscenter}{% + \let\cst@everyfloat\centering + } + \newcommand*{\floatcontentsleft}{% + \let\cst@everyfloat\relax + } + \newcommand*{\floatcontentsright}{% + \let\cst@everyfloat\raggedleft + } +} +\floatcontentsleft +% \end{macrocode} +%\end{macro} +%\end{macro} +%\end{macro} +%\end{macro} +%\end{macro} +%\end{macro} +%\end{macro} +% +%\subsubsection{Reference numbers in graphics} % -%\subsection{\emph{Angew.~Chem.}~style} -%\changes{v1.0a}{2007/08/23}{Fixed incorrect Latin formatting for -% \texttt{angew} option} +%\begin{macro}{\schemerefmarker} +%\begin{macro}{\schemerefformat} +% The two macros \cs{schemerefmarker} and \cs{schemerefformat} +% are used to allow customisation of the behaviour of the package. +% Here defaults are provided. % \begin{macrocode} -\ProvidesFile{angew.def} - [\cst@ver Angew. Chem. journal style] -\captionsetup{labelsep=period,labelfont={bf,it},font=sf, - singlelinecheck=off} -\captionsetup[table]{labelsep=colon} -\setkeys[cst]{opt}{ - radprefix=true, - rademph=true, - radsuper=false, - radhyphen=false, - abbremph=false, - abbrcomma=false} +\newcommand*\schemerefmarker{TMP} +\newcommand*\schemerefformat{\textsf} % \end{macrocode} -% \iffalse -%</angew> -%<*jomc> -% \fi +%\end{macro} +%\end{macro} % -%\subsection{\emph{J.~Organomet.~Chem.}~style} -%\changes{v1.1g}{2007/10/19}{Added \texttt{jomc} style} +%\begin{macro}{\cst@ref@count} +% The automatic numbering system needs a counter. % \begin{macrocode} -\ProvidesFile{jomc.def} - [\cst@ver J. Organomet. Chem. journal style] -\captionsetup{labelsep=period} -\captionsetup[table]{labelsep=newline,singlelinecheck=off} -\AtBeginDocument{% - \renewcommand{\figurename}{Fig.}} -\setkeys[cst]{opt}{ - radprefix=true, - rademph=true, - radsuper=true, - radhyphen=false, - abbremph=false, - abbrcomma=false, - notesbefore=true} +\newcount\cst@ref@count % \end{macrocode} -% \iffalse -%</jomc> -%<*tetlett> -% \fi +%\end{macro} % -%\subsection{\emph{Tetrahedron Lett.}~style} -%\changes{v1.1h}{2007/10/31}{Added \texttt{tetlett} style} +%\begin{macro}{\cst@ref@label} +%\begin{macro}{\cst@ref@load} +% The loading of support packages is set up as a macro, so that it can +% be delayed when \pkg{chemstyle} is in use. % \begin{macrocode} -\ProvidesFile{tetlett.def} - [\cst@ver Tetrahedron Lett. journal style] -\captionsetup{labelsep=period,singlelinecheck=off,labelfont=bf} -\setkeys[cst]{opt}{ - radprefix=true, - rademph=true, - radsuper=false, - radhyphen=true, - abbremph=false, - abbrcomma=true, - notesbefore=true} +\newcommand*\cst@ref@label{} +\newcommand*\cst@ref@load{% + \ifcst@chemcompounds + \RequirePackage{chemcompounds} + \let\cst@ref@label\compound + \else + \RequirePackage{bpchem} + \let\cst@ref@label\CNlabel + \fi +} +\@ifpackageloaded{chemstyle}{}{% + \cst@ref@load +} % \end{macrocode} -% \iffalse -%</tetlett> -%<*jacs> -% \fi +%\end{macro} +%\end{macro} % -%\subsection{\emph{J.~Am.~Chem.~Soc.}~style} +%\begin{macro}{\schemeref} +%\begin{macro}{\chemschemeref} +% The main function is quite simple: just set up the substitution then +% hand over to \pkg{psfrag}. There is also some back-compatibility code +% for early versions of the package. % \begin{macrocode} -\ProvidesFile{jacs.jdf} - [\cst@ver J. Am. Chem. Soc. journal style] -\DeclareCaptionLabelSeparator{perquad}{.\quad} -\captionsetup{labelfont={bf,it,sf},textfont=sf, - labelsep=perquad} -\captionsetup[figure]{textfont=rm} -\captionsetup{singlelinecheck=off} -\setkeys[cst]{opt}{ - radprefix=true, - rademph=true, - radsuper=true, - radhyphen=false, - abbremph=false, - abbrcomma=true, - notesbefore=true} -\floatstyle{plaintop} -\restylefloat{scheme} -\floatstyle{plain} -\cst@notesbeforefalse +\DeclareRobustCommand*\schemeref[2] + [\schemerefmarker\the\cst@ref@count]{% + \advance\cst@ref@count\@ne\relax + \psfrag{#1}[b][b]{% + \schemerefformat{\cst@ref@label{#2}}% + }% +} +\DeclareRobustCommand*\chemschemeref[1]{% + \schemeref[#1]% +} % \end{macrocode} -% \iffalse -%</jacs> -%<*ic> -% \fi +%\end{macro} +%\end{macro} % -%\subsection{\emph{Inorg.~Chem.}~style} -% Almost exactly the same as for \emph{J.~Am.~Chem.~Soc.}, so most of -% the work is left to \file{jacs.jdf}. +%\begin{macro}{\schemerefsub} +%\begin{macro}{\chemschemerefsub} +%\begin{macro}{\cst@ref@check@sub} +% Sub-referencing is only available with \pkg{bpchem}: other than that, +% very similar to above. % \begin{macrocode} -\ProvidesFile{ic.jdf} - [\cst@ver Inorg. Chem. journal style] -\input {jacs.jdf} -\captionsetup{textfont=rm} +\DeclareRobustCommand*\schemerefsub[3] + [\schemerefmarker\the\cst@ref@count]{% + \advance\cst@ref@count\@ne\relax + \psfrag{#1}[b][b]{% + \schemerefformat{\CNlabelsub{#2}{#3}}% + }% +} +\DeclareRobustCommand*\chemschemerefsub[1]{% + \schemerefsub[#1]% +} +\newcommand*\cst@ref@check@sub{% + \@ifpackageloaded{bpchem}{}{% + \def\schemerefsub[3][]{% + \PackageWarning{chemscheme}{% + \string\schemerefsub\space not available unless bpchem + \MessageBreak package is loaded + }% + }% + }% +} +\AtBeginDocument{\cst@ref@check@sub} % \end{macrocode} -%\iffalse -%</ic> -%<*jpc> -%\fi +%\end{macro} +%\end{macro} +%\end{macro} % -%\subsection{\emph{J.~Phys.~Chem.}~style} -%\changes{v1.0a}{2007/08/23}{Added \emph{J.~Phys.~Chem.}~style} +% That ends the \pkg{chemscheme} package. % \begin{macrocode} -\ProvidesFile{jpc.jdf} - [\cst@ver J. Phys. Chem. journal style] -\DeclareCaptionFormat{labelcaps}{\MakeUppercase{#1}#2#3} -\captionsetup{font=bf,labelsep=colon,format=labelcaps} -\captionsetup[figure]{format=plain,textfont=md,labelsep=period} -\captionsetup{singlelinecheck=off} -\setkeys[cst]{opt}{ - radprefix=true, - rademph=true, - radsuper=false, - radhyphen=false, - abbremph=false, - abbrcomma=true, - notesbefore=true} -\floatstyle{plaintop} -\restylefloat{scheme} -\floatstyle{plain} -\cst@notesbeforefalse +%</chemscheme> % \end{macrocode} -%\iffalse -%</jpc> -%<*orglett> -% \fi +% +%\subsection{Journal definition files} +% +% The journal files are all rather similar. They set a series of keys +% and perhaps make other changes. +% +%\subsubsection{\emph{Angew.\ Chem.}\ style} % -%\subsection{\emph{Org.~Lett.}~style} -%\changes{v1.0a}{2007/08/23}{Added \emph{Org.~Lett.}~style} % \begin{macrocode} -\ProvidesFile{orglett.jdf} - [\cst@ver Org. Lett. journal style] -\RequirePackage{xcolor} +%<*angew> +\ProvidesFile{angew.chemstyle.cfg} + [2009/06/06 v2.0 Angew. Chem. journal style] +\setkeys{cst}{ + abbremph = false, + radhyphen = false +} +\captionsetup{ + font = sf, + labelfont = {bf,it}, + labelsep = period, + singlelinecheck = off +} +\captionsetup[table]{ + labelsep = colon +} +%</angew> % \end{macrocode} -% Currently, this style only works with \pkg{float}. +% +%\subsubsection{\emph{Inorg.\ Chem.}\ style} +% % \begin{macrocode} -\@ifpackageloaded{floatrow} - {\PackageError{chemstyle} - {Org. Lett. style only works with float} - {Load chemstyle with the floatrow=false option - to\MessageBreak use the orglett style}} - {} +%<*ic> +\ProvidesFile{ic.chemstyle.cfg} + [2009/06/06 v2.0 Inorg. Chem. journal style] +\DeclareCaptionLabelSeparator{perquad}{.\quad} +\captionsetup{ + labelfont = {bf,it,sf}, + labelsep = perquad, + singlelinecheck = off + textfont = rm +} +\captionsetup[figure]{ + textfont = rm +} +\setkeys{cst}{ + abbrcomma = true, + abbremph = false, + notesbefore = false, + radhyphen = false, + radsuper = true +} +\@ifpackageloaded{floatrow}{% + \floatsetup[scheme]{style=plaintop} +}{% + \floatstyle{plaintype} + \restylefloat{scheme} + \floatstyle{plain} +} +%</ic> % \end{macrocode} -%\begin{macro}{\OrgLettColour} -% To allow the user to control the colour of the ``bars'' in this -% style, an additional macro is provided. The purple colour looks -% about right for matching the printed journal, but if anyone has a -% better suggestion please let the package author know. +% +%\subsubsection{\emph{J.~Am.\ Chem.\ Soc.}\ style} +% % \begin{macrocode} -\newcommand*{\OrgLettColour}{purple} +%<*jacs> +\ProvidesFile{jacs.chemstyle.cfg} + [2009/06/06 v2.0 J. Am. Chem. Soc. journal style] +\DeclareCaptionLabelSeparator{perquad}{.\quad} +\captionsetup{ + labelfont = {bf,it,sf}, + labelsep = perquad, + singlelinecheck = off + textfont = sf +} +\captionsetup[figure]{ + textfont = rm +} +\setkeys{cst}{ + abbrcomma = true, + abbremph = false, + notesbefore = false, + radhyphen = false, + radsuper = true +} +\@ifpackageloaded{floatrow}{% + \floatsetup[scheme]{style=plaintop} +}{% + \floatstyle{plaintype} + \restylefloat{scheme} + \floatstyle{plain} +} +%</jacs> % \end{macrocode} -%\end{macro} -%\begin{macro}{\fs@orglett} -% In order to get the distinctive coloured bars used by -% \emph{Org.~Lett.}, a new style for floats is needed. This is based -% on the \texttt{ruled} style from the \pkg{float} package. +% +%\subsubsection{\emph{J.~Organomet.\ Chem.}\ style} +% % \begin{macrocode} -\newcommand*{\fs@orglett}{% - \def\@fs@cfont{\bfseries}% - \let\@fs@capt\floatc@ruled - \def\@fs@pre{\begingroup\color{\OrgLettColour} - \hrule height12pt depth0pt \kern2pt\endgroup}% +%<*jomc> +\ProvidesFile{jomc.chemstyle.cfg} + [2009/06/06 v2.0 J. Organomet. Chem. journal style] +\setkeys{cst}{ + abbremph = false, + radhyphen = true, + radsuper = true, +} +\captionsetup{ + labelsep = period, +} +\captionsetup[table]{ + labelsep = newline, + singlelinecheck = off +} +\AtBeginDocument{% + \def\figurename{Fig.}% +} +%</jomc> +% \end{macrocode} +% +%\subsubsection{\emph{J.~Phys.\ Chem.}\ style} +% +% \begin{macrocode} +%<*jpc> +\ProvidesFile{jpc.chemstyle.cfg} + [2009/06/06 v2.0 J. Phys. Chem. journal style] +\DeclareCaptionFormat{labelcaps}{\MakeUppercase{#1}#2#3} +\captionsetup{ + font = bf, + format = labelcaps, + labelsep = colon, + singlelinecheck = off +} +\captionsetup[figure]{ + format = plain, + labelsep = period, + textfont = md +} +\setkeys{cst}{ + abbrcomma = true, + abbremph = false, + notesbefore = false, + radhyphen = false +} +\@ifpackageloaded{floatrow}{% + \floatsetup[scheme]{style=plaintop} +}{% + \floatstyle{plaintype} + \restylefloat{scheme} + \floatstyle{plain} +} +%</jpc> % \end{macrocode} -% This is the same \cs{@fs@mid} as is used in the \pkg{float} package -% for \texttt{plaintop} floats. +% +%\subsection{\emph{Org.\ Lett.}\ style} +% % \begin{macrocode} - \def\@fs@mid{\vspace\belowcaptionskip\relax}% - \def\@fs@post{\begingroup\color{\OrgLettColour}\kern2pt - \hrule height1.5pt depth0pt\endgroup}% - \let\@fs@iftopcapt\iftrue} +%<*orglett> +\ProvidesFile{orglett.chemstyle.cfg} + [2009/06/06 v2.0 Org. Lett. journal style] +\DeclareCaptionLabelSeparator{perquad}{.\quad} +\captionsetup{ + labelfont = bf, + labelsep = perquad +} +\setkeys{cst}{ + abbrcomma = true, + abbremph = false, + notesbefore = false, + radhyphen = false, + radsuper = true +} % \end{macrocode} -%\end{macro} +% The \emph{Org.\ Lett.}\ style is a it more complicated than all of +% the others as the float formatting is much more complicated. First, +% colour support is needed. +% \begin{macrocode} +\RequirePackage{xcolor} +% \end{macrocode} +%\begin{macro}{\fs@orglett} %\begin{macro}{\fs@orglettfig} -% Figures need to be slightly different, so an almost identical -% command is needed. +% For \pkg{float}, some new styles based on the supplied \texttt{ruled} +% one. % \begin{macrocode} -\newcommand*{\fs@orglettfig}{% +\newcommand*\fs@orglett{% + \def\@fs@cfont{\bfseries}% + \let\@fs@capt\floatc@ruled + \def\@fs@pre{% + \begingroup + \color{purple}% + \hrule height 12pt depth 0pt\relax + \kern 2pt\relax + \endgroup + }% + \def\@fs@mid{% + \vspace\belowcaptionskip\relax + }% + \def\@fs@post{% + \begingroup + \color{purple}% + \kern 2pt\relax + \hrule height 1.5pt depth 0pt\relax + \endgroup + }% + \let\@fs@iftopcapt\iftrue +} +\newcommand*\fs@orglettfig{% \def\@fs@cfont{\bfseries}% \let\@fs@capt\floatc@plain - \def\@fs@pre{\begingroup\color{\OrgLettColour}% - \hrule height12pt depth0pt \kern2pt\endgroup}% - \def\@fs@mid{\vspace\abovecaptionskip\relax}% - \def\@fs@post{\begingroup\color{\OrgLettColour}\kern2pt - \hrule height1.5pt depth0pt\endgroup}% - \let\@fs@iftopcapt\iffalse} + \def\@fs@pre{% + \begingroup + \color{purple}% + \hrule height 12pt depth 0pt\relax + \kern 2pt\relax + \endgroup + }% + \def\@fs@mid{% + \vspace\abovecaptionskip\relax + }% + \def\@fs@post{% + \begingroup + \color{purple}% + \kern 2pt\relax + \hrule height1.5pt depth 0pt\relax + \endgroup + }% + \let\@fs@iftopcapt\iffalse +} % \end{macrocode} -%\end{macro} -% The new style is now applied. Users can change back to normal -% floats by changing back to the \texttt{plain} style. +%\end{macro} +%\end{macro} +% % \begin{macrocode} -\floatstyle{orglettfig} -\restylefloat{figure} -\floatstyle{orglett} -\restylefloat{scheme} -\restylefloat{table} +\DeclareFloatVCode{orglettthickrule}{% + \par + \begingroup + \color{purple}% + \hrule height 12pt depth 0pt\relax + \vskip 2pt\relax + \endgroup + \par +} +\DeclareFloatVCode{orglettlowrule}{% + \par + \begingroup + \vskip 2pt\relax + \hrule height 1.5pt depth 0pt\relax + \endgroup + \par +} % \end{macrocode} -% The more usual style commands now occur. +% With that done, things can be applied. % \begin{macrocode} -\DeclareCaptionLabelSeparator{perquad}{.\quad} -\captionsetup{labelfont=bf,labelsep=perquad} -\setkeys[cst]{opt}{ - radprefix=true, - rademph=true, - radsuper=true, - radhyphen=false, - abbremph=false, - abbrcomma=true, - notesbefore=true} -\cst@notesbeforefalse -% \end{macrocode} -% \iffalse +\@ifpackageloaded{floatrow}{% + \floatsetup{ + capposition = top, + heightadjust = all, + postcode = orglettlowrule, + precode = orglettthickrule, + midcode = rule, + } + \floatsetup[figure]{ + capposition = bottom, + heightadjust = all, + postcode = orglettlowrule, + precode = orglettthickrule, + midcode = rule, + } +}{% + \floatstyle{orglettfig} + \restylefloat{figure} + \floatstyle{orglett} + \restylefloat{scheme} + \restylefloat{table} +} %</orglett> -%<*none> -%\fi -%\subsection{The empty style --- none} -% To allow the user to load the extra macros provided here without -% any style changes, a ``do nothing'' style is provided. It simply -% makes sure that very little changes compared to the \LaTeX\ kernel. -% This requires undoing the defaults provided above. For commands -% where a default is needed (\eg the \cs{latin} command) the style -% of the RSC is followed. As the \pkg{float} package has been loaded, -% notice that captions will be placed below floats even if the -% \cs{caption} command appears above the contents of the floating -% environment. +% \end{macrocode} +% +%\subsubsection{Royal Society of Chemistry style} +% % \begin{macrocode} -\ProvidesFile{none.jdf} - [\cst@ver Empty journal style] -\floatstyle{plain} -\restylefloat{table} -\labelformat{figure}{#1} -\labelformat{table}{#1} -\floatplacement{table}{tbp} -\floatplacement{figure}{tbp} -\AtBeginDocument{ - \floatplacement{scheme}{tbp} - \labelformat{scheme}{#1}} +%<*rsc> +\ProvidesFile{rsc.chemstyle.cfg} + [2009/06/06 v2.0 RSC journal style] +\captionsetup{ + labelsep = quad, + labelfont = bf +} +\AtBeginDocument{% + \def\figurename{Fig.}% +} +%</rsc> % \end{macrocode} -% \iffalse -%</none> -% \fi -% \PrintChanges -% \PrintIndex -% \Finale +% +%\subsubsection{\emph{Tetrahedron Lett.}\ style} +% +% \begin{macrocode} +%<*tetlett> +\ProvidesFile{tetlett.chemstyle.cfg} + [2009/06/06 v2.0 Tetrahedron Lett. journal style] +\captionsetup{ + labelsep = period, + labelfont = bf, + singlelinecheck = off +} +\setkeys{cst}{ + abbrcomma = true, + abbremph = false, +} +%</tetlett> +% \end{macrocode} +% +%\Finale +% %\iffalse -%<*jawltxdoc> -\NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{jawltxdoc} -\usepackage[T1]{fontenc} -\usepackage{lmodern} -\usepackage[final]{listings,graphicx,microtype} -\usepackage[scaled=0.95]{helvet} -\usepackage[version=3]{mhchem} -\usepackage[osf]{mathpazo} -\usepackage{booktabs,array,url,courier,xspace,varioref} -\usepackage{upgreek,ifpdf,float,caption,longtable,babel} -\begingroup - \@ifundefined{eTeXversion} - {\aftergroup\@gobble} - {\aftergroup\@firstofone} -\endgroup -{\usepackage{etoolbox}} -\floatstyle{plaintop} -\restylefloat{table} -\labelformat{figure}{\figurename~#1} -\labelformat{table}{\tablename~#1} -\ifpdf - \usepackage{embedfile} - \embedfile[% - stringmethod=escape,% - mimetype=plain/text,% - desc={LaTeX docstrip source archive for package `\jobname'}% - ]{\jobname.dtx} -\fi -\IfFileExists{\jobname.sty} - {\usepackage{\jobname}}{} -\usepackage[numbered]{hypdoc} -\setcounter{IndexColumns}{2} -\newlength\LaTeXwidth -\newlength\LaTeXoutdent -\newlength\LaTeXgap -\setlength\LaTeXgap{1em} -\setlength\LaTeXoutdent{-0.15\textwidth} -\newbox\lst@samplebox -\edef\LaTeXexamplefile{\jobname.tmp} -\lst@RequireAspects{writefile} -\lstnewenvironment{LaTeXexample}[1][example]{% - \global\let\lst@intname\@empty - \ifcsname LaTeXcode#1\endcsname - \expandafter\let\expandafter\LaTeXcode - \csname LaTeXcode#1\endcsname - \expandafter\let\expandafter\LaTeXcodeend - \csname LaTeXcode#1end\endcsname - \else - \PackageError{jawltxdoc} - {Undefined example type `#1'} - \@ehd - \let\LaTeXcode\relax - \let\LaTeXcodeend\relax - \fi - \LaTeXcode} - {\lst@EndWriteFile - \LaTeXcodeend} -\newcommand*{\LaTeXcodeexample}{% - \setbox\lst@samplebox=\hbox\bgroup - \LaTeXcodefloat} -\let\LaTeXcoderesultonly\LaTeXcodeexample -\newcommand*{\LaTeXcodeexampleend}{% - \egroup - \setlength\LaTeXwidth{\wd\lst@samplebox}% - \begin{list}{}{% - \setlength\itemindent{0pt} - \setlength\leftmargin\LaTeXoutdent - \setlength\rightmargin{0pt}}% - \item - \setlength\LaTeXoutdent{-0.15\textwidth} - \begin{minipage}[c]{% - \textwidth-\LaTeXwidth-\LaTeXoutdent-\LaTeXgap} - \LaTeXcodefloatend - \end{minipage}% - \hfill - \begin{minipage}[c]{\LaTeXwidth}% - \hbox to\linewidth{\box\lst@samplebox\hss}% - \end{minipage}% - \end{list}} -\newcommand*{\LaTeXcodefloat}{% - \setkeys{lst}{tabsize=4,gobble=3,breakindent=0pt, - basicstyle=\small\ttfamily,basewidth=0.51em, - keywordstyle=\color{blue}}% - \lst@BeginAlsoWriteFile{\LaTeXexamplefile}} -\let\LaTeXcodenoexample\LaTeXcodefloat -\let\LaTeXcodenoexampleend\@empty -\newcommand*{\LaTeXcodefloatend}{% - \MakePercentComment\catcode`\^^M=10\relax - \small - {\setkeys{lst}{SelectCharTable=\lst@ReplaceInput{\^\^I}% - {\lst@ProcessTabulator}}% - \leavevmode \input{\LaTeXexamplefile}}% - \MakePercentIgnore} -\newcommand*{\LaTeXcoderesultonlyend}{\egroup\LaTeXcodefloatend} -\lstnewenvironment{BibTeXexample}{% - \global\let\lst@intname\@empty - \setbox\lst@samplebox=\hbox\bgroup - \setkeys{lst}{tabsize=4,gobble=3,breakindent=0pt, - basicstyle=\small\ttfamily,basewidth=0.51em, - keywordstyle=\color{black}} - \lst@BeginAlsoWriteFile{\LaTeXexamplefile}} - {\lst@EndWriteFile - \LaTeXcodeexampleend} -\newcommand*{\DescribeOption}{% - \leavevmode\@bsphack\begingroup\MakePrivateLetters - \Describe@Option} -\newcommand*{\Describe@Option}[1]{\endgroup - \marginpar{\raggedleft\PrintDescribeEnv{#1}}% - \SpecialOptionIndex{#1}\@esphack\ignorespaces} -\newcommand*{\SpecialOptionIndex}[1]{\@bsphack - \index{#1\actualchar{\protect\ttfamily#1} - (option)\encapchar usage}% - \index{options:\levelchar#1\actualchar{\protect\ttfamily#1}% - \encapchar usage}\@esphack} -\newcommand*{\indexopt}[1]{\DescribeOption{#1}\opt{#1}} -\newcommand*{\DescribeOptionInfo}[2]{% - \DescribeOption{#1}% - \opt{#1=\meta{#2}}\xspace} -\newcommand*{\ofixarg}[1]{% - {\ttfamily[}% - \ifmmode \expandafter \nfss@text \fi - {% - \meta@font@select - \edef\meta@hyphen@restore{% - \hyphenchar\the\font\the\hyphenchar\font}% - \hyphenchar\font\m@ne - \language\l@nohyphenation - #1\/% - \meta@hyphen@restore - }% - {\ttfamily]}} -\newcommand*{\pkg}[1]{\textsf{#1}} -\newcommand*{\currpkg}{\pkg{\jobname}\xspace} -\newcommand*{\opt}[1]{\texttt{#1}} -\newcommand*{\defaultopt}[1]{\opt{\textbf{#1}}} -\newcommand*{\file}[1]{\texttt{#1}} -\newcommand*{\ext}[1]{\file{.#1}} -\newcommand*{\latin}[1]{\emph{#1}} -\newcommand*{\etc}{% - \@ifnextchar. - {\latin{etc}} - {\latin{etc}.\xspace}} -\newcommand*{\eg}{% - \@ifnextchar. - {\latin{e.g}} - {\latin{e.g}.\xspace}} -\newcommand*{\ie}{% - \@ifnextchar. - {\latin{i.e}} - {\latin{i.e}.\xspace}} -\newcommand*{\etal}{% - \@ifnextchar. - {\latin{et~al.}} - {\latin{et~al}.\xspace}} -\newcommand*{\AMS}{{\protect\usefont{OMS}{cmsy}{m}{n}% - A\kern-.1667em\lower.5ex\hbox{M}\kern-.125emS}} -\providecommand*{\eTeX}{\ensuremath{\varepsilon}-\TeX} -\DeclareRobustCommand*{\XeTeX} - {X\kern-.125em\lower.5ex\hbox{\reflectbox{E}}\kern-.1667em\TeX} -\providecommand*{\CTAN}{\textsc{ctan}} -\@ifpackageloaded{etoolbox} - {\patchcmd{\@addmarginpar} - {\@latex@warning@no@line {Marginpar on page \thepage\space moved}} - {\relax}{}{}} - {} -\newcounter{argument} -\g@addto@macro\endmacro{\setcounter{argument}{0}} -\newcommand*\darg[1]{% - \stepcounter{argument}% - {\ttfamily\char`\#\theargument~:~}#1\par\noindent\ignorespaces} -\newcommand*\doarg[1]{% - \stepcounter{argument}% - {\ttfamily\makebox[0pt][r]{[}% - \char`\#\theargument]:~}#1\par\noindent\ignorespaces} -%</jawltxdoc> -%\fi +%<*demo> +%</demo> +%<*scheme> +%!PS-Adobe-2.0 EPSF-1.2 +%%Creator: ChemDraw Std(tm) 10.0 +%<!labels>%%Title: scheme-one.eps +%<labels>%%Title: scheme-two.eps +%%CreationDate: 21/07/2007 12:00 +%%DocumentSuppliedProcSets: chemdict30 24 13 +%%DocumentFonts: Helvetica Helvetica-Oblique +%%BoundingBox: 30 78 288 144 +%%EndComments +%%BeginProcSet: chemdict30 24 13 +% ChemDraw Laser Prep +% Copyright © 1985-2005 CambridgeSoft Corp., All Rights Reserved +userdict/chemdict30 210 dict put +chemdict30 begin/version 24 def/sv 13 def +/b{bind def}bind def/L{load def}b/R{null def}b/d/def L/a/add L/al/aload L +/as/astore L/at/atan L/cp/closepath L/cv/curveto L/cw/currentlinewidth L +/cpt/currentpoint L/dv/div L/D/dup L/e/exch L/F/false L/f/fill L/fa/forall L +/g/get L/gi/getinterval L/gr/grestore L/gs/gsave L/ie/ifelse L/ix/index L +/l/lineto L/mt/matrix L/M/moveto L/m/mul L/n/neg L/np/newpath L/pb/pathbbox L +/P/pop L/r/roll L/rl/rlineto L/rm/rmoveto L/ro/rotate L/rp/repeat L +/ru/round L/sc/scale L/sl/setlinewidth L/sm/setmatrix L/st/stroke L +/sp/strokepath L/sq/sqrt L/s/sub L/T/true L/tr/transform L/xl/translate L +/xc/exec L/A R/N R/St R/X R/Y R/aL R/bL R/bS R/bd R/bs R/cX R/cY R/ch R/co R +/fB R/fI R/fS R/fZ R/fl R/ft R/iX R/iY R/idx R/lh R/llx R/lly R/lp R/nH R +/nSq R/newdict R/ps R/rad R/rev R/sL R/sba R/sbl R/sbs R/sn R/spa R/tB R +/typ R/urx R/ury R/w R/wF R/xX R/xY R/rBg R/gBg R/bBg R/gry R/rDst R/gDst R +/bDst R/cpd R/Aeq R/Ath R/Aos R/Ach R/ed R/sf 20 d/cW 20 d/lW 20 d/bW 75 d +/wF 1.5 d/aF 11.875 d/aR 0.263 d/aA 50 d/hS 54 d/pA 32 d/sh F d/S{sf m}b +/dL{[hS] 0 setdash}b/o{1 ix}b/rot{3 -1 r}b/x{e d}b/CMT mt d/TM mt d +/SM{CMT sm}b/XY{X D m Y D m a sq}b/s1 1 string d/fp{T charpath flattenpath}b +/p{tr ru 0.25 a e ru 0.25 a e itransform}b/Wd{65536. dv}b +/C{Wd rot Wd rot Wd rot setrgbcolor}b +/setcmykcolor where{P/sk/setcmykcolor L}{/sk{4 1 r 3{3 ix a D 0 lt{P 0}if D 1\ + gt{P 1}if 1 e s 3 1 r}rp setrgbcolor P}b}ie/sg{D currenthsbcolor P rot seths\ +bcolor currenthsbcolor e P e P o s D m .001 gt{setgray}{P}ie}b +/sBg{65535 dv/bBg x 65535 dv/gBg x 65535 dv/rBg +x}b +/sRmp{currentrgbcolor bBg e s/bDst x gBg e s/gDst x rBg e s/rDst x}b +/dD{np 2 1 r 4 2 r xl 2 dv D sc -1 0 M 0 -1 l 1 0 l 0 1 l cp SM 0 ne{f}{lW 0.\ +8 m sl st}ie}b +/dM{gs np 3 1 r xl D sc 0 4 M 0 -8 rl 3.5 2 rm -7 4 rl 0 -4 rm 7 4 rl SM st g\ +r}b/dQ{gs np 0 360 arc 0.5 sg f gr}b +/dR{lW 0.8 m sl 2 ix s/Y x 2 ix s/X x xl Rr SM st}b +/dT{fp pb 3 1 r s 3 2 r s 2 1 r rm f}b/N 0 d/db{array/bs x/N 0 d}b +/B{bs N rot put/N N 1 a d}b +/SpA{gs np o o xl rot s e rot s o 0 ne o 0 ne or{at ro}{P P}ie +aR aL m n D aL a 0 M 0 o n aA n aA arc cp f gr}b +/SpH{gs np o o xl rot s e rot s o 0 ne o 0 ne or{at ro}{P P}ie +0 cw 2 dv xl +aR aL m n D aL a 0 M 0 o n aA n 0 arc cp f gr}b/Sp{/St x 0.316/aR x gs +aF lW m 0.8 m St 4 and 0 ne{bW m lW dv bW sl}if/aL x +St 8 and 0 ne{8 ix 8 ix 3 ix 3 ix SpA}if +St 16 and 0 ne{2 ix 6 m 1 a D ix e D ix e D ix e D ix e P SpA}if +St 32 and 0 ne{8 ix 8 ix 3 ix 3 ix SpH}if +St 64 and 0 ne{2 ix 6 m 1 a D ix e D ix e D ix e D ix e P SpH}if +St 2 and 0 ne{St 4 and 0 ne{[hS bW m lW dv] 0 setdash}{dL}ie}if +np M{cv}rp St 128 and 0 ne{f}{st}ie gr}b/Ha{gs np 3 1 r +xl D sc -.7 1.4 M 0.7 1.4 l -.7 2.4 M 0.7 2.4 l SM st gr}b +/OP{3 ix 3 ix xl 3 -1 r s 3 1 r +e s o o at ro D m e D m a sq}b +/OB{/bS x OP D bS dv D lW 2 m lt{P lW 2 m}if/bd x}b +/DA{np 0 0 M aL 0 aR aL m 180 aA s 180 aA a arc cp f}b +/OA{np 0 cw -2 dv M aL 0 aR aL m 180 aA s +180 arc 0 cw -2 dv rl cp f}b +/Ast{SM cw 0.8 m sl st}b/SA{aF m lW m/aL x 0.263/aR x aL 1 aR s m np 0 M + rad 0 l gs Ast gr}b +/CA{aF lW m 0.8 m/aL x 0.316/aR x aL 1 aR s m 2 dv rad D m o D m s D 0 le{P +P P}{sq at 2 +m np rad 0 rad 180 6 -1 r s 180 6 -1 r s arc gs Ast gr cpt +e at ro}ie}b/AA{np rad 0 rad 180 180 6 -1 r a arc gs SM st gr}b +/RA{lW m/w x np rad w M w .7 dv w l rad w n M w .7 dv w n l w + .35 dv w 2 m M 0 0 +l w .35 dv w -2 m l st}b +/HA{lW m/w x np 0 0 M w 2 m D l w 2 m w l rad w l rad w n l w 2 m +w n l w 2 m D n l cp st}b +/Ar1{gs 5 1 r OP/rad x{{2.25 SA DA}{1.5 SA DA}{1 SA DA}{lW 4 m sl 4.5 SA DA} +{lW 4 m sl 3 SA DA}{lW 4 m sl 2 SA +DA}{270 CA DA}{180 CA DA}{120 CA DA}{90 CA DA}{2.5 RA}{2.5 +HA}{1 -1 sc 270 CA DA}{1 -1 sc 180 CA DA}{1 -1 sc 120 CA DA}{1 -1 sc 90 CA +DA}{5 RA}{5 HA}{dL 2.25 SA DA}{dL 1.5 SA DA}{dL 1 SA DA}{2.25 SA OA}{1.5 SA +OA}{1 SA OA}{1 -1 sc 2.25 SA OA}{1 -1 sc 1.5 SA OA} +{1 -1 sc 1 SA OA}{270 CA OA}{180 CA OA}{120 CA OA}{90 CA OA}{1 -1 sc 270 CA +OA}{1 -1 sc 180 CA OA}{1 -1 sc 120 CA OA}{1 -1 sc 90 CA OA}{1 -1 sc 270 +AA}{1 -1 sc 180 AA}{1 -1 sc 120 AA}{1 -1 sc 90 AA}}e g xc +gr}b/ac{arcto 4{P}rp}b/rO{4 cw m}b/Cr{0 0 1 0 360 arc}b/Ac{XY D sc Cr SM}b +/OrA{Y X at ro XY D rev{neg}if sc}b/Ov{OrA 1 0.4 sc Cr SM}b +/Asc{OrA 1 27 dv D sc}b/LB{9 -6 M +21 -10 27 -8 27 0 cv +27 8 21 10 9 6 cv +-3 2 -3 -2 9 -6 cv +cp}b/DLB{0 0 M +0 0 -9.51 9.65 -9.51 18.02 cv +-9.51 23.22 -6.75 27 0 27 cv +6.75 27 9.51 23.22 9.51 18.02 cv +9.51 9.65 0 0 0 0 cv +cp}b/ZLB{LB}b +/dt{gs np M SM cpt np rot 4.5 dv 0 360 arc f gr}b +/whf{gs 1 setgray f gr SM st}b/blf{gs f gr SM st}b/Rr{0 rO M +0 Y X Y rO ac +X Y X 0 rO ac +X 0 0 0 rO ac +0 0 0 Y rO ac +cp}b/Rc{0 0 M +0 Y l +X Y l +X 0 l +cp}b/grf{gs 0.5 sg f gr SM st}b/gG{D 32 dv D m 1 e s/gry x +currentrgbcolor bDst gry m a 3 1 r gDst gry m a 3 1 r rDst gry m a 3 1 r +setrgbcolor}b/gS{dtransform CMT idtransform +m D 0 lt{n}if sq n D +CMT dtransform idtransform +e 2 m e +xl +7 m 32 a 256 dv D sc}b/gLB{sh{sRmp +32 -0.5 0.5{gs +gG +13.5 0 xl +D 32 s 64 dv 13.5 m D 7 m 24 dv +gS +-13.5 0 xl +LB f +gr}for +LB SM st}{LB grf}ie}b/gOv{sh{sRmp +32 -0.5 0.5{gs +gG +D 32 s 64 dv 0.65 m D +gS +Cr f +gr}for +Cr SM st}{Cr grf}ie}b/gAc{sh{sRmp +32 -0.5 0.5{gs +gG +D 32 s 64 dv D +gS +Cr f +gr}for +Cr SM st}{Cr grf}ie}b +/gDLB{sh{sRmp +32 -0.5 0.5{gs +gG +0 13.5 xl +D 32 s 64 dv 13.5 m D 7 m 24 dv e +gS +0 -13.5 xl +DLB f +gr}for +DLB SM st}{DLB grf}ie}b/gRr{sh{sRmp +32 -0.5 0.5{gs +gG +X 2 dv Y 2 dv xl +D 32 s 64 dv X Y lt{X}{Y}ie m 0.25 m D +gS +X -2 dv Y -2 dv xl +Rr f +gr}for +Rr SM st}{Rr grf}ie}b/gRc{sh{sRmp +32 -0.5 0.5{gs +gG +X 2 dv Y 2 dv xl +D 32 s 64 dv X Y lt{X}{Y}ie m 0.25 m D +gS +X -2 dv Y -2 dv xl +Rc f +gr}for +Rc SM st}{Rc grf}ie}b/gZLB{gLB}b/Ath{Y X at ro XY 2 dv/rad x gs D SA DA gr + rad 2 m 0 xl 180 ro SA DA}b/Aeq{Y X at ro XY/rad x +rev{1 -1 sc}if +gs +0 lW 2 m xl +D SA OA +gr +rad 0 xl +180 ro +0 lW 2 m xl +SA OA}b/Aos{X Y M SM cpt xl XY e dv lW 1.667 m o o lt{e}if P D sc}b/Ach{5 Aos +gs/Helvetica findfont[1 0 0 -1 0 0]makefont 5.5 scalefont setfont +D stringwidth P 2 dv D 1 a/rad x +n 0 M show gr +rad 2 s -5 M +rad n -5 rad n 1 2 ac +rad n 1 rad 1 2 ac +rad 1 rad -5 2 ac +rad -5 rad n -5 2 ac +cp Ast}b/Ar{D 39 lt{Ar1} +{gs 5 1 r o o xl 3 -1 r e s 3 1 r s e +o 0 lt o 0 lt ne/rev x +D 0 lt{1 -1 sc neg}if/Y x D 0 lt{-1 1 sc neg} +if/X x np{{Y 16 div D 2 S lt{P 2 S}if/lp x +lp 0 M 0 0 l 0 Y l lp Y l +X lp s 0 M X 0 l X Y l X lp s Y l SM st}{Y 16 div D 2 S lt{P 2 S}if/lp x +lp 0 M +0 0 0 Y lp ac +0 Y 2 dv lp neg o lp ac +0 Y 2 dv 0 Y lp ac +0 Y lp Y lp ac +X lp s 0 M +X 0 X Y lp ac +X Y 2 dv X lp a o lp ac +X Y 2 dv X Y lp ac +X Y X lp s Y lp ac SM st}{Y D 2 dv Y 180 pA s 180 pA a arc st +np X Y s Y 2 dv +Y pA D neg arcn st}{Rc SM st}{X lW 2 dv a lW -2 dv M +rO D rl +X lW 2 dv a rO a Y lW 2 dv a rO a l +rO lW -2 dv a Y lW 2 dv a rO a l +lW -2 dv Y lW 2 dv a l +0 Y l X Y l X 0 l cp f +0 0 M +0 Y l +X Y l +X 0 l cp +SM st}{Rr SM st}{rO Y M rO rO xl +0 Y X Y rO ac +X Y X 0 rO ac +X 0 0 0 rO ac +rO neg D xl X Y 0 Y rO ac +cp f +Rr st}{Ac st}{OrA gAc}{Ov st}{OrA 1 .4 sc gOv}{Asc LB whf}{Asc gLB} +{Asc gs gLB gr +-1 -1 sc LB whf}{Asc gs gLB gr +-0.4 -0.4 sc LB whf}{Asc LB gs whf gr +np -0.4 -0.4 sc gLB}{Asc DLB -1 -1 sc DLB gs whf gr +np 90 ro gs gDLB gr -1 -1 sc gDLB}{Asc gs -1 -1 sc ZLB whf gr +gs 3.6 12 sc gOv gr +ZLB whf}{Asc gs -1 -1 sc gZLB gr +gs 3.6 12 sc Cr whf gr +gZLB}{0 0 M X Y l SM st}{bW sl 0 0 M X Y l SM st} +{dL 0 0 M X Y l SM st}{OrA 1 16 dv D sc +0 -1 M +0 0 1 0 1 ac +8 0 8 1 1 ac +8 0 16 0 1 ac +16 0 16 -1 1 ac +SM st}{XY D 0 0 dt X Y dt}{XY 2 dv X Y dt}{XY D X Y dt 0 0 M SM cpt xl +2 dv D sc +1 0 M -1 0 l +0 1 M 0 -1 l +Ast}{XY D X Y dt 0 0 M SM cpt xl +2 dv D sc +1 0 M -1 0 l +Ast}{4.5 Aos +1 0 M -1 0 l +0 1 M 0 -1 l +2 0 M 0 0 2 0 360 arc +Ast}{4.5 Aos +1 0 M -1 0 l +2 0 M 0 0 2 0 360 arc +Ast}{2.25 Ath}{1.5 Ath}{1 Ath}{2.25 Aeq}{1.5 Aeq}{1 Aeq}{OrA 1 16 dv D sc +0 -1 M 0 0 l 16 0 l 16 -1 l SM st}{5 Aos +1 -1 M -1 -1 l +0 2 M 0 -2 l +Ast}{5 Aos +1 -1 M -1 -1 l +1 1 M -1 1 l +0 2 M 0 -2 l +Ast}{4.5 Aos +1 0 M -1 0 l +0 1 M 0 -1 l +Ast}{4.5 Aos +1 0 M -1 0 l +Ast}{gRc}{gRr}{Rc blf}{Rr blf}{Ac blf}{Ov blf}{Asc DLB -1 -1 sc DLB gs whf gr +np 90 ro DLB -1 -1 sc DLB blf}{Asc gs -1 -1 sc ZLB blf gr +gs 3.6 12 sc Cr whf gr +ZLB blf}{Asc gs -1 -1 sc ZLB whf gr +gs 3.6 12 sc Cr blf gr +ZLB whf}{Asc LB gs whf gr +np -0.4 -0.4 sc LB blf}{Asc LB gs f gr gs SM st gr +np -0.4 -0.4 sc LB whf}{Asc LB blf}{Asc LB gs f gr gs SM st gr +np -1 -1 sc LB whf}{Ac whf}{OrA gAc}{Ac blf}{Ov whf} +{OrA 1 .4 sc gOv}{Ov blf}{(Rac)Ach}{(Abs)Ach}{(Rel)Ach} +}e 39 s g xc gr}ie}b/DS{np M l st}b +/DD{gs dL DS gr}b/DB{gs 12 OB bW sl np 0 0 M 0 l st gr}b/ap{e 3 ix a +e 2 ix a}b/PT{D 2 4 gi al P OP D 1 sc +o length 6 gt{P 6 g}{e P 8 dv}ie +D lW 2 m lt{P lW 2 m}if +0 e +0 0 +3 -1 r s 3 1 r e s e +0 0 M 1 0 l +0 0 ap M 1 0 ap l +e n e n +0 0 ap M 1 0 ap l +P P}b/DT{gs np PT SM st gr}b +/NH{lW s D hS dv ru +cvi D 0 eq{P 1}if/nH x +D hS nH m s +D 0 lt{P .1 s nH dv}{nH 2 a dv D 0 xl 2 m s nH dv}ie}b +/Bd{D type/arraytype ne{bs e g}if{{P}{{{DS}{DD}{gs 12 OB np +bW 2 dv/bd x +lW 2 dv e D NH e{D bd M bd n l}for +st gr}{gs 12 OB np +lW 2 dv 0 xl NH 1 sc +bW 2 dv wF m nH 1 a dv/bd x +0 1 nH +{D 1 a bd m o o M n l}for SM st gr}{P}{DB}{gs 12 OB +np 0 lW 2 dv o o n M l bW 2 dv +wF m o o l n l +cp f gr}{P}{gs 12 OB/bL x +bW 2 dv D lW lt{P lW}if/bd x np 0 0 M +bL bd 4 m dv ru 2 o o lt{e}if P cvi/nSq x +bL nSq 2 m dv D sc +nSq{.135 .667 .865 .667 1 0 rcurveto +.135 -.667 .865 -.667 1 0 rcurveto}rp SM st gr}{gs 12 OB +np 0 lW 2 dv o o n M l bW 2 dv +wF m o o l n l +cp SM lW 0.8 m sl st gr}{P}{4 2 r gs OP/rad x 1 SA DA gr}{P} +}o 1 g 1 s g e 2 4 gi al P +5 -1 r xc}{al P 8 ix 1 eq{DD}{DS}ie 5 -1 r 2 eq{DB}{DS}ie P}{DT}}o 0 g g xc}b +/ed{gs cpt np cw 2 dv 0 360 arc f gr}b +/SPe{gs 0 e xl 1 1 S dv D n sc CMT currentmatrix P lW sl 4.0 setmiterlimit +np}b/ws{Wd 0 32 4 -1 roll widthshow}b/blank/Times-Roman findfont/CharStrings +g/space g d/mv 256 array d/NUL/SOH/STX/ETX/EOT/ENQ/ACK/BEL/BS/HT/LF/VT +/FF/CR/SO/SI +/DLE/DC1/DC2/DC3/DC4/NAK/SYN/ETB/CAN/EM/SUB/ESC/FS/GS/RS/US +mv 0 32 gi as P +mv 32/Times-Roman findfont/Encoding get +32 96 gi putinterval +mv 39/quotesingle put +mv 96/grave put/unknown/unknown/quotesinglbase/florin/quotedblbase/ellipsis +/dagger/daggerdbl +/circumflex/perthousand/Scaron/guilsinglleft/OE/unknown/unknown/unknown +/unknown/quoteleft/quoteright/quotedblleft/quotedblright/bullet/endash +/emdash +/tilde/trademark/scaron/guilsinglright/oe/unknown/unknown/Ydieresis +/blank/exclamdown/cent/sterling/currency/yen/brokenbar/section +/dieresis/copyright/ordfeminine/guillemotleft/logicalnot/hyphen/registered +/macron +/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph +/periodcentered +/cedilla/onesuperior/ordmasculine/guillemotright/onequarter/onehalf +/threequarters/questiondown +/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla +/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex/Idieresis +/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis/multiply +/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls +/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla +/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis +/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide +/oslash/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis +mv 128 128 gi as P/fSt 50 string d(ChemDraw)fSt copy P/fD{D/Symbol eq{ +findfont[1 0 0 -1 0 0]makefont}{D {findfont}stopped{/Helvetica findfont}if +D length dict/newdict x{ +1 index/FID ne{1 index/FontMatrix eq{[1 0 0 -1 0 0]matrix concatmatrix}if +newdict 3 1 r put}{P P}ie}forall +newdict/Encoding mv put +fSt 8 fSt length 8 sub gi cvs length 8 add +fSt 0 rot gi cvn newdict definefont}ie}b/ts{gs xl ro 0 0 M}b +/nl{0 e xl 0 0 M}b/tx{ft e g e sf m rot D 96 and 0 ne{ +64 and 0 ne{-0.5}{0.25}ie e 0.75 m}{P 0 e}ie +D 4 -1 r e scalefont setfont m cpt P e M}b +end +%%EndProcSet +%%EndProlog + +chemdict30 begin +/cW 24 def +/bW 48 def +/lW 12 def +/hS 32 def +/sh true def +222 SPe[ +/Helvetica +fD +/Helvetica-Oblique +fD]/ft x +600 1560 M +5760 1560 l +5760 2880 l +600 2880 l +cp clip np +65535 65535 +65535 sBg +0 1640 2178 ts +0.0000 0.0000 0.0000 1.0000 sk +0 10 0 tx +(N)show +gr +0 1182 2178 ts +0.0000 0.0000 0.0000 1.0000 sk +0 10 0 tx +(N)show +gr +gs +0.0000 0.0000 0.0000 1.0000 sk +np +1619 2364 M +1627 2376 l +1335 2376 l +1344 2364 l +cp +f +gr +gs +0.0000 0.0000 0.0000 1.0000 sk +np +1598 2330 M +1598 2342 l +1364 2342 l +1364 2330 l +cp +f +gr +gs +0.0000 0.0000 0.0000 1.0000 sk +np +1669 2208 M +1681 2212 l +1627 2376 l +1619 2364 l +cp +f +gr +gs +0.0000 0.0000 0.0000 1.0000 sk +np +1481 1941 M +1481 1926 l +1629 2034 l +1622 2043 l +cp +f +gr +gs +0.0000 0.0000 0.0000 1.0000 sk +np +1343 2041 M +1336 2032 l +1481 1926 l +1481 1941 l +cp +f +gr +gs +0.0000 0.0000 0.0000 1.0000 sk +np +1363 2069 M +1356 2059 l +1478 1971 l +1485 1981 l +cp +f +gr +gs +0.0000 0.0000 0.0000 1.0000 sk +np +1344 2364 M +1335 2376 l +1282 2212 l +1293 2209 l +cp +f +gr +0 1033 2091 ts +0.0000 0.0000 0.0000 1.0000 sk +-377 +0 M +0 10 0 tx +(Mes)show +gr +gs +0.0000 0.0000 0.0000 1.0000 sk +np +1055 2043 M +1059 2031 +l +1167 2066 l +1163 2078 l +cp +f +gr +0 1897 2091 ts +0.0000 0.0000 0.0000 1.0000 sk +0 10 0 tx +(Mes)show +gr +gs +0.0000 0.0000 0.0000 1.0000 sk +np +1878 2040 M +1882 2051 +l +1802 2077 l +1798 2066 l +cp +f +gr +gs +12 D sl/lW x +24 /cW x +48 /bW x +32 /hS x +0.0000 0.0000 0.0000 1.0000 sk +10 D sl/lW x +1228 1973 M +1295 +1973 l st +1261 1940 M +1261 2006 l st +gr +0 2085 2400 ts +0.0000 0.0000 0.0000 1.0000 sk +0 10 0 tx +(Br)show +64 10 0 tx +(\226)show +gr +0 5084 2247 ts +0.0000 0.0000 0.0000 1.0000 sk +0 10 0 tx +(N)show +gr +0 4625 2247 ts +0.0000 0.0000 0.0000 1.0000 sk +0 10 0 tx +(N)show +gr +gs +0.0000 0.0000 0.0000 1.0000 sk +np +5062 2433 M +5071 2445 l +4778 2445 l +4787 2433 l +cp +f +gr +gs +0.0000 0.0000 0.0000 1.0000 sk +np +5042 2399 M +5042 2411 l +4808 2411 l +4808 2399 l +cp +f +gr +gs +0.0000 0.0000 0.0000 1.0000 sk +np +5113 2277 M +5124 2281 l +5071 2445 l +5062 2433 l +cp +f +gr +gs +0.0000 0.0000 0.0000 1.0000 sk +np +4925 2010 M +4925 1995 l +5072 2102 l +5065 2112 l +cp +f +gr +gs +0.0000 0.0000 0.0000 1.0000 sk +np +4787 2110 M +4779 2101 l +4925 1995 l +4925 2010 l +cp +f +gr +gs +0.0000 0.0000 0.0000 1.0000 sk +np +4787 2433 M +4778 2445 l +4725 2281 l +4737 2278 l +cp +f +gr +0 4476 2160 ts +0.0000 0.0000 0.0000 1.0000 sk +-377 0 M +0 10 0 tx +(Mes)show +gr +gs +0.0000 0.0000 0.0000 1.0000 sk +np +4498 2112 M +4502 2100 +l +4610 2135 l +4606 2147 l +cp +f +gr +0 5340 2160 ts +0.0000 0.0000 0.0000 1.0000 sk +0 10 0 tx +(Mes)show +gr +gs +0.0000 0.0000 0.0000 1.0000 sk +np +5321 2109 M +5325 2120 +l +5246 2146 l +5243 2134 l +cp +f +gr +gs +12 D sl/lW x +24 /cW x +48 /bW x +32 /hS x +0.0000 0.0000 0.0000 1.0000 sk +np +4962 1946 17 0 360 arc +cp +f +np +4887 1946 17 0 360 arc +cp +f +gr +0 3236 1785 ts +0.0000 0.0000 0.0000 1.0000 sk +-364.5 0 M +0 10 0 tx +(KO-)show +2 10 1 tx +(t)show +0 10 0 tx +(-Bu)show +201 nl +-114.5 0 M +0 10 0 tx +(thf)show +gr +gs +12 D sl/lW x +24 /cW x +48 /bW x +32 /hS x +0.0000 0.0000 0.0000 1.0000 sk +10 D sl/lW x +3597 2130 M +2771 2130 l st +gs +3581 2161 3701 2130 3701 2130 3596 2143 3581 2161 3581 2161 3581 2098 +3596 2116 3596 2130 3701 2130 3581 2098 3581 2098 4 3701 2130 0 Sp +gr +gr +0 +1215 2805 ts +0.0000 0.0000 0.0000 1.0000 sk +0 10 0 tx +%<labels>(TMP1)show +gr +0 4642 2805 ts +0.0000 0.0000 0.0000 1.0000 sk +0 10 0 tx +%<labels>(TMP2)show +gr +gr end +%%Trailer +showpage +%</scheme> + +%\fi
\ No newline at end of file |