diff options
Diffstat (limited to 'Master')
-rw-r--r-- | Master/texmf-dist/doc/latex/chemnum/README | 4 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/chemnum/chemnum_de.pdf | bin | 671445 -> 0 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/chemnum/chemnum_de.tex | 1319 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/chemnum/chemnum_en.pdf | bin | 663069 -> 663319 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/chemnum/chemnum_en.tex | 917 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/chemnum/chemnum_it.pdf | bin | 664289 -> 0 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/chemnum/chemnum_it.tex | 1337 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/chemnum/chemnum.sty | 263 | ||||
-rwxr-xr-x | Master/tlpkg/libexec/ctan2tds | 1 |
9 files changed, 646 insertions, 3195 deletions
diff --git a/Master/texmf-dist/doc/latex/chemnum/README b/Master/texmf-dist/doc/latex/chemnum/README index f7f8a8a464b..97efbc19db7 100644 --- a/Master/texmf-dist/doc/latex/chemnum/README +++ b/Master/texmf-dist/doc/latex/chemnum/README @@ -1,4 +1,4 @@ -chemnum v0.6a 2013/04/17 +chemnum v0.6b 2013/06/05 a comprehensive approach for the numbering of chemical compounds @@ -36,4 +36,4 @@ This work consists of the files chemnum.sty, chemnum_de.tex, chemnum_en.tex, chemnum_it.tex scheme-tmp.ps, scheme-bla.ps, README - chemnum_de.pdf, chemnum_en.pdf, chemnum_it.pdf
\ No newline at end of file + chemnum_de.pdf, chemnum_en.pdf, chemnum_it.pdf diff --git a/Master/texmf-dist/doc/latex/chemnum/chemnum_de.pdf b/Master/texmf-dist/doc/latex/chemnum/chemnum_de.pdf Binary files differdeleted file mode 100644 index 5218c71f5d2..00000000000 --- a/Master/texmf-dist/doc/latex/chemnum/chemnum_de.pdf +++ /dev/null diff --git a/Master/texmf-dist/doc/latex/chemnum/chemnum_de.tex b/Master/texmf-dist/doc/latex/chemnum/chemnum_de.tex deleted file mode 100644 index 28007c7e50e..00000000000 --- a/Master/texmf-dist/doc/latex/chemnum/chemnum_de.tex +++ /dev/null @@ -1,1319 +0,0 @@ -% arara: pdflatex: { shell: on } -% arara: makeindex: { sort: true, style: chemnum_de.ist } -% arara: pdflatex: { shell: on } -% arara: pdflatex: { shell: on } -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% - chemnum - chemnum_de.tex -% - a comprehensive approach for the numbering of chemical compounds -% ----------------------------------------------------------------------------- -% - Clemens NIEDERBERGER -% - -% - contact@mychemistry.eu -% ----------------------------------------------------------------------------- -% - If you have any ideas, questions, suggestions or bugs to report, please -% - feel free to contact me. -% ----------------------------------------------------------------------------- -% - Copyright 2011-2013 Clemens Niederberger -% - -% - This work may be distributed and/or modified under the -% - conditions of the LaTeX Project Public License, either version 1.3 -% - of this license or (at your option) any later version. -% - The latest version of this license is in -% - http://www.latex-project.org/lppl.txt -% - and version 1.3 or later is part of all distributions of LaTeX -% - version 2005/12/01 or later. -% - -% - This work has the LPPL maintenance status `maintained'. -% - -% - The Current Maintainer of this work is Clemens Niederberger. -% - -% - This work consists of the files -% - chemnum.sty, chemnum_de.tex, chemnum_en.tex, chemnum_it.tex -% - scheme-tmp.ps, scheme-bla.ps, -% - README -% - chemnum_de.pdf, chemnum_en.pdf, chemnum_it.pdf -% - -% - in order to compile this document you need the class `cnpkgdoc' with is -% - available under the LPPL here: https://bitbucket.org/cgnieder/cnpkgdoc/ -% - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\RequirePackage[german,naustrian,austrian,english,british,american,canadian,frenchb, - canadien,spanish,italian,ngerman]{babel} -\RequirePackage[textgreek=artemisia]{chemnum} -\documentclass[DIV11,toc=index]{cnpkgdoc} -\docsetup{ - pkg = chemnum, - language = de, - code-box = {skipabove=1ex,skipbelow=1ex} -} -\usepackage{fnpct} -\addcmds{ - @m,arrow,bf, - ch,chemfig,chemname,cmpd,cmpdinit,cmpdref,cmpdreset,cmpdsetup, - CNlabel,CNlabelnoref,CNref,CNlabelsub,CNlabelsubnoref,CNrefsub, - color,compound,compoundprefix,compoundsuffix, - declarecompound,fcite,GetTranslation, - includegraphics,midrule,penalty,psfrag,renewcommand, - schemename,schemestart, - schemestop,selectlanguage,setarrowoffset,setatomsep,setcompoundsep, - setdoublesep,section,sf,subsection,subsubsection, - tableofcontents,texorpdfstring,textcolor,theffbibliography, - uline -} - -\usepackage{textcomp,longtable,tabu,booktabs,chemscheme,hologo} -\usepackage[iupac=strict]{chemmacros} -\chemsetup[chemformula]{format=\libertineLF} -\usepackage{chemfig} -\usepackage[runs=2]{auto-pst-pdf} - -\usepackage{filecontents} -\begin{filecontents*}{\jobname.ist} - preamble "\\begin{theindex}\n Abschnitts\\\"{u}berschriften werden \\textbf{fett}, Pakete \\textsf{serifenlos}, Befehle \\textcolor{code}{braun} und Keys \\textcolor{key}{gr\\\"{u}n} dargestellt.\\newline\n\n" - heading_prefix "{\\bfseries " - heading_suffix "\\hfil}\\nopagebreak\n" - headings_flag 1 - delim_0 "\\dotfill " - delim_1 "\\dotfill " - delim_2 "\\dotfill " - delim_r "--" - suffix_2p "\\nohyperpage{\\,f.}" - suffix_3p "\\nohyperpage{\\,ff.}" -\end{filecontents*} - -\let\prog\textsc -\let\name\textsc -\let\CNversion\cnpkgdocpkgversion -\let\CNdate\cnpkgdocpkgdate - -\cmpdinit*{a,aa,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,benzene,r,s,t,{1,3-dichlorocyclohexanole}} - -\TitlePicture{% - \selectlanguage{ngerman} - \cmpdinit*{glucose.alpha, glucose.beta, glucose.chain} - \cmpd*[sub-counter = greek]{glucose.alpha, glucose.beta}\cmpd*{glucose.chain} - \setatomsep{2em} - \definesubmol{x}{(-[4]H)(-[0]OH)} - \definesubmol{y}{(-[0]H)(-[4]HO)} - \begin{scheme}[h] - \centering\small - \schemestart - \chemfig{?(-[:-170]HO)-[:-50](-[:170]HO)-[:10](-[:-55,0.7]OH)-[:-10](-[6,0.8]OH)-[:130]O-[:-170]?(-[:150,0.7]-[2,0.7]OH)} - \arrow(alpha--chain){<=>} - \chemfig{[2]OH-[3]-!x-!x-!y-!x-=[1]O} - \arrow(--beta){<=>} - \chemfig{?(-[:-170]HO)-[:-50](-[:170]HO)-[:10](-[:-55,0.7]OH)-[:-10](-[:10]OH)(-[6,,,,draw=none]\vphantom{OH})-[:130]O-[:-170]?(-[:150,0.7]-[2,0.7]OH)} - \arrow(@chain--chainlabel){0}[-90,.2] \normalsize\cmpd[cmpd-delim]{glucose.chain} - \arrow(@chainlabel--){0}[,2.5] \normalsize\cmpd[cmpd-delim]{glucose.beta} - \arrow(@chainlabel--){0}[180,2.3] \normalsize\cmpd[cmpd-delim]{glucose.alpha} - \schemestop - \caption{Das \a- und das \b-Anomer von \D-Glucose - \cmpd[list-delim,list-lang=DE]{glucose.alpha,glucose.beta} stehen in L\"osung - \"uber die offenkettige Form \cmpd[cmpd-delim]{glucose.chain} im Gleichgewicht.} - \end{scheme}} - -\makeindex -\begin{document} -\selectlanguage{ngerman}\cmpdreset - -\section{Ein sehr kurzes Readme} -\chemnum \CNversion\ steht unter der \LaTeX\ Project Public License Version 1.3 -oder später. (\url{http://www.latex-project.org/lppl.txt}) - -\chemnum ruft intern die Pakete \paket*{expl3} und \paket{xparse} auf. \paket{xparse} -ist Teil des \paket{l3packages}-Bundles, \paket*{expl3} ist Teil des -\paket{l3kernel}-Bundles. Das heißt, \chemnum benötigt \LaTeX3-Un\-ter\-stüt\-zung. - -\chemnum benötigt außerdem die Pakete \paket{etoolbox} und \paket{psfrag} und -entweder das Paket \paket{textgreek} oder das Paket \paket{bm}, abhängig von den -Paketoptionen (siehe Abschnitt~\ref{sec:package:options}). - -\section{Neues und ein Wort der Entschuldigung} -\subsection{Version 0.4} -Mit dem Update auf v0.4 hat sich einiges bei den Optionen getan. Es gibt ein paar -neue, ein paar von den alten haben andere Namen. Sie haben einheitlichere Namen -erhalten, die meines Erachtens intuitiver ihre jeweilige Funktion widerspiegeln. -Dadurch kann es sein, dass Ihre mit einer früheren Version von \chemnum erstellten -Dokumente nicht mehr reibungslos kompilieren. Dafür möchte ich mich entschuldigen. -\chemnum befindet sich noch in der Entwicklungsphase. Ist erst einmal v1.0 erreicht, -wird es solche Änderungen nicht mehr\footnote{oder nur in größten Ausnahmefällen} -geben. - -Diese Optionen haben neue Namen: -\begin{center} - \begin{tabular}{ll}\toprule - \bfseries alter Name & \bfseries neuer Name \\\midrule - \key{cmpd-sep} & \key{sub-output-sep} \\ - \key{sub-marker} & \key{sub-input-sep} \\ - \key{sub-range-sep} & \key{subrange-output-sep} \\ - \key{sub-range-marker} & \key{subrange-input-sep} \\ - \key{strict} & \key{init-strict} \\ - \key{sub-init} & \key{init-sub} \\\bottomrule - \end{tabular} -\end{center} -Diese Optionen sind neu: -\begin{center} - \begin{tabular}{ll}\toprule - \bfseries Option & \bfseries Info \\\midrule - \key{sublist-output-sep} & Aufzählungszeichen in Labeln wie \cmpd{bsp.{one,two}}, siehe Seite \pageref{sssec:list-output-sep}. \\ - \key{sublist-input-sep} & Eingabe von Labeln wie \cmpd{bsp.{one,two}}, siehe Seite \pageref{sssec:list-input-sep}. \\ - \key{init-input-sep} & Eingabe bei \cmd{cmpdinit}, siehe Seite \pageref{sssec:init-input-sep}. \\ - \key{hyper-use} & Verwendung von Hyperlinks, siehe Seite \pageref{sec:hyperref}. \\ - \key{hyper-target} & \\ - \key{hyper-link} & \\ - \key{ref-style} & Darstellung von Labels mit \cmd{cmpdref}, siehe Seiten \pageref{ssec:cmpdref} und \pageref{ssec:schriftstil}. \\\bottomrule - \end{tabular} -\end{center} - -Ebenfalls neu ist die Art und Weise, wie Sublabel-Listen und -Bereiche eingegeben -werden. Der Option \key{sub-list} entfällt deshalb. Näheres siehe Abschnitt~\ref{ssec:sub_ranges}. - -Dann gibt es nun die Möglichkeit, klickbare Links zu den Labeln herzustellen, -vorausgesetzt Sie haben \paket{hyperref} eingebunden, siehe Abschnitt~\ref{sec:hyperref}. - -\subsection{Version 0.5} -Ab v0.5 gibt es die Option \key{ref-pos}, die Ihnen erlaubt, die Positionierungs-Optionen -des Befehls \cmd{psfrag} zu ändern, der von \cmd{cmpdref} intern verwendet wird, -siehe S.\,\pageref{ssec:marker_in_bildern}. - -\achtung{Die Reihenfolge der optionalen Argumente des Befehls \cmd{cmpdref} hat -sich geändert, siehe S.\,\pageref{ssec:cmpdref}!} - -\section{Paketoptionen}\label{sec:package:options}\secidx{Paketoptionen} -\chemnum hat eine Paketoption. -\begin{beschreibung} - \Option{textgreek}{artemisia/\default{cbgreek}/euler/false} Default: \code{false} -\end{beschreibung} -Damit können Sie sowohl einen der drei Stile des \paket{textgreek}-Pakets wählen\footnote{Zu -Details siehe Dokumentation des \paket*{textgreek}-Pakets.} oder \chemnum ohne -\paket{textgreek} laden. Dieses Dokument wurde mit -\verb+\usepackage[textgreek=artemisia]{chemnum}+ gesetzt. -\secidx*{Paketoptionen} - -\section{Motivation} -Soweit mir bekannt ist, gab es bislang drei Pakete, die das Nummerieren von -Verbindungen erleichtern sollen. Sie alle haben ihre Schwächen. - -Das erste, \paket{chemcono}, hat für diesen Zweck Bibliographie-Befehle umdefiniert. -Dort müs\-sen Verbindungen in einer Art Literaturliste definiert werden. Dadurch -kann dann im Text auf sie referenziert werden. Da es die "`Verbindungs-Bibliothek"' -immer mit ausgibt, schlägt der Paket-Autor folgendes vor: - -\begin{zitat}[Stefan Schulz] - After compilation and printout, discard the last page. -\end{zitat} -Ganz offensichtlich ist das keine perfekte Lösung. - -Das zweite, \paket{chemcompounds}, ist enstanden, weil der Paket-Autor ebenfalls -mit den Schwä\-chen von \paket{chemcono} nicht mehr arbeiten wollte. Bei der Erstellung -des Pakets hielt er sich stark an den gleichen prinzipiellen Mechanismus wie \paket{chemcono}. - -\begin{zitat}[Stephan Schenk] - When taking a closer look at the chemcono package, I realised that the only thing - one has to do is to get rid of everything which produces text. Thus, as a basis I - used the mechanism of \verb=\bibitem= and \verb=\cite= in pretty much the same way - as \paket{chemcono} does by extracting the corresponding code from \verb=article.cls= - and \verb=latex.ltx= but deleting any unnecessary commands producing output. I - also introduced several lines of code to make the printing of the compound names - more customisable. -\end{zitat} - -Manche Schwächen hat auch dieses Paket: -\begin{enumerate} - \item Verbindungen müssen in der Regel mit \verb=\declarecompound= deklariert - werden. Sie müs\-sen es auf jeden Fall, wenn man Label der Art \cmpd{bsp.one} - haben möchte. Dann muss man die La\-bel sogar von Hand vergeben, was den Sinn - einer automatischen Nummerierung untergräbt. - % - \item Das Layout lässt sich nicht einzeln ändern, sondern nur für alle Label. - % - \item Die Nummerierung kann nicht zurückgesetzt werden. Obwohl das in der - allermeisten Fällen \emph{weder nötig noch zu empfehlen ist}, kann es Einzelfälle - geben, in denen solches Verhalten gewünscht ist. - % - \item Eine Liste mehrerer Verbindungen \verb=\compound{a,b,c}= kann nicht oder - nur um\-ständ\-lich eigenen Vorstellungen angepasst werden. -\end{enumerate} - -Dann gibt es noch \paket{bpchem}, das Befehle ähnlich den Befehlen \verb=\label= -und \verb=\ref= zur Ver\-fü\-gung stellt: \verb=\CNlabel{}=, \verb=\CNlabelnoref{}= -und \verb=\CNref{}=. Außerdem hat es Befehle für Sublabel: \verb=\CNlabelsub{}{}=, -\verb=\CNlabelsubnoref{}{}= und \verb=\CNrefsub{}{}=. Damit ist es flexibler als die -anderen, stellt allerdings kaum Möglichkeiten zur Personalisierung bereit, Listen -sind nicht möglich und die Tatsache, dass es verschiedene Befehle für Label und -Label mit Sublabeln gibt, ist ebenfalls nicht die beste Lösung. - -\chemnum soll diese Schwächen beheben. Dafür wurden alle Befehle vollständig neu -geschrieben. Allerdings wurden Ideen von \paket{chemcompounds} aufgegriffen was -Dar\-stel\-lungs\-mög\-lich\-kei\-ten wie Begrenzer \usw betrifft. - -Wenn Ihnen irgendwelche fehlenden Features auf"|fallen, geben Sie mir bitte Bescheid, -indem Sie mir eine E-Mail senden. - -\section{Verbindungen Nummerieren}\label{sec:nummerieren} -\subsection{Basisbefehl}\secidx{Basisbefehl}\cmpdreset -Der eigentliche Befehl des Pakets ist -\begin{beschreibung} - \Befehl{cmpd}{<label name>} -\end{beschreibung} -Beim ersten Aufruf mit \code{<label name>} wird das Label erzeugt und gespeichert -(= deklariert) und ausgegeben. Bei jedem weiteren Aufruf wird nun dieses Label -verwendet. - -\begin{beispiel} - Verbindungen \cmpd{a} und \cmpd{b} werden deklariert und k\"onnen nun jederzeit - wieder aufgerufen werden: \cmpd{a}. Es ist keine vorherige Deklarierung n\"otig. - Die Substanzen wie \cmpd{c} werden in der Reihenfolge ihres ersten Erscheinens - im Text nummeriert.\par - Noch einmal: \cmpd{b}, \cmpd{a}, \cmpd{c}. -\end{beispiel} - -Falls es nötig sein sollte, eine Verbindung zu deklarieren, ohne ein Label -auszugeben, kann man an entsprechender Stelle -\begin{beschreibung} - \Befehl[cmpda]{cmpd*}\ma{<label name>}\label{cmd:unsichtbares_label} -\end{beschreibung} -verwenden. Dadurch wird ein entsprechendes Label deklariert aber nicht ausgegeben. - -\achtung{Dieser Befehl wird nicht benötigt, wenn man \cmd{cmpdinit} verwendet, -siehe Abschnitt~\ref{sec:cmpdinit} (S.\,\pageref{sec:cmpdinit}ff).} - -\begin{beispiel} - Die versteckte Version\cmpd*{d} erzeugt zwar das Label, schreibt es aber nicht - aus. Der n\"achste \cmpd{e} f\"uhrt die Z\"ahlung einfach weiter. Mit \cmpd{d} - kann nat\"urlich auf das erzeugte Label zur\"uckgegriffen werden. -\end{beispiel} - -Als Label-Namen können Sie im Prinzip einsetzen, was Sie wollen, außer den als -Trennzeichen verwendeten Symbolen (siehe Abschnitt~\ref{ssec:unterlabel}, -Abschnitt~\ref{ssec:listen}, Abschnitt~\ref{ssec:sub_ranges} und Abschnitt~\ref{ssec:trenner}). -Sie sollten allerdings darauf achten, dass der Name keine Leerzeichen enthält. -Das führt zwar nicht unbedingt zu einem Fehler, könnte aber verschiedenen Labeln -die gleiche Nummer zuweisen. - -\lstset{showspaces=true} -\begin{beispiel} - \cmpd{aa }, \cmpd{a a }, \cmpd{a a}, \cmpd{ a a}, \cmpd{ aa} und \cmpd{ aa } - erzeugen alle das gleiche Label. So, wie auch \cmpd{aa }, \cmpd{a a}, \cmpd{ aa} - und \cmpd{aa}. -\end{beispiel} -\lstset{showspaces=false}\secidx*{Basisbefehl} - -\subsection{Sublabel}\label{ssec:unterlabel}\secidx{Sublabel} -Möchte man Label der Form \cmpd{a.one} erzeugen, geschieht das nach folgender -Syntax: -\begin{beschreibung} - \Befehl{cmpd}{<label name>.<subname>} -\end{beschreibung} -Dabei muss \code{<label name>} der gleiche bleiben, \code{<subname>} variiert. -Diese Syntax bedeutet, dass der Punkt \code{.} weder Teil von \code{<label name>} -noch von \code{<subname>} sein darf. An Stelle des Punktes können Sie auch ein -anderes Zeichen verwenden, siehe Abschnitt~\ref{sssec:sub-input-sep}. -\begin{beispiel} - \cmpd{f.one} und \cmpd{f.two} sind eng verwandt, genauso \cmpd{g.one} und \cmpd{g.two}. - Nat\"urlich bliebt auch hier bei sp\"aterem Aufruf das Label gleich: \cmpd{g.two} - und \cmpd{f.one}. -\end{beispiel} - -Diese Syntax funtioniert auch, wenn der Hauptname bereits vergeben wurde. -\begin{beispiel} - \cmpd{a} und seine Varianten \cmpd{a.one} und \cmpd{a.two} -\end{beispiel} - -Genauso kann der Hauptname von kombiniert vergebenen Labeln einzeln aufgerufen werden. -\begin{beispiel} - \cmpd{f} und \cmpd{g} -\end{beispiel} - -Wie Sie ein Label der Art \cmpd{f.{one,two}} erzeugen können,wird in -Abschnitt~\ref{ssec:sub_ranges} erklärt. -\secidx*{Sublabel} - -\subsection{Listen}\label{ssec:listen}\secidx{Listen} -Tatsächlich wurde bislang nur die halbe Wahrheit über den Befehl erzählt. Er kann -auch für mehrere Label auf einmal verwendet werden. - -Die richtige Beschreibung des Befehls lautet also eher: -\begin{beschreibung} - \Befehl{cmpd}{<(possibly comma separated list of) label name(s)>} -\end{beschreibung} -Das bedeutet, dass in der Voreinstellung das Komma nicht Teil des Label-Namens -sein kann, es sei denn versteckt in geschweiften Klammern. Sie können das ändern, -siehe Abschnitt~\ref{sssec:list-input-sep} (S.\,\pageref{sssec:list-input-sep}). - -\begin{beispiel} - Mehrere Label k\"onnen einfach durch Kommata getrennt eingegeben werden. Dann - wird eine Liste wie \cmpd{a, b, c, e, g.two} ausgegeben. -\end{beispiel} -\secidx*{Listen} - -\subsection{Listen und Bereiche von Sublabeln}\label{ssec:sub_ranges}\index{Sublabel!Listen}\index{Sublabel!Bereiche} -Manchmal kann es nützlich oder erwünscht sein, ein Label mit einem Bereich von -Sublabeln anzuzeigen. Nehmen wir an, Sie haben die Verbindungen -\cmpd{q.one,q.two,q.three,q.four,q.five}, die sich \zB in ihren Substituenten -unterscheiden. Unter Umständen möchte man auf alle gleichzeitig verweisen: -\cmpd[cmpd-all]{q}. - -Das Prinzip ist recht intuitiv -- Sie geben einfach eine Liste von Sublabeln ein: -\begin{beispiel} - Liste von Labeln: \cmpd{q.one, q.two, q.three, q.four, q.five}\\ - Label mit Sublabel-Liste: \cmpd{q.{one,two,three,four,five}} -\end{beispiel} -Da die Subliste in der Voreinstellung ebenfalls mit Komma getrennt eingegeben -wird, müssen Sie die Subliste in geschweiften Klammern eingeben. - -Sie können auf diese Weise auch Bereiche von Sublabeln darstellen. Als Marker -zwischen den Namen der beiden Sublabel werden zwei Punkte \verb=..= verwendet. -\begin{beispiel} - \cmpd{q.{two..four}}\\ - \cmpd{q.{one,three..five}}\\ - \cmpd{q.{one..three,five}} -\end{beispiel} - -Durch die Eingabe stehen Ihnen in der Voreinstellungen für Sublabel-Namen weder -das Komma noch die zwei Punkte als Teils des Namens zur Verfügung. Wie Sie andere -Symbole als Marker verwenden, damit Sie sie doch verwenden können, steht in den -Abschnitten~\ref{sssec:range-input-sep} und \ref{sssec:list-input-sep}. In -Abschnitt~\ref{sssec:input-sep-bsp} wird ein Beispiel gezeigt, wie eine geänderte -Eingabe aussehen könnte. - -\chemnum stellt eine Option (siehe Abschnitt~\ref{sec:cmpdsetup} zur näheren -Erläuterung) zur Verfügung, mit denen alle Sublabel als Bereich ausgegeben werden -können -\begin{beschreibung} - \Option{cmpd-all}{\default{true}/false} -\end{beschreibung} -\begin{beispiel} - \cmpd[cmpd-all]{q} -\end{beispiel} - -Damit der Key die richtigen Sublabel verwenden kann, müssen diese deklariert worden -sein. Daher werden sie aus der Datei \verb=\jobname.cmpd= (angenommen Ihre Quelldatei -heißt \verb=\jobname.tex=) gelesen. Das bedeutet, dass Sie zweimal (oder öfter) -kompilieren müssen, bis alle Labels richtig dargestellt werden. - -Verwendet man Label mit Sublabel-Bereichen, dann möchte man vielleicht an anderer -Stelle \emph{nur} das Sublabel ausgeben. Das ist möglich mit folgender Option: -\begin{beschreibung} - \Option{sub-only}{\default{true}/false} -\end{beschreibung} -\begin{beispiel} - % use packages `chemfig', `chemmacros' and `booktabs' - \cmpd*{benzol.H,benzol.Me,benzol.OH,benzol.NH2} - \chemname{\chemfig{*6(=-=-(-R)=-)}}{\cmpd[cmpd-all]{benzol}} - \begin{tabular}{lll} - & \ch{-R} & Name \\\midrule - \cmpd[sub-only]{benzol.H} & \ch{-H} & Benzol \\ - \cmpd[sub-only]{benzol.Me} & \ch{-CH3} & Toluol \\ - \cmpd[sub-only]{benzol.OH} & \ch{-OH} & Phenol \\ - \cmpd[sub-only]{benzol.NH2} & \ch{-NH2} & Anilin - \end{tabular} -\end{beispiel} - -Bereiche von Sublabeln benötigen eine gewisse Sorgfalt. Man muss erstens genau -wissen, welches Label das kleinere und welches das größere ist, und zweitens, -welche Label in einem Bereich dazwischen liegen. \chemnum kann Ihnen diese Sorgfalt -nicht abnehmen. Daher kann es passieren, dass Sie Label wie diese erhalten, wenn -Sie nicht aufpassen: -\begin{beispiel} - \cmpd{q.{five..three}} or \cmpd{q.{three,one,four}}. -\end{beispiel} - -\section{Label zentral initialisieren}\label{sec:cmpdinit}\secidx{Label initialisieren} -Die in diesem Abschnitt beschriebenen Befehle sind für den Einsatz von \chemnum -nicht nötig, stellen aber Funktionen bereit, die der ein oder andere Anwender -nützlich finden könnte. - -\subsection{Verwendung} -\subsubsection{Haupt-Label} -Vielleicht vermissen Sie ja den \verb=\declarecompound=-Befehl von \paket{chemcompounds}. -Schließlich hat man dadurch am Beginn einen Überblick, welche Namen man bereits -vergeben hat. Und man wird durch eine Fehlermeldung unter Umständen gewarnt, wenn -man ein falsches Label setzt\footnote{\zB aufgrund eines Schreibfehlers}. Dieses -Verhalten lässt sich mit den folgenden Befehlen realisieren. -\begin{beschreibung} - \Befehl{cmpdinit}{<comma separated list of label names>} - \Befehl[cmpdinita]{cmpdinit*}{<comma separated list of label names>} -\end{beschreibung} -Alle Verbindungen, die innerhalb dieses Befehls gesetzt werden, werden \emph{in -der verwendeten Reihenfolge} initialisiert. Verwendet man ein Label, das nicht -in der Liste enthalten ist, wird eine Warnung ausgegeben. - -\cmpdreset -\begin{beispiel} - \cmpdinit{A, B, C} \cmpd{B} \cmpd{A.a} \cmpd{C} \cmpd{D} -\end{beispiel} - -\begin{mdframed} - \small\ttfamily\noindent - {}*************************************************\\ - {}* chemnum warning: "cmpd-init"\\ - {}* \\ - {}* You used \verb=\cmpdinit= but didn't initiate compound "D"{} on line 1.\\ - {}************************************************* -\end{mdframed} - -Beachten Sie, dass Sie bei Labeln mit Sublabeln \emph{nur den Hauptnamen} -initialisieren können und sollten. Dadurch sind dann \emph{alle} Verbindungen mit -gleichem Hauptnamen initialisiert. - -\cmd[cmpdinita]{cmpdinit*} gibt die gleiche Warnung aus, allerdings werden die -Nummern noch nicht vergeben, sondern erst bei Verwendung im Text und in der im -Text verwendeten Reihenfolge. - -\cmpdreset -\begin{beispiel} - \cmpdinit*{X, Y, Z} \cmpd{Y} \cmpd{X.x} \cmpd{Z} \cmpd{W} -\end{beispiel} - -\begin{mdframed} - \small\ttfamily\noindent - {}*************************************************\\ - {}* chemnum warning: "cmpd-init"\\ - {}* \\ - {}* You used \verb=\cmpdinit= but didn't initiate compound "W"{} on line 1.\\ - {}************************************************* -\end{mdframed} - -Wenn Sie also eigene Label vergeben wollen oder müssen (siehe Seite~\pageref{ssec:own_labels}) -und die Label geschlossen initialisieren wollen, sollten Sie \cmd[cmpda]{cmpdinit*} -verwenden, da dort bei der Initialisierung \emph{keine} Label vergeben werden. - -Der Befehl kann mehrfach verwendet werden, mit oder ohne \verb=*=. Sinnvoll ist -aber wohl eine \emph{einmalige} Verwendung, vielleicht in der Dokumentenpräambel -nach dem \chemnum-Setup (siehe Abschnitt~\ref{sec:cmpdsetup}). - -\subsubsection{Sublabel} -Wenn Sie zusätzlich auch für jede Label-Sublabel-Kombination gewarnt werden wollen -oder die Reihenfolge im Voraus festlegen wollen, dann können Sie -\begin{beschreibung} - \Befehl{cmpdinit}[\key{init-sub}{true}]{<comma separated list of label names>} -\end{beschreibung} -verwenden. So werden Sie auch in diesen Fällen gewarnt. - -\cmpdreset -\begin{beispiel} - \cmpdinit[init-sub = true]{E.{e,f,g}} - \cmpd{E.e, E.h} -\end{beispiel} - -\begin{mdframed} - \small\ttfamily\noindent - {}*************************************************\\ - {}* chemnum warning: "cmpd-init-sub"\\ - {}* \\ - {}* You used \verb=\cmpdinit= and "{}init-sub = true"{} but didn't initiate sub-compound\\ - {}* "{}E.h"{} on line 1.\\ - {}************************************************* -\end{mdframed} - -\subsection{Fehler statt Warnung} -Wenn Sie lieber eine Fehler-Meldung anstelle einer Warnung mögen, können Sie das -erreichen, indem Sie \cmd{cmpdinit} folgendermaßen aufrufen: -\begin{beschreibung} - \Befehl{cmpdinit}[\key{init-strict}{true}]{<comma separated list ...>} -\end{beschreibung} -Die Verwendung \key{init-strict}{false} entspricht der Verwendung ohne optionalem -Argument. Die Option kann natürlich auch bei der Stern-Variante eingesetzt werden - -Durch \key{init-strict}{true} wird der \LaTeX-Lauf mit einer entsprechenden -Fehlermeldung abgebrochen, wenn man einen Label-Namen verwendet, der nicht -initialisiert wurde. - -Natürlich können Sie \cmd{cmpdinit} auch mit beiden Optionen aufrufen -\begin{beschreibung} - \Befehl{cmpdinit}[\key{init-strict}{true}, \key{init-sub}{true}]{<comma separated list ...>} -\end{beschreibung} -oder \cmd{cmpdsetup} verwenden, siehe Abschnitt~\ref{sec:cmpdsetup}. - -\subsection{Personalisierte Eingabe} -Wenn Sie andere Eingabezeichen für \key{sub-input-sep} (siehe Seite~\pageref{sssec:sub-input-sep}) -oder \key{sublist-input-sep} (siehe Seite \pageref{sssec:list-input-sep}) ausgewählt -haben, müssen Sie sie mit \key{sub-init}{true} ebenfalls verwenden. - -Die Änderung der Listen-Eingabe \key{list-input-sep} (siehe Seite~\pageref{sssec:list-input-sep}) -wirkt sich auf \cmd{cmpdinit} nicht aus. Wenn Sie die Eingabe dort ebenfalls -ändern wollen, verwenden Sie \key{init-input-sep}, siehe Seite~\pageref{sssec:init-input-sep}. - -\subsection{Warum initialisieren?} -Wie zu Beginn dieses Abschnitts erwähnt, ist die Initialisierung von Labeln nicht -nötig. Es gibt jedoch Gründe, warum man \cmd{cmpdinit} vielleicht trotzdem -verwenden möchte. -\begin{enumerate} - \item Der Einsatz von \cmd[cmpdinita]{cmpdinit*} ist eine Möglichkeit, den - Überblick darüber zu behalten, welche Label man verwendet hat. Man bekommt eine - Warnung/Fehlermeldung, wenn man ein bestehendes falsch geschrieben hat. Abhängig - davon, wieviele Labels man verwendet (oder verwenden muss) kann das aber viel - zusätzliche Arbeit bedeuten. - \item Der Einsatz von \cmd{cmpdinit} bewirkt erst einmal dasselbe wie - \cmd[cmpdinita]{cmpdinit*}, deklariert aber \emph{zusätzlich} die Label in der - vorgegebenen Reihenfolge. Damit wird die Verwendung von \cmd[cmpda]{cmpd*} - (Abschnitt~\ref{cmd:unsichtbares_label}) und \cmd[cmpdb]{cmpd+} - (Abschnitt~\ref{cmd:cmpd_plus}) überflüssig. Man hat damit direkte Kontrolle, - welche Verbindung welche Nummer erhält. -\end{enumerate} -\secidx*{Label initialisieren} - -\section{Zurücksetzen des Zählers}\label{sec:cmpdreset}\secidx{Zurücksetzen des Zählers} -Es ist möglich, mit folgendem Befehl -\begin{beschreibung} - \Befehl{cmpdreset}[<number>] -\end{beschreibung} -den Zähler wieder zurückzusetzen. Ohne Argument wird er auf \verb=1= gesetzt und -entspricht damit \cmd{cmpdreset}[1]. Dieser Befehl wirkt sich global aus, nicht -nur lokal innerhalb einer Gruppe -- im Gegensatz zu den meisten anderen -vorgestellten Befehlen. -\begin{beispiel} - \cmpdreset Die Verbindungen werden jetzt wieder von 1 gez\"ahlt: \cmpd{h, i, j} -\end{beispiel} - -\achtung{Sie sollten mit diesem Befehl sehr vorsichtig umgehen! In der Regel ist -es nicht zu empfehlen, den Zähler zurückzusetzen. Dadurch können ein und dieselbe -Nummer an verschiedene Verbindungen vergeben werden!} - -\begin{beispiel} - Gleiche Nummern: \cmpd{a}, \cmpd{h} -\end{beispiel} -\secidx*{Zurücksetzen des Zählers} - -\section{Besondere Verwendung}\secidx{besondere Verwendung} -\subsection{Abschnitts-Titel} -Die Verwendung von \cmd{cmpd} in einer Überschrift scheint auf den ersten Blick -kein Problem zu sein. Es gibt keine Fehler und der Output sieht wie erwartet aus: -\begin{beispiel}[code only] - \section{Compound \cmpd[cmpd-delim]{b}} - \ldots -\end{beispiel} -Wenn man allerdings \verb=\tableofcontents= verwendet -- was ziemlich wahrscheinlich -ist, wie ich vermute --, geschieht etwas unerwünschtes: da das Inhaltsverzeichnis am -Anfang des Dokuments geschrieben wird, wird das Label beim Erscheinen im -Inhaltsverzeichnis deklariert, anstatt an der Stelle im Text, an der es zuerst -erscheint. Es gibt zwei Möglichkeiten, das zu umgehen: -\begin{enumerate} - \item Sie deklarieren die Label in der Präambel mit \cmd{cmpdinit}{} (siehe - Seite~\pageref{sec:cmpdinit}). - \item Sie verwenden \cmd[cmpdb]{cmpd+}, um das Label zu setzen. Damit wird das - Label von der Datei \verb=\jobname.cmpd= ausgelesen (vorausgesetzt ihre - Hauptdatei heißt \verb=\jobname.tex=). Das bedeutet, dass \emph{mindestens zwei}, - unter Umständen mehr \LaTeX\ Durchläufe nötig sind, bis alle Labels richtig - gesetzt sind. -\end{enumerate} -Das gleiche gilt für jede andere Liste von beweglichen Argumenten, die \emph{vor} -dem Erscheinen des Labels im Text eingesetzt wird. - -Der Befehl\label{cmd:cmpd_plus} -\begin{beschreibung} - \Befehl[cmpdb]{cmpd+}\ma{<label name>} -\end{beschreibung} -liest den Labelnamen, der ausgegeben werden soll, aus der Datei \verb=\jobname.cmpd=. -Damit ist er sozusagen das Gegenteil von \cmd[cmpda]{cmpd*}, da das Label nicht -deklariert sondern nur referenziert und ausgegeben wird. Damit man also -\cmd[cmpdb]{cmpd+}{<label>} einsetzen kann, muss \verb=<label>= entweder mit -\cmd{cmpd}{<label>} oder \cmd[cmpda]{cmpd*}{<label>} (davor oder danach) deklariert -worden sein. \cmd[cmpdb]{cmpd+} ist nützlich, wenn ein Label in einem beweglichen -Argument wie in \verb=\section{}= eingesetzt werden soll. - -\achtung{Er wird nicht benötigt, wenn \cmd{cmpdinit} verwendet wird, siehe -Abschnitt~\ref{sec:cmpdinit} (S.\,\pageref{sec:cmpdinit}ff).} - -\begin{beispiel}[code only] - \subsubsection{Test-\"Uberschrift mit Verbindungslabel \cmpd+[cmpd-delim]{f.one}} - % mit hyperref: - \subsubsection{Test-\"Uberschrift mit Verbindungslabel \texorpdfstring{\cmpd+[cmpd-delim]{f.two}}{(7b)}} -\end{beispiel} - -\subsection{Gleitumgebungen}\cmpdinit*{float1,float2} -Die Verwendung von \cmd{cmpd} in Gleitumgebungen sollte kein Problem darstellen: -die Labels werden in der Reihenfolge deklariert, wie Sie im Code auftauchen, -eingeschlossen die Gleitumgebungen. Um auf der sicheren Seite zu sein, können Sie -natürlich dennoch \cmd[cmpdb]{cmpd+} verwenden. -\begin{beispiel}[code and float] - % preamble: - % \usepackage{chemscheme} - % \renewcommand*\schemename{Schema} - % document: - \cmpdreset\cmpd{float1, float2}. Und jetzt ein Schema: - \begin{scheme}[ht] - \centering - \caption{Dieses Label sollte eine 2 sein: \cmpd{float2}} - Wenn 2 = \cmpd{float2} wahr ist, ist alles ok. - \end{scheme} -\end{beispiel} - -Es funktioniert auch alles wie gewünscht, wenn die Gleitumgebung vor den aktuellen -Code rutscht, etwa mit der Option \oa{t}. - -\cmpdinit*{Alc,EtherBr,cpd} -\subsection{Schemata externer Programme}\label{ssec:cmpdref}\secidx{Schemata externer Programme} -Wenn Sie Ihre Schemata mit externen Programmen wie \zB \prog{ChemDraw} oder -\prog{Marvin\-Sketch} erstellen und dort ebenfalls \chemnum einsetzen wollen, -dann können Sie das mit -\begin{beschreibung} - \Befehl{cmpdref}[<tag>]\oa{<options>}\ma{<label name>} - \Befehl[cmpdrefa]{cmpdref+}[<tag>]\oa{<options>}\ma{<label name>} -\end{beschreibung} -tun. Dieser Befehl ist vom Befehl \verb=\schemeref= des Pakets \paket{chemscheme} -inspiriert und funktioniert letztlich gleich. Sie erstellen das Schema und -speichern es mit temporären Labeln als \verb=eps=-Datei. - -Wie bei \cmd{cmpd+} ruft die Plus-Variante lediglich ein Label ab, deklariert -es aber nicht. - -\achtung{Mit v0.5 hat sich die Reihenfolge der optionalen Argumente verändert!} -\begin{beispiel}[code and float] - \begin{scheme}[ht] - \centering - \includegraphics{scheme-tmp.ps} - \caption{Schema mit tempor\"aren Markern.} - \end{scheme} - \begin{scheme}[ht] - \centering - \cmpdref{Alc} % ersetzt TMP1 - \cmpdref{EtherBr} % ersetzt TMP2 - % \cmpdref{drittes} wuerde TMP3 ersetzen - \includegraphics{scheme-tmp.ps} - \caption{Schema mit automatisierten Labeln.} - \end{scheme} -\end{beispiel} -Sie nummerieren also im Schema die Substanzen mit \textsf{TMP1}, \textsf{TMP2} -\usw durch. Diese Marker werden dann durch die entsprechenden Label ersetzt. Dafür -verwendet \chemnum genau wie \paket{chemscheme} den Befehl \verb=\psfrag= des -\paket{psfrag}-Pakets. Damit er funktioniert, müssen Sie also entweder über -\prog{latex}, \prog{dvips}, \prog{ps2pdf} kompilieren, oder \zB das Paket -\paket{auto-pst-pdf} zusammen mit \hologo{pdfLaTeX} einsetzen. \hologo{XeLaTeX} -wird leider nicht funktionieren, \hologo{LuaLaTeX} voraussichtlich ebensowenig, -wurde aber vom Autor nicht getestet. - -In jedem Fall ist es wichtig, dass der Marker als \emph{Text} im \verb=eps= -gespeichert ist. - -Mit den Optionen, die in Abschnitt~\ref{sec:cmpdsetup} vorgestellt werden, können -Sie die Label hier auch personalisieren. -\begin{beispiel}[code and float] - \begin{scheme}[ht] - \centering - \cmpdsetup{ref-style=\color{green}} - \cmpdref{Alc} % ersetzt TMP1 - \cmpdref{EtherBr} % ersetzt TMP2 - \includegraphics{scheme-tmp.ps} - \caption{Schema mit automatisierten Labeln.} - \end{scheme} -\end{beispiel} - -Sie können auch beliebigen Text ersetzen. Dafür gibt es das zweite optionale -Argument. -\begin{beispiel}[code and float] - \begin{scheme}[ht] - \centering - \includegraphics{scheme-bla.ps} - \caption{Schema mit beliebigen Markern.} - \end{scheme} - \begin{scheme}[ht] - \centering - \cmpdref[blah]{Alc} - \cmpdref[blub]{EtherBr} - % \cmpdref{drittes} wuerde TMP1 ersetzen - \includegraphics{scheme-bla.ps} - \caption{Schema mit explizit gesetzten Labeln.} - \end{scheme} -\end{beispiel} - -Natürlich funktioniert das mit Sublabeln nach dem gewohnten Muster: -\begin{beispiel}[code and float] - \begin{scheme}[ht] - \centering - \cmpdref{cpd.red} - \cmpdref{cpd.ox} - \includegraphics{scheme-tmp.ps} - \caption{Schema mit automatisierten Labeln und Sublabeln.} - \end{scheme} -\end{beispiel} -\secidx*{Schemata externer Programme}\secidx*{besondere Verwendung}\cmpdreset[10] - -\section{Verwendung mit \textsf{hyperref}}\label{sec:hyperref}\secidx{Verwendung mit \textsf{hyperref}}[Verwendung mit hyperref] -\subsection{Grundprinzip} -Wenn Sie das Paket \paket{hyperref} eingebunden haben, können Sie die Label zu -klickbaren Links im \prog{pdf} machen. -\begin{beschreibung} - \Option{hyper-use}{\default{true}/false} -\end{beschreibung} -Wenn Sie diese Option (siehe Abschnitt~\ref{sec:cmpdsetup} für nähere Informationen) -auf \texttt{true} setzen, dann wird beim ersten Einsatz eines Labels danach ein -Ziel festgelegt und bei jedem weiteren ein Link zu diesem Ziel erzeugt. Das -funktioniert allerdings nur, solange das Label \emph{ohne} Liste oder Bereich von -Sublabeln gesetzt wird. Auch ein mit \cmd[cmpda]{cmpd*} gesetztes Label kann nicht -als Ziel markiert werden. - -\begin{beispiel} - \cmpdsetup{hyper-use} - Bei der ersten Verwendung wird das Ziel festgelegt: \cmpd{a.two,b,c,d,e,f}, Bei - der n\"achsten dann ein Link gesetzt: \cmpd{a.two,d,e}. - - Das funktioniert nur bei Labeln ohne Sublabel-Liste oder -Bereich: - \cmpd{a,f.{one,two},c}. Da \cmpd{a.two} und \cmpd{a} zwei unterschiedliche - Bedeutungen haben, haben sie auch unterschiedliche Linkziele. -\end{beispiel} - -\subsection{Gezielter Einsatz} -Der automatisierte Einsatz ist vielleicht nicht der, den man möchte. Vielleicht -reicht es, an ein oder zwei Stellen einen Verweis zu erzeugen. Das kann mit -folgenden Keys erfolgen. -\begin{beschreibung} - \Option{hyper-target}{<link name>} - \Option{hyper-link}{<link name>} -\end{beschreibung} -Mit \key{hyper-target} kann man ein Ziel festsetzen. \textbf{Achtung}: wenn Sie -diesen Key mit einer Liste einsetzen, dann erhält \emph{jedes} Label den gleichen -Linkzielnamen und \paket{hyperref} wird eine Warnung -\begin{mdframed}\ttfamily\small - destination with the same identifier (name\{<link name>\}) has been already - used, duplicate ignored -\end{mdframed} -ausgeben. - -Mit \key{hyper-link} kann man nun einen Link auf dieses Ziel erzeugen. -\textbf{Achtung}: wenn Sie diesen Key mit einer Liste einsetzen, wird \emph{jedes} -Label auf das gleiche Ziel verweisen. -\begin{beispiel} - Einen Link setzen \cmpd[hyper-link=mylink,cmpd-all]{f} und das entsprechende Ziel - dazu nicht vergessen \cmpd[hyper-target=mylink,cmpd-all]{f}. -\end{beispiel} - -Wenn Sie \key{hyper-link} einsetzen, ohne das entsprechende \key{hyper-target} -festgelegt zu haben, dann wird \paket{hyperref} eine Warnung -\begin{mdframed}\ttfamily\small - name\{<link name>\} has been referenced but does not exist, replaced by a - fixed one -\end{mdframed} -ausgeben. -\secidx*{Verwendung mit \textsf{hyperref}}[Verwendung mit hyperref] - -\section{Personalisieren}\label{sec:cmpdsetup} -\subsection{Das Prinzip}\label{ssec:prinzip} -Das Personalisieren geschieht mit einem Schlüssel-Wert-System. Einstellungen können -dabei entweder zentral über -\begin{beschreibung} - \Befehl{cmpdsetup}{key1 = value1, key2 = value2} -\end{beschreibung} -oder lokal direkt beim Befehl -\begin{beschreibung} - \Befehl{cmpd}[key1 = value1, key2 = value2]{<label name>} -\end{beschreibung} -vorgenommen werden. - -Wenn Sie Optionen ohne Wertzuweisung verwenden \cmd{cmpdsetup}{key1,key2}, werden -De\-faultwerte\label{opt:default} verwendet. Diese sind \emph{nicht} unbedingt leer -und stimmen auch \emph{nicht} unbedingt mit der Voreinstellung des Pakets überein. - -Die Optionen sind in verschiedene Klassen\label{key_classes} unterteilt, die auf -ihren Verwendungsbereich hindeuten. Sie folgen alle der Form \verb+<class>-key = <value>+: -\begin{itemize} - \item \code{cmpd}: Optionen, die damit beginnen, wirken sich auch das Label - insgesamt oder speziell auf das Hauptlabel aus. - \item \code{sub}, \code{sublist}, \code{subref}: Diese Optionen haben mit den - Sublabeln direkt zu tun. - \item \code{list}: Optionen, die die Ausgabe der Listen ändern. - \item \code{ref}: Optionen, die speziell mit \cmd{cmpdref} zu tun haben. - \item \code{hyper}: Optionen, die mit der Verwendung von \paket{hyperref} zu tun - haben. - \item \code{init}: Optionen, die mit der Initialisierung von Labeln zu tun haben. -\end{itemize} - -\subsection{Schriftstil}\label{ssec:schriftstil}\secidx{Schriftstil} -Um den Stil zu ändern, mit dem die Nummern geschrieben werden, verwenden Sie -folgende Optionen: -\begin{beschreibung} - \Option{cmpd-style}{<style>} - \option{cmpd-weight}{bold/normal} Default = \code{bold} -\end{beschreibung} -Da es nicht unüblich ist, Schemata serifenlos zu setzen, während der Text mit -Serifen gesetzt wird, ist es möglich, für \cmd{cmpdref} einen eigenen Stil festzulegen. -In der Voreinstellung werden mit \cmd{cmpdref} erzeugte Label mit \lstinline+\sffamily+ -gesetzt. -\begin{beispiel} - % preamble: - % \usepackage[normalem]{ulem} - % document: - \cmpd{a, b, f.two, k}\\ % default - \cmpd[cmpd-style = \uline]{a, b, f.two, k}\\ % unterstrichen - \cmpd{a, b, f.two, k}\\ % wieder default - \cmpdsetup{cmpd-style = \itshape\uline} - \cmpd{a, b, f.two, k}\\ % kursiv und unterstrichen - \cmpd[cmpd-weight=normal]{a, b, f.two, k} -\end{beispiel} -Dass die Schriftstärke separat eingestellt wird, hat seine Ursache bei den -griechischen Labeln (siehe Abschnitt~\ref{ssec:counter}). Abhängig von der -Paketoption muss die Schriftstärke dort unterschiedlich realisiert werden. -\secidx*{Schriftstil} - -\subsection{Eigene Labels}\label{ssec:own_labels}\secidx{Eigene Labels} -Mit der Option -\begin{beschreibung} - \Option{cmpd-label}{<label>} -\end{beschreibung} -kann man eigene Labels vergeben. - -\begin{beispiel} - Eigenes Label: \cmpd[cmpd-label = XYZ]{l}, wird bei einer Liste an \emph{alle - neuen} vergeben! \cmpd[cmpd-label = XYZ]{l, a, m} -\end{beispiel} -\secidx*{Eigene Labels} - -\subsection{Marker in Bildern}\secidx{Marker in Bildern}\label{ssec:marker_in_bildern} -Es gibt ein paar Optionen, die die Labels in externen Bildern betreffen, die mit -\cmd{cmpdref} platziert werden. -\begin{beschreibung} - \option{ref-marker}{<marker>} Ändert den Default-Marker, der ersetzt werden soll. - Default = \code{TMP} - \option{ref-pos}{\{<tex-pos>\}\{<ps-pos>\}} Default = \code{bb} - \option{ref-style}{<style>} Ändert das Format des Labels in externen Schemata. - Default = \verb=\sffamily= -\end{beschreibung} -Mit der Option \key{ref-pos} können Sie die Art der Platzierung ändern, die -\cmd{cmpdref} verwendet. Der Befehl \cmd{psfrag}, der intern verwendet wird, hat -zwei Optionen dafür. Die erste bestimmt, wie der \TeX-Ersatz platziert wird, die -zweite, wie der Ersatz in die Box gesetzt wird, die durch den Marker enstanden -ist. Zu Details lesen Sie bitte die Dokumentation des \paket{psfrag}-Pakets. -\secidx*{Marker in Bildern} - -\subsection{Zähler}\label{ssec:counter}\secidx{Zähler} -Wenn Sie mögen, können Sie auch das Zählerformat \cmpd{a.one} ändern. -\begin{beschreibung} - \option{cmpd-counter}{arabic/alph/Alph/greek/Greek/roman/Roman/Symbol} Default - = \code{arabic} - \option{sub-counter}{arabic/alph/Alph/greek/Greek/roman/Roman/Symbol} Default - = \code{alph} -\end{beschreibung} - -Bitte beachten Sie: ein Ändern des Zählerformats wirkt sich nur auf \emph{noch -nicht erzeugte} Label aus! -\begin{beispiel} - \cmpdsetup{cmpd-counter = Alph, sub-counter = arabic} - \cmpd{a, b, f.two, k}\\ % keine Wirkung bei bereits erzeugten Labeln! - \cmpd{n.one,n.two,o.one}\\ - \cmpd{f.three,f.four}\\ % Vorsicht: Hauptlabel wurde bereits erzeugt und wird nicht geaendert! - \cmpd[cmpd-counter,sub-counter = greek]{p.one,p.two} -\end{beispiel} -\secidx*{Zähler} - -\subsection{Begrenzer}\secidx{Begrenzer} -Sie können sowohl den einzelnen Nummern wie auch eine ganze Liste mit Begrenzern -versehen. Dafür gibt es die Optionen: -\begin{beschreibung} - \option{cmpd-delim}{<odelim><cdelim>} Benötigen \emph{zwei} Token als Wert! - \option{list-delim}{<odelim><cdelim>} Benötigen \emph{zwei} Token als Wert! -\end{beschreibung} -\begin{beispiel} - \cmpd{a, b, f.two, k}\\ % default - \cmpd[cmpd-delim = ()]{a, b, f.two, k}\\ % eingeklammert - \cmpd{a, b, f.two, k}\\ % wieder default - \cmpdsetup{cmpd-delim = ()} - \cmpd{a, b, f.two, k} % eingeklammert -\end{beispiel} -Wenn Sie \cmd{cmpd}[\key{cmpd-delim}]{<label>} schreiben, also keinen Wert -spezifizieren, werden \verb=()= verwendet. Dasselbe gilt für \key{list-delim}. -Beachten Sie, dass die Listenbegrenzer erst ab \emph{zwei} Labeln verwendet werden. -\begin{beispiel} - \cmpd{a, b, f.two, k}\\ % default - \cmpd[list-delim = {[}{]}]{a, b, f.two, k}\\ % eingeklammert - \cmpd{a, b, f.two, k}\\ % wieder default - \cmpdsetup{list-delim = []} - \cmpd{a, b, f.two, k}\\ % eingeklammert - \cmpd{a} % KEINE Liste! -\end{beispiel} -Wenn Sie generell die Label eingeklammert verwenden, aber ein einzelnes einmal -ohne Klammern verwenden wollen, haben Sie mehrere Möglichkeiten: -\begin{beispiel} - \cmpdsetup{cmpd-delim} - Normal \cmpd{b}, \cmpd{c}, \cmpd{d.one}, aber manchmal so \cmpd[cmpd-delim = ]{e} - oder so \cmpd-{e}. -\end{beispiel} -Mit -\begin{beschreibung}\label{cmd:ohne_begrenzer} - \Befehl[cmpdc]{cmpd-}\ma{<label name>} - \Befehl[cmpdrefc]{cmpdref-}\ma{<label name>} -\end{beschreibung} -kann man die Klammern eines Labels schnell entfernen (nicht jedoch die der Liste). -\begin{beispiel} - \cmpd{a, b, f.two, k}\\ % default - \cmpdsetup{cmpd-delim = (), list-delim = []} - \cmpd{a, b, f.two, k}\\ % doppelt eingeklammert - \cmpd-{a, b, f.two, k} % einfach eingeklammert -\end{beispiel} - -Durch leere Argumente, \cmd{cmpdsetup}{\key{cmpd-delim}{ }} und -\cmd{cmpdsetup}{\key{list-delim}{ }}, können Sie die Voreinstellung wieder herstellen. -\secidx*{Begrenzer} - -\subsection{Suffix und Präfix}\secidx{Suffix und Präfix} -Falls Sie wollen, können sie sowohl einzelnen Labeln als auch den Listen Prä- -und Suffixe geben. -\begin{beschreibung} - \Option{cmpd-prefix}{<prefix>} - \Option{cmpd-suffix}{<prefix>} - \Option{list-prefix}{<prefix>} - \Option{list-suffix}{<prefix>} -\end{beschreibung} -Wie bei den Begrenzern gilt: Listen-Attribute werden erst bei einer Liste -- also -zwei oder mehr Labeln -- verwendet. - -Beispiel für die Label-Attribute: -\begin{beispiel} - \cmpd{a, b, f.two, k}\\ % default - \cmpd[cmpd-prefix = Nr.]{a, b, f.two, k}\\ - \cmpdsetup{cmpd-prefix = \(\rightarrow\)} - \cmpd{a, b, f.two, k}\\ - \cmpd{a} % KEINE Liste! -\end{beispiel} -Beispiel für die Listen-Attribute: -\begin{beispiel} - \cmpd{a, b, f.two, k}\\ % default - \cmpd[list-prefix = Liste:]{a, b, f.two, k}\\ - \cmpdsetup{list-prefix = Sammlung:} - \cmpd{a, b, f.two, k}\\ - \cmpd{a} % KEINE Liste! -\end{beispiel} - -Zwischen Präfix, Label und Suffix ist per Default ein Leerraum: -\begin{beispiel} - \cmpd[cmpd-suffix=Sx,cmpd-prefix=Px]{k} -\end{beispiel} -Dieser kann durch -\begin{beschreibung} - \Option{cmpd-space}{<space>} -\end{beschreibung} -geändert werden. -\begin{beispiel} - \cmpd[cmpd-suffix=Sx,cmpd-prefix=Px,cmpd-space={}]{k} -\end{beispiel} -\secidx*{Suffix und Präfix} - -\subsection{Trennzeichen}\label{ssec:trenner}\secidx{Trennzeichen} -\subsubsection{Bei Labeln -- Eingabe}\label{sssec:sub-input-sep}\index{Trennzeichen!Label!Input} -Als Voreinstellung verwendet \chemnum den Punkt \code{.} als Zeichen, um -Hauptlabelnamen von Sublabelnamen zu unterscheiden. Sie können das Symbol nach -Belieben ändern. Die Zeichen \verb=%=, \verb=,= und \verb=#= können Sie nicht -verwenden und \verb=@= sollten Sie nicht verwenden. Außerdem sollten Sie darauf -achten, für die anderen Trennsymbole (siehe folgende Abschnitte) nicht die -gleichen Zeichen zu verwenden. -\begin{beschreibung} - \option{sub-input-sep}{<separator>} Default = \code{.} -\end{beschreibung} -\begin{beispiel} - \cmpdsetup{sub-input-sep = !}% - \cmpd{f!one, g!two}\\ - \cmpd[sub-input-sep= +]{f+one, g+two}\\ - \cmpd[sub-input-sep= ~]{f~one, g~two}\\ - \cmpd[sub-input-sep= &]{f&one, g&two}\\ - \cmpd[sub-input-sep= *]{f*one, g*two} -\end{beispiel} -Sie sollten -- nicht nur aus Gründen der Konsistenz -- nur \emph{einmal} am Anfang -ihres Dokuments entscheiden, welches Symbol Sie verwenden. Und zwar \emph{bevor} -Sie \verb=\tableofcontents= einsetzen. Am besten in der Präambel. Ansonsten kann -\verb=\tableofcontents= nicht wissen, welchen Symbol Sie verwenden und Label im -Inhaltsverzeichnis können falsch dargestellt werden. - -\subsubsection{Bei Labeln -- Ausgabe}\index{Trennzeichen!Label!Output} -Haben Sie Label mit Sublabeln, können Sie dort auch ein Trenn-Symbol verwenden. -Das erscheint dann zwischen Hauptlabel und Sublabel. -\begin{beschreibung} - \Option{sub-output-sep}{<separator>} -\end{beschreibung} -\begin{beispiel} - \cmpd{a, b, f.two, f.three, k}\\ % default - \cmpd[sub-output-sep = -]{a, b, f.two, f.three, k}\\ - \cmpdsetup{sub-output-sep = $\cdot$} - \cmpd{a, b, f.two, f.three, k}\\ - \cmpd[sub-output-sep = :]{a, b, f.two, f.three, k} -\end{beispiel} - -\subsubsection{Bei Sublabeln -- Eingabe}\label{sssec:range-input-sep}\index{Trennzeichen!Sublabel!Input} -Für die Eingabe eines Bereiches von Sublabeln verwendet \chemnum in der Voreinstellung -zwei Punkte \code{..}. Sie können aber eine beliebige andere Eingabe wählen. Die -Zeichen \verb=%=, \verb=,= und \verb=#= können Sie nicht verwenden und -\verb=@= sollten Sie nicht verwenden. Außerdem sollten Sie darauf achten, für -die anderen Trennsymbole nicht die gleichen Zeichen zu verwenden. -\begin{beschreibung} - \option{subrange-input-sep}{<separator>} Default = \code{..} -\end{beschreibung} -\begin{beispiel} - \cmpd[subrange-input-sep=:]{q.{one:four}}\\ - \cmpdsetup{subrange-input-sep=--} - \cmpd{q.{one--four}} -\end{beispiel} - -\subsubsection{Bei Sublabeln -- Ausgabe}\index{Trennzeichen!Sublabel!Output} -Vielleicht gefällt Ihnen die Ausgabe \cmpd[cmpd-all]{q} nicht und Sie wollen den -Bereich anders darstellen? Das geht mit dieser Option: -\begin{beschreibung} - \option{subrange-output-sep}{<separator>} Default = \verb|--| -\end{beschreibung} -\begin{beispiel} - \cmpd[subrange-output-sep={ {\normalfont bis} }]{q.{one..four}}\\ - \cmpdsetup{subrange-output-sep=-} - \cmpd{q.{one..four}} -\end{beispiel} - -\subsubsection{Bei Listen -- Eingabe}\label{sssec:list-input-sep}\index{Trennzeichen!Listen!Input} -Wenn Sie mögen, können Sie das Trennsymbol der Listen-Eingabe ändern. Per Default -wird hier das Komma \code{,} verwendet. Sie können aber eine beliebige andere -Eingabe wählen. Die Zeichen \verb=%=, \verb=,= und \verb=#= können Sie nicht -verwenden und \verb=@= sollten Sie nicht verwenden. Außerdem sollten Sie darauf -achten, für die anderen Trennsymbole nicht die gleichen Zeichen zu verwenden. -\begin{beschreibung} - \option{list-input-sep}{<separator>} Default = \code{,} - \option{sub-input-sep}{<separator>} Default = \code{,} -\end{beschreibung} -\begin{beispiel} - \cmpd{a, b, f.two, k}\\ % default - \cmpd[list-input-sep = +]{a + b + f.two + k}\\ - \cmpd{a, b, f.two, k}\\ - \cmpdsetup{list-input-sep = ;} - \cmpd{a; b; f.two; k} -\end{beispiel} -Das ermöglicht Ihnen \zB, IUPAC-Namen als Label-Namen zu verwenden\footnote{Vielen -Dank an Christina Lüdigk, die dieses Feature in gewisser Weise vorgeschlagen hat.}. -\begin{beispiel} - \cmpdsetup{list-input-sep=;} - \cmpd{1,3-dichlorocyclohexanol} -\end{beispiel} - -\subsubsection{Bei Listen -- Ausgabe}\label{sssec:list-output-sep}\index{Trennzeichen!Listen!Output} -Auch bei Listen lässt sich ein Trennsymbol festlegen, das bestimmt, wie einzelne -Label voneinander getrennt werden. Per Default ist das das Komma. -\begin{beschreibung} - \option{list-output-sep}{<separator>} Default = \code{,} - \option{sub-output-sep}{<separator>} Default = \code{,} -\end{beschreibung} -\begin{beispiel} - \cmpd{a, b, f.two, k}\\ % default - \cmpd[list-output-sep = ]{a, b, f.two, k}\\ - \cmpd{a, b, f.two, k}\\ - \cmpdsetup{list-output-sep = ;} - \cmpd{a, b, f.two, k} -\end{beispiel} - -\subsubsection{Bei Listen -- letzter Trenner}\label{sssec:last-sep}\index{Trennzeichen!Listen!letzter Trenner} -Der letzte Trenner bei Listen, derjenige zwischen dem vorletzten und letzten -aufgelisteten Label, ist ein besonderer Fall. Hierfür gibt es zwei Optionen, mit -dem er angepasst werden kann. -\begin{beschreibung} - \Option{list-last-sep}{<separator>} - \option{list-lang}{US/GB/DE/FR/ES/IT} Default = \code{US} -\end{beschreibung} -\begin{beispiel} - \cmpd[list-lang = US]{a, b, f.two, k} \cmpd[list-lang = US]{a, b}\\ - \cmpd[list-lang = GB]{a, b, f.two, k} \cmpd[list-lang = GB]{a, b}\\ - \cmpd[list-lang = DE]{a, b, f.two, k} \cmpd[list-lang = DE]{a, b}\\ - \cmpd[list-lang = FR]{a, b, f.two, k} \cmpd[list-lang = FR]{a, b}\\ - \cmpd[list-lang = ES]{a, b, f.two, k} \cmpd[list-lang = ES]{a, b}\\ - \cmpd[list-lang = IT]{a, b, f.two, k} \cmpd[list-lang = IT]{a, b} -\end{beispiel} -Wie Sie sehen, verwendet die Spracheinstellung \verb=US= per Default das Harvard-Komma, -alle anderen Sprachen verwenden es nicht. Mehr zur Sprach-Unterstützung und zum -Harvard-Komma finden Sie in Abschnitt~\ref{sec:language_support}. - -Sie können den letzten Trenner mit \key{list-last-sep} auch individuell festlegen. -\begin{beispiel} - \cmpdsetup{list-lang = DE}% - \cmpd[list-last-sep = {und auch}]{a, b, f.two, k}\\ - \cmpd[list-last-sep = ]{a, b, f.two, k}\\ - \cmpd[list-last-sep = sowie]{a, b, f.two, k}\\ - \cmpd[list-last-sep = empty]{a, b, f.two, k} -\end{beispiel} - -Eine spezielle Option ist \key{list-last-sep}{empty}. Wird er verwendet, wird -überall der Trenner eingesetzt, der mit \key{list-output-sep} festgelegt wurde. -\begin{beispiel} - \cmpdsetup{list-last-sep = empty}% - \cmpd{a, b, f.two, k}\\ - \cmpd[list-output-sep = ;]{a, b, f.two, k}\\ - \cmpd[list-output-sep = {\ und}]{a, b, f.two, k} -\end{beispiel} - -\subsubsection{Bei \code{\textbackslash\textcolor{code}{cmpdinit}} -- Eingabe}\label{sssec:init-input-sep}\index{Trennzeichen!cmpdinit@\textcolor{code}{\code{\textbackslash cmpdinit}}} -Wenn Sie mögen, können Sie das Trennsymbol der Listen-Eingabe ändern. Per Default -wird hier das Komma \code{,} verwendet. Sie können aber eine beliebige andere -Eingabe wählen. Die Zeichen \verb=%=, \verb=,= und \verb=#= können Sie nicht -verwenden und \verb=@= sollten Sie nicht verwenden. -\begin{beschreibung} - \option{init-input-sep}{<separator>} Default = \code{,} -\end{beschreibung} - -\subsubsection{Ein Beispiel}\label{sssec:input-sep-bsp} -Im folgenden sehen Sie ein kleines Beispiel, wie eine personalisierte Variante -der Trennzeichen aussehen könnte. -\begin{beispiel} - \cmpdsetup{ - sub-input-sep = ! , - subrange-input-sep = : , - sublist-input-sep = / , - list-input-sep = + - } - \cmpd{a + f ! one + q ! one / three : five} -\end{beispiel} -\secidx*{Trennzeichen} - -\section{Sprachunterstützung}\label{sec:language_support}\secidx{Sprachunterstützung} -\subsection{Zusammenarbeit mit \textsf{babel}} -\chemnum unterstützt die Sprachauswahl durch das \paket{babel}-Paket für eine -Reihe von Sprachen. Dies geschieht mit Hilfe des \paket*{translations}\footnote{% -\paket*{translations} ist Teil des \paket*{exsheets}-Bundles.} Pakets. -\begin{beispiel} - \selectlanguage{ngerman}DE: \cmpd{r,s,t} \selectlanguage{german}\cmpd{r,s,t}\\ - \selectlanguage{naustrian}AU: \cmpd{r,s,t} \selectlanguage{austrian}\cmpd{r,s,t}\\ - \selectlanguage{english}EN: \cmpd{r,s,t}\\ - \selectlanguage{british}GB: \cmpd{r,s,t}\\ - \selectlanguage{american}US: \cmpd{r,s,t}\\ - \selectlanguage{canadian}CDN-EN: \cmpd{r,s,t}\\ - \selectlanguage{canadien}CDN-FR: \cmpd{r,s,t}\\ - \selectlanguage{french}FR: \cmpd{r,s,t}\\ - \selectlanguage{spanish}ES: \cmpd{r,s,t}\\ - \selectlanguage{italian}IT: \cmpd{r,s,t} -\end{beispiel} -Bei weitem nicht alle Sprachen werden unterstützt, schon allein aus Machbarkeitsgründen. -Falls Ihnen eine Sprache fehlen sollte, senden Sie mir bitte eine -E-Mail\footnote{\href{mailto:contact@mychemistry.eu}{contact@mychemistry.eu}} mit -der dazugehörigen \paket{babel} Option und der richtigen Übersetzung, und ich -werde sie gerne hinzufügen. - -\subsection{Harvard-Komma}\label{ssec:harvard-comma}\secidx{Harvard-Komma} -Im US-Amerikanischen ist die Verwendung des sogenannten Harvard- oder Oxford-Kommas -weit verbreitet, im Britischen und in anderen europäischen Sprachen ist sie eher -unüblich. -\begin{zitat}[\href{http://en.wikipedia.org/wiki/Serial_comma}{Wikipedia}, 2011/11/07] - The serial comma (also known as the Oxford comma or Harvard comma, and sometimes - referred to as the series comma) is the comma used immediately before a coordinating - conjunction (usually and or or, and sometimes nor) preceding the final item in - a list of three or more items. For example, a list of three countries can be - punctuated as either ``Portugal, Spain, and France'' (with the serial comma) or - as ``Portugal, Spain and France'' (without the serial comma). - - Opinions vary among writers and editors on the usage or avoidance of the serial - comma. In American English, the serial comma is standard usage in non-journalistic - writing that follows the \name{Chicago Manual of Style}. Journalists, however, - usually follow the AP Stylebook, which advises against it. It is used less often - in British English, where it is standard usage to leave it out, with some notable - exceptions such as \name{Fowler's Modern English Usage}. In many languages (e.g., - French, German, Italian, Polish, Spanish), the serial comma is not the norm and - may even go against punctuation rules. It may be recommended in many cases, however, - to avoid ambiguity or to aid prosody. -\end{zitat} -\chemnum verwendet das Harvard-Komma bei der Verwendung von American English, nicht -aber bei anderen Sprachen. Sie haben jedoch die Möglichkeit, das Harvard-Komma mit -der Option -\begin{beschreibung} - \Option{list-serial-comma}{\default{true}/false} -\end{beschreibung} -nach Belieben zu (De-)Aktivieren. -\begin{beispiel} - \selectlanguage{ngerman}DE: \cmpd[list-serial-comma]{r,s,t} vs. \cmpd{r,s,t}\\ - \selectlanguage{american}US: \cmpd[list-serial-comma=false]{r,s,t} vs. \cmpd{r,s,t} -\end{beispiel} -Wenn Sie die Spracheinstellung manuell vornehmen, beachten Sie, dass dabei auf -die Voreinstellung der Sprache zurückgesetzt wird. Daher sollte \key{list-serial-comma} -\emph{nach} \key{list-lang} verwendet werden. -\begin{beispiel} - falsch: \cmpdsetup{list-serial-comma=false, list-lang=US}\cmpd{r,s,t}\\ - richtig: \cmpdsetup{list-lang=US, list-serial-comma=false}\cmpd{r,s,t} -\end{beispiel} -\secidx*{Harvard-Komma}\secidx*{Sprachunterstützung} - -\section{Überblick} -\subsection{Optionen}\label{ssec:keys_uebersicht} -Im folgenden sind alle verfügbaren Optionen aufgelistet. -\begin{center} - \label{tab:keys} - \begin{longtabu*}{>{\ttfamily\color{key}}l>{\ttfamily}l>{\ttfamily}l>{\ttfamily}l}\toprule - \normalfont\bfseries\normalcolor Option & - \normalfont\bfseries Leerwert & - \normalfont\bfseries Voreinstellung & - \normalfont\bfseries Typ \\\midrule - cmpd-style & & & macro \\ - cmpd-weight & bold & bold & choice \\ - cmpd-label & & & literal \\ - cmpd-delim\color{black}$^\mathrm{a}$ & () & & literal \\ - cmpd-odelim & & & literal \\ - cmpd-cdelim & & & literal \\ - cmpd-prefix & & & literal \\ - cmpd-suffix & & & literal \\ - cmpd-space & \verb=\penalty\@m\ = & \verb=\penalty\@m\ = & literal \\ - cmpd-counter & arabic & arabic & choice \\ - cmpd-all & true & false & boolean \\\midrule - sub-only & true & false & boolean \\ - sub-counter & alph & alph & choice \\ - sub-output-sep & & , & literal \\ - sub-input-sep & . & . & literal \\ - sublist-output-sep & , & , & literal \\ - sublist-input-sep & , & , & literal \\ - subrange-output-sep & -- & -- & literal \\ - subrange-input-sep & .. & .. & literal \\\midrule - list-delim\color{black}$^\mathrm{a}$ & () & & literal \\ - list-odelim & & & literal \\ - list-cdelim & & & literal \\ - list-prefix & & & literal \\ - list-suffix & & & literal \\ - list-input-sep & , & , & literal \\ - list-output-sep & , & , & literal \\ - list-lang & US & US$^\mathrm{b}$ & choice \\ - list-last-sep & and$^\mathrm{c}$ & & literal \\ - list-serial-comma & true & true$^\mathrm{c}$ & boolean \\\midrule - ref-tag & TMP & TMP & literal \\ - ref-style & & \verb=\sffamily= & macro \\ - ref-pos\color{black}$^\mathrm{a}$ & bb & bb & literal \\\midrule - init-strict & true & false & boolean \\ - init-sub & true & false & boolean \\ - init-input-sep & , & , & literal \\\midrule - hyper-use & true & false & boolean \\ - hyper-target & & & literal \\ - hyper-link & & & literal \\\bottomrule - \end{longtabu*} - \setlength\extrarowheight{-1pt} - \begin{tabular}{>{\footnotesize}r>{\footnotesize\raggedright}p{.7\linewidth}} - a & Benötigt \emph{zwei} Token als Wert. \tabularnewline - b & Hängt von der Verwendung von \paket*{babel} ab. \tabularnewline - c & Hängt vom Wert von \key{list-lang} und der Verwendung von \paket*{babel} ab. - \end{tabular} -\end{center} - -\subsection{Befehle} -Im folgenden werden alle von \chemnum definierten Befehle und deren Varianten -aufgelistet. -\begin{center} - \label{tab:commands} - \begin{longtabu*} to \linewidth {X[l]X[p]}\toprule - \bfseries Befehl & \bfseries Beschreibung \tabularnewline\midrule - \cmd*{cmpd}[<keyval>]{<labels>} & Hauptbefehl, erzeugt und - schreibt Label oder Liste von Labeln, siehe Seite \pageref{sec:nummerieren}ff. \tabularnewline - \cmd*[cmpda]{cmpd*}{<labels>} & unsichtbar, erzeugt Label, - siehe Seite \pageref{cmd:unsichtbares_label} \tabularnewline - \cmd*[cmpdc]{cmpd-}[<keyval>]{<labels>} & ohne Begrenzer, siehe - Seite \pageref{cmd:ohne_begrenzer} \tabularnewline - \cmd*[cmpdd]{cmpd+-}[<keyval>]{<labels>} & Label wird aus Hilfsdatei gelesen, - siehe Seite \pageref{cmd:cmpd_plus} \tabularnewline\midrule - \cmd*{cmpdinit}[<keyval]{<labels>} & Label initialisieren und erzeugen, - siehe Seite \pageref{sec:cmpdinit}f. \tabularnewline - \cmd*[cmpdinita]{cmpdinit*}[<keyval]{<labels>} & Label initialisieren, siehe - Seite \pageref{sec:cmpdinit}f. \tabularnewline\midrule - \cmd*{cmpdref}[<keyval>][<marker>]{} & temporäre Label in \code{eps}-Dateien - durch Label ersetzen, siehe Seite \pageref{ssec:cmpdref} \tabularnewline - \cmd*[cmpdrefc]{cmpdref-}[<keyval>][<marker>]{} & temporäre Label in \code{eps}-Dateien - durch Label ohne Begrenzer ersetzen, siehe Seite \pageref{cmd:ohne_begrenzer} \tabularnewline\midrule - \cmd*{cmpdreset}[<num>] & Zähler zurücksetzen, siehe - Seite \pageref{sec:cmpdreset} \tabularnewline\midrule - \cmd*{cmpdsetup}{<keyval>} & \chemnum einstellen, siehe - Seite \pageref{sec:cmpdsetup}ff. \tabularnewline\bottomrule - \end{longtabu*}% -\end{center} - -\appendix -\addsec{Dank} -Ich möchte Joseph \name{Wright} und Russell \name{Hewitt} danken, die mir wertvolle -Vorschläge und Feedback gaben, um \chemnum zu verbessern. - -Vielen Dank außerdem an Jonas \name{Rivetti}, der die italienische Übersetzung -beigesteuert hat. - -\printindex - -\end{document}
\ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/chemnum/chemnum_en.pdf b/Master/texmf-dist/doc/latex/chemnum/chemnum_en.pdf Binary files differindex 37d0d67b99e..8333d6d2540 100644 --- a/Master/texmf-dist/doc/latex/chemnum/chemnum_en.pdf +++ b/Master/texmf-dist/doc/latex/chemnum/chemnum_en.pdf diff --git a/Master/texmf-dist/doc/latex/chemnum/chemnum_en.tex b/Master/texmf-dist/doc/latex/chemnum/chemnum_en.tex index f9febf60146..8d9cc7b8b24 100644 --- a/Master/texmf-dist/doc/latex/chemnum/chemnum_en.tex +++ b/Master/texmf-dist/doc/latex/chemnum/chemnum_en.tex @@ -1,7 +1,6 @@ % arara: pdflatex: { shell: on } -% arara: makeindex: { sort: true, style: chemnum_en.ist } -% arara: pdflatex: { shell: on } % arara: pdflatex: { shell: on } +% !arara: pdflatex: { shell: on } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % - chemnum - chemnum_en.tex % - a comprehensive approach for the numbering of chemical compounds @@ -40,12 +39,20 @@ \RequirePackage[ngerman,german,naustrian,austrian,british,american,canadian,frenchb, canadien,spanish,italian,english]{babel} \RequirePackage[textgreek=artemisia]{chemnum} +\PassOptionsToPackage{supstfm=libertinesups}{superiors} \documentclass[DIV11,toc=index]{cnpkgdoc} \docsetup{ pkg = chemnum, code-box = {skipabove=1ex,skipbelow=1ex} } +\cnpkgusecolorscheme{friendly} +\renewcommand*\othersectionlevelsformat[3]{% + \textcolor{main}{#3\autodot}\enskip} +\renewcommand*\partformat{% + \textcolor{main}{\partname~\thepart\autodot}} +\usepackage{libertinehologopatch} \usepackage{fnpct} + \addcmds{ @m,arrow,bf, ch,chemfig,chemname,cmpd,cmpdinit,cmpdref,cmpdreset,cmpdsetup, @@ -60,22 +67,26 @@ uline } -\usepackage{textcomp,longtable,tabu,booktabs,chemscheme,hologo} +\usepackage{textcomp,longtable,tabu,booktabs,chemscheme} + \usepackage[iupac=strict]{chemmacros} \chemsetup[chemformula]{format=\libertineLF} \usepackage{chemfig} \usepackage[runs=2]{auto-pst-pdf} +\usepackage{imakeidx} +\indexsetup{noclearpage,othercode=\footnotesize} +\makeindex[columns=3,intoc,options={-sl \jobname.ist}] \usepackage{filecontents} \begin{filecontents*}{\jobname.ist} - preamble "\\begin{theindex}\n Section headings are typeset \\textbf{bold}, packages \\textsf{sans serif}, commands \\textcolor{code}{brown}, and options \\textcolor{key}{green}.\\newline\n\n" heading_prefix "{\\bfseries " heading_suffix "\\hfil}\\nopagebreak\n" headings_flag 1 - delim_0 "\\dotfill " - delim_1 "\\dotfill " - delim_2 "\\dotfill " - delim_r "--" + delim_0 "\\dotfill\\hyperpage{" + delim_1 "\\dotfill\\hyperpage{" + delim_2 "\\dotfill\\hyperpage{" + delim_r "}\\textendash\\hyperpage{" + delim_t "}" suffix_2p "\\nohyperpage{\\,f.}" suffix_3p "\\nohyperpage{\\,ff.}" \end{filecontents*} @@ -85,7 +96,13 @@ \let\CNversion\cnpkgdocpkgversion \let\CNdate\cnpkgdocpkgdate -\cmpdinit*{a,aa,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,benzene,r,s,t,{1,3-dichlorocyclohexanole}} +\cmpdinit*{ + a,aa, + b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q, + benzene, + r,s,t, + {1,3-dichlorocyclohexanole} +} \TitlePicture{% \selectlanguage{english} @@ -97,11 +114,23 @@ \begin{scheme}[h] \centering\small \schemestart - \chemfig{?(-[:-170]HO)-[:-50](-[:170]HO)-[:10](-[:-55,0.7]OH)-[:-10](-[6,0.8]OH)-[:130]O-[:-170]?(-[:150,0.7]-[2,0.7]OH)} + \chemfig{ + ?(-[:-170]HO) + -[:-50](-[:170]HO) + -[:10](-[:-55,0.7]OH) + -[:-10](-[6,0.8]OH) + -[:130]O-[:-170]?(-[:150,0.7]-[2,0.7]OH) + } \arrow(alpha--chain){<=>} \chemfig{[2]OH-[3]-!x-!x-!y-!x-=[1]O} \arrow(--beta){<=>} - \chemfig{?(-[:-170]HO)-[:-50](-[:170]HO)-[:10](-[:-55,0.7]OH)-[:-10](-[:10]OH)(-[6,,,,draw=none]\vphantom{OH})-[:130]O-[:-170]?(-[:150,0.7]-[2,0.7]OH)} + \chemfig{ + ?(-[:-170]HO) + -[:-50](-[:170]HO) + -[:10](-[:-55,0.7]OH) + -[:-10](-[:10]OH)(-[6,,,,draw=none]\vphantom{OH}) + -[:130]O-[:-170]?(-[:150,0.7]-[2,0.7]OH) + } \arrow(@chain--chainlabel){0}[-90,.2] \normalsize\cmpd[cmpd-delim]{glucose.chain} \arrow(@chainlabel--){0}[,2.5] \normalsize\cmpd[cmpd-delim]{glucose.beta} \arrow(@chainlabel--){0}[180,2.3] \normalsize\cmpd[cmpd-delim]{glucose.alpha} @@ -111,30 +140,53 @@ open-chain form \cmpd[cmpd-delim]{glucose.chain}.} \end{scheme}} -\makeindex +\newcommand*\Default[1]{% + \hfill\llap{% + \ifblank{#1} + {(initially~empty)} + {Default:~\code{#1}}% + }\newline +} + +\usepackage{marginnote} +\makeatletter +\providecommand*\sinceversion[1]{% + \@bsphack + \marginnote{% + \footnotesize\sffamily\RaggedRight + \textcolor{black!75}{Introduced in version~#1}}% + \@esphack} +\providecommand*\changedversion[1]{% + \@bsphack + \marginnote{% + \footnotesize\sffamily\RaggedRight + \textcolor{black!75}{Changed in version~#1}}% + \@esphack} + \begin{document} \selectlanguage{english}\cmpdreset \section{A very short readme} -\chemnum \CNversion\ underlies the \LaTeX{} Project Public License Version~1.3 or -later. (\url{http://www.latex-project.org/lppl.txt}) +\chemnum \CNversion\ underlies the \LaTeX{} Project Public License Version~1.3 +or later. (\url{http://www.latex-project.org/lppl.txt}) \chemnum internally loads the packages \paket*{expl3} and \paket{xparse}. -\paket{xparse} is part of the \paket{l3packages} bundle, \paket*{expl3} is part -of the \paket{l3kernel} bundle. This means, \chemnum needs \LaTeX3 Support. +\paket{xparse} is part of the \paket{l3packages} bundle, \paket*{expl3} is +part of the \paket{l3kernel} bundle. This means, \chemnum needs \LaTeX3 +Support. \chemnum also needs the packages \paket{etoolbox}, \paket{psfrag} and either \paket{textgreek} or \paket{bm}, see section~\ref{sec:package:options}. \section{News and a word of apology} \subsection{Version 0.4} -In the update to v0.4 there have been some changes made with the options. There -are a few new ones and some of the old ones got new names. They now have consistent -names which in my opinion better reflect their function. This means that your -documents set with an older version of \chemnum might not compile any more without -errors. I am sorry for that. \chemnum still is actively developped. Once it reaches -v1.0, such changes won't be made any more\footnote{Or only in absolutely necessary -cases.}. +In the update to v0.4 there have been some changes made with the options. +There are a few new ones and some of the old ones got new names. They now +have consistent names which in my opinion better reflect their function. This +means that your documents set with an older version of \chemnum might not +compile any more without errors. I am sorry for that. \chemnum still is +actively developped. Once it reaches v1.0, such changes won't be made any +more\footnote{Or only in absolutely necessary cases.}. These options have new names: \begin{center} @@ -165,138 +217,149 @@ These ones are new: \end{tabular} \end{center} -Also new is the way how lists and ranges of sublabels are input. The option -\key{sub-list} no longer exists. More on this in section~\ref{ssec:sub_ranges}. +Also new is the way how lists and ranges of sublabels are input. The option +\key{sub-list} no longer exists. More on this in section~\ref{ssec:sub_ranges}. Then there is the possibility of creating hyperlinked labels together with the package \paket{hyperref}, see section~\ref{sec:hyperref}. \subsection{Version 0.5} -With v0.5 there is a new option \key{ref-pos} which allows to change the positioning -options of the \cmd{psfrag} command that is used by the \cmd{cmpdref} command -internally, see p.\,\pageref{ssec:marker_in_bildern}. +With v0.5 there is a new option \key{ref-pos} which allows to change the +positioning options of the \cmd{psfrag} command that is used by the +\cmd{cmpdref} command internally, see p.\,\pageref{ssec:marker_in_bildern}. -\achtung{The optional arguments of \cmd{cmpdref} have changed their order, see -p.\,\pageref{ssec:cmpdref}!} +\achtung{% + The optional arguments of \cmd{cmpdref} have changed their order, see + p.\,\pageref{ssec:cmpdref}!% +} \section{Package options}\label{sec:package:options}\secidx{Package options} \chemnum has one package option. \begin{beschreibung} - \Option{textgreek}{artemisia/\default{cbgreek}/euler/false} Default: \code{false} + \Option{textgreek}{artemisia|\default{cbgreek}|euler|false}\Default{false} + Choose if and with which option \paket*{textgreek} is used. \end{beschreibung} This document was set with \verb+\usepackage[textgreek=artemisia]{chemnum}+. \secidx*{Package options} \section{Motivation} -As far as I know there are three packages that are meant to help with numbering -chemical compounds. All of them have their weaknesses. +As far as I know there are three packages that are meant to help with +numbering chemical compounds. All of them have their weaknesses. The first one -- \paket{chemcono} -- redefined bibliography commands for that -purpose. Compounds have to be declared in what is called \verb=\theffbibliography=. -Then one can reference them with \verb=\fcite=. However, it produces a list of -compounds in the text. So the package author suggests: +purpose. Compounds have to be declared in what is called +\verb=\theffbibliography=. Then one can reference them with \verb=\fcite=. +However, it produces a list of compounds in the text. So the package author +suggests: \begin{zitat}[Stefan Schulz] - After compilation and printout, discard the last page. + After compilation and printout, discard the last page. \end{zitat} Obviously that's not a perfect solution. -The second one -- \paket{chemcompounds} -- was written, because the author didn't -want to work with the weaknesses of \paket{chemcono} any more. When he wrote the -package he basically used the same mechanism to create the labels as \paket{chemcono} -did. +The second one -- \paket{chemcompounds} -- was written, because the author +didn't want to work with the weaknesses of \paket{chemcono} any more. When he +wrote the package he basically used the same mechanism to create the labels as +\paket{chemcono} did. \begin{zitat}[Stephan Schenk] - When taking a closer look at the chemcono package, I realised that the only thing - one has to do is to get rid of everything which produces text. Thus, as a basis I - used the mechanism of \verb=\bibitem= and \verb=\cite= in pretty much the same way - as \paket{chemcono} does by extracting the corresponding code from \verb=article.cls= - and \verb=latex.ltx= but deleting any unnecessary commands producing output. I - also introduced several lines of code to make the printing of the compound names - more customisable. + When taking a closer look at the chemcono package, I realised that the only + thing one has to do is to get rid of everything which produces text. Thus, + as a basis I used the mechanism of \verb=\bibitem= and \verb=\cite= in + pretty much the same way as \paket{chemcono} does by extracting the + corresponding code from \verb=article.cls= and \verb=latex.ltx= but deleting + any unnecessary commands producing output. I also introduced several lines + of code to make the printing of the compound names more customisable. \end{zitat} Some points still left me unsatisfied, though: \begin{enumerate} - \item Compounds usually need to be declared with \verb=\declarecompound=. They - need to be declared in any case if you need a label like \cmpd{bsp.one}. Then, - one even needs to choose the label by hand, what somehow undermines the automatic - numbering principle. - \item The layout can't be changed for a single label but only for all. - \item The numbers can't be reset. \emph{Although in most cases this is neither - necessary nor can it be recommended}, there can be individual cases where this - would be useful. - \item A list of several compounds \verb=\compound{a,b,c}= can only be customized - with more effort than what would be convenient. + \item Compounds usually need to be declared with \verb=\declarecompound=. + They need to be declared in any case if you need a label like + \cmpd{bsp.one}. Then, one even needs to choose the label by hand, what + somehow undermines the automatic numbering principle. + \item The layout can't be changed for a single label but only for all. + \item The numbers can't be reset. \emph{Although in most cases this is + neither necessary nor can it be recommended}, there can be individual + cases where this would be useful. + \item A list of several compounds \verb=\compound{a,b,c}= can only be + customized with more effort than what would be convenient. \end{enumerate} Then there is \paket{bpchem}, which provides commands similar to \verb=\label= -\verb=\ref=: \verb=\CNlabel{}=, \verb=\CNlabelnoref{}= and \verb=\CNref{}=. It -provides commands for sublabels, too: \verb=\CNlabelsub{}{}=, \verb=\CNlabelsubnoref{}{}= -and \verb=\CNrefsub{}{}=. This makes it more flexible than the others regarding sublabels. -However, it barely provides possibilities to customize the labels, lists are not -possible and the fact that there are different commands for labels and sublabels -isn't the best solution, either. - -\chemnum is intended to fill these gaps. For this all commands have been written -from scratch. Some of the ideas of \paket{chemcompounds} \eg regarding delimiters -and layout have been picked up, though. +\verb=\ref=: \verb=\CNlabel{}=, \verb=\CNlabelnoref{}= and \verb=\CNref{}=. +It provides commands for sublabels, too: \verb=\CNlabelsub{}{}=, +\verb=\CNlabelsubnoref{}{}= and \verb=\CNrefsub{}{}=. This makes it more +flexible than the others regarding sublabels. However, it barely provides +possibilities to customize the labels, lists are not possible and the fact +that there are different commands for labels and sublabels isn't the best +solution, either. + +\chemnum is intended to fill these gaps. For this all commands have been +written from scratch. Some of the ideas of \paket{chemcompounds} \eg regarding +delimiters and layout have been picked up, though. If you notice any feature missing, please let me know by sending me an email. \section{Numbering compounds}\label{sec:nummerieren} \subsection{Main command}\secidx{Main command}\cmpdreset + The main command of this package is this one: \begin{beschreibung} - \Befehl{cmpd}{<label name>} + \Befehl{cmpd}{<label name>} \end{beschreibung} -When \code{<label name>} is used the first time, the label is created, saved (= -declared) and printed. Each further use just prints the label. +When \code{<label name>} is used the first time, the label is created, saved +(= declared) and printed. Each further use just prints the label. \begin{beispiel} - Compounds \cmpd{a} and \cmpd{b} are declared and can be used any time: \cmpd{a}. - No pre-declaring is necessary. Compounds like \cmpd{c} are numbered in the order - they appear in the text.\par + Compounds \cmpd{a} and \cmpd{b} are declared and can be used any time: + \cmpd{a}. No pre-declaring is necessary. Compounds like \cmpd{c} are + numbered in the order they appear in the text.\par Once again: \cmpd{b}, \cmpd{a}, \cmpd{c}. \end{beispiel} If it is necessary to declare a compound without printing the label, this is possible with \begin{beschreibung} - \Befehl[cmpda]{cmpd*}\ma{<label name>}\label{cmd:unsichtbares_label} + \Befehl[cmpda]{cmpd*}\ma{<label name>}\label{cmd:unsichtbares_label} \end{beschreibung} This declares the label but doesn't print anything. -\achtung{This command is not needed when \cmd{cmpdinit} is used, see -section~\ref{sec:cmpdinit} (pages~\pageref{sec:cmpdinit}ff).} + +\achtung{% + This command is not needed when \cmd{cmpdinit} is used, see + section~\ref{sec:cmpdinit} (pages~\pageref{sec:cmpdinit}ff).% +} \begin{beispiel} - The hidden version\cmpd*{d} declares the label but doesn't print anything. The - next \cmpd{e} continues to count with the next number. With \cmpd{d} the label - can be used, of course. + The hidden version\cmpd*{d} declares the label but doesn't print anything. + The next \cmpd{e} continues to count with the next number. With \cmpd{d} + the label can be used, of course. \end{beispiel} -You can pretty much use what you like for a label name except for the separator -symbols (see sections~\ref{ssec:unterlabel}, \ref{ssec:listen}, \ref{ssec:sub_ranges} -and \ref{ssec:trenner}). You shouldn't leave blanks in the name, though. This may -not cause an error at all, but \emph{could} declare different compounds with the -same name. +You can pretty much use what you like for a label name except for the +separator symbols (see sections~\ref{ssec:unterlabel}, \ref{ssec:listen}, +\ref{ssec:sub_ranges} and \ref{ssec:trenner}). You shouldn't leave blanks in +the name, though. This may not cause an error at all, but \emph{could} +declare different compounds with the same name. \lstset{showspaces=true} \begin{beispiel} \cmpd{aa }, \cmpd{a a }, \cmpd{a a}, \cmpd{ a a}, \cmpd{ aa} and \cmpd{ aa } - all have the same label. As well as \cmpd{aa }, \cmpd{a a}, \cmpd{ aa} and \cmpd{aa}. + all have the same label. As well as \cmpd{aa }, \cmpd{a a}, \cmpd{ aa} and + \cmpd{aa}. \end{beispiel} \lstset{showspaces=false}\secidx*{Main command} \subsection{Sublabel}\label{ssec:unterlabel}\secidx{Sublabel} If you want a label like \cmpd{a.one}, you need to use the following syntax: \begin{beschreibung} - \Befehl{cmpd}{<label name>.<subname>} + \Befehl{cmpd}{<label name>.<subname>} \end{beschreibung} -\code{<label name>} is the main name which stays the same, \code{<subname>} varies. -This syntax means that the point \code{.} \emph{cannot} be a part of \code{<label name>} -or \code{<subname>}. Instead of the point you also can use another symbol, see -section~\ref{sssec:sub-input-sep}. +\code{<label name>} is the main name which stays the same, \code{<subname>} +varies. This syntax means that the point \code{.} \emph{cannot} be a part of +\code{<label name>} or \code{<subname>}. Instead of the point you also can +use another symbol, see section~\ref{sssec:sub-input-sep}. \begin{beispiel} - \cmpd{f.one} and \cmpd{f.two} are related, as are \cmpd{g.one} and \cmpd{g.two}. - Of course, these labels can be used again: \cmpd{g.two} and \cmpd{f.one}. + \cmpd{f.one} and \cmpd{f.two} are related, as are \cmpd{g.one} and + \cmpd{g.two}. Of course, these labels can be used again: \cmpd{g.two} and + \cmpd{f.one}. \end{beispiel} This also works, if the main name has already been used. @@ -314,70 +377,74 @@ section~\ref{ssec:sub_ranges}. \secidx*{Sublabel} \subsection{Lists}\label{ssec:listen}\secidx{Lists} -There is actually more to the \cmd{cmpd} command. It also prints lists of labels. - -The right description would be something like: +There is actually more to the \cmd{cmpd} command. It also prints lists of +labels. The right description would be something like: \begin{beschreibung} - \Befehl{cmpd}{<(possibly comma separated list of) label name(s)>} + \Befehl{cmpd}{<(possibly comma separated list of) label name(s)>} \end{beschreibung} -This means that with default settings the comma can't be part of the label name -unless hidden in braces. You can change that, see section~\ref{sssec:list-input-sep} -on page~\pageref{sssec:list-input-sep}. Section~\ref{sssec:input-sep-bsp} shows -an example how a changed input could look like. +This means that with default settings the comma can't be part of the label +name unless hidden in braces. You can change that, see +section~\ref{sssec:list-input-sep} on page~\pageref{sssec:list-input-sep}. +Section~\ref{sssec:input-sep-bsp} shows an example how a changed input could +look like. \begin{beispiel} - More than one label can be put inside \verb=\cmpd=, separated by commas. Then a - list like \cmpd{a, b, c, e, g.two} is printed. + More than one label can be put inside \verb=\cmpd=, separated by commas. + Then a list like \cmpd{a, b, c, e, g.two} is printed. \end{beispiel} -The Harvard comma (see~\ref{ssec:harvard-comma}) in \code{, and} between \cmpd{e} -and \cmpd{g.two} suggests that there are options to customize the list, see -sections~\ref{ssec:trenner} and \ref{sec:language_support}. +The Harvard comma (see~\ref{ssec:harvard-comma}) in \code{, and} between +\cmpd{e} and \cmpd{g.two} suggests that there are options to customize the +list, see sections~\ref{ssec:trenner} and \ref{sec:language_support}. \secidx*{Lists} \subsection{Lists and ranges of sublabels}\label{ssec:sub_ranges}\index{Sublabel!lists}\index{Sublabel!ranges} -Sometimes it can be useful to display a label with a list or a range of sublabels. -Suppose you have compounds \cmpd{q.one,q.two,q.three,q.four,q.five} which for -example differ in their substituents. It can be useful to refer to them all at -once: \cmpd[cmpd-all]{q}. +Sometimes it can be useful to display a label with a list or a range of +sublabels. Suppose you have compounds +\cmpd{q.one,q.two,q.three,q.four,q.five} which for example differ in their +substituents. It can be useful to refer to them all at once: +\cmpd[cmpd-all]{q}. The syntax is rather intuitive -- you just input a list of sublabels: \begin{beispiel} list of labels: \cmpd{q.one, q.two, q.three, q.four, q.five}\\ label with list of sublabels: \cmpd{q.{one,two,three,four,five}} \end{beispiel} -Since the sublist is input with a comma in the default setting, you have to put -them into braces. +Since the sublist is input with a comma in the default setting, you have to +put them into braces. -Using this syntax you also can create ranges of sublabels. As a marker to indicate -the range \chemnum uses two points \verb=..=. +Using this syntax you also can create ranges of sublabels. As a marker to +indicate the range \chemnum uses two points \verb=..=. \begin{beispiel} \cmpd{q.{two..four}}\\ \cmpd{q.{one,three..five}}\\ \cmpd{q.{one..three,five}} \end{beispiel} -This means you can neither use the comma nor the two points as part of a sublabel -name. How you can use other markers for the input you can read in +This means you can neither use the comma nor the two points as part of a +sublabel name. How you can use other markers for the input you can read in sections~\ref{sssec:range-input-sep} and \ref{sssec:list-input-sep}. -\chemnum provides an option (see section~\ref{sec:cmpdsetup} for more details), -with which all sublabels of a main label can be printed as range. +\chemnum provides an option (see section~\ref{sec:cmpdsetup} for more +details), with which all sublabels of a main label can be printed as range. \begin{beschreibung} - \Option{cmpd-all}{\default{true}/false} + \Option{cmpd-all}{\default{true}|false}\Default{false} + Show all sublabels. \end{beschreibung} \begin{beispiel} \cmpd[cmpd-all]{q} \end{beispiel} -In order to get the right sublabels the command needs to know, which sublabels -have been declared. This means that they're read from the \verb=\jobname.cmpd= -file (supposing your source file is called \verb=\jobname.tex=). So you may need -to compile twice (or more) until the labels are printed right. +In order to get the right sublabels the command needs to know which sublabels +have been declared. This means that they're read from the +\verb=\jobname.cmpd= file (supposing your source file is called +\verb=\jobname.tex=). So you may need to compile twice (or more) until the +labels are printed right. If one uses label with sublabel ranges, one might want to use \emph{only} the -sublabels in a different place. This is possible with this option: +sublabels in a different place. This is possible with this option: \begin{beschreibung} - \Option{sub-only}{\default{true}/false} + \Option{sub-only}{\default{true}|false}\Default{false} + Print only the sublabel. \end{beschreibung} \begin{beispiel} % uses packages `chemfig', `chemmacros' and `booktabs' @@ -392,31 +459,34 @@ sublabels in a different place. This is possible with this option: \end{tabular} \end{beispiel} -Ranges of sublabels require some care. For one thing one has to know which -sublabel is the lower one and which is the higher one. Then one has to know which -labels are in between them and what do they represent. As \chemnum can't take care -for you, you need to do that for yourself if you want to avoid labels like these: +Ranges of sublabels require some care. For one thing one has to know which +sublabel is the lower one and which is the higher one. Then one has to know +which labels are in between them and what do they represent. As \chemnum +can't take care for you, you need to do that for yourself if you want to avoid +labels like these: \begin{beispiel} \cmpd{q.{five..three}} or \cmpd{q.{three,one,four}}. \end{beispiel} \section{Initialize labels at once}\label{sec:cmpdinit}\secidx{Initialize labels} -The commands described in this section are not essential for the usage of \chemnum, -but provide additional functionality that some users might find useful. +The commands described in this section are not essential for the usage of +\chemnum, but provide additional functionality that some users might find +useful. \subsection{Usage} \subsubsection{Main labels} Perhaps you're missing \paket{chemcompounds}' command \verb=\declarecompound= -already. For one thing one has a summary of all used label names. And one may be -warned if one uses an uninitialized label name\footnote{for instance due to a -typing error}. This behaviour can be realized with these commands: +already. With it for one thing one had a summary of all used label names. +And there was a warning if one used an uninitialized label name\footnote{for + instance due to a typing error}. This behaviour can be realized with these +commands: \begin{beschreibung} - \Befehl{cmpdinit}{<comma separated list of label names>} - \Befehl[cmpdinita]{cmpdinit*}{<comma separated list of label names>} + \Befehl{cmpdinit}{<comma separated list of label names>} + \Befehl[cmpdinita]{cmpdinit*}{<comma separated list of label names>} \end{beschreibung} -All compounds set inside \cmd{cmpdinit} are initialized and declared \emph{in the -given order}. If one uses a label name that's not in the list, \chemnum produces -a warning message. +All compounds set inside \cmd{cmpdinit} are initialized and declared \emph{in + the given order}. If one uses a label name that's not in the list, \chemnum +produces a warning message. \cmpdreset \begin{beispiel} @@ -433,10 +503,12 @@ a warning message. \end{mdframed} Please note that for labels with sublabels only the \emph{main name} can and -should be initialized. This initializes all compounds with the same main name. +should be initialized. This initializes all compounds with the same main +name. -\cmd[cmpdinita]{cmpdinit*} also produces a warning but doesn't declare the labels. -They are declared when you first use them in the order of appearance in the text. +\cmd[cmpdinita]{cmpdinit*} also produces a warning but doesn't declare the +labels. They are declared when you first use them in the order of appearance +in the text. \cmpdreset \begin{beispiel} @@ -452,19 +524,20 @@ They are declared when you first use them in the order of appearance in the text {}************************************************* \end{mdframed} -If you need to use own labels (see page \pageref{ssec:own_labels}) but still want -to initialize all labels at once, you should use \cmd[cmpdinita]{cmpdinit*}{}, -because then no labels are declared when they're initialized. +If you need to use own labels (see page \pageref{ssec:own_labels}) but still +want to initialize all labels at once, you should use +\cmd[cmpdinita]{cmpdinit*}{}, because then no labels are declared when they're +initialized. -This command can be used several times, with or without \verb=*=. A useful way -would be a single usage, though, proposedly in the preamble of your document after -the \chemnum setup (see section~\ref{sec:cmpdsetup}). +This command can be used several times, with or without \verb=*=. A useful +way would be a single usage, though, proposedly in the preamble of your +document after the \chemnum setup (see section~\ref{sec:cmpdsetup}). \subsubsection{Sublabels} -If you'd like a warning for label-sublabel combinations as well, or want to preset -their order, you can use +If you'd like a warning for label-sublabel combinations as well, or want to +preset their order, you can use \begin{beschreibung} - \Befehl{cmpdinit}[\key{init-sub}{true}]{<comma separated list of label names>} + \Befehl{cmpdinit}[\key{init-sub}{true}]{<comma separated list of label names>} \end{beschreibung} This will give you a warning in these cases, too. @@ -488,61 +561,68 @@ This will give you a warning in these cases, too. If you want \chemnum to produce an error instead of a warning when you use an unititialized label name, you can use \cmd{cmpdinit} like this: \begin{beschreibung} - \Befehl{cmpdinit}[\key{init-strict}{true}]{<comma separated list ...>} + \Befehl{cmpdinit}[\key{init-strict}{true}]{<comma separated list ...>} \end{beschreibung} -A usage of \key{init-strict}{false} would be the usage without optional argument. -Of course the *-version has the same option. +A usage of \key{init-strict}{false} would be the usage without optional +argument. Of course the *-version has the same option. -With \key{init-strict}{true} the \LaTeX\ run will be aborted with a corresponding -error message, if a label name is used that hasn't been initialized before. +With \key{init-strict}{true} the \LaTeX\ run will be aborted with a +corresponding error message, if a label name is used that hasn't been +initialized before. Of course you can use \cmd{cmpdinit} with both options \begin{beschreibung} - \Befehl{cmpdinit}[\key{init-strict}{true}, \key{init-sub}{true}]{<comma separated list ...>} + \Befehl{cmpdinit}[\key{init-strict}{true}, \key{init-sub}{true}]{<comma separated list ...>} \end{beschreibung} or use \cmd{cmpdsetup}, see section~\ref{sec:cmpdsetup}. \subsection{Customized input} -When you're using other tokens for \key{sub-input-sep} (page~\pageref{sssec:sub-input-sep}) -or \key{sublist-input-sep} (page~\pageref{sssec:list-input-sep}), you have to -use them with \cmd{cmpdinit} as well. +When you're using other tokens for \key{sub-input-sep} +(page~\pageref{sssec:sub-input-sep}) or \key{sublist-input-sep} +(page~\pageref{sssec:list-input-sep}), you have to use them with +\cmd{cmpdinit} as well. A change of \key{list-input-sep} (page \pageref{sssec:list-input-sep}) doesn't -affect \cmd{cmpdinit}. If you want to change the input of \cmd{cmpdinit} you need -to use \key{init-input-sep}, see section~\ref{sssec:init-input-sep} on +affect \cmd{cmpdinit}. If you want to change the input of \cmd{cmpdinit} you +need to use \key{init-input-sep}, see section~\ref{sssec:init-input-sep} on page~\pageref{sssec:init-input-sep}. \subsection{Why initiate labels?} As mentioned in the beginning of this section the initiation of labels is not -required. There are two possible reasons, why one would like to use them, anyway. +required. There are two possible reasons, why one would like to use them, +anyway. \begin{enumerate} - \item The use of \cmd[cmpdinita]{cmpdinit*} is a way to keep track of which labels - you have used and gives you a warning/error message if you use a new one or just - have mispelled an existing one. Depending on the number of labels you (have to) - use, this can be lots of additional work, though. - \item The use of \cmd{cmpdinit} does the same thing as \cmd[cmpdinita]{cmpdinit*} - \emph{and} declares all the labels in the given order. So if you use it, you - won't have to use \cmd[cmpda]{cmpd*} (section~\ref{cmd:unsichtbares_label}) and - \cmd[cmpdb]{cmpd+} (section~\ref{cmd:cmpd_plus}). This gives you direct control, - which number is given to which compound. + \item The use of \cmd[cmpdinita]{cmpdinit*} is a way to keep track of which + labels you have used and gives you a warning/error message if you use a + new one or just have mispelled an existing one. Depending on the number + of labels you (have to) use, this can be lots of additional work, though. + \item The use of \cmd{cmpdinit} does the same thing as + \cmd[cmpdinita]{cmpdinit*} \emph{and} declares all the labels in the given + order. So if you use it, you won't have to use \cmd[cmpda]{cmpd*} + (section~\ref{cmd:unsichtbares_label}) and \cmd[cmpdb]{cmpd+} + (section~\ref{cmd:cmpd_plus}). This gives you direct control, which + number is given to which compound. \end{enumerate} \secidx*{Initialize labels} \section{Resetting the counter}\label{sec:cmpdreset}\secidx{Reset the counter} With the command \begin{beschreibung} - \Befehl{cmpdreset}[<number>] + \Befehl{cmpdreset}[<number>] \end{beschreibung} -it is possible to reset the counter. Without argument it is reset to \verb=1=. So -\cmd{cmpdreset} and \cmd{cmpdreset}[1] are the same. Unlike most other \chemnum -commands its impact is not only inside the local \TeX\ group but resets the -counter globally. +it is possible to reset the counter. Without argument it is reset to +\verb=1=. So \cmd{cmpdreset} and \cmd{cmpdreset}[1] are the same. Unlike +most other \chemnum commands its impact is not only inside the local \TeX\ +group but resets the counter globally. \begin{beispiel} \cmpdreset The numbering starts with 1 again: \cmpd{h, i, j} \end{beispiel} -\achtung{You should be careful with how you use this command! Usually it cannot -be recommended to reset the counter. Different compounds can get the same label!} +\achtung{% + You should be careful with how you use this command! Usually it cannot be + recommended to reset the counter. Different compounds can get the same + label!% +} \begin{beispiel} Same label: \cmpd{a}, \cmpd{h} @@ -551,41 +631,47 @@ be recommended to reset the counter. Different compounds can get the same label! \section{Special usage}\secidx{Special usage} \subsection{Moving arguments -- section titles} -Using \cmd{cmpd} inside a section title in the first instant doesn't seem to be -a problem. This doesn't give any errors and the output looks like expected: +Using \cmd{cmpd} inside a section title in the first instant doesn't seem to +be a problem. This doesn't give any errors and the output looks like +expected: \begin{beispiel}[code only] \section{Compound \cmpd[cmpd-delim]{b}} \ldots \end{beispiel} However, if you use \verb=\tableofcontents= -- which is rather probable, I guess -- something unwanted happens: because the table of contents is at the -beginning of the document, the label is declared in the table of contents instead -of at the first appearance in the text. There are two ways to circumvent this: +beginning of the document, the label is declared in the table of contents +instead of at the first appearance in the text. There are two ways to +circumvent this: \begin{enumerate} - \item You declare your labels in the order you want with \cmd{cmpdinit}{}= (see - page~\pageref{sec:cmpdinit}) in the preamble or the beginning of the document. - \item You use \cmd[cmpdb]{cmpd+} to set the label. It will read the label from - the file \verb=<jobname>.cmpd= (supposing your main file is called \verb=<jobname>.tex=). - This means \emph{at least two}, maybe more \LaTeX\ runs are necessary until - all labels are set. + \item You declare your labels in the order you want with \cmd{cmpdinit}{}= + (see page~\pageref{sec:cmpdinit}) in the preamble or the beginning of the + document. + \item You use \cmd[cmpdb]{cmpd+} to set the label. It will read the label + from the file \verb=<jobname>.cmpd= (supposing your main file is called + \verb=<jobname>.tex=). This means \emph{at least two}, maybe more \LaTeX\ + runs are necessary until all labels are set. \end{enumerate} -The same is true for any other list of moving arguments that is created \emph{before} -the actual appearance of the label in the text. +The same is true for any other list of moving arguments that is created +\emph{before} the actual appearance of the label in the text. The command\label{cmd:cmpd_plus} \begin{beschreibung} - \Befehl[cmpdb]{cmpd+}\ma{<label name>} + \Befehl[cmpdb]{cmpd+}\ma{<label name>} \end{beschreibung} -reads the label name that is to be printed from \verb=\jobname.cmpd=. In a way -this is the opposite of \cmd[cmpda]{cmpd*} since it doesn't declare a label but -only references and prints it. So in order to use \cmd[cmpdb]{cmpd+}{<label>}, -\verb=<label>= must have been declared, either with \cmd{cmpd}{<label>} or with -\cmd[cmpda]{cmpd*}{<label>}. It doesn't matter, if this declaration is done before -or after the usage of \cmd[cmpdb]{cmpd+}. This command is useful, if the label is -used inside a moving argument like in \verb=\section{}=. - -\achtung{It is not needed when \cmd{cmpdinit} is used, see section~\ref{sec:cmpdinit} -(pages~\pageref{sec:cmpdinit}\,ff).} +reads the label name that is to be printed from \verb=\jobname.cmpd=. In a +way this is the opposite of \cmd[cmpda]{cmpd*} since it doesn't declare a +label but only references and prints it. So in order to use +\cmd[cmpdb]{cmpd+}{<label>}, \verb=<label>= must have been declared, either +with \cmd{cmpd}{<label>} or with \cmd[cmpda]{cmpd*}{<label>}. It doesn't +matter, if this declaration is done before or after the usage of +\cmd[cmpdb]{cmpd+}. This command is useful, if the label is used inside a +moving argument like in \verb=\section{}=. + +\achtung{% + It is not needed when \cmd{cmpdinit} is used, see section~\ref{sec:cmpdinit} + (pages~\pageref{sec:cmpdinit}\,ff).% +} \begin{beispiel}[code only] \subsubsection{Test section title with compound label \cmpd+[cmpd-delim]{f.one}} @@ -594,9 +680,9 @@ used inside a moving argument like in \verb=\section{}=. \end{beispiel} \subsection{Floating environments}\cmpdinit*{float1,float2} -The usage of \cmd{cmpd} inside a float shouldn't be a problem: labels are declared -in the order the floating environment appears in the code. However, to be on the -safe side you can of course use \cmd[cmpdb]{cmpd+} here as well. +The usage of \cmd{cmpd} inside a float shouldn't be a problem: labels are +declared in the order the floating environment appears in the code. However, +to be on the safe side you can of course use \cmd[cmpdb]{cmpd+} here as well. \begin{beispiel}[code and float] % preamble: % \usepackage{chemscheme} @@ -614,16 +700,16 @@ instance by using the option \verb=[t]=. \cmpdinit*{Alc,EtherBr,cpd} \subsection{Schemes created by external programs}\label{ssec:cmpdref}\secidx{Schemes by external programs} -If you create your schemes by external programs like for \eg \prog{ChemDraw} or -\prog{Marvin\-Sketch}, and want to use \chemnum with them as well, you can use -this command: +If you create your schemes by external programs like for \eg \prog{ChemDraw} +or \prog{Marvin\-Sketch}, and want to use \chemnum with them as well, you can +use this command: \begin{beschreibung} - \Befehl{cmpdref}[<tag>]\oa{<options>}\ma{<label name>} - \Befehl[cmpdrefa]{cmpdref+}[<tag>]\oa{<options>}\ma{<label name>} + \Befehl{cmpdref}[<tag>]\oa{<options>}\ma{<label name>} + \Befehl[cmpdrefa]{cmpdref+}[<tag>]\oa{<options>}\ma{<label name>} \end{beschreibung} This command is inspired by the \verb=\schemeref= command from the package -\paket{chemscheme}. It works in a very similar way. You create the scheme and save -it with temporary labels as an \verb=eps= file. +\paket{chemscheme}. It works in a very similar way. You create the scheme +and save it with temporary labels as an \verb=eps= file. Like \cmd{cmpd+} the plussed variant only references a label but does not declare it. @@ -643,18 +729,20 @@ declare it. \caption{Scheme with automated labels.} \end{scheme} \end{beispiel} -So you nummerate the compounds with \textsf{TMP1}, \textsf{TMP2} \etc These markers -will then be replaced with the corresponding labels. Like \paket{chemscheme} \chemnum -uses the \cmd{psfrag} command of the \paket{psfrag} package to do that. This means -you have to either compile via \prog{latex}, \prog{dvips}, \prog{ps2pdf}, or for -instance use the package \paket{auto-pst-pdf} to be able to use \hologo{pdfLaTeX}. -It doesn't work with \hologo{XeLaTeX}, neither probably with \hologo{LuaLaTeX}, -the author didn't test that, though. - -In each case it is important that the marker is saved as \emph{text} in the \verb=eps= -file. - -You can customize the labels with the options presented in section~\ref{sec:cmpdsetup}. +So you nummerate the compounds with \textsf{TMP1}, \textsf{TMP2} etc. These +markerswill then be replaced with the corresponding labels. Like +\paket{chemscheme} \chemnum uses the \cmd{psfrag} command of the +\paket{psfrag} package to do that. This means you have to either compile via +\prog{latex}, \prog{dvips}, \prog{ps2pdf}, or for instance use the package +\paket{auto-pst-pdf} to be able to use \hologo{pdfLaTeX}. It doesn't work +with \hologo{XeLaTeX}, neither probably with \hologo{LuaLaTeX}, the author +didn't test that, though. + +In each case it is important that the marker is saved as \emph{text} in the +\verb=eps= file. + +You can customize the labels with the options presented in +section~\ref{sec:cmpdsetup}. \begin{beispiel}[code and float] \begin{scheme}[ht] \centering @@ -698,44 +786,49 @@ Of course sublabels work in the known way: \section{Usage with \paket{hyperref}}\label{sec:hyperref}\secidx[Usage with hyperref]{Usage with \textsf{hyperref}} \subsection{Basics} -If you are using the package \paket{hyperref} you can make hyperlinked labels in -your \prog{pdf}. +If you are using the package \paket{hyperref} you can make hyperlinked labels +in your \prog{pdf}. \begin{beschreibung} - \Option{hyper-use}{\default{true}/false} + \Option{hyper-use}{\default{true}|false}\Default{false} + Link labels with \paket{hyperref}'s hyperlink commands. \end{beschreibung} Setting this option (see section~\ref{sec:cmpdsetup} for more information) to \code{true}, the next usage of a label will create a link target and the ones -after that will create links to this target. This only works if the label does -\emph{not} contain a list or range of sublabels. Also a label set with \cmd[cmpda]{cmpd*} -can't be marked as target. +after that will create links to this target. This only works if the label +does \emph{not} contain a list or range of sublabels. Also a label set with +\cmd[cmpda]{cmpd*} can't be marked as target. \begin{beispiel} \cmpdsetup{hyper-use} - The first time targets are created: \cmpd{a.two,b,c,d,e,f}. Then links are created: - \cmpd{a.two,d,e}. + The first time targets are created: \cmpd{a.two,b,c,d,e,f}. Then links are + created: \cmpd{a.two,d,e}. - This doesn't work with labels containing a list of sublabels: \cmpd{a,f.{one,two},c}. - Since \cmpd{a.two} and \cmpd{a} are different labels they have different link targets. + This doesn't work with labels containing a list of sublabels: + \cmpd{a,f.{one,two},c}. Since \cmpd{a.two} and \cmpd{a} are different labels + they have different link targets. \end{beispiel} \subsection{Selected usage} -Maybe the automated use isn't what you want or need. Maybe is is enough to create -a hyperlink in one or two places. This can be achieved with two options: +Maybe the automated use isn't what you want or need. Maybe is is enough to +create a hyperlink in one or two places. This can be achieved with two +options: \begin{beschreibung} - \Option{hyper-target}{<link name>} - \Option{hyper-link}{<link name>} + \Option{hyper-target}{<link name>}\Default{} + Set a hyperlink target. + \Option{hyper-link}{<link name>}\Default{} + Set a hyperlink. \end{beschreibung} -With \key{hyper-target} you can set the target. \textbf{Caution}: if you use this -option with a list \emph{every} label of the list will get the same link name and -\paket{hyperref} will warn you: +With \key{hyper-target} you can set the target. \textbf{Caution}: if you use +this option with a list \emph{every} label of the list will get the same link +name and \paket{hyperref} will warn you: \begin{mdframed}\ttfamily\small destination with the same identifier (name\{<link name>\}) has been already used, duplicate ignored \end{mdframed} -\key{hyper-link} creates a link for the denominated target. \textbf{Caution}: if -you use this option with a list \emph{every} label of the list will refer to the -same target. +\key{hyper-link} creates a link for the denominated target. \textbf{Caution}: +if you use this option with a list \emph{every} label of the list will refer +to the same target. \begin{beispiel} Create a link \cmpd[hyper-link=mylink,cmpd-all]{f} but don't forget the corresponding target: \cmpd[hyper-target=mylink,cmpd-all]{f}. @@ -751,36 +844,44 @@ If you use \key{hyper-link} without the corresponding \key{hyper-target} \section{Customization}\label{sec:cmpdsetup} \subsection{The principle} -\chemnum is customized with a key-value system. They can either be used for all -following commands with +\chemnum is customized with a key-value system. They can either be used for +all following commands with \begin{beschreibung} - \Befehl{cmpdsetup}{key1 = value1, key2 = value2} + \Befehl{cmpdsetup}{key1 = value1, key2 = value2} \end{beschreibung} or only for a single command directly with \begin{beschreibung} - \Befehl{cmpd}[key1 = value1, key2 = value2]{<label name>} + \Befehl{cmpd}[key1 = value1, key2 = value2]{<label name>} \end{beschreibung} -If you use keys without values like \cmd{cmpdsetup}{key1,key2}, default values\label{opt:default} -are used. These are \emph{not} necessarily empty are \emph{not} necessarily the -default setting of \chemnum. +If you use keys without values like \cmd{cmpdsetup}{key1,key2}, default +values\label{opt:default} are used. These are \emph{not} necessarily empty +are \emph{not} necessarily the default setting of \chemnum. -The options are divided in to different classes\label{key_classes}, which indicate -the scope they're used for. They all follow the form \verb+<class>-option = <value>+: +The options are divided in to different classes\label{key_classes}, which +indicate the scope they're used for. They all follow the form +\verb+<class>-option = <value>+: \begin{itemize} - \item \code{cmpd}: These options change the whole label or the main label. - \item \code{sub}, \code{sublist}, \code{subref}: These options have an impact on sublabels. - \item \code{list}: Options which change the output of lists. - \item \code{ref}: Options which have an impact on \cmd{cmpdref}. - \item \code{hyper}: Options which have an impact on the usage with \paket{hyperref}. - \item \code{init}: Options which have an impact in the initialization of the labels. + \item \code{cmpd}: These options change the whole label or the main label. + \item \code{sub}, \code{sublist}, \code{subref}: These options have an + impact on sublabels. + \item \code{list}: Options which change the output of lists. + \item \code{ref}: Options which have an impact on \cmd{cmpdref}. + \item \code{hyper}: Options which have an impact on the usage with + \paket{hyperref}. + \item \code{init}: Options which have an impact in the initialization of the + labels. \end{itemize} \subsection{Font style}\label{ssec:schriftstil}\secidx{Font style} With the keys \begin{beschreibung} - \Option{cmpd-style}{<style>} - \option{cmpd-weight}{bold/normal} Default = \code{bold} + \Option{cmpd-style}{<style>}\Default{} + formatting commands for the labels. The last command can demand an + argument. + \Option{cmpd-weight}{bold|normal}\Default{bold} + setting labels in bold series. The setting for this is extra since greek + labels internally have to be treated a little differently. \end{beschreibung} you can change the style with which the labels are printed. @@ -796,16 +897,15 @@ you can change the style with which the labels are printed. \cmpd[cmpd-weight=normal]{a, b, f.two, k} \end{beispiel} The separate handling of the bold face is because of the greek labels (see -section~\ref{ssec:counter}). Depending on the package option \code{textgreek}, -the bold face must realized differently. +section~\ref{ssec:counter}). Depending on the package option +\code{textgreek}, the bold face must realized differently. \secidx*{Font style} \subsection{Own labels}\label{ssec:own_labels}\secidx{Own labels} -With the key \begin{beschreibung} - \Option{cmpd-label}{<label>} + \Option{cmpd-label}{<label>}\Default{} + This key let's you choose the label associated with the label name. \end{beschreibung} -one can choose the label associated with the label name. \begin{beispiel} Own label: \cmpd[cmpd-label = XYZ]{l}; in a list \emph{all new compounds} get @@ -814,43 +914,53 @@ one can choose the label associated with the label name. \secidx*{Own labels} \subsection{Markers in images}\secidx{Markers in images}\label{ssec:marker_in_bildern} -There are several options that affect labels in external images placed with \cmd{cmpdref}. +There are several options that affect labels in external images placed with +\cmd{cmpdref}. \begin{beschreibung} - \option{ref-marker}{<marker>} This changes the default marker that is to be - replaced. Default = \code{TMP} - \option{ref-pos}{\{<tex-pos>\}\{<ps-pos>\}} Default = \code{bb} - \option{ref-style}{<style>} change the format of the labels in external schemes. - Default = \verb=\sffamily= + \Option{ref-marker}{<marker>}\Default{TMP} + This changes the default marker that is to be replaced. + \Option{ref-pos}{\{<tex-pos>\}\{<ps-pos>\}}\Default{bb} + explained below + \Option{ref-style}{<style>}\Default{\cmd*{sffamily}} + change the format of the labels in external schemes. \end{beschreibung} With \key{ref-pos} you can change the default way how \cmd{cmpdref} places the -label. The command \cmd{psfrag} that is used internally has two options for that. -The first one determines the position of the \TeX-replacement, the second one how -it is placed in the box from the marker that is replaced. For details please refer -to the documentation of \paket{psfrag}. +label. The command \cmd{psfrag} that is used internally has two options for +that. The first one determines the position of the \TeX-replacement, the +second one how it is placed in the box from the marker that is replaced. For +details please refer to the documentation of \paket{psfrag}. \secidx*{Markers in images} \subsection{Counter}\label{ssec:counter}\secidx{Counter} You can change the format of the counters, too, if you like. \begin{beschreibung} - \option{cmpd-counter}{arabic/alph/Alph/greek/Greek/roman/Roman/Symbol} Default = \code{arabic} - \option{sub-counter}{arabic/alph/Alph/greek/Greek/roman/Roman/Symbol} Default = \code{alph} + \Option{cmpd-counter}{arabic|alph|Alph|greek|Greek|roman|Roman|Symbol}\Default{arabic} + The counter format for the main labels. + \Option{sub-counter}{arabic|alph|Alph|greek|Greek|roman|Roman|Symbol}\Default{alph} + The counter format for sublabels. \end{beschreibung} -Please note: a change of format only affects labels \emph{which are not yet declared}! +Please note: a change of format only affects labels \emph{which are not yet + declared}! \begin{beispiel} \cmpdsetup{cmpd-counter = Alph, sub-counter = arabic} - \cmpd{a, b, f.two, k}\\ % no affect with existing labels + % no affect with existing labels + \cmpd{a, b, f.two, k}\\ \cmpd{n.one,n.two,o.one}\\ - \cmpd{f.three,f.four}\\ % be careful: the main label already exists and isn't changed! + % be careful: the main label already exists and isn't changed! + \cmpd{f.three,f.four}\\ \cmpd[cmpd-counter,sub-counter = greek]{p.one,p.two} \end{beispiel} \secidx*{Counter} \subsection{Delimiters}\secidx{Delimiters} -Both single labels and whole lists can get delimiters. This is done with the options +Both single labels and whole lists can get delimiters. This is done with the +options \begin{beschreibung} - \option{cmpd-delim}{<odelim><cdelim>} values need \emph{two} tokens! - \option{list-delim}{<odelim><cdelim>} values need \emph{two} tokens! + \Option{cmpd-delim}{<odelim><cdelim>}\Default{} + Delimiters to the single labels, need to be \emph{two} tokens! + \Option{list-delim}{<odelim><cdelim>}\Default{} + Delimiters to a list of labels, need to be \emph{two} tokens! \end{beschreibung} \begin{beispiel} \cmpd{a, b, f.two, k}\\ % default @@ -860,10 +970,10 @@ Both single labels and whole lists can get delimiters. This is done with the opt \cmpd{a, b, f.two, k} % in braces \end{beispiel} Please be aware that the default values (see pages~\pageref{opt:default} and -\pageref{ssec:keys_uebersicht}) of \key{cmpd-delim} and \key{list-delim} and the -default setting of \chemnum are \emph{not} the same. By default \chemnum doesn't -use delimiters. Also please note that the list delimiters only are used if \cmd{cmpd} -contains at least two label names. +\pageref{ssec:keys_uebersicht}) of \key{cmpd-delim} and \key{list-delim} and +the default setting of \chemnum are \emph{not} the same. By default \chemnum +doesn't use delimiters. Also please note that the list delimiters only are +used if \cmd{cmpd} contains at least two label names. \begin{beispiel} \cmpd{a, b, f.two, k}\\ % default \cmpd[list-delim = {[}{]}]{a, b, f.two, k}\\ % in braces @@ -872,19 +982,20 @@ contains at least two label names. \cmpd{a, b, f.two, k}\\ % in braces \cmpd{a} % NOT a list! \end{beispiel} -If you generally use labels in braces but want to use a single one without braces, -you have several possibilities: +If you generally use labels in braces but want to use a single one without +braces, you have several possibilities: \begin{beispiel} \cmpdsetup{cmpd-delim = ()} - normally: \cmpd{b}, \cmpd{c}, \cmpd{d.one}, but sometimes so \cmpd[cmpd-delim = ]{e} - or so \cmpd-{e}. + normally: \cmpd{b}, \cmpd{c}, \cmpd{d.one}, but sometimes so + \cmpd[cmpd-delim = ]{e} or so \cmpd-{e}. \end{beispiel} With \begin{beschreibung}\label{cmd:ohne_begrenzer} - \Befehl[cmpdc]{cmpd-}\ma{<label name>} - \Befehl[cmpdrefc]{cmpdref-}\ma{<label name>} + \Befehl[cmpdc]{cmpd-}\ma{<label name>} + \Befehl[cmpdrefc]{cmpdref-}\ma{<label name>} \end{beschreibung} -the braces of single labels can easily be removed (but not the ones of a list). +the braces of single labels can easily be removed (but not the ones of a +list). \begin{beispiel} \cmpd{a, b, f.two, k}\\ % default \cmpdsetup{cmpd-delim = (), list-delim = []} @@ -892,21 +1003,25 @@ the braces of single labels can easily be removed (but not the ones of a list). \cmpd-{a, b, f.two, k} % braced once \end{beispiel} -Using \cmd{cmpdsetup}{\key{cmpd-delim}{ }} and \cmd{cmpdsetup}{\key{list-delim}{ }} -will restore the default behaviour. +Using \cmd{cmpdsetup}{\key{cmpd-delim}{ }} and +\cmd{cmpdsetup}{\key{list-delim}{ }} will restore the default behaviour. \secidx*{Delimiters} \subsection{Suffix and prefix}\secidx{Suffix and prefix} If you want to, you can also add a prefix and/or a suffix to a compound and/or a list. \begin{beschreibung} - \Option{cmpd-prefix}{<prefix>} - \Option{cmpd-suffix}{<prefix>} - \Option{list-prefix}{<prefix>} - \Option{list-suffix}{<prefix>} + \Option{cmpd-prefix}{<prefix>}\Default{} + Set a prefix for a label. + \Option{cmpd-suffix}{<prefix>}\Default{} + Set a suffix for a label. + \Option{list-prefix}{<prefix>}\Default{} + Set a prefix for a list. + \Option{list-suffix}{<prefix>}\Default{} + Set a suffix for a list. \end{beschreibung} -The same rule as for the delimiters applies: list attributes are only used with -lists, \ie at least with two items. +The same rule as for the delimiters applies: list attributes are only used +with lists, \ie at least with two items. An example for the label attributes: \begin{beispiel} @@ -925,7 +1040,8 @@ An example for the list attributes: \cmpd{a} % NOT a list! \end{beispiel} -Between prefix, label and suffix there is a space inserted as default behaviour: +Between prefix, label and suffix there is a space inserted as default +behaviour: \begin{beispiel} \cmpd[cmpd-suffix=sx,cmpd-prefix=px]{k} \end{beispiel} @@ -940,13 +1056,14 @@ It can be changed with \subsection{Separators}\label{ssec:trenner}\secidx{Separators} \subsubsection{Labels -- input}\label{sssec:sub-input-sep}\index{Separators!labels!input} -As a default setting \chemnum use the point \code{.} as a marker to separate main -labels from sublabels. You can change that as you like. Tokens you \emph{can't use} -are \verb=%=, \verb=,= and \verb=#= and \emph{you shouldn't} use \verb=@=. Furthermore -you should be careful to use different symbols for the other separators (see the -next sections). +As a default setting \chemnum use the point \code{.} as a marker to separate +main labels from sublabels. You can change that as you like. Tokens you +\emph{can't use} are \verb=%=, \verb=,= and \verb=#= and \emph{you shouldn't} +use \verb=@=. Furthermore you should be careful to use different symbols for +the other separators (see the next sections). \begin{beschreibung} - \option{sub-input-sep}{<separator>} Default = \code{.} + \Option{sub-input-sep}{<separator>}\Default{.} + The token that separates sublabels from main labels. \end{beschreibung} \begin{beispiel} \cmpdsetup{sub-input-sep = !} @@ -956,17 +1073,18 @@ next sections). \cmpd[sub-input-sep= &]{f&one, g&two}\\ \cmpd[sub-input-sep= *]{f*one, g*two} \end{beispiel} -You should -- not only for the sake of consistency -- decide only \emph{once} in -the beginning of your document \emph{before} the \verb=\tableofcontents= or in -the preamble, which marker you use. Otherwise, the \verb=\tableofcontents= won't -know the marker anymore and your labels might be at least displayed wrong in the -table of contents. Also you need to setup the marker \emph{before} you use it with -\cmd{cmpd} or \cmd{cmpdinit} etc. +You should -- not only for the sake of consistency -- decide only \emph{once} +in the beginning of your document \emph{before} the \verb=\tableofcontents= or +in the preamble, which marker you use. Otherwise, the \verb=\tableofcontents= +won't know the marker anymore and your labels might be at least displayed +wrong in the table of contents. Also you need to setup the marker +\emph{before} you use it with \cmd{cmpd} or \cmd{cmpdinit} etc. \subsubsection{Labels -- output}\index{Separators!labels!output} You can separate the labels from the sublabels if you like to. \begin{beschreibung} - \Option{sub-output-sep}{<separator>} + \Option{sub-output-sep}{<separator>}\Default{} + the separator between main and sublabels in the output. \end{beschreibung} \begin{beispiel} \cmpd{a, b, f.two, f.three, k}\\ % default @@ -977,13 +1095,14 @@ You can separate the labels from the sublabels if you like to. \end{beispiel} \subsubsection{Sublabels -- input}\label{sssec:range-input-sep}\index{Separators!subabels!input} -As a default setting \chemnum use two points \code{..} as a marker to detect two -sublabels as end and beginning of a range. But you can choose any tokens you like -to do that. Tokens you \emph{can't use} are \verb=%=, \verb=,= and \verb=#= and -\emph{you shouldn't} use \verb=@=. Furthermore you should be careful to use different -symbols for the other separators. +As a default setting \chemnum use two points \code{..} as a marker to detect +two sublabels as end and beginning of a range. But you can choose any tokens +you like to do that. Tokens you \emph{can't use} are \verb=%=, \verb=,= and +\verb=#= and \emph{you shouldn't} use \verb=@=. Furthermore you should be +careful to use different symbols for the other separators. \begin{beschreibung} - \option{subrange-input-sep}{<separator>} Default = \code{..} + \Option{subrange-input-sep}{<separator>}\Default{..} + The tokens that indicate a range of sublabels \end{beschreibung} \begin{beispiel} \cmpd[subrange-input-sep=:]{q.{one:four}}\\ @@ -995,7 +1114,9 @@ symbols for the other separators. Maybe you don't like the output of \cmpd[cmpd-all]{q} and you want it displayed differently? Then you need this key: \begin{beschreibung} - \option{subrange-output-sep}{<separator>} Default = \verb|--| + \Option{subrange-output-sep}{<separator>}\Default{--} + The tokens that are placed between the sublabels of a range in the + output. \end{beschreibung} \begin{beispiel} \cmpd[subrange-output-sep={ {\normalfont to} }]{q.{one..four}}\\ @@ -1004,14 +1125,17 @@ differently? Then you need this key: \end{beispiel} \subsubsection{Lists -- input}\label{sssec:list-input-sep}\index{Separators!lists!input} -If you like you can change the list input separator for both main label lists and -lists of sublabels. In both cases \chemnum uses the comma \code{,} as default. You -can change that as you like. Tokens you \emph{can't use} are \verb=%=, \verb=,= -and \verb=#= and \emph{you shouldn't} use \verb=@=. Furthermore you should be -careful to use different symbols for the other separators. +If you like you can change the list input separator for both main label lists +and lists of sublabels. In both cases \chemnum uses the comma \code{,} as +default. You can change that as you like. Tokens you \emph{can't use} are +\verb=%=, \verb=,= and \verb=#= and \emph{you shouldn't} use \verb=@=. +Furthermore you should be careful to use different symbols for the other +separators. \begin{beschreibung} - \option{list-input-sep}{<separator>} Default = \code{,} - \option{sub-input-sep}{<separator>} Default = \code{,} + \Option{list-input-sep}{<separator>}\Default{,} + Separator between main labels in the input. + \Option{sub-input-sep}{<separator>}\Default{,} + Separator between sublabels in the input. \end{beschreibung} \begin{beispiel} \cmpd{a, b, f.two, k}\\ % default @@ -1020,19 +1144,21 @@ careful to use different symbols for the other separators. \cmpdsetup{list-input-sep = ;} \cmpd{a; b; f.two; k} \end{beispiel} -With this you can for example use IUPAC names as label names\footnote{Thanks to -Christina L\"udigk who in a way suggested this feature.}. +With this you can for example use IUPAC names as label names\footnote{Thanks + to Christina L\"udigk who in a way suggested this feature.}. \begin{beispiel} \cmpdsetup{list-input-sep=;} \cmpd{1,3-dichlorocyclohexanole} \end{beispiel} \subsubsection{Lists -- output}\label{sssec:list-output-sep}\index{Separators!lists!output} -You can change the separator symbol with which lists are printed as well. \chemnum -uses the comma for both cases in the default setting. +You can change the separator symbol with which lists are printed as +well. \chemnum uses the comma for both cases in the default setting. \begin{beschreibung} - \option{list-output-sep}{<separator>} Default = \code{,} - \option{sub-output-sep}{<separator>} Default = \code{,} + \Option{list-output-sep}{<separator>}\Default{,} + Separator between main labels in the output of a list. + \Option{sub-output-sep}{<separator>}\Default{,} + Separator between sublabels in the output of a sublist. \end{beschreibung} \begin{beispiel} \cmpd{a, b, f.two, k}\\ % default @@ -1043,11 +1169,13 @@ uses the comma for both cases in the default setting. \end{beispiel} \subsubsection{Lists -- last separator}\label{sssec:last-sep}\index{Separators!list!last seperator} -The last separator in the main label list is a special case. \chemnum provides -two options with which it can be customized. +The last separator in the main label list is a special case. \chemnum +provides two options with which it can be customized. \begin{beschreibung} - \Option{list-last-sep}{<separator>} - \option{list-lang}{US/GB/DE/FR/ES/IT} Default = \code{US} + \Option{list-last-sep}{<separator>}\Default{} + The separator between the last two labels in the output of a list. + \Option{list-lang}{US|GB|DE|FR|ES|IT}\Default{US} + The language setting for a list. \end{beschreibung} \begin{beispiel} @@ -1058,11 +1186,12 @@ two options with which it can be customized. \cmpd[list-lang = ES]{a, b, f.two, k} \cmpd[list-lang = ES]{a, b}\\ \cmpd[list-lang = IT]{a, b, f.two, k} \cmpd[list-lang = IT]{a, b} \end{beispiel} -As you can see the language \key{list-lang}{US} uses the Harvard comma, all other -languages don't. You'll find more on language support and the Harvard comma in -section~\ref{sec:language_support}. +As you can see the language \key{list-lang}{US} uses the Harvard comma, all +other languages don't. You'll find more on language support and the Harvard +comma in section~\ref{sec:language_support}. -With the key \key{list-last-sep} you also can set the last separator individually. +With the key \key{list-last-sep} you also can set the last separator +individually. \begin{beispiel} \cmpdsetup{list-lang = GB}% \cmpd[list-last-sep = {and also}]{a, b, f.two, k}\\ @@ -1071,8 +1200,8 @@ With the key \key{list-last-sep} you also can set the last separator individuall \cmpd[list-last-sep = empty]{a, b, f.two, k} \end{beispiel} -\key{list-last-sep}{empty} is a special value. If it is used, the separator set -with \key{list-output-sep} is used for the whole list. +\key{list-last-sep}{empty} is a special value. If it is used, the separator +set with \key{list-output-sep} is used for the whole list. \begin{beispiel} \cmpdsetup{list-last-sep = empty}% \cmpd{a, b, f.two, k}\\ @@ -1080,14 +1209,16 @@ with \key{list-output-sep} is used for the whole list. \cmpd[list-output-sep = {\ und}]{a, b, f.two, k} \end{beispiel} -\subsubsection{\code{\textbackslash\textcolor{code}{cmpdinit}} -- input}\label{sssec:init-input-sep}\index{Separators!cmpdinit@\textcolor{code}{\code{\textbackslash cmpdinit}}} -When you've changed the separator for \cmd{cmpd} you might want to change it for -\cmd{cmpdinit} as well. \chemnum uses the comma in the default setting. You can -change that as you like. Sie können aber eine beliebige andere Eingabe wählen. -Tokens you \emph{can't use} are \verb=%=, \verb=,= and \verb=#= and \emph{you -shouldn't} use \verb=@=. +\subsubsection{\cmd*{cmpdinit} -- input}\label{sssec:init-input-sep} +\index{Separators!cmpdinit@\textcolor{code}{\code{\textbackslash cmpdinit}}} + +When you've changed the separator for \cmd{cmpd} you might want to change it +for \cmd{cmpdinit} as well. \chemnum uses the comma in the default setting. +You can change that as you like. Tokens you \emph{can't use} are +\verb=%=, \verb=,= and \verb=#= and \emph{you shouldn't} use \verb=@=. \begin{beschreibung} - \option{init-input-sep}{<separator>} Default = \code{,} + \Option{init-input-sep}{<separator>}\Default{,} + The separator for the input of labels in \cmd{cmpdinit}. \end{beschreibung} \subsubsection{An example}\label{sssec:input-sep-bsp} @@ -1105,10 +1236,10 @@ A small example how a customized input could look like: \section{Language support}\label{sec:language_support}\secidx{Language support} \subsection{Cooperation with \textsf{babel}} -\chemnum supports the language choice made with the \paket{babel} package for a -number of languages. This is done with the \verb=\GetTranslation= command of the -\paket*{translations}\footnote{\paket*{translations} is part of the -\paket*{exsheets} bundle.} package. +\chemnum supports the language choice made with the \paket{babel} package for +a number of languages. This is done with the \verb=\GetTranslation= command +of the \paket*{translations}\footnote{\paket*{translations} is part of the + \paket*{exsheets} bundle.} package. \begin{beispiel} \selectlanguage{ngerman}DE: \cmpd{r,s,t}\\ @@ -1120,37 +1251,40 @@ number of languages. This is done with the \verb=\GetTranslation= command of the \selectlanguage{italian}IT: \cmpd{r,s,t} \end{beispiel} If you find a language missing, please send me an -email\footnote{\href{mailto:contact@mychemistry.eu}{contatc@mychemistry.eu}} with -the corresponding \textsf{babel} option and the right translation, and I will -gladly add it. +email\footnote{\href{mailto:contact@mychemistry.eu}{contatc@mychemistry.eu}} +with the corresponding \textsf{babel} option and the right translation, and I +will gladly add it. \subsection{Harvard comma}\label{ssec:harvard-comma}\secidx{Harvard comma} -In American English the so-called Harvard comma is quite commonly used. In British -English and other European languages it is rather uncommon. +In American English the so-called Harvard comma is quite commonly used. In +British English and other European languages it is rather uncommon. \begin{zitat}[\href{http://en.wikipedia.org/wiki/Serial_comma}{Wikipedia}, 2011/11/07] - The serial comma (also known as the Oxford comma or Harvard comma, and sometimes - referred to as the series comma) is the comma used immediately before a coordinating - conjunction (usually and or or, and sometimes nor) preceding the final item in a - list of three or more items. For example, a list of three countries can be - punctuated as either ``Portugal, Spain, and France'' (with the serial comma) or as - ``Portugal, Spain and France'' (without the serial comma). - - Opinions vary among writers and editors on the usage or avoidance of the serial - comma. In American English, the serial comma is standard usage in non-journalistic - writing that follows the \name{Chicago Manual of Style}. Journalists, however, - usually follow the AP Stylebook, which advises against it. It is used less often - in British English, where it is standard usage to leave it out, with some notable - exceptions such as \name{Fowler's Modern English Usage}. In many languages (e.g., - French, German, Italian, Polish, Spanish), the serial comma is not the norm and - may even go against punctuation rules. It may be recommended in many cases, - however, to avoid ambiguity or to aid prosody. + The serial comma (also known as the Oxford comma or Harvard comma, and + sometimes referred to as the series comma) is the comma used immediately + before a coordinating conjunction (usually and or or, and sometimes nor) + preceding the final item in a list of three or more items. For example, a + list of three countries can be punctuated as either ``Portugal, Spain, and + France'' (with the serial comma) or as ``Portugal, Spain and France'' + (without the serial comma). + + Opinions vary among writers and editors on the usage or avoidance of the + serial comma. In American English, the serial comma is standard usage in + non-journalistic writing that follows the \name{Chicago Manual of Style}. + Journalists, however, usually follow the AP Stylebook, which advises against + it. It is used less often in British English, where it is standard usage to + leave it out, with some notable exceptions such as \name{Fowler's Modern + English Usage}. In many languages (e.g., French, German, Italian, Polish, + Spanish), the serial comma is not the norm and may even go against + punctuation rules. It may be recommended in many cases, however, to avoid + ambiguity or to aid prosody. \end{zitat} -\chemnum uses the Harvard comma when American English is used and doesn't, when -other languages are used. However, you have the possibility to disable or enable -the Harvard comma as you wish: +\chemnum uses the Harvard comma when American English is used and doesn't, +when other languages are used. However, you have the possibility to disable +or enable the Harvard comma as you wish: \begin{beschreibung} - \Option{list-serial-comma}{\default{true}/false} + \Option{list-serial-comma}{\default{true}|false}\Default{true} + (De-) Activate the serial comma. \end{beschreibung} \begin{beispiel} @@ -1158,8 +1292,8 @@ the Harvard comma as you wish: \selectlanguage{american}US: \cmpd[list-serial-comma=false]{r,s,t} vs. \cmpd{r,s,t} \end{beispiel} If you choose the language manually, please note that this resets the default -behaviour for that language. This means you have to use \key{list-serial-comma} -\emph{after} \key{list-lang}. +behaviour for that language. This means you have to use +\key{list-serial-comma} \emph{after} \key{list-lang}. \begin{beispiel} wrong: \cmpdsetup{list-serial-comma=false, list-lang=US}\cmpd{r,s,t}\\ right: \cmpdsetup{list-lang=US, list-serial-comma=false}\cmpd{r,s,t} @@ -1255,11 +1389,16 @@ listed. \appendix \addsec{Credits} -I would like to thank Joseph \name{Wright} and Russell \name{Hewitt} who provided -me with valuable feedback and suggestions to improve \chemnum. +I would like to thank Joseph \name{Wright} and Russell \name{Hewitt} who +provided me with valuable feedback and suggestions to improve \chemnum. -Many thanks also to Jonas \name{Rivetti} who provided the Italian translation. +Many thanks also to Jonas \name{Rivetti} who provided the Italian +translation. +\indexprologue{% + Section headings are typeset \textbf{bold}, packages \textsf{sans serif}, + commands \textcolor{code}{brown}, and options \textcolor{key}{yellow}.% +} \printindex -\end{document}
\ No newline at end of file +\end{document} diff --git a/Master/texmf-dist/doc/latex/chemnum/chemnum_it.pdf b/Master/texmf-dist/doc/latex/chemnum/chemnum_it.pdf Binary files differdeleted file mode 100644 index d6c315c197f..00000000000 --- a/Master/texmf-dist/doc/latex/chemnum/chemnum_it.pdf +++ /dev/null diff --git a/Master/texmf-dist/doc/latex/chemnum/chemnum_it.tex b/Master/texmf-dist/doc/latex/chemnum/chemnum_it.tex deleted file mode 100644 index 8b40798cd1a..00000000000 --- a/Master/texmf-dist/doc/latex/chemnum/chemnum_it.tex +++ /dev/null @@ -1,1337 +0,0 @@ -% arara: pdflatex: { shell: on } -% arara: makeindex: { sort: true, style: chemnum_de.ist } -% arara: pdflatex: { shell: on } -% arara: pdflatex: { shell: on } -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% - chemnum - chemnum_it.tex -% - a comprehensive approach for the numbering of chemical compounds -% ----------------------------------------------------------------------------- -% - Clemens NIEDERBERGER -% - -% - contact@mychemistry.eu -% ----------------------------------------------------------------------------- -% - If you have any ideas, questions, suggestions or bugs to report, please -% - feel free to contact me. -% ----------------------------------------------------------------------------- -% - Copyright 2011-2013 Clemens Niederberger -% - -% - This work may be distributed and/or modified under the -% - conditions of the LaTeX Project Public License, either version 1.3 -% - of this license or (at your option) any later version. -% - The latest version of this license is in -% - http://www.latex-project.org/lppl.txt -% - and version 1.3 or later is part of all distributions of LaTeX -% - version 2005/12/01 or later. -% - -% - This work has the LPPL maintenance status `maintained'. -% - -% - The Current Maintainer of this work is Clemens Niederberger. -% - -% - This work consists of the files -% - chemnum.sty, chemnum_de.tex, chemnum_en.tex, chemnum_it.tex -% - scheme-tmp.ps, scheme-bla.ps, -% - README -% - chemnum_de.pdf, chemnum_en.pdf, chemnum_it.pdf -% - -% - in order to compile this document you need the class `cnpkgdoc' with is -% - available under the LPPL here: https://bitbucket.org/cgnieder/cnpkgdoc/ -% - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\RequirePackage[german,naustrian,austrian,english,british,american,canadian,frenchb, - canadien,spanish,ngerman,italian]{babel} -\RequirePackage[textgreek=artemisia]{chemnum} -\documentclass[DIV11,toc=index]{cnpkgdoc} -\docsetup{ - pkg = chemnum, - language = it, - code-box = {skipabove=1ex,skipbelow=1ex} -} -\usepackage{fnpct} -\addcmds{ - @m,arrow,bf, - ch,chemfig,chemname,cmpd,cmpdinit,cmpdref,cmpdreset,cmpdsetup, - CNlabel,CNlabelnoref,CNref,CNlabelsub,CNlabelsubnoref,CNrefsub, - color,compound,compoundprefix,compoundsuffix, - declarecompound,fcite,GetTranslation, - includegraphics,midrule,penalty,psfrag,renewcommand, - schemename,schemestart, - schemestop,selectlanguage,setarrowoffset,setatomsep,setcompoundsep, - setdoublesep,section,sf,subsection,subsubsection, - tableofcontents,texorpdfstring,textcolor,theffbibliography, - uline -} - -\usepackage{textcomp,longtable,tabu,booktabs,chemscheme,hologo} -\usepackage[iupac=strict]{chemmacros} -\chemsetup[chemformula]{format=\libertineLF} -\usepackage{chemfig} -\usepackage[runs=2]{auto-pst-pdf} - -\usepackage{filecontents} -\begin{filecontents*}{\jobname.ist} - preamble "\\begin{theindex}\n I titoli di paragrafo sono resi in \\textbf{nero}, - i pacchetti \\textsf{senza grazie}, i comandi in \\textcolor{code}{marrone} e - le chiavi in \\textcolor{key}{verde}.\\newline\n\n" - heading_prefix "{\\bfseries " - heading_suffix "\\hfil}\\nopagebreak\n" %FIXME? hfil oder hfill? spielt keine große Rolle wenn \hfil funktioniert - headings_flag 1 - delim_0 "\\dotfill " - delim_1 "\\dotfill " - delim_2 "\\dotfill " - delim_r "--" - suffix_2p "\\nohyperpage{\\,s.}" - suffix_3p "\\nohyperpage{\\,ss.}" -\end{filecontents*} - -\let\prog\textsc -\let\name\textsc -\let\CNversion\cnpkgdocpkgversion -\let\CNdate\cnpkgdocpkgdate - -\cmpdinit*{a,aa,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,benzene,r,s,t,{1,3-dichlorocyclohexanole}} - -\TitlePicture{% - \selectlanguage{ngerman} - \cmpdinit*{glucose.alpha, glucose.beta, glucose.chain} - \cmpd*[sub-counter = greek]{glucose.alpha, glucose.beta}\cmpd*{glucose.chain} - \setatomsep{2em} - \definesubmol{x}{(-[4]H)(-[0]OH)} - \definesubmol{y}{(-[0]H)(-[4]HO)} - \begin{scheme}[h] - \centering\small - \schemestart - \chemfig{?(-[:-170]HO)-[:-50](-[:170]HO)-[:10](-[:-55,0.7]OH)-[:-10](-[6,0.8]OH)-[:130]O-[:-170]?(-[:150,0.7]-[2,0.7]OH)} - \arrow(alpha--chain){<=>} - \chemfig{[2]OH-[3]-!x-!x-!y-!x-=[1]O} - \arrow(--beta){<=>} - \chemfig{?(-[:-170]HO)-[:-50](-[:170]HO)-[:10](-[:-55,0.7]OH)-[:-10](-[:10]OH)(-[6,,,,draw=none]\vphantom{OH})-[:130]O-[:-170]?(-[:150,0.7]-[2,0.7]OH)} - \arrow(@chain--chainlabel){0}[-90,.2] \normalsize\cmpd[cmpd-delim]{glucose.chain} - \arrow(@chainlabel--){0}[,2.5] \normalsize\cmpd[cmpd-delim]{glucose.beta} - \arrow(@chainlabel--){0}[180,2.3] \normalsize\cmpd[cmpd-delim]{glucose.alpha} - \schemestop - \caption{L'anomero \a{} e l'anomero \b{} del \D-glucosio - \cmpd[list-delim,list-lang=IT]{glucose.alpha,glucose.beta} in soluzione sono - in equilibrio attraverso la forma a catena aperta \cmpd[cmpd-delim]{glucose.chain}.} - \end{scheme}} - -\newcommand{\pes}{p.\,es.\ } - -\makeindex -\begin{document} -\selectlanguage{italian}\cmpdreset - -\section{Un Leggimi molto breve} -\chemnum \CNversion\ è pubblicato sotto la \LaTeX{} Project Public License -versione~1.3 o successive. (\url{http://www.latex-project.org/lppl.txt}) - -Internamente \chemnum richiama i pacchetti \paket*{expl3} e \paket{xparse}. -\paket{xparse} fa parte del bundle \paket{l3packages}, \paket*{expl3} fa parte -del bundle \paket{l3kernel}; ciò significa che \chemnum richiede il supporto di -\LaTeX3. - -\chemnum richiede inoltre i pacchetti \paket{etoolbox} e \paket{psfrag} e a -seconda delle opzioni globali di pacchetto\footnote{d'ora in poi chiamate -<<opzioni globali>>} impostate alternativamente uno tra i pacchetti -\paket{textgreek} o \paket{bm} (vedi il paragrafo~\ref{sec:package:options}). - -\section{Novità e le mie scuse} -\subsection{Versione 0.4} -Con l'aggiornamento alla v0.4 vi sono stati alcuni cambiamenti riguardanti le -opzioni. Se ne sono aggiunte alcune nuove, e alcune delle preesistenti hanno -variato nome: ho riassegnato dei nomi tra di loro più consistenti, che a mio -parere rispecchiano la loro funzione in modo più intuitivo. Per questo motivo -può accadere che alcuni documenti creati con una versione precedente di \chemnum -non si lascino più compilare correttamente; di questo vorrei scusarmi. \chemnum -si trova ancora in fase di sviluppo; quando sarà raggiunta la v1.0, non avverranno -più\footnote{o solo in casi eccezionali} cambiamenti di questo tipo. - -Le opzioni seguenti hanno dei nomi nuovi: -\begin{center} - \begin{tabular}{ll}\toprule - \bfseries nome vecchio & \bfseries nome nuovo \\\midrule - \key{cmpd-sep} & \key{sub-output-sep} \\ - \key{sub-marker} & \key{sub-input-sep} \\ - \key{sub-range-sep} & \key{subrange-output-sep} \\ - \key{sub-range-marker} & \key{subrange-input-sep} \\ - \key{strict} & \key{init-strict} \\ - \key{sub-init} & \key{init-sub} \\\bottomrule - \end{tabular} -\end{center} -Queste opzioni sono nuove: -\begin{center} - \begin{tabular}{ll}\toprule - \bfseries opzione & \bfseries descrizione \\\midrule - \key{sublist-output-sep} & Simboli di elenco nelle etichette come - \cmpd{bsp.{one,two}}, vedi a pagina~\pageref{sssec:list-output-sep}. \\ - \key{sublist-input-sep} & Input di etichette come \cmpd{bsp.{one,two}}, vedi - a pagina~\pageref{sssec:list-input-sep}. \\ - \key{init-input-sep} & Input con \cmd{cmpdinit}, vedi a - pagina~\pageref{sssec:init-input-sep}. \\ - \key{hyper-use} & Impiego di hyperlink, vedi a pagina~\pageref{sec:hyperref}. \\ - \key{hyper-target} & \\ - \key{hyper-link} & \\ - \key{ref-style} & Rappresentazione delle etichette con \cmd{cmpdref}, - vedi le pagine~\pageref{ssec:cmpdref} e~\pageref{ssec:schriftstil}. \\\bottomrule - \end{tabular} -\end{center} - -È nuovo anche il modo di inserire elenchi e intervalli di subetichette; per questo -motivo l'opzione \key{sub-list} scompare. Per i dettagli si veda il -paragrafo~\ref{ssec:sub_ranges}. - -Inoltre è possibile generare dei collegamenti ipertestuali alle etichette, ammesso -che venga caricato \paket{hyperref} (vedi il paragrafo~\ref{sec:hyperref}). - -\subsection{Versione 0.5} -Dalla v0.5 esiste l'opzione \key{ref-pos} che permette di modificare le opzioni -di posizionamento del comando \cmd{psfrag}, utilizzato internamente da -\cmd{cmpdref} (vedi a pagina~\pageref{ssec:marker_in_bildern}). - -\achtung{L'ordine degli argomenti opzionali del comando \cmd{cmpdref} è variato -(vedi a pagina~\pageref{ssec:cmpdref}!} - -\section{Opzioni globali}\label{sec:package:options}\secidx{opzioni globali} -\chemnum ha un'opzione globale -\begin{beschreibung} - \Option{textgreek}{artemisia/\default{cbgreek}/euler/false} Default: \code{false} -\end{beschreibung} -Con questa opzione si può selezionare uno dei tre stili del pacchetto -\paket{textgreek}\footnote{Per i dettagli si rimanda alla documentazione del -pacchetto \paket*{textgreek}.} o caricare \chemnum senza \paket{textgreek}. -Questo documento è stato compilato con \verb+\usepackage[textgreek=artemisia]{chemnum}+. -\secidx*{opzioni globali} - -\section{Motivazione} -Finora per la numerazione di composti era possibile impiegare tre pacchetti (di -mia conoscenza), ciascuno con i suoi difetti e le sue debolezze. - -Il primo, \paket{chemcono}, a questo scopo ridefinisce comandi bibliografici; i -composti debbono essere definiti in una sorta di elenco di letteratura, alla quale -si può fare riferimento nel testo. Dato che la ``biblioteca di composti'' viene -sempre stampata, l'autore del pacchetto suggerisce il seguente: -\begin{zitat}[Stefan Schulz] - After compilation and printout, discard the last page. -\end{zitat} -Ovviamente non si tratta di una soluzione ottimale. - -Il secondo, \paket{chemcompounds}, è stato creato perché l'autore del pacchetto -voleva fare a meno dei difetti di \paket{chemcono}. Creando il pacchetto si è -attenuto allo stesso meccanismo fondamentale di \paket{chemcono}. -\begin{zitat}[Stephan Schenk] - When taking a closer look at the chemcono package, I realised that the only - thing one has to do is to get rid of everything which produces text. Thus, as a - basis I used the mechanism of \verb=\bibitem= and \verb=\cite= in pretty much - the same way as \paket{chemcono} does by extracting the corresponding code from - \verb=article.cls= and \verb=latex.ltx= but deleting any unnecessary commands - producing output. I also introduced several lines of code to make the printing - of the compound names more customisable. -\end{zitat} -Anche questo pacchetto ha le sue debolezze: -\begin{enumerate} - \item I composti solitamente devono essere dichiarati con \verb=\declarecompound=, - certamente se si vogliono etichette del tipo di \cmpd{bsp.one}; in questo caso - è necessario impostare manualmente le etichette, cosa che fa perdere il senso - di una numerazione automatica. - \item Il layout non può essere adattato invidualmente, bensì solo globalmente - per tutte le etichette. - \item La numerazione non può essere azzerata. Sebbene nella maggioranza dei casi - ciò \emph{non è né necessario né consigliabile}, possono esserci dei casi - particolari in cui si desidera un comportamento di questo tipo. - \item Un elenco di più composti \verb=\compound{a,b,c}= non può essere adattata - o solo con grande difficoltà. -\end{enumerate} - -Esiste inoltre \paket{bpchem}, che fornisce comandi simili a \verb=\label= e -\verb=\ref=: \verb=\CNlabel{}=, \verb=\CNlabelnoref{}= e \verb=\CNref{}=. Inoltre -aggiunge dei comandi per le subetichette: \verb=\CNlabelsub{}{}=, -\verb=\CNlabelsubnoref{}{}= e \verb=\CNrefsub{}{}=. È quindi più flessibile degli -altri; tuttavia non fornisce quasi nessuna modalità di personalizzazione, non -permette gli elenchi e la presenza di comandi diversi per etichette ed etichette -con subetichette non è una soluzione ottimale. - -\chemnum cerca di superare queste debolezze, e per questa ragione tutti i comandi -sono stati interamente riscritti. Sono state tuttavia adottate alcune idee di -\paket{chemcompounds} per le possibilità di rappresentazione, come i delimitatori -ecc. % FIXME: DEFINIERE \ecc ! \newcommand{\ecc}{ecc.\ } -% Wenn es Deiner Meinung nach sinnvoll ist, \ecc zu definieren, füge es einfach -% ein - -Se vi dovessero mancare alcune funzionalità, vi prego di comunicarmelo inviandomi -un'e-mail. - -\section{Numerare i composti}\label{sec:nummerieren} -\subsection{Comando di base}\secidx{comando di base}\cmpdreset -Il comando fondamentale del pacchetto è -\begin{beschreibung} - \Befehl{cmpd}{<label name>} -\end{beschreibung} -Alla primo richiamo con \code{<label name>} l'etichetta viene generata e salvata -(= dichiarata) e restituita. Ad ogni successiva chiamata viene impiegata questa -etichetta. - -\begin{beispiel} - I composti \cmpd{a} e \cmpd{b} vengono dichiarati e d'ora in poi - possono essere richiamati in qualunque momento: \cmpd{a}. Non \`e - necessaria nessuna dichiarazione precedente. I composti come \cmpd{c} - vengono numerati nell'ordine della loro prima comparsa nel testo.\par - Ancora una volta: \cmpd{b}, \cmpd{a}, \cmpd{c}. -\end{beispiel} - -Quando dovesse essere necessario dichiarare un composto senza restituirne -l'etichetta nel testo, nel punto corrispondente si può usare -\begin{beschreibung} - \Befehl[cmpda]{cmpd*}\ma{<label name>}\label{cmd:unsichtbares_label} -\end{beschreibung} -In questo modo viene dichiarata un'etichetta invisibile che non viene restituita. - -\achtung{Questo comando non è necessario quando si impiega \cmd{cmpdinit} (vedi -paragrafo~\ref{sec:cmpdinit}, a pagina~\pageref{sec:cmpdinit}ss).} - -\begin{beispiel} - La versione nascosta \cmpd*{d} genera l'etichetta senza restituirla. - Il prossimo \cmpd{e} prosegue con la numerazione. Attraverso \cmpd{d} - \`e possibile richiamare l'etichetta invisibile generata. -\end{beispiel} - -Come nomi delle etichette è possibile utilizzare un testo arbitrario, ad eccezione -dei simboli usati come separatori (vedi i sottoparagrafi~\ref{ssec:unterlabel}, -\ref{ssec:listen}, \ref{ssec:sub_ranges} e~\ref{ssec:trenner}). Si consiglia di -non utilizzare spazi all'interno dell'etichetta: questo non genera degli errori, -ma potrebbe assegnare lo stesso numero ad etichette diverse. - -\lstset{showspaces=true} -\begin{beispiel} - \cmpd{aa }, \cmpd{a a }, \cmpd{a a}, \cmpd{ a a}, \cmpd{ aa} e - \cmpd{ aa } generano tutti la stessa etichetta; come anche \cmpd{aa }, - \cmpd{a a}, \cmpd{ aa} e \cmpd{aa}. -\end{beispiel} -\lstset{showspaces=false}\secidx*{comando di base} - -\subsection{Subetichette}\label{ssec:unterlabel}\secidx{subetichette} -Quando si vogliono usare etichette con la forma \cmpd{a.one} lo si può ottenere -con la sintassi seguente: -\begin{beschreibung} - \Befehl{cmpd}{<label name>.<subname>} -\end{beschreibung} -\code{<label name>} deve rimanere invariato, mentre \code{<subname>} cambia. Questa -sintassi significa che il punto \code{.} non deve fare parte né di \code{<label name>} -né di \code{<subname>}. Al posto del punto è possibile utilizzare anche un separatore -diverso (vedi il sottosottoparagrafo~\ref{sssec:sub-input-sep}). -\begin{beispiel} - \cmpd{f.one} e \cmpd{f.two} sono tra loro molto simili, altrettanto - vale per \cmpd{g.one} e \cmpd{g.two}. Naturalmente l'etichetta rimane - uguale anche se richiamata pi\`u avanti: \cmpd{g.two} e \cmpd{f.one}. -\end{beispiel} - -Questa sintassi funziona anche se il nome principale è stato già assegnato. -\begin{beispiel} - \cmpd{a} e le sue varianti \cmpd{a.one} e \cmpd{a.two} -\end{beispiel} - -Può anche essere richiamato individualmente il nome principale di etichette -assegnate in modo combinato. -\begin{beispiel} - \cmpd{f} und \cmpd{g} -\end{beispiel} - -Come generare un'etichetta del tipo di \cmpd{f.{one,two}} viene spiegato nel -sottoparagrafo~\ref{ssec:sub_ranges}. -\secidx*{subetichette} - -\subsection{Elenchi}\label{ssec:listen}\secidx{elenchi} -In realtà il comando non è stato descritto copmletamente; difatti può essere -utilizzato anche per più di un'etichetta per volta. - -La descrizione corretta del comando dovrebbe essere quindi: -\begin{beschreibung} - \Befehl{cmpd}{<(possibly comma separated list of) label name(s)>} -\end{beschreibung} -Questo significa che predefinitamente la virgola non può fare parte del nome -dell'etichetta, se non nascosta tra parentesi graffe. Ciò può essere modificato -(vedi sottosottoparagrafo~\ref{sssec:list-input-sep} a -pagina~\pageref{sssec:list-input-sep}). - -\begin{beispiel} - Pi\`u etichette possono essere inseriti separati da virgole. In questo caso viene - restituita un elenco come \cmpd{a, b, c, e, g.two}. -\end{beispiel} -\secidx*{elenchi} - -\subsection{Elenchi e intervalli di subetichette}\label{ssec:sub_ranges}\index{subetichette!elenchi}\index{subetichette!intervalli} -Talvolta può risultare utile o desiderabile riportare un'etichetta con un -intervallo di subetichette. Supponiamo di avere i composti -\cmpd{q.one,q.two,q.three,q.four,q.five}, che si distinguono \pes attraverso i -sostituenti. Talvolta si desidera riferirsi a tutti i composti: \cmpd[cmpd-all]{q}. - -Il principio è abbastanza intuitivo -- basta indicare un elenco di subetichette: -\begin{beispiel} - elenco di subetichette: \cmpd{q.one, q.two, q.three, q.four, q.five}\\ - etichetta con elenco di subetichette: \cmpd{q.{one,two,three,four,five}} -\end{beispiel} -Dato che il subelenco per impostazione predefinita viene inserito con una virgola, -è necessario indicare il subelenco tra parentesi graffe. - -In questo modo è possibile rappresentare anche intervalli di subetichette. Come -marcatore tra i nomi delle subetichette vengono impiegati due punti \verb=..= . -\begin{beispiel} - \cmpd{q.{two..four}}\\ - \cmpd{q.{one,three..five}}\\ - \cmpd{q.{one..three,five}} -\end{beispiel} - -Come impostazione predefinita nell'input dei nomi di subetichette non sono disponibili -né la virgola ne i due punti consecutivi. Per poterli impiegare nuovamente, utilizzando -altri simboli come marcatori, si rimanda ai sottosottoparagrafi~\ref{sssec:range-input-sep} -e~\ref{sssec:list-input-sep}. Nel sottoparagrafo~\ref{sssec:input-sep-bsp} è -mostrato un esempio per un possibile input alternativo. - -\chemnum fornisce un'opzione (vedi il paragrafo~\ref{sec:cmpdsetup} per ulteriori -spiegazioni) con cui restituire tutte le subetichette come intervallo: -\begin{beschreibung} - \Option{cmpd-all}{\default{true}/false} -\end{beschreibung} -\begin{beispiel} - \cmpd[cmpd-all]{q} -\end{beispiel} - -Affinché la chiave utilizzi le subetichette corrette, queste devono essere state -dichiarate. Per questa ragione sono letti dal file \verb=\jobname.cmpd= (supponendo -che il file sorgente abbia il nome \verb=\jobname.tex=). Ciò significa che è -necessario compilare due (o più) volte il codice per rendere correttamente tutte -le etichette. - -Quando si impiegano etichette con intervalli di subetichette, talvolta si desidera -restituire \emph{solo} la subetichetta in un altro punto. È possibile realizzarlo -con la seguente opzione: -\begin{beschreibung} - \Option{sub-only}{\default{true}/false} -\end{beschreibung} -\begin{beispiel} - % use packages `chemfig', `chemmacros' and `booktabs' - \cmpd*{benzene.H,benzene.Me,benzene.OH,benzene.NH2} - \chemname{\chemfig{*6(=-=-(-R)=-)}}{\cmpd[cmpd-all]{benzene}} - \begin{tabular}{lll} - & \ch{-R} & nome \\\midrule - \cmpd[sub-only]{benzene.H} & \ch{-H} & benzene\\ - \cmpd[sub-only]{benzene.Me} & \ch{-CH3} & toluene\\ - \cmpd[sub-only]{benzene.OH} & \ch{-OH} & fenolo\\ - \cmpd[sub-only]{benzene.NH2} & \ch{-NH2} & anilina - \end{tabular} -\end{beispiel} - -Gli intervalli di subetichette richiedono una certa cura. Per prima cosa bisogna -sapere esattamente quale etichetta è la minore e quale la maggiore; e come seconda -cosa, quali etichette si trovano in un intervallo contenuto fra gli estremi. -\chemnum non è in grado di sostituire questa cura; per questa ragione può -succedere di ottenere etichette come le seguenti, se non si presta attenzione: -\begin{beispiel} - \cmpd{q.{five..three}} or \cmpd{q.{three,one,four}}. -\end{beispiel} - -\section{Inizializzare le etichette centralmente}\label{sec:cmpdinit}\secidx{inizializzare le etichette} -I comandi descritti in questo paragrafo non sono necessari per l'impiego di -\chemnum, ma mettono a disposizione delle funzioni che potrebbero risultare utili -a qualche utente. - -\subsection{Utilizzo} -\subsubsection{Etichette principali} -Forse all'utente mancherà il comando \verb=\declarecompound= di \paket{chemcompounds}; -questo permette di avere una panoramica iniziale dei nomi già impiegati, e in -determinate circostanze genera messaggi di errore quando vengono impostate delle -etichette sbagliate\footnote{\pes per un errore di battitura}. Questo comportamento -può essere ottenuto con i seguenti comandi. -\begin{beschreibung} - \Befehl{cmpdinit}{<comma separated list of label names>} - \Befehl[cmpdinita]{cmpdinit*}{<comma separated list of label names>} -\end{beschreibung} -Tutti i composti che non vengono definiti all'interno di questo comando, sono -inizializzati \emph{nell'ordine in cui compaiono}. Impiegando un'etichetta non -presente nell'elenco si ottiene un messaggio di avviso. - -\cmpdreset -\begin{beispiel} - \cmpdinit{A, B, C} \cmpd{B} \cmpd{A.a} \cmpd{C} \cmpd{D} -\end{beispiel} - -\begin{mdframed} - \small\ttfamily\noindent - {}*************************************************\\ - {}* chemnum warning: "cmpd-init"\\ - {}* \\ - {}* You used \verb=\cmpdinit= but didn't initiate compound "D"{} on line 1.\\ - {}************************************************* -\end{mdframed} - -Nota bene: nel caso vi siano etichette con subetichette è possibile e indicato -inizializzare \emph{solo il nome principale}. In questo modo vengono inizializzati -\emph{tutti} i composti con lo stesso nome principale. - -\cmd[cmpdinita]{cmpdinit*} restituisce lo stesso messaggio d'errore, tuttavia non -assegna ancora i numeri, che vengono assegnati solo nel corso del testo e -nell'ordine di comparsa. - -\cmpdreset -\begin{beispiel} - \cmpdinit*{X, Y, Z} \cmpd{Y} \cmpd{X.x} \cmpd{Z} \cmpd{W} -\end{beispiel} - -\begin{mdframed} - \small\ttfamily\noindent - {}*************************************************\\ - {}* chemnum warning: "cmpd-init"\\ - {}* \\ - {}* You used \verb=\cmpdinit= but didn't initiate compound "W"{} on line 1.\\ - {}************************************************* -\end{mdframed} - -Quando si desidera o necessita assegnare delle etichette proprie (vedi a -pagina~\pageref{ssec:own_labels}) e si desidera inizializzare le etichette in modo -completo, si consiglia l'impiego di \cmd[cmpda]{cmpdinit*}, che \emph{non assegna} -etichette nell'inizializzazione. - -Il comando può essere utilizzato più di una volta, con o senza \verb=*=. -Probabilmente ha senso solo un impiego \emph{unico}, magari nel preambolo dopo -il setup di \chemnum (vedi il paragrafo~\ref{sec:cmpdsetup}). - -\subsubsection{Subetichette} -Quando si desidera un avviso aggiuntivo per ogni combinazione etichetta-subetichetta -o si desidera impostare l'ordine in anticipo, si può impiegare -\begin{beschreibung} - \Befehl{cmpdinit}[\key{init-sub}{true}]{<comma separated list of label names>} -\end{beschreibung} -In questo modo si ottiene un avviso anche in questi casi. - -\cmpdreset -\begin{beispiel} - \cmpdinit[init-sub = true]{E.{e,f,g}} - \cmpd{E.e, E.h} -\end{beispiel} - -\begin{mdframed} - \small\ttfamily\noindent - {}*************************************************\\ - {}* chemnum warning: "cmpd-init-sub"\\ - {}* \\ - {}* You used \verb=\cmpdinit= and "{}init-sub = true"{} but didn't initiate sub-compound\\ - {}* "{}E.h"{} on line 1.\\ - {}************************************************* -\end{mdframed} - -\subsection{Errori anziché avvisi} -Quando si desidera un messaggio di errore anziché di un messaggio di avviso, lo -si può realizzare richiamando \cmd{cmpdinit} nel modo seguente: -\begin{beschreibung} - \Befehl{cmpdinit}[\key{init-strict}{true}]{<comma separated list ...>} -\end{beschreibung} -L'impiego di \key{init-strict}{false} corrisponde all'impiego senza argomento -opzionale. Naturalmente l'opzione può essere utilizzata anche nella variante -asteriscata del comando. - -Tramite \key{init-strict}{true} la compilazione con \LaTeX viene interrotta con -il corrispondente messaggio di errore, quando si impiega un'etichetta non -inizializzata. - -Naturalmente si può richiamare \cmd{cmpdinit} anche con entrambe le opzioni -\begin{beschreibung} - \Befehl{cmpdinit}[\key{init-strict}{true}, \key{init-sub}{true}]{<comma separated list ...>} -\end{beschreibung} -oppure utilizzare \cmd{cmpdsetup} (vedi il paragrafo~\ref{sec:cmpdsetup}). - -\subsection{Input personalizzato} -Quando si sono selezionati diversi simboli di input per \key{sub-input-sep} (vedi -a pagina~\pageref{sssec:sub-input-sep}) o \key{sublist-input-sep} (vedi a -pagina~\pageref{sssec:list-input-sep}) questi devono esser impiegati anche con -\key{sub-init}{true}. - -La variazione dell'input di elenchi \key{list-input-sep} (vedi a -pagina~\pageref{sssec:list-input-sep}) non ha effetto su \cmd{cmpdinit}. Se si -desidera modificare l'input anche in quel luogo, si impieghi \key{init-input-sep} -(vedi a pagina~\pageref{sssec:init-input-sep}). - -\subsection{Perché inizializzare?} -Come indicato all'inizio di questo paragrafo, l'inizalizzazione delle etichette -non è necessaria. Vi sono alcuni motivi per cui si può desiderare l'impiego di -\cmd{cmpdinit}. -\begin{enumerate} - \item L'impiego di \cmd[cmpdinita]{cmpdinit*} è una possibilità di mantenere una - panoramica delle etichette impiegate. Si ottiene un avviso o un messaggio di - errore quando un'etichetta preesistente viene scritta in modo errato. A seconda - del numero di etichette impiegate, questo può però portare ad una mole - significativa di lavoro aggiuntivo. - \item L'impiego di \cmd{cmpdinit} raggiunge lo stesso scopo primario di - \cmd[cmpdinita]{cmpdinit*}, ed \emph{inoltre} dichiara le etichette nell'ordine - indicato. In questo modo si rende superfluo l'impiego di \cmd[cmpda]{cmpd*} - (sezione~\ref{cmd:unsichtbares_label}) e \cmd[cmpdb]{cmpd+} - (sezione~\ref{cmd:cmpd_plus}). Si ottiene così un controllo diretto sulla - correlazione tra composto e numero. -\end{enumerate} -\secidx*{inizializzare le etichette} - -\section{Resettare il contatore}\label{sec:cmpdreset}\secidx{resettare il contatore} -Con il seguente comando è possibile resettare il contatore: -\begin{beschreibung} - \Befehl{cmpdreset}[<number>] -\end{beschreibung} -Senza argomento viene impostato a \verb=1= e corrisponde così a \cmd{cmpdreset}[1]. -A differenza della maggior parte degli altri comandi presentati questo comando ha -effetto globalmente, non solo localmente entro un gruppo. -\begin{beispiel} - \cmpdreset I composti adesso vengono contati di nuovo a partire - da 1: \cmpd{h, i, j} -\end{beispiel} - -\achtung{Si consiglia di utilizzare questo comando con molta prudenza! Di norma -non è consigliabile resettare il contatore; composti diversi possono venire -indicati dallo stesso numero!} - -\begin{beispiel} - Stessi numeri: \cmpd{a}, \cmpd{h} -\end{beispiel} -\secidx*{resettare il contatore} - -\section{Impieghi particolari}\secidx{impieghi particolari} -\subsection{Titoli di sezioni} -L'impiego di \cmd{cmpd} in un titolo inizialmente non sembra essere un problema. -Non vi sono errori, e l'output appare come previsto: -\begin{beispiel}[code only] - \section{Compound \cmpd[cmpd-delim]{b}} - \ldots -\end{beispiel} -Quando tuttavia si impiega \verb=\tableofcontents= -- molto probabilmente, come -prevedo --, avviene qualcosa di indesiderato: dato che l'indice generale viene -posto all'inizio del documento, l'etichetta viene dichiarata già alla sua comparsa -nell'indice, anziché nel luogo di prima comparsa nel testo. Vi sono due possibilità -di evitare questo comportamento: -\begin{enumerate} - \item Si dichiarano le etichette nel preambolo con \cmd{cmpdinit}{} (vedi a - pagina~\pageref{sec:cmpdinit}). - \item Si impiega \cmd[cmpdb]{cmpd+} per comporre l'etichetta. In questo modo - l'etichetta viene letta dal file \verb=\jobname.cmpd= (supponendo un nome - principale di \verb=\jobname.tex=); ciò significa che sono necessari - \emph{almeno due}, eventualmente anche più esecuzioni di \LaTeX\ per impostare - correttamente tutte le etichette. -\end{enumerate} -Altrettanto vale anche per qualsiasi lista di argomenti mobili che vengano impiegati -\emph{prima} della comparsa dell'etichetta nel testo. - -Il comando\label{cmd:cmpd_plus} -\begin{beschreibung} - \Befehl[cmpdb]{cmpd+}\ma{<label name>} -\end{beschreibung} -legge il nome dell'etichetta da rendere dal file \verb=\jobname.cmpd=. È in un -certo senso la controparte di \cmd[cmpda]{cmpd*}, dato non si ha una dichiarazione -dell'etichetta ma solo un suo riferimento e la sua resa. Per potere utilizzare -\cmd[cmpdb]{cmpd+}{<label>} è necessario dichiarare \verb=<label>= con -\cmd{cmpd}{<label>} oppure \cmd[cmpda]{cmpd*}{<label>} (prima o dopo). -\cmd[cmpdb]{cmpd+} è utile quando un'etichetta dev'essere impiegata in un argomento -mobile come \verb=\section{}=. - -\achtung{Il comando non è necessario quando viene impiegato \cmd{cmpdinit} (vedi -il paragrafo~\ref{sec:cmpdinit}, pag.\,\pageref{sec:cmpdinit}ss).} - -\begin{beispiel}[code only] - \subsubsection{Titolo di prova con il l'etichetta di composto % - \cmpd+[cmpd-delim]{f.one}} - % con hyperref: - \subsubsection{Titolo di prova con il l'etichetta di composto % - \texorpdfstring{\cmpd+[cmpd-delim]{f.two}}{(7b)}} -\end{beispiel} - -\subsection{Ambienti mobili}\cmpdinit*{float1,float2} -L'impiego di \cmd{cmpd} in ambienti mobili non dovrebbe essere un problema: le -etichette vengono dichiarate nell'ordine di comparsa nel codice, inclusi gli -ambienti mobili. Per andare sul sicuro è comunque possibile utilizzare -\cmd[cmpdb]{cmpd+}. - -\begin{beispiel}[code and float] - % preamble: - % \usepackage{chemscheme} - % \renewcommand*\schemename{Schema} - % document: - \cmpdreset\cmpd{float1, float2}. E ora uno schema: - \begin{scheme}[ht] - \centering - \caption{Questa etichetta dovrebbe essere un 2: \cmpd{float2}} - Se 2 = \cmpd{float2}, allora va tutto bene. - \end{scheme} -\end{beispiel} - -Funziona tutto come desiderato, anche se l'ambiente flottante scivola davanti al -codice del testo, \pes con l'opzione \oa{t}. - -\cmpdinit*{Alc,EtherBr,cpd} -\subsection{Schemi di programmi esterni}\label{ssec:cmpdref}\secidx{schemi di programmi esterni} -Se gli schemi vengono creati con programmi esterni come \pes \prog{ChemDraw} -oppure \prog{Marvin\-Sketch} e si desidera ricorrere anche in questo caso a -\chemnum, lo si può ottenere con -\begin{beschreibung} - \Befehl{cmpdref}[<tag>]\oa{<options>}\ma{<label name>} - \Befehl[cmpdrefa]{cmpdref+}[<tag>]\oa{<options>}\ma{<label name>} -\end{beschreibung} -Questo comando è ispirato a \verb=\schemeref= del pacchetto \paket{chemscheme} e -funziona nello stesso modo: lo schema viene creato e salvato con etichette -temporanee come file \verb=eps=. - -% TODO: übersetzen -Wie bei \cmd{cmpd+} ruft die Plus-Variante lediglich ein Label ab, deklariert -es aber nicht. - -\achtung{Con la v0.5 è cambiato l'ordine degli argomenti opzionali!} -\begin{beispiel}[code and float] - \begin{scheme}[ht] - \centering - \includegraphics{scheme-tmp.ps} - \caption{Schema con marcatori temporanei.} - \end{scheme} - \begin{scheme}[ht] - \centering - \cmpdref{Alc} % sostituisce TMP1 - \cmpdref{EtherBr} % sostituisce TMP2 - % \cmpdref{drittes} sostituirebbe TMP3 - \includegraphics{scheme-tmp.ps} - \caption{Schema con etichette automatizzate.} - \end{scheme} -\end{beispiel} -Nello schema si enumerano le sostanze con \textsf{TMP1}, \textsf{TMP2} ecc. -Questi marcatori vengono poi sostituiti dalle etichette corrispondenti. A questo -scopo come \paket{chemscheme} anche \chemnum impiega il comando \verb=\psfrag= del -pacchetto \paket{psfrag}. Per farlo funzionare è quindi necessario compilare -tramite \prog{latex}, \prog{dvips}, \prog{ps2pdf} o \pes utilizzare il pacchetto -\paket{auto-pst-pdf} insieme a \hologo{pdfLaTeX}. \hologo{XeLaTeX} purtroppo non -funzionerà, e probabilmente nemmeno \hologo{LuaLaTeX}, che tuttavia non è stato -testato. - -In ogni caso è importante che il marcatore sia salvato come \emph{testo} nel file -\verb=eps=. - -Con le opzioni presentate nel paragrafo~\ref{sec:cmpdsetup} è anche possibile -personalizzare le etichette. -\begin{beispiel}[code and float] - \begin{scheme}[ht] - \centering - \cmpdsetup{ref-style=\color{green}} - \cmpdref{Alc} % sostituisce TMP1 - \cmpdref{EtherBr} % sostituisce TMP2 - \includegraphics{scheme-tmp.ps} - \caption{Schema con etichette automatizzate.} - \end{scheme} -\end{beispiel} - -È possibile sostituire anche con del testo arbitrario; a tale proposito esiste il -secondo argomento opzionale. -\begin{beispiel}[code and float] - \begin{scheme}[ht] - \centering - \includegraphics{scheme-bla.ps} - \caption{Schema con marcatori arbitrari.} - \end{scheme} - \begin{scheme}[ht] - \centering - \cmpdref[blah]{Alc} - \cmpdref[blub]{EtherBr} - % \cmpdref{drittes} sostituirebbe TMP1. - \includegraphics{scheme-bla.ps} - \caption{Schema con etichette impostate appositamente.} - \end{scheme} -\end{beispiel} - -Nautralmente l'utilizzo delle subetichette funziona nel modo abituale: -\begin{beispiel}[code and float] - \begin{scheme}[ht] - \centering - \cmpdref{cpd.red} - \cmpdref{cpd.ox} - \includegraphics{scheme-tmp.ps} - \caption{Schema con etichette e subetichette automatizzate.} - \end{scheme} -\end{beispiel} -\secidx*{schemi di programmi esterni}\secidx*{impieghi particolari}\cmpdreset[10] - -\section{Impiego con \textsf{hyperref}}\label{sec:hyperref}\secidx{impiego con \textsf{hyperref}}[impiego con hyperref] -\subsection{Principio di base} -Quando viene caricato il pacchetto \paket{hyperref}, è possibile trasformare le -etichette nel \prog{pdf} in hyperlink cliccabili. -\begin{beschreibung} - \Option{hyper-use}{\default{true}/false} -\end{beschreibung} -Quando questa opzione viene impostata a \texttt{true} (per informazioni ulteriori -confronta il paragrafo~\ref{sec:cmpdsetup}), allora al primo impiego dell'etichetta -si definisce un traguardo, a cui viene creato un collegamento ad ogni impiego -ulteriore. Questo tuttavia funziona solamente finché l'etichetta viene impostata -\emph{senza} elenco o intervallo di subetichette. Anche un'etichetta impostata con -\cmd[cmpda]{cmpd*} non può essere utilizzata come traguardo. - -\begin{beispiel} - \cmpdsetup{hyper-use} - Al primo impiego si stabilisce il traguardo: \cmpd{a.two,b,c,d,e,f}. Al prossimo - impiego viene creato un collegamento: \cmpd{a.two,d,e}. - - Questo funziona solo con le etichette prive senza lista o elenco di subetichette: - \cmpd{a,f.{one,two},c}. Dato che \cmpd{a.two} e \cmpd{a} hanno due significati - diversi, hanno anche traguardi diversi. -\end{beispiel} - -\subsection{Impiego limitato} -L'impiego automatizzato può non essere desiderato; in questo caso forse è sufficiente -definire un riferimento ipertestuale in uno o due punti. Ciò può essere realizzato -con le seguenti chiavi: -\begin{beschreibung} - \Option{hyper-target}{<link name>} - \Option{hyper-link}{<link name>} -\end{beschreibung} -Con \key{hyper-target} si determina un traguardo. \textbf{Nota bene}: impiegando -questa chiave con una lista, allora \emph{ogni} etichetta ottiene lo stesso nome -traguardo e \paket{hyperref} restituisce un avviso del tipo -\begin{mdframed}\ttfamily\small - destination with the same identifier (name\{<link name>\}) has been already - used, duplicate ignored -\end{mdframed} - -Con \key{hyper-link} si può generare un collegamento al traguardo creato. -\textbf{Nota bene}: se questa chiave viene impiegata con un elenco, \emph{ogni} -etichetta indicherà lo stesso traguardo. -\begin{beispiel} - Si imposta un collegamento \cmpd[hyper-link=mylink,cmpd-all]{f} - senza dimenticare il traguardo corrispondente - \cmpd[hyper-target=mylink,cmpd-all]{f}. -\end{beispiel} - -Quando si usa \key{hyper-link} senza avere impostato il \key{hyper-target} -corrispondente, allora \paket{hyperref} restituirà un avviso del tipo -\begin{mdframed}\ttfamily\small - name\{<link name>\} has been referenced but does not exist, replaced by a - fixed one -\end{mdframed} -\secidx*{impiego con \textsf{hyperref}}[impiego con hyperref] - -\section{Personalizzazione}\label{sec:cmpdsetup} -\subsection{Il principio}\label{ssec:prinzip} -La personalizzazione avviene con un sistema del tipo chiave-valore. Le impostazioni -possono essere definite centralmente tramite -\begin{beschreibung} - \Befehl{cmpdsetup}{key1 = value1, key2 = value2} -\end{beschreibung} -oppure localmente sul comando -\begin{beschreibung} - \Befehl{cmpd}[key1 = value1, key2 = value2]{<label name>} -\end{beschreibung} - -Quando si usano delle opzioni \cmd{cmpdsetup}{key1,key2} senza assegnargli un -valore vengono richiamati dei valori di default\label{opt:default}. Questi possono -\emph{non essere} vuoti e \emph{non corrispondere} alla preimpostazione del -pacchetto. - -Le opzioni sono suddivise in diverse classi\label{key_classes} che indicano l'area -di appartenenza. Seguono tutte la forma \verb+<class>-key = <value>+: -\begin{itemize} - \item \code{cmpd}: Le opzioni che iniziano con questo codice hanno effetti - sull'etichetta in genere o quella principale. - \item \code{sub}, \code{sublist}, \code{subref}: Queste opzioni hanno direttamente - a che fare con le subetichette. - \item \code{list}: Queste opzioni influenzano la resa degli elenchi. - \item \code{ref}: Queste opzioni sono riferite particolarmente a \cmd{cmpdref}. - \item \code{hyper}: Queste opzioni sono specifiche per l'uso di \paket{hyperref}. - \item \code{init}: Queste opzioni hanno a che fare con l'inizializzazione delle etichette. -\end{itemize} - -\subsection{Stile di carattere}\label{ssec:schriftstil}\secidx{stile di carattere} -Per variare lo stile con cui sono resi i numeri, vi sono le seguenti opzioni: -\begin{beschreibung} - \Option{cmpd-style}{<style>} - \option{cmpd-weight}{bold/normal} Default = \code{bold} -\end{beschreibung} -Dato che è comune rendere gli schemi con un carattere senza grazie, mentre il -testo viene composto con le grazie, è possibile definire uno stile separato per -\cmd{cmpdref}. Come impostazione predefinita le etichette create con \cmd{cmpdref} -vengono rese con \lstinline+\sffamily+. -\begin{beispiel} - % preamble: - % \usepackage[normalem]{ulem} - % document: - \cmpd{a, b, f.two, k}\\ % default - \cmpd[cmpd-style = \uline]{a, b, f.two, k}\\ % sottolineato - \cmpd{a, b, f.two, k}\\ % nuovamente default - \cmpdsetup{cmpd-style = \itshape\uline} - \cmpd{a, b, f.two, k}\\ % corsivo e sottolineato - \cmpd[cmpd-weight=normal]{a, b, f.two, k} -\end{beispiel} -Che il peso del carattere venga impostato separatamente deriva dalla presenza di -caratteri greci nelle etichette (vedi il paragrafo~\ref{ssec:counter}). A seconda -della rispettiva opzione globale la variazione di peso deve essere realizzata -diversamente. -\secidx*{stile di carattere} - -\subsection{Etichette proprie}\label{ssec:own_labels}\secidx{etichette proprie} -Con l'opzione -\begin{beschreibung} - \Option{cmpd-label}{<label>} -\end{beschreibung} -è possibile impostare etichette proprie. - -\begin{beispiel} - Etichetta propria: \cmpd[cmpd-label = XYZ]{l}, viene attribuita a \emph{tutte - le etichette nuove} di una lista! \cmpd[cmpd-label = XYZ]{l, a, m} -\end{beispiel} -\secidx*{etichette proprie} - -\subsection{Marcatori nelle immagini}\secidx{marcatori nelle immagini}\label{ssec:marker_in_bildern} -Vi sono alcune opzioni specifiche per le etichette contenute in immagini esterne -che vengono piazzate con \cmd{cmpdref}. -\begin{beschreibung} - \option{ref-marker}{<marker>} Varia il marcatore di default da sostituire. - Default = \code{TMP} - \option{ref-pos}{\{<tex-pos>\}\{<ps-pos>\}} Default = \code{bb} - \option{ref-style}{<style>} Varia il formato dell'etichetta negli schemi esterni. - Default = \verb=\sffamily= -\end{beschreibung} -Con l'opzione \key{ref-pos} si può variare il tipo di piazzamento utilizzato da -\cmd{cmpdref}. Il comando \cmd{psfrag} utilizzato internamente ha due opzioni a -riguardo. La prima determina come viene piazzato il sostituto \TeX; la seconda -come viene piazzato il sostituto nel box creato dal marcatore. Per ulteriori -dettagli si rimanda alla documentazione del pacchetto \paket{psfrag}. -\secidx*{maarcatori nelle immagini} - -\subsection{Contatori}\label{ssec:counter}\secidx{contatori} -Se lo si desidera è possibile anche modificare il formato del contatore di \cmpd{a.one}. -\begin{beschreibung} - \option{cmpd-counter}{arabic/alph/Alph/greek/Greek/roman/Roman/Symbol} - Default = \code{arabic} - \option{sub-counter}{arabic/alph/Alph/greek/Greek/roman/Roman/Symbol} - Default = \code{alph} -\end{beschreibung} - -Nota bene: una variazione del formato di contatore ha effetto solo sulle etichette -\emph{non ancora generate}! -\begin{beispiel} - \cmpdsetup{cmpd-counter = Alph, sub-counter = arabic} - \cmpd{a, b, f.two, k}\\ % nessun'effetto sulle etichette gi\`a create! - \cmpd{n.one,n.two,o.one}\\ - \cmpd{f.three,f.four}\\ % Attenzione: l'etichetta principale \`e stata gi\`a - % generata e non verr\`a modificata! - \cmpd[cmpd-counter,sub-counter = greek]{p.one,p.two} -\end{beispiel} -\secidx*{contatori} - -\subsection{Limitatori}\secidx{limitatori} -È possibile dotare di delimitatori sia i numeri singoli che le liste. A tale -proposito esistono le opzioni seguenti: -\begin{beschreibung} - \option{cmpd-delim}{<odelim><cdelim>} Richiedono \emph{due} token come valori! - \option{list-delim}{<odelim><cdelim>} Richiedono \emph{due} token come valori! -\end{beschreibung} -\begin{beispiel} - \cmpd{a, b, f.two, k}\\ % default - \cmpd[cmpd-delim = ()]{a, b, f.two, k}\\ % tra parentesi - \cmpd{a, b, f.two, k}\\ % nuovamente default - \cmpdsetup{cmpd-delim = ()} - \cmpd{a, b, f.two, k} % tra parentesi -\end{beispiel} -Quando si scrive \cmd{cmpd}[\key{cmpd-delim}]{<label>} senza specificarne il -valore vengono impiegate \verb=()=. Altrettanto vale per \key{list-delim}. Si -noti che i delimitatori di elenco vengono impiegati solo per almeno \emph{due} -etichette. -\begin{beispiel} - \cmpd{a, b, f.two, k}\\ % default - \cmpd[list-delim = {[}{]}]{a, b, f.two, k}\\ % tra parentesi - \cmpd{a, b, f.two, k}\\ % nuovamente default - \cmpdsetup{list-delim = []} - \cmpd{a, b, f.two, k}\\ % tra parentesi - \cmpd{a} % NON \`E una lista! -\end{beispiel} -Se si desidera ottenere generalmente le etichette racchiuse tra parentesi, ma si -vogliono usare localamente senza, vi sono diverse possibilità: -\begin{beispiel} - \cmpdsetup{cmpd-delim} - Normalmente \cmpd{b}, \cmpd{c}, \cmpd{d.one}, ma talvolta cos\`\i - \cmpd[cmpd-delim = ]{e} oppure \cmpd-{e}. -\end{beispiel} -Con -\begin{beschreibung}\label{cmd:ohne_begrenzer} - \Befehl[cmpdc]{cmpd-}\ma{<label name>} - \Befehl[cmpdrefc]{cmpdref-}\ma{<label name>} -\end{beschreibung} -è possibile rimuovere velocemente le parentesi di un'etichetta (ma non quelle di -un elenco). -\begin{beispiel} - \cmpd{a, b, f.two, k}\\ % default - \cmpdsetup{cmpd-delim = (), list-delim = []} - \cmpd{a, b, f.two, k}\\ % tra parentesi doppie - \cmpd-{a, b, f.two, k} % tra parentesi semplici -\end{beispiel} - -Con gli argomenti vuoti \cmd{cmpdsetup}{\key{cmpd-delim}{ }} e -\cmd{cmpdsetup}{\key{list-delim}{ }} è possibile ripristinare i valori predefiniti. -\secidx*{delimitatori} - -\subsection{Suffisso e prefisso}\secidx{suffisso e prefisso} -Quando lo si desidera è possibile assegnare pre- e suffissi sia ad etichette singole -che agli elenchi. -\begin{beschreibung} - \Option{cmpd-prefix}{<prefix>} - \Option{cmpd-suffix}{<prefix>} - \Option{list-prefix}{<prefix>} - \Option{list-suffix}{<prefix>} -\end{beschreibung} -Come per i delimitatori vale: gli attributi di elenco vengono impegati solo per -un elenco -- quindi per due o più etichette. - -Esempi per gli attributi di elenco: -\begin{beispiel} - \cmpd{a, b, f.two, k}\\ % default - \cmpd[cmpd-prefix = nr.]{a, b, f.two, k}\\ - \cmpdsetup{cmpd-prefix = \(\rightarrow\)} - \cmpd{a, b, f.two, k}\\ - \cmpd{a} % NON \`E una lista! -\end{beispiel} -Esempi per gli attributi di elenco: -\begin{beispiel} - \cmpd{a, b, f.two, k}\\ % default - \cmpd[list-prefix = elenco:]{a, b, f.two, k}\\ - \cmpdsetup{list-prefix = raccolta:} - \cmpd{a, b, f.two, k}\\ - \cmpd{a} % NON \`E una lista! -\end{beispiel} - -Tra prefisso, etichetta e suffisso predefinitamente vi è uno spazio: -\begin{beispiel} - \cmpd[cmpd-suffix=Sx,cmpd-prefix=Px]{k} -\end{beispiel} -Questo può essere adattato con -\begin{beschreibung} - \Option{cmpd-space}{<space>} -\end{beschreibung} -\begin{beispiel} - \cmpd[cmpd-suffix=Sx,cmpd-prefix=Px,cmpd-space={}]{k} -\end{beispiel} -\secidx*{suffisso e prefisso} - -\subsection{Separatori}\label{ssec:trenner}\secidx{separatori} -\subsubsection{Etichette -- input}\label{sssec:sub-input-sep}\index{separatori!etichette!input} -Predefinitamente \chemnum impiega il punto \code{.} come simbolo per distinguere -i nomi delle etichette principali da quelle secondarie; il simbolo può essere -adattato a piacimento. I simboli \verb=%=, \verb=,= e \verb=#= non possono essere -impiegati e \verb=@= non dovrebbe essere utilizzato. Inoltre è necessario badare -a non usare gli stessi simboli (vedi le sezioni seguenti) per gli altri separatori. -\begin{beschreibung} - \option{sub-input-sep}{<separator>} Default = \code{.} -\end{beschreibung} -\begin{beispiel} - \cmpdsetup{sub-input-sep = !}% - \cmpd{f!one, g!two}\\ - \cmpd[sub-input-sep= +]{f+one, g+two}\\ - \cmpd[sub-input-sep= ~]{f~one, g~two}\\ - \cmpd[sub-input-sep= &]{f&one, g&two}\\ - \cmpd[sub-input-sep= *]{f*one, g*two} -\end{beispiel} -Si consiglia -- non solo per motivi di coerenza -- di stabilire \emph{unicamente} -all'inizio del documento i simboli utilizzati; e in particolare \emph{prima} di -richiamare \verb=\tableofcontents=, al meglio nel preambolo. Altrimenti -\verb=\tableofcontents= non può sapere quali simboli sono impiegati, e le -etichette nell'indice generale possono essere rese nel modo sbagliato. - -\subsubsection{Etichette -- output}\index{separatori!etichette!output} -Anche nel caso di etichette con subetichette è possibile utilizzare dei delimitatori, -che vanno a piazzarsi tra etichetta principale e secondaria. -\begin{beschreibung} - \Option{sub-output-sep}{<separator>} -\end{beschreibung} -\begin{beispiel} - \cmpd{a, b, f.two, f.three, k}\\ % default - \cmpd[sub-output-sep = -]{a, b, f.two, f.three, k}\\ - \cmpdsetup{sub-output-sep = $\cdot$} - \cmpd{a, b, f.two, f.three, k}\\ - \cmpd[sub-output-sep = :]{a, b, f.two, f.three, k} -\end{beispiel} - -\subsubsection{Subetichette -- input}\label{sssec:range-input-sep}\index{separatori!subetichette!input} -Per l'input di un intervallo di subetichette \chemnum impiega predefinitamente -due punti \code{..}; si può tuttavia scegliere un qualunque input diverso. I -simboli \verb=%=, \verb=,= e \verb=#= non possono essere impiegati e \verb=@= non -dovrebbe essere utilizzato. Inoltre è necessario badare a non utilizzare gli stessi -simboli per separatori diversi. -\begin{beschreibung} - \option{subrange-input-sep}{<separator>} Default = \code{..} -\end{beschreibung} -\begin{beispiel} - \cmpd[subrange-input-sep=:]{q.{one:four}}\\ - \cmpdsetup{subrange-input-sep=--} - \cmpd{q.{one--four}} -\end{beispiel} - -\subsubsection{Subetichette -- output}\index{separatori!subetichette!output} -Non si gradisce la resa \cmpd[cmpd-all]{q} e si vuole indicare diversamente -l'intervallo? Può essere fatto con l'opzione seguente: -\begin{beschreibung} - \option{subrange-output-sep}{<separator>} Default = \verb|--| -\end{beschreibung} -\begin{beispiel} - \cmpd[subrange-output-sep={ {\normalfont bis} }]{q.{one..four}}\\ - \cmpdsetup{subrange-output-sep=-} - \cmpd{q.{one..four}} -\end{beispiel} - -\subsubsection{Elenchi -- input}\label{sssec:list-input-sep}\index{separatori!elenchi!input} -Quando lo si desidera è possibile modificare il separatore dell'input di elenchi. -Per default viene impiegata la virgola \code{,} anche se è possibile selezionare -qualunque input diverso. I simboli \verb=%=, \verb=,= e \verb=#= non possono -essere impiegati e \verb=@= non dovrebbe essere utilizzato. Inoltre è necessario -badare a non utilizzare gli stessi simboli per separatori diversi. -\begin{beschreibung} - \option{list-input-sep}{<separator>} Default = \code{,} - \option{sub-input-sep}{<separator>} Default = \code{,} -\end{beschreibung} -\begin{beispiel} - \cmpd{a, b, f.two, k}\\ % default - \cmpd[list-input-sep = +]{a + b + f.two + k}\\ - \cmpd{a, b, f.two, k}\\ - \cmpdsetup{list-input-sep = ;} - \cmpd{a; b; f.two; k} -\end{beispiel} -Questo permette \pes l'impiego di nomi IUPAC come nomi di etichetta\footnote{Molte -grazie a Christina Lüdigk, che in un certo senso ha proposto questa feature.}. -\begin{beispiel} - \cmpdsetup{list-input-sep=;} - \cmpd{1,3-dichlorocyclohexanol} -\end{beispiel} - -\subsubsection{Elenchi -- output}\label{sssec:list-output-sep}\index{separatori!elenchi!output} -Anche per gli elenchi si lascia stabilire un carattere separatore che determina -come vengono separate etichette diverse. Per impostazione predefinita è la virgola. -\begin{beschreibung} - \option{list-output-sep}{<separator>} Default = \code{,} - \option{sub-output-sep}{<separator>} Default = \code{,} -\end{beschreibung} -\begin{beispiel} - \cmpd{a, b, f.two, k}\\ % default - \cmpd[list-output-sep = ]{a, b, f.two, k}\\ - \cmpd{a, b, f.two, k}\\ - \cmpdsetup{list-output-sep = ;} - \cmpd{a, b, f.two, k} -\end{beispiel} - -\subsubsection{Elenchi -- ultimo separatore}\label{sssec:last-sep}\index{separatori!elenchi!ultimo separatore} -L'ultimo separatore negli elenchi, quello tra la penultima e l'ultima etichetta -elencate, rappresenta un caso particolare. Per questo motivo esistono due opzioni -per adattarlo. -\begin{beschreibung} - \Option{list-last-sep}{<separator>} - \option{list-lang}{US/GB/DE/FR/ES/IT} Default = \code{US} -\end{beschreibung} -\begin{beispiel} - \cmpd[list-lang = US]{a, b, f.two, k} \cmpd[list-lang = US]{a, b}\\ - \cmpd[list-lang = GB]{a, b, f.two, k} \cmpd[list-lang = GB]{a, b}\\ - \cmpd[list-lang = DE]{a, b, f.two, k} \cmpd[list-lang = DE]{a, b}\\ - \cmpd[list-lang = FR]{a, b, f.two, k} \cmpd[list-lang = FR]{a, b}\\ - \cmpd[list-lang = ES]{a, b, f.two, k} \cmpd[list-lang = ES]{a, b}\\ - \cmpd[list-lang = IT]{a, b, f.two, k} \cmpd[list-lang = IT]{a, b} -\end{beispiel} -Come indicato l'impostazione di lingua \verb=US= impiega predefinitamente il comma -di Harvard, tutte le altre lingue non lo fanno. Ulteriori informazioni sul -riconoscimento linguistico e sul comma di Harvard sono riportati nel -paragrafo~\ref{sec:language_support}. - -L'ultimo separatore può essere anche impostato individualmente con \key{list-last-sep}. -\begin{beispiel} - \cmpdsetup{list-lang = DE}% - \cmpd[list-last-sep = {e poi}]{a, b, f.two, k}\\ - \cmpd[list-last-sep = ]{a, b, f.two, k}\\ - \cmpd[list-last-sep = come anche]{a, b, f.two, k}\\ - \cmpd[list-last-sep = empty]{a, b, f.two, k} -\end{beispiel} - -Un'opzione speciale è \key{list-last-sep}{empty}. Quando viene richiamata, viene -impiegato ovunque il separatore stabilito da \key{list-output-sep}. -\begin{beispiel} - \cmpdsetup{list-last-sep = empty}% - \cmpd{a, b, f.two, k}\\ - \cmpd[list-output-sep = ;]{a, b, f.two, k}\\ - \cmpd[list-output-sep = {\ e}]{a, b, f.two, k} -\end{beispiel} - -\subsubsection{Per \code{\textbackslash\textcolor{code}{cmpdinit}} -- input}\label{sssec:init-input-sep}\index{separatori!cmpdinit@\textcolor{code}{\code{\textbackslash cmpdinit}}} -Quando lo si desidera, è possibile variare il separatore dell'input di elenchi. -Predefinitamente viene impiegata la virgola \code{,} ed è possibile impiegare -qualunque altro input. I simboli \verb=%=, \verb=,= e \verb=#= non possono essere -impiegati e \verb=@= non dovrebbe essere utilizzato. -\begin{beschreibung} - \option{init-input-sep}{<separator>} Default = \code{,} -\end{beschreibung} - -\subsubsection{Un esempio}\label{sssec:input-sep-bsp} -Segue un piccolo esempio di una variante personalizzata dei separatori. -\begin{beispiel} - \cmpdsetup{ - sub-input-sep = ! , - subrange-input-sep = : , - sublist-input-sep = / , - list-input-sep = + - } - \cmpd{a + f ! one + q ! one / three : five} -\end{beispiel} -\secidx*{separatori} - -\section{Supporto linguistico}\label{sec:language_support}\secidx{supporto linguistico} -\subsection{Cooperazione con \textsf{babel}} -\chemnum supporta la selezione di lingua tramite \paket{babel} per una serie di -lingue. Questo avviene grazie al pacchetto \paket*{translations}\footnote{% -\paket*{translations} è parte del bundle \paket*{exsheets}.}. - -\begin{beispiel} - \selectlanguage{ngerman}DE: \cmpd{r,s,t} \selectlanguage{german}\cmpd{r,s,t}\\ - \selectlanguage{naustrian}AU: \cmpd{r,s,t} \selectlanguage{austrian}\cmpd{r,s,t}\\ - \selectlanguage{english}EN: \cmpd{r,s,t}\\ - \selectlanguage{british}GB: \cmpd{r,s,t}\\ - \selectlanguage{american}US: \cmpd{r,s,t}\\ - \selectlanguage{canadian}CDN-EN: \cmpd{r,s,t}\\ - \selectlanguage{canadien}CDN-FR: \cmpd{r,s,t}\\ - \selectlanguage{french}FR: \cmpd{r,s,t}\\ - \selectlanguage{spanish}ES: \cmpd{r,s,t}\\ - \selectlanguage{italian}IT: \cmpd{r,s,t} -\end{beispiel} -Il supporto linguistico di gran lunga non comprende tutte le lingue, in primo -luogo per motivi di realizzabilità. Se vi dovesse mancare una lingua, vi prego -di inviarmi un'e-mail\footnote{\href{mailto:contact@mychemistry.eu}{contact@mychemistry.eu}} -con la corrispondente opzione di \paket{babel} e la traduzione corretta, e la -aggiungerò volentieri. - -\subsection{Comma di Harvard}\label{ssec:harvard-comma}\secidx{comma di Harvard} -Nell'inglese statunitense è molto diffuso l'impiego del cosiddetto comma di Harvard -o di Oxford, mentre nell'inglese britannico e nelle altre lingue europee è raramente -impiegato. -\begin{zitat}[\href{http://en.wikipedia.org/wiki/Serial_comma}{Wikipedia}, 2011/11/07] - The serial comma (also known as the Oxford comma or Harvard comma, and sometimes - referred to as the series comma) is the comma used immediately before a coordinating - conjunction (usually and or or, and sometimes nor) preceding the final item in a list - of three or more items. For example, a list of three countries can be punctuated as - either ``Portugal, Spain, and France'' (with the serial comma) or as ``Portugal, - Spain and France'' (without the serial comma). - - Opinions vary among writers and editors on the usage or avoidance of the serial - comma. In American English, the serial comma is standard usage in non-journalistic - writing that follows the \name{Chicago Manual of Style}. Journalists, however, - usually follow the AP Stylebook, which advises against it. It is used less often - in British English, where it is standard usage to leave it out, with some notable - exceptions such as \name{Fowler's Modern English Usage}. In many languages (e.g., - French, German, Italian, Polish, Spanish), the serial comma is not the norm and - may even go against punctuation rules. It may be recommended in many cases, - however, to avoid ambiguity or to aid prosody. -\end{zitat} -\chemnum attiva il comma di Harvard quando è selezionato American English, ma non -con le altre lingue. È tuttavia possibile (dis-)attivare il comma di Harvard a -piacimento con l'opzione -\begin{beschreibung} - \Option{list-serial-comma}{\default{true}/false} -\end{beschreibung} -\begin{beispiel} - \selectlanguage{ngerman}DE: \cmpd[list-serial-comma]{r,s,t} vs. \cmpd{r,s,t}\\ - \selectlanguage{american}US: \cmpd[list-serial-comma=false]{r,s,t} vs. \cmpd{r,s,t} -\end{beispiel} -Quando si seleziona manualmente la lingua, viene richiamato l'impostazione -predefinita della lingua. Quindi \key{list-serial-comma} dovrebbe essere -richiamato \emph{dopo} \key{list-lang}.% TODO -\begin{beispiel} - sbagliato: \cmpdsetup{list-serial-comma=false, list-lang=US}\cmpd{r,s,t}\\ - giusto: \cmpdsetup{list-lang=US, list-serial-comma=false}\cmpd{r,s,t} -\end{beispiel} -\secidx*{comma di Harvard}\secidx*{supporto linguistico} - -\section{Panoramica} -\subsection{Opzioni}\label{ssec:keys_uebersicht} -In seguito sono elencate tutte le opzioni disponibili. -\begin{center} - \label{tab:keys} - \begin{longtabu*}{>{\ttfamily\color{key}}l>{\ttfamily}l>{\ttfamily}l>{\ttfamily}l}\toprule - \normalfont\bfseries\normalcolor opzione & - \normalfont\bfseries valore vuoto & - \normalfont\bfseries impostazione predefinita & - \normalfont\bfseries tipo \\\midrule - cmpd-style & & & macro \\ - cmpd-weight & bold & bold & choice \\ - cmpd-label & & & literal \\ - cmpd-delim\color{black}$^\mathrm{a}$ & () & & literal \\ - cmpd-odelim & & & literal \\ - cmpd-cdelim & & & literal \\ - cmpd-prefix & & & literal \\ - cmpd-suffix & & & literal \\ - cmpd-space & \verb=\penalty\@m\ = & \verb=\penalty\@m\ = & literal \\ - cmpd-counter & arabic & arabic & choice \\ - cmpd-all & true & false & boolean \\\midrule - sub-only & true & false & boolean \\ - sub-counter & alph & alph & choice \\ - sub-output-sep & & , & literal \\ - sub-input-sep & . & . & literal \\ - sublist-output-sep & , & , & literal \\ - sublist-input-sep & , & , & literal \\ - subrange-output-sep & -- & -- & literal \\ - subrange-input-sep & .. & .. & literal \\\midrule - list-delim\color{black}$^\mathrm{a}$ & () & & literal \\ - list-odelim & & & literal \\ - list-cdelim & & & literal \\ - list-prefix & & & literal \\ - list-suffix & & & literal \\ - list-input-sep & , & , & literal \\ - list-output-sep & , & , & literal \\ - list-lang & US & US$^\mathrm{b}$ & choice \\ - list-last-sep & and$^\mathrm{c}$ & & literal \\ - list-serial-comma & true & true$^\mathrm{c}$ & boolean \\\midrule - ref-tag & TMP & TMP & literal \\ - ref-style & & \verb=\sffamily= & macro \\ - ref-pos\color{black}$^\mathrm{a}$ & bb & bb & literal \\\midrule - init-strict & true & false & boolean \\ - init-sub & true & false & boolean \\ - init-input-sep & , & , & literal \\\midrule - hyper-use & true & false & boolean \\ - hyper-target & & & literal \\ - hyper-link & & & literal \\\bottomrule - \end{longtabu*} - \setlength\extrarowheight{-1pt} - \begin{tabular}{>{\footnotesize}r>{\footnotesize\raggedright}p{.7\linewidth}} - a & Richiede \emph{due} token come valore. \tabularnewline - b & Dipende dall'impiego di \paket*{babel}. \tabularnewline - c & Dipende dal valore di \key{list-lang} e dall'impiego di \paket*{babel}. - \end{tabular} -\end{center} - -\subsection{Comandi} -In seguito sono elencati tutti i comandi definiti da \chemnum e le loro varianti. -\begin{center} - \label{tab:commands} - \begin{longtabu*} to \linewidth {X[l]X[p]}\toprule - \bfseries Comando & \bfseries Descrizione \tabularnewline\midrule - \cmd*{cmpd}[<keyval>]{<labels>} & Comando principale; genera - e rende etichette o liste di etichette, vedi a pagina~\pageref{sec:nummerieren}ss. \tabularnewline - \cmd*[cmpda]{cmpd*}{<labels>} & invisibile, genera etichette, - vedi a pagina~\pageref{cmd:unsichtbares_label} \tabularnewline - \cmd*[cmpdc]{cmpd-}[<keyval>]{<labels>} & senza delimitatori, vedi a - pagina~\pageref{cmd:ohne_begrenzer} \tabularnewline - \cmd*[cmpdd]{cmpd+-}[<keyval>]{<labels>} & l'etichetta viene letta da - un file ausiliario, vedi a pagina~\pageref{cmd:cmpd_plus} \tabularnewline\midrule - \cmd*{cmpdinit}[<keyval]{<labels>} & inizializza e crea le etichette, - vedi a pagina~\pageref{sec:cmpdinit}s. \tabularnewline - \cmd*[cmpdinita]{cmpdinit*}[<keyval]{<labels>} & inizializza le etichette, vedi - a pagina~\pageref{sec:cmpdinit}s. \tabularnewline\midrule - \cmd*{cmpdref}[<keyval>][<marker>]{} & sostituisce le etichette - temporanee nei file \texttt{eps} con etichette, vedi a - pagina~\pageref{ssec:cmpdref} \tabularnewline - \cmd*[cmpdrefc]{cmpdref-}[<keyval>][<marker>]{} & sostituisce etichette - temporanee nei file \texttt{eps} con etichette senza delimitatori, vedi a - pagina~\pageref{cmd:ohne_begrenzer} \tabularnewline\midrule - \cmd*{cmpdreset}[<num>] & resetta il contatore, vedi a - pagina~\pageref{sec:cmpdreset} \tabularnewline\midrule - \cmd*{cmpdsetup}{<keyval>} & imposta \chemnum, vedi a - pagina~\pageref{sec:cmpdsetup}ss. \tabularnewline\bottomrule - \end{longtabu*}% -\end{center} - -\appendix -\addsec{Ringraziamenti} -Vorrei ringraziare Joseph \name{Wright} e Russell \name{Hewitt} dei loro preziosi -suggerimenti e feedback per migliorare \chemnum. - -Grazie di cuore a Jonas \name{Rivetti} che ha tradotto il testo in italiano. - -\printindex - -\end{document} - - diff --git a/Master/texmf-dist/tex/latex/chemnum/chemnum.sty b/Master/texmf-dist/tex/latex/chemnum/chemnum.sty index 28e40a1dc3e..af6e6c07c8f 100644 --- a/Master/texmf-dist/tex/latex/chemnum/chemnum.sty +++ b/Master/texmf-dist/tex/latex/chemnum/chemnum.sty @@ -32,46 +32,25 @@ \ProvidesExplPackage {chemnum} - {2013/04/17} - {0.6a} + {2013/06/05} + {0.6b} {a comprehensive approach for the numbering of chemical compounds} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% CHECK FOR SUPPORT -% this part of the code is based on the corresponding part of siunitx.sty -% l3 support: -\cs_if_exist:NTF \msg_set:nnnn - { - \msg_set:nnnn { chemnum } { support-outdated } - { Support~package~#1~too~old. } - { - Please~install~an~up~to~date~version~of~#1. \\ - Best~would~be~to~update~both~l3kernel~and~l3packages~bundles. \\ - Loading~chemnum~will~abort! - } - } +% -------------------------------------------------------------------------- +% check expl3 version: +\@ifpackagelater { expl3 } { 2012/11/21 } + { } { - \PackageError { chemnum } { Support~bundle~l3kernel~too~old. } + \PackageError { chemnum } { Support~package~expl3~too~old } { - Please~install~an~up~to~date~version~of~the~l3kernel~bundle. \\ + You~need~to~update~your~installation~of~the~bundles~'l3kernel'~and~ + 'l3packages'.\MessageBreak Loading~chemnum~will~abort! } \tex_endinput:D } -\@ifpackagelater { expl3 } { 2011/12/27 } - { } - { - \msg_error:nnx { chemnum } { support-outdated } { expl3 } - \tex_endinput:D - } - -\@ifpackagelater { xparse } { 2011/12/27 } - { } - { - \msg_error:nnx { chemnum } { support-outdated } { xparse } - \tex_endinput:D - } +% -------------------------------------------------------------------------- % error for missing packages \msg_set:nnnn { chemnum } { support-missing } { Support~package~#1~missing. } @@ -100,7 +79,7 @@ { \AtEndPreamble { - \exp_args:No \file_if_exist:nTF { textgreek . sty } + \file_if_exist:nTF { textgreek . sty } { \@ifpackageloaded { textgreek } { \msg_warning:nnx { chemnum } { textgreek-loaded } { #1 } } @@ -245,15 +224,17 @@ \int_new:N \g__chemnum_cmpd_main_int \prop_new:N \g__chemnum_label_prop \int_new:N \g__chemnum_cmpd_int +\int_new:N \l__chemnum_tmpa_int \tl_new:N \l__chemnum_tmpa_tl \tl_new:N \l__chemnum_tmpb_tl -\clist_new:N \g__chemnum_cmpd_save_clist +\tl_new:N \l__chemnum_tmpc_tl +\seq_new:N \g__chemnum_cmpd_saved_seq %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % READ FROM PREVIOUS RUN, SAVE FOR NEXT RUN % save all labels in a clist -\cs_new_protected:Npn \__chemnum_cmpd_save:n #1 - { \clist_gput_right:Nn \g__chemnum_cmpd_save_clist { { #1 } } } +\cs_new_protected:Npn \chemnum_cmpd_save:n #1 + { \seq_gput_right:Nn \g__chemnum_cmpd_saved_seq { #1 } } \msg_set:nnn { chemnum } { missing-cmpd-file } { @@ -271,7 +252,7 @@ { \iow_new:N \__chemnum_aux_file: \iow_open:Nn \__chemnum_aux_file: { ./ \c_job_name_tl . cmpd } - \clist_map_inline:Nn \g__chemnum_cmpd_save_clist + \seq_map_inline:Nn \g__chemnum_cmpd_saved_seq { \iow_now:Nx \__chemnum_aux_file: { @@ -305,29 +286,11 @@ \bool_new:N \l__chemnum_cmpd_style_is_macro_bool % default style -\cs_new:Npn \__chemnum_cmpd_style_value:n { } +\cs_new:Npn \chemnum_cmpd_style:n #1 { #1 } -% error message -\msg_set:nnn { chemnum } { cmpd-style } - { - The~value~of~"cmpd-style~=~<style>"~needs~to~be~a~(or~more)~macro~ - \msg_line_context: . - } - -% set style %TODO +% set style \cs_new_protected:Npn \__chemnum_cmpd_set_style:n #1 -% { -% \tl_clear:N \l__chemnum_style_tmp_tl -% \tl_map_variable:nNn { #1 } \l__chemnum_style_tmp_tl -% { -% \exp_args:No \token_if_cs:NTF \l__chemnum_style_tmp_tl -% { \bool_set_true:N \l__chemnum_cmpd_style_is_macro_bool } -% { \bool_set_false:N \l__chemnum_cmpd_style_is_macro_bool } -% } -% \bool_if:NTF \l__chemnum_cmpd_style_is_macro_bool - { \cs_set:Npn \__chemnum_cmpd_style_value:n { #1 } } -% { \msg_error:nnx { chemnum } { cmpd-style } { #1 } } -% } + { \cs_set:Npn \chemnum_cmpd_style:n { #1 } } % use style \bool_new:N \l__chemnum_cmpd_bold_bool @@ -338,7 +301,7 @@ \group_begin: \bool_if:NT \l__chemnum_cmpd_bold_bool { \bfseries } - \__chemnum_cmpd_style_value:n { #1 } + \chemnum_cmpd_style:n { #1 } \group_end: } @@ -515,7 +478,7 @@ \int_incr:N \l__chemnum_sublabel_list_current_int \exp_after:wN \__chemnum_cmpd_sublabelsep:n \l__chemnum_tmpb_tl \q_stop \use:c { chemnum_cmpd_#1_ \l__chemnum_cmpd_sub_one_label_tl _ref: } - \exp_args:No \tl_if_blank:nF { \l__chemnum_cmpd_sub_two_label_tl } + \tl_if_blank:VF \l__chemnum_cmpd_sub_two_label_tl { \tl_use:N \l__chemnum_sub_range_sep_tl \use:c { chemnum_cmpd_#1_ \l__chemnum_cmpd_sub_two_label_tl _ref: } @@ -605,12 +568,12 @@ \int_compare:nT { \l__chemnum_cmpd_sublist_length_int < 2 } { % no sublabel list \__chemnum_cmpd_subrange_separate:n { #2 } - \tl_if_blank:VT \l_tmpb_tl + \tl_if_blank:VT \l__chemnum_tmpc_tl { % no sublabel range \tl_set:Nn \l__chemnum_cmpd_hyper_name_tl - { chemnum_cmpd_#1_\l_tmpa_tl } + { chemnum_cmpd_#1_ \l__chemnum_tmpb_tl } \cs_if_exist:cTF - { chemnum_cmpd_#1_ \l_tmpa_tl _hyper: } + { chemnum_cmpd_#1_ \l__chemnum_tmpb_tl _hyper: } { \bool_set_false:N \l__chemnum_hypertarget_bool \cs_set_eq:NN \__chemnum_make_hyper:nn \hyperlink @@ -623,7 +586,7 @@ { \hypertarget { ##1 } { } } ##2 } \cs_new:cpn - { chemnum_cmpd_#1_ \l_tmpa_tl _hyper: } { } + { chemnum_cmpd_#1_ \l__chemnum_tmpb_tl _hyper: } { } } } } @@ -825,7 +788,7 @@ \prop_gput:Nnx \g__chemnum_label_prop { #1 } { \int_use:N \g__chemnum_cmpd_main_int } - \__chemnum_cmpd_save:n { #1 } + \chemnum_cmpd_save:n { #1 } \bool_if:NF \l__chemnum_cmpd_name_bool { \int_gincr:N \g__chemnum_cmpd_int } \cs_new:cpx { chemnum_cmpd_#1: } { @@ -844,7 +807,7 @@ { \cs_if_exist:cF { chemnum_cmpd_#1_#2: } { - \__chemnum_cmpd_save:n { #1 _ #2 } + \chemnum_cmpd_save:n { #1 _ #2 } \cs_new:cpx { chemnum_cmpd_#1_#2: } { } \int_gincr:c { g_chemnum_cmpd_#1_int } % why is the next line working when \cs_gset:cpx doesn't? @@ -891,12 +854,12 @@ \tl_if_blank:nF { #2 } { \__chemnum_cmpd_sublist:n { #2 } - \exp_args:No \tl_map_inline:nn { \l__chemnum_cmpd_sublist_tl } + \tl_map_inline:Nn \l__chemnum_cmpd_sublist_tl { \__chemnum_cmpd_subrange_separate:n { ##1 } - \__chemnum_cmpd_sub_initiate:nn { #1 } { \l_tmpa_tl } - \tl_if_blank:VF \l_tmpb_tl - { \__chemnum_cmpd_sub_initiate:nn { #1 } { \l_tmpb_tl } } + \__chemnum_cmpd_sub_initiate:nn { #1 } { \l__chemnum_tmpb_tl } + \tl_if_blank:VF \l__chemnum_tmpc_tl + { \__chemnum_cmpd_sub_initiate:nn { #1 } { \l__chemnum_tmpc_tl } } } } } @@ -945,17 +908,19 @@ % actual separating \cs_new_protected:Npn \__chemnum_cmpd_labelsep:n #1 \q_stop { \tl_clear:N \l__chemnum_labelsep_tmp_tl - \exp_args:Noo \tl_if_in:nnTF { #1 } { \l__chemnum_cmpd_labelsep_tl } + \tl_if_in:oVTF { #1 } \l__chemnum_cmpd_labelsep_tl { \tl_set:Nn \l__chemnum_labelsep_tmp_tl { #1 } - \exp_args:NNo \tl_replace_once:Nnn \l__chemnum_labelsep_tmp_tl - { \l__chemnum_cmpd_labelsep_tl } + \tl_replace_once:NVn \l__chemnum_labelsep_tmp_tl + \l__chemnum_cmpd_labelsep_tl { \q_nil } \exp_after:wN \__chemnum_cmpd_labelsep_aux_ii:n \l__chemnum_labelsep_tmp_tl \q_stop } { \__chemnum_cmpd_labelsep_aux_i:n { #1 } } } +\cs_generate_variant:Nn \tl_if_in:nnTF { oV } +\cs_generate_variant:Nn \tl_replace_once:Nnn { NV } \cs_new_protected:Npn \__chemnum_cmpd_labelsep_aux_i:n #1 { @@ -978,28 +943,29 @@ { \tl_set:Nn \l__chemnum_cmpd_sublist_tl { #1 } \int_zero:N \l__chemnum_cmpd_sublist_length_int - \exp_args:No \tl_map_inline:nn { \l__chemnum_cmpd_sublist_tl } + \tl_map_inline:Nn \l__chemnum_cmpd_sublist_tl { \int_incr:N \l__chemnum_cmpd_sublist_length_int } } \cs_new_protected:Npn \__chemnum_cmpd_subrange_separate:n #1 { - \tl_clear:N \l_tmpa_tl - \tl_clear:N \l_tmpb_tl + \tl_clear:N \l__chemnum_tmpb_tl + \tl_clear:N \l__chemnum_tmpc_tl \tl_if_in:noTF { #1 } { \l__chemnum_sublabel_range_marker_tl } { - \tl_set:Nn \l_tmpa_tl { #1 } - \exp_args:NNo \tl_replace_once:Nnn \l_tmpa_tl - { \l__chemnum_sublabel_range_marker_tl } { \q_nil } - \exp_after:wN \__chemnum_cmpd_subrange_separate_aux:w \l_tmpa_tl \q_stop + \tl_set:Nn \l__chemnum_tmpb_tl { #1 } + \tl_replace_once:NVn \l__chemnum_tmpb_tl + \l__chemnum_sublabel_range_marker_tl + { \q_nil } + \exp_after:wN \__chemnum_cmpd_subrange_separate_aux:w \l__chemnum_tmpb_tl \q_stop } - { \tl_set:Nn \l_tmpa_tl { #1 } } + { \tl_set:Nn \l__chemnum_tmpb_tl { #1 } } } \cs_new_protected:Npn \__chemnum_cmpd_subrange_separate_aux:w #1 \q_nil #2 \q_stop { - \tl_set:Nn \l_tmpa_tl { #1 } - \tl_set:Nn \l_tmpb_tl { #2 } + \tl_set:Nn \l__chemnum_tmpb_tl { #1 } + \tl_set:Nn \l__chemnum_tmpc_tl { #2 } } %-----------------------------------------------------------------------------% @@ -1025,7 +991,7 @@ % main internal compound label command % #1: <main label> #2: <sub label> #3: <invisible> #4: <no delim> % #2 may be a list of sublabels -\cs_new_protected:Npn \__chemnum_cmpd_aux_i:nnnn #1#2#3#4 +\cs_new_protected:Npn \__chemnum_cmpd_aux:nnnn #1#2#3#4 { \bool_if:NT \l__chemnum_cmpd_initiated_bool { \__chemnum_cmpd_initiate:nn { #1 } { #2 } } @@ -1039,12 +1005,12 @@ \__chemnum_cmpd_sublist:n { #2 } \bool_if:NF \l__chemnum_cmpd_ref_bool { - \exp_args:No \tl_map_inline:nn { \l__chemnum_cmpd_sublist_tl } + \tl_map_inline:Nn \l__chemnum_cmpd_sublist_tl { \__chemnum_cmpd_subrange_separate:n { ##1 } - \__chemnum_cmpd_sub_declare:no { #1 } { \l_tmpa_tl } - \tl_if_blank:VF \l_tmpb_tl - { \__chemnum_cmpd_sub_declare:no { #1 } { \l_tmpb_tl } } + \__chemnum_cmpd_sub_declare:no { #1 } { \l__chemnum_tmpb_tl } + \tl_if_blank:VF \l__chemnum_tmpc_tl + { \__chemnum_cmpd_sub_declare:no { #1 } { \l__chemnum_tmpc_tl } } } } } @@ -1057,65 +1023,65 @@ \tl_clear:N \l__chemnum_cmpd_cdelim_tl } \__chemnum_make_hyper:nn { \l__chemnum_cmpd_hyper_name_tl } - { - \__chemnum_cmpd_print:n { - \bool_if:NF \l__chemnum_sub_label_only_bool - { - \bool_if:NTF \l__chemnum_cmpd_ref_bool - { \use:c { chemnum_cmpd_ #1 _ref: } } - { \use:c { chemnum_cmpd_ #1 : } } - } - \bool_if:NTF \l__chemnum_cmpd_all_bool + \__chemnum_cmpd_print:n { - \tl_use:N \l__chemnum_cmpd_separator_tl - \use:c { chemnum_cmpd_ #1 _min_ref: } - \cs_if_eq:ccF - { chemnum_cmpd_ #1 _min_ref: } - { chemnum_cmpd_ #1 _max_ref: } + \bool_if:NF \l__chemnum_sub_label_only_bool { - \tl_use:N \l__chemnum_sub_range_sep_tl - \use:c { chemnum_cmpd_ #1 _max_ref: } + \bool_if:NTF \l__chemnum_cmpd_ref_bool + { \use:c { chemnum_cmpd_ #1 _ref: } } + { \use:c { chemnum_cmpd_ #1 : } } } - } - { - \bool_if:NTF \l__chemnum_sublabel_list_bool + \bool_if:NTF \l__chemnum_cmpd_all_bool { - \__chemnum_cmpd_sublabel_list:nn { #1 } - { \l__chemnum_cmpd_sublabel_list_tl } + \tl_use:N \l__chemnum_cmpd_separator_tl + \use:c { chemnum_cmpd_ #1 _min_ref: } + \cs_if_eq:ccF + { chemnum_cmpd_ #1 _min_ref: } + { chemnum_cmpd_ #1 _max_ref: } + { + \tl_use:N \l__chemnum_sub_range_sep_tl + \use:c { chemnum_cmpd_ #1 _max_ref: } + } } { - \tl_if_blank:nF { #2 } + \bool_if:NTF \l__chemnum_sublabel_list_bool { - \tl_use:N \l__chemnum_cmpd_separator_tl - \int_zero:N \l_tmpa_int - \exp_args:No \tl_map_inline:nn - { \l__chemnum_cmpd_sublist_tl } + \__chemnum_cmpd_sublabel_list:nn { #1 } + { \l__chemnum_cmpd_sublabel_list_tl } + } + { + \tl_if_blank:nF { #2 } { - \int_incr:N \l_tmpa_int - \__chemnum_cmpd_subrange_separate:n { ##1 } - \bool_if:NTF \l__chemnum_cmpd_ref_bool - { \use:c { chemnum_cmpd_ #1 _ \l_tmpa_tl _ref: } } - { \use:c { chemnum_cmpd_ #1 _ \l_tmpa_tl : } } - \tl_if_blank:VF \l_tmpb_tl + \tl_use:N \l__chemnum_cmpd_separator_tl + \int_zero:N \l__chemnum_tmpa_int + \tl_map_inline:Nn \l__chemnum_cmpd_sublist_tl { - \tl_use:N \l__chemnum_sub_range_sep_tl + \int_incr:N \l__chemnum_tmpa_int + \__chemnum_cmpd_subrange_separate:n { ##1 } \bool_if:NTF \l__chemnum_cmpd_ref_bool - { \use:c { chemnum_cmpd_ #1 _ \l_tmpb_tl _ref: } } - { \use:c { chemnum_cmpd_ #1 _ \l_tmpb_tl : } } + { \use:c { chemnum_cmpd_ #1 _ \l__chemnum_tmpb_tl _ref: } } + { \use:c { chemnum_cmpd_ #1 _ \l__chemnum_tmpb_tl : } } + \tl_if_blank:VF \l__chemnum_tmpc_tl + { + \tl_use:N \l__chemnum_sub_range_sep_tl + \bool_if:NTF \l__chemnum_cmpd_ref_bool + { \use:c { chemnum_cmpd_ #1 _ \l__chemnum_tmpc_tl _ref: } } + { \use:c { chemnum_cmpd_ #1 _ \l__chemnum_tmpc_tl : } } + } + \int_compare:nF + { \l__chemnum_tmpa_int = \l__chemnum_cmpd_sublist_length_int } + { \l__chemnum_sublist_output_separator_tl } } - \int_compare:nF - { \l_tmpa_int = \l__chemnum_cmpd_sublist_length_int } - { \l__chemnum_sublist_output_separator_tl } } } } } - } } + } } } -\cs_generate_variant:Nn \__chemnum_cmpd_aux_i:nnnn { oonn } +\cs_generate_variant:Nn \__chemnum_cmpd_aux:nnnn { VV } %-----------------------------------------------------------------------------% % create compound label @@ -1126,15 +1092,15 @@ \tl_clear:N \l__chemnum_cmpd_sub_label_tl \__chemnum_cmpd_labelsep:n #1 \q_stop \tl_remove_all:Nn \l__chemnum_cmpd_sub_label_tl { ~ } - \__chemnum_cmpd_aux_i:oonn - { \l__chemnum_cmpd_main_label_tl } - { \l__chemnum_cmpd_sub_label_tl } + \__chemnum_cmpd_aux:VVnn + \l__chemnum_cmpd_main_label_tl + \l__chemnum_cmpd_sub_label_tl { #2 } { #3 } \group_end: } -\cs_generate_variant:Nn \__chemnum_cmpd:nnn { onn } +\cs_generate_variant:Nn \__chemnum_cmpd:nnn { V } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % DOCUMENT COMMANDS @@ -1164,7 +1130,7 @@ % label(s)>} \NewDocumentCommand \__chemnum_input_separator:n { > { \exp_args:No \SplitList { \l__chemnum_list_input_separator_tl } } m } - { \tl_set:Nn \l_tmpa_tl { #1 } } + { \tl_set:Nn \l__chemnum_tmpb_tl { #1 } } \NewDocumentCommand \cmpd { s t+ t- o m } { \cmpd_main:nnnnn { #1 } { #2 } { #3 } { #4 } { #5 } } @@ -1184,12 +1150,12 @@ \IfNoValueF { #4 } { \keys_set:nn { chemnum } { #4 } } \__chemnum_input_separator:n { #5 } - \tl_map_variable:NNn \l_tmpa_tl \l__chemnum_tmpa_tl + \tl_map_variable:NNn \l__chemnum_tmpb_tl \l__chemnum_tmpa_tl { \tl_if_blank:VF \l__chemnum_tmpa_tl { \int_incr:N \l__chemnum_list_items_int } } - \tl_map_variable:NNn \l_tmpa_tl \l__chemnum_tmpa_tl + \tl_map_variable:NNn \l__chemnum_tmpb_tl \l__chemnum_tmpa_tl { \tl_remove_all:Nn \l__chemnum_tmpa_tl { ~ } \tl_if_blank:VF \l__chemnum_tmpa_tl @@ -1209,8 +1175,8 @@ } \IfBooleanTF #1 { - \__chemnum_cmpd:onn - { \l__chemnum_tmpa_tl } + \__chemnum_cmpd:Vnn + \l__chemnum_tmpa_tl { \BooleanTrue } { \BooleanFalse } \IfBooleanT #3 @@ -1222,14 +1188,14 @@ { \IfBooleanTF #3 { - \__chemnum_cmpd:onn - { \l__chemnum_tmpa_tl } + \__chemnum_cmpd:Vnn + \l__chemnum_tmpa_tl { \BooleanFalse } { \BooleanTrue } } { - \__chemnum_cmpd:onn - { \l__chemnum_tmpa_tl } + \__chemnum_cmpd:Vnn + \l__chemnum_tmpa_tl { \BooleanFalse } { \BooleanFalse } } @@ -1338,9 +1304,8 @@ { \tl_if_blank:VF \l__chemnum_cmpd_sub_label_tl { - \exp_args:No \__chemnum_cmpd_sublist:n - { \l__chemnum_cmpd_sub_label_tl } - \exp_args:No \tl_map_inline:nn { \l__chemnum_cmpd_sublist_tl } + \__chemnum_cmpd_sublist:V \l__chemnum_cmpd_sub_label_tl + \tl_map_inline:Nn \l__chemnum_cmpd_sublist_tl { \cs_if_exist:cF { @@ -1366,12 +1331,13 @@ } \bool_if:NT \l__chemnum_cmpd_init_declare_bool { - \__chemnum_cmpd:onn - { \l__chemnum_tmpa_tl } + \__chemnum_cmpd:Vnn + \l__chemnum_tmpa_tl { \BooleanTrue } { \BooleanFalse } } } +\cs_generate_variant:Nn \__chemnum_cmpd_sublist:n { V } % \cmpdinit*[strict=<bool>]{<comma separated list of label names>} \NewDocumentCommand \cmpdinit { s o m } @@ -1382,7 +1348,7 @@ { \bool_set_true:N \l__chemnum_cmpd_init_declare_bool } \IfNoValueF { #2 } { \keys_set:nn { chemnum } { #2 } } \__chemnum_input_separator:n { #3 } - \tl_map_function:NN \l_tmpa_tl \__chemnum_cmpd_init:n + \tl_map_function:NN \l__chemnum_tmpb_tl \__chemnum_cmpd_init:n } %-----------------------------------------------------------------------------% @@ -1654,10 +1620,11 @@ HISTORY: - changed internal syntax 2013/04/17 version 0.6a - adapted to deprecated l3 functions - protected functions that needed to be - + 2013/06/05 version 0.6b - internal changes to the code + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % TODO: - add a possibility to \ref{} the compounds - (rudimentäre) Unterstützung für hyperref und pdfstrings - provide expandable makro which gives the label and/or sublabel without any - formatting
\ No newline at end of file + formatting diff --git a/Master/tlpkg/libexec/ctan2tds b/Master/tlpkg/libexec/ctan2tds index 10036898722..da68d9cd2e8 100755 --- a/Master/tlpkg/libexec/ctan2tds +++ b/Master/tlpkg/libexec/ctan2tds @@ -484,6 +484,7 @@ chomp ($Build = `cd $Master/../Build/source && pwd`); 'inconsolata', "&MAKEflatten", 'indxcite', "die 'skipping, too old, license suboptimal'", 'induni-om', "die 'skipping, for omega, use of pua?'", + 'interactiveanimation', "die 'skipping, acrobat only'", 'intex', "die 'skipping, wants autoconfery'", 'invoice', "&MAKEflatten", 'ipa', "die 'skipping, part of wsuipa'", |