%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % - chemnum - chemnum_doc_de.tex - % % - a comprehensive approach for the numbering of chemical compounds - % % ------------------------------------------------------------------------------------- % % - Clemens NIEDERBERGER - % % - 2011/12/08 - % % ------------------------------------------------------------------------------------- % % - http://www.mychemistry.eu/ - % % - contact@mychemistry.eu - % % ------------------------------------------------------------------------------------- % % - If you have any ideas, questions, suggestions or bugs to report, please feel free - % % - to contact me. - % % ------------------------------------------------------------------------------------- % % - Copyright 2011 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_doc_de.tex, - % % - chemnum_doc_en.tex, chemnum-codehelper.tex, scheme-tmp.eps, scheme-bla.eps, - % % - README and the derived files chemnum_doc_de.pdf and chemnum_doc_en.pdf - % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \documentclass[DIV11,toc=index]{scrartcl} \usepackage[ngerman,german,naustrian,austrian,english,british,american,canadian,frenchb,canadien,spanish,italian]{babel} \usepackage[T1]{fontenc} \usepackage[utf8]{inputenx} \usepackage[textgreek]{chemnum} \usepackage{textcomp,microtype,libertine,url,xspace,longtable,tabu,booktabs,chemscheme,makeidx} \usepackage[version=3]{mhchem} \renewcommand*\schemename{Schema} \usepackage[normalem]{ulem} \usepackage[runs=2]{auto-pst-pdf} \usepackage{chemfig} \input{chemnum-codehelper} \begin{filecontents}{index_de.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} \usepackage{hyperref} \hypersetup{colorlinks=true, allcolors=myblue, plainpages=false, bookmarksopen=true, bookmarksopenlevel=2, bookmarksnumbered=true, pdfauthor={Clemens Niederberger}, pdftitle={chemnum - Manual}, pdfsubject={Chemische Substanzen Nummerieren}, pdfkeywords={chemmnum,compound,labels}, pdfcreator={LaTeX} } \ExplSyntaxOn \NewDocumentCommand \keyentry { mmm } { \noindent \textcolor{key}{ \texttt { #1 } } \texttt { ~=~#2 } \hfill Typ:~ \texttt { #3 } \index { #1 @ \textcolor{key}{ \texttt { #1 } } } } \ExplSyntaxOff \GetFileInfo{chemnum} \newcommand*\chemnum{{\scshape\textcolor{myblue}{\filename}}\xspace} \newcommand*\CNversion{\fileversion\xspace} \newcommand*\CNdate{\filedate\xspace} \newcommand*\CNinfo{\fileinfo\ with \LaTeXe.} \newcommand*\zB{\mbox{z.\,B.}\xspace} \newcommand*\bzw{\mbox{bzw.}\xspace} \newcommand*\usw{\mbox{usw.}\xspace} \cmpdinit*{a,aa,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,benzol,r,s,t,{1,3-dichlorocyclohexanol}} \makeindex \begin{document} \selectlanguage{ngerman} \begin{titlepage} \centering \Huge\textcolor{myblue}{\biolinumshadow[\fontsize{1.5cm}{1.6cm}\fontshape{sc}]{chemnum}} \vskip.5cm \Large \CNversion \qquad \CNdate \vskip.5cm \large Clemens \textsc{Niederberger} \vskip.25cm \normalsize\url{http://www.mychemistry.eu/}\\ \href{mailto:contact@mychemistry.eu}{contact@mychemistry.eu} \begin{center} \Large\color{myblue} \CNinfo \\[16pt] \normalcolor deutsche Dokumentation \end{center} \vskip3cm \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 \textalpha- und das \textbeta-Anomer von \textsc{d}-Glucose \cmpd[list-delim,list-lang=DE]{glucose.alpha,glucose.beta} stehen in Lösung über die offenkettige Form \cmpd[cmpd-delim]{glucose.chain} im Gleichgewicht.} \end{scheme} \end{titlepage} \cmpdreset \tableofcontents \section{Ein sehr kurzes Readme} \chemnum \CNversion steht unter der \LaTeX\ Project Public License Version 1.3 oder später.\newline(\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}). In diesem Dokument können Sie leicht zwischen einem \textcolor{code}{\ttfamily\textbackslash befehl}, einem \textcolor{key}{key} und sonstigem \texttt{code} unterscheiden. \section{Neues und ein Wort der Entschuldigung} Mit dem Update auf v0.4 hat sich einiges bei den Keys getan. Es gibt ein paar neue, ein paar von den alten haben andere Namen. Sie haben einheitlichere Namen erhalten, die meiner 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. Geändert haben sich folgende Keys: \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} Neu hinzugekommen sind diese: \begin{center} \begin{tabular}{ll}\toprule \bfseries Key & \bfseries Info \\\midrule \key{sublist-output-sep} & Aufzählungszeichen in Labeln wie \cmpd{f.{one,two}}, siehe Seite \pageref{sssec:list-output-sep}. \\ \key{sublist-input-sep} & Eingabe von Labeln wie \cmpd{f.{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 Key \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}. Diese Dokumentation hat mit v0.4 einen Index bekommen. \section{Paket-Optionen}\label{sec:package_options}\secidx{Paket-Optionen} \chemnum hat eine Option. \begin{framed} \centering\lstinline+\usepackage[textgreek = ]{chemnum}+ \end{framed} Damit können Sie sowohl einen der drei Stile des \textsf{textgreek}-Pakets wählen\footnote{Zu Details siehe Dokumentation des \paket*{textgreek}-Pakets.} oder \chemnum ohne \paket{textgreek} laden. Folgende Werte stehen zur Auswahl: \lstinline=artemisia=, \lstinline=cbgreek=, \lstinline=euler= und \lstinline=false=. Wenn Sie \lstinline== weglassen, wird \paket{textgreek} mit dem \lstinline=cbgreek=-Stil geladen. Die Verwendung von \lstinline+\usepackage[textgreek]{chemnum}+ entspricht also \lstinline+\usepackage[textgreek = cbgreek]{chemnum}+. Wenn Sie \chemnum ohne Option verwenden, wird \paket{textgreek} nicht verwendet. Das entspricht \lstinline+\usepackage[textgreek = false]{chemnum}+, der Voreinstellung. Dieses Dokument wurde mit \lstinline+\usepackage[textgreek]{chemnum}+ gesetzt. \secidx*{Paket-Optionen} \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{myquote}[Stefan Schulz] After compilation and printout, discard the last page. \end{myquote} 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{myquote}[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 \lstinline=\bibitem= and \lstinline=\cite= in pretty much the same way as \paket{chemcono} does by extracting the corresponding code from \lstinline=article.cls= and \lstinline=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{myquote} Manche Schwächen hat auch dieses Paket: \begin{enumerate} \item Verbindungen müssen in der Regel mit \lstinline=\declarecompound= deklariert werden. Sie müs\-sen es auf jeden Fall, wenn man Label der Art \cmpd{a.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 \lstinline=\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 \lstinline=\label= und \lstinline=\ref= zur Ver\-fü\-gung stellt: \lstinline=\CNlabel{}=, \lstinline=\CNlabelnoref{}= und \lstinline=\CNref{}=. Außerdem hat es Befehle für Sublabel: \lstinline=\CNlabelsub{}{}=, \lstinline=\CNlabelsubnoref{}{}= und \lstinline=\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} Der eigentliche Befehl des Pakets ist \begin{framed} \centering\cmd{cmpd}{