Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

Manual LATEX/Química, Manuais, Projetos, Pesquisas de Matemática

Manual que ensina como usar o pacote Chemistry para a elaboração de textos de Química usando o LATEX.

Tipologia: Manuais, Projetos, Pesquisas

2010

Compartilhado em 02/02/2010

pedro-miranda-9
pedro-miranda-9 🇧🇷

4.6

(22)

148 documentos

Pré-visualização parcial do texto

Baixe Manual LATEX/Química e outras Manuais, Projetos, Pesquisas em PDF para Matemática, somente na Docsity! Ingo Klöckl OCHEM Benutzerhandbuch OCHEM Version 3-0e 2001-04-10 18. April 2001 Ingo Klöckl Institut für Kernchemie Universität Mainz Fritz Strassmann-Weg 2 D-55099 Mainz kloeckl@vkcmzd.chemie.uni-mainz.de ingo.kloeckl@2k-software.de Gesetzt mit LATEX und OCHEM Version 3-0e 2001-04-10 . OCHEM Version 3-0e 2001-04-10 c 1999–2001 Ingo Klöckl This program can be redistributed and/or modified under the terms of the LaTeX Project Public License Distributed from CTAN archives in directoryma ros/latex/base/lppl.txt; either version 1 of the License, or any later versi- on. INHALTSVERZEICHNIS v 3.1.13 orbital 100 3.1.14 restore 101 3.1.15 restoreXY 102 3.1.16 ring 103 3.1.17 save 110 3.1.18 savecontext 110 3.1.19 saveXY 111 3.1.20 scale 114 3.1.21 shiftXY 115 3.1.22 set 116 3.1.23 setcontext 117 3.1.24 space 119 3.2 Sonderbefehle 120 3.2.1 font 121 3.2.2 package 122 3.2.3 require 124 3.2.4 schema 125 3.3 Die Bibliothek mn y lib.pm 126 3.4 Die Bibliothek bi y lib.pm 128 3.5 Die Bibliothek poly y lib.pm 130 3.6 Das Includefile natur.in 133 3.7 Das Includefile utils.in 139 3.8 Includefiles für Strukturen nach KEKULE: ondensed.in und y lohexanes.in 141 A Das Programm 143 A.1 History 143 A.2 Danke schön! 143 vi INHALTSVERZEICHNIS B Mehr Stoff für Chemiesüchtige 145 Index 147 Die Reaktionss hemata 1–1 Verwendung von Ringstrukturen, hier des Bizyklohexans, aus einer Bibliothek. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2–1 Die Positionierungsparameter vermitteln den Zusammenhang zwi- schen den einzelnen Formeln. In der linken Hälfte von links nach rechts angeordnete Formeln, in der rechten Hälfte übereinanderge- stellte Formeln (von oben nach unten). . . . . . . . . . . . . . . . . 19 2–2 Horizontales Reaktionsschema: Darstellung eines Benzothiophens. 34 2–3 Horizontales Reaktionsschema mit Formelnamen, die auf eine ge- meinsame Linie unterhalb des Reaktionspfeils ausgerichtet sind (fe- ster Abstand des Textes zur Mittellinie). . . . . . . . . . . . . . . . 35 2–4 Horizontales Reaktionsschema mit Formelnamen, die automatisch in konstantem Abstand auf einer gemeinsamen Linie unterhalb des Reaktionspfeils ausgerichtet sind. . . . . . . . . . . . . . . . . . . . 36 2–5 Synthese von Phenanthren, mehrzeilig gesetzt mit multiline. . . 38 2–6 Vertikales Reaktionsschema: Darstellung der 7-Oxononansäure. Rechts dasselbe Schema mit Bennenung der Komponenten. Die Texte wei- sen einen festen Abstand zur Formelunterkante auf. . . . . . . . . 39 2–7 Was passiert mit dem Boran? Mehrfachverzweigungen, von dersel- ben Formel ausgehend, können es zeigen. Der Kontext der Verzwei- gungsstelle, hier des Borans, muß dafür gespeichert werden. . . . . 42 2–8 Ein unabhängiges vertikales Schema wird als einzeiliges multiline- Objekt gesetzt und kann so als Einheit in den horizontalen Formel- verlauf eingefügt werden. . . . . . . . . . . . . . . . . . . . . . . . 43 2–9 Ein Superkontext mit multiline erlaubt die Klammerung mehrerer Formeln. Er wird durch ein multiline-Objekt gebildet. . . . . . . 44 2–10 Unabhängig vom Superkontext können Verzweigungen auf die ein- zelnen Teilformeln ausgerichtet werden, wenn deren Kontexte ein- zeln gespeichert werden. . . . . . . . . . . . . . . . . . . . . . . . 45 2–11 Mit multilineangeordnete Formelbeschriftungen und Verzweigun- gen, ermöglicht durch individuelle Kontexte. . . . . . . . . . . . . 46 2–12 Die Synthese eines Kronenethers als Beispiel für die Zusammenführung zweier horizontaler Ketten mit joinh. . . . . . . . . . . . . . . . . 49 2–13 Homogene geschachtelte Zusammenführungen mehrerer Reaktions- zweige. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 2–14 Synthese der Chrysanthemumsäure, gesetzt mit joinv. . . . . . . . 52 vii 2 Kapitel 1 | Einfuhrung können Sie mit dem Programm GV oder seinen Derivaten allerdings die PS-Ausgabedateien in andere Druckerformate konvertieren. Die Texte, die in den Formeln auftreten, werden mit TEX gesetzt und erfordern somit kein PostScript. Die Entscheidung zu- gunsten von PostScript hängt (neben der Menge an freier Zeit) vor allem mit den be- scheidenen graphischen Fähigkeiten des originalen LATEX zusammen, das keine Lini- en unter beliebigem Winkel oder Kreise mit freiem Radius zeichnen kann. Der Com- piler erzeugt jedoch eine generische Ausgabe, die vom Modul be.pm in verschiede- ne finale Formate umgesetzt wird. Hier ist auch ein LATEX-Ausgabeformat vorgesehen, das nur LATEX-Mittel nutzt, aber aus den erwähnten Gründen im allgemeinen keine so schönen Formeln liefert (vergleichen Sie selbst, in welchen Fällen die Ausgabe hoch- wertig ist und in welchen Mängel auftreten). Dieses native LATEX-Ausgabeformat soll künftig jedoch verbessert werden, wobei vermutlich das Paket eepi zum Einsatz kommen wird.1.2 Installation Der Chemie-Compiler besteht aus einem Perl-Script, das die eigentliche Compilie- rung vornimmt, sowie einigen Modulen, ebenfalls in Perl geschrieben. Sie benötigen die folgenden Dateien in einem Perl-gerechten Verzeichnisbaum: hemie.plstreambuf.pmlo .pmbbox.pmbe.pmmn y lib.pmbi y lib.pm Das File hemie.pl stellt den eigentlichen Compiler dar und muß in ein Verzeich- nis kopiert werden, das im Suchpfad liegt (Variable PATH für Windows), die anderen Dateien enthalten Hilfsklassen (jaja, alles sehr objektorientiert, wow!). Die *lib.pm- Module sind Bibliotheken für Ringstrukturen. Alle .pm-Dateien müssen in ein Ver- zeichnis im Perl-Baum kopiert werden, in dem Bibliotheksdateien liegen, typischer- weise kann dies /perl/5.005/lib sein. Zur Einbindung in LATEX-Dokumente ist die Paketdateio hem.sty in einem von LATEX durchsuchten Verzeichnis erforderlich. Um die Größen der TEX- Texte zu ermitteln, ruft der Compiler intern LATEX auf. Je nachdem, wie auf Ihrem Rechnern das LATEX-System gestartet wird, müssen Sie den Wert von $latex md im Script hemie.pl ändern. Der Default ist zu folgendem Aufruf von LATEX äquivalent:latex <datei> Die Zeichenfolge latex muß zum Beispiel durch tex386 ersetzt werden, falls Sie LATEX wie folgt starten:tex386 <datei> 1.3 | Einbindung in LATEX 3 Möchten Sie die Formeln mit Mitteln von LATEX setzen, benötigen Sie noch die Paketeepi und eepi . Sie werden im jeweiligen LATEX-Dokument hinzugeladen. Wollen Sie einen Präprozessor für Makroersetzung einsetzen, benötigen Sie auch diesen. Für den GNU-Präprozessor M4 existieren Makros zum Satz von Naturstoffen sowie allgemein-nützlicher Natur in den folgenden Includedateien:natur.in utils.in Diese Include-Dateien müssen ebenfalls in ein Verzeichnis im Suchpfad kopiert wer- den.1.3 Einbindung in LATEX Die Beschreibung der Formeln und Reaktionsschemata erfolgt in einer speziellen Beschreibungssprache in ASCII-Dateien. Diese Dateien können entweder manuell erstellt oder online aus einem LATEX-Dokument mit eingebetteten Formeln erzeugt werden. Hier soll hauptsächlich die letzte Methode dargestellt werden, da sie die größere Bequemlichkeit bietet und die Formelbeschreibung und der korrespondie- rende Text nicht auf mehrere Dateien verteilt sind. Sie müssen im LATEX-Dokument das Paket o hem.sty laden und erhalten damit die neue Umgebung hemistry, innerhalb derer die Formelprogramme stehen:% file beispiel.tex\do ument lass{...}\usepa kage{o hem}\begin{do ument}\begin{ hemistry}[phenol℄formula(C,C){ ring(){ 3: bond(90) atom("OH",L); }}\end{ hemistry}\begin{ hemistry}formula(C,C,"Benzen",HR,24){ ring(){ } }\end{ hemistry}\end{do ument} Die vollständige Bearbeitung eines solchen Chemiedokumentes erfordert zwei LATEX- Bearbeitungen. Im ersten Lauf mitlatex beispiel werden die Inhalte aller hemistry-Umgebungen in eine Datei \jobname. hm ge- schrieben, und zwar in Form einzelner s hema-Befehle (siehe unten), die die For- meln und Schemata der einzelnen Umgebungen enthalten. Die Namen der Blöcke 4 Kapitel 1 | Einfuhrung werden durch den Parameter der hemistry-Umgebungen festgelegt und können bei der Fehlersuche behilflich sein. Lassen Sie diesen Parameter fort, wird eine lau- fende Nummer eingesetzt. Die nach dem ersten Lauf resultierende Datei \jobname. hm muß nun mit dem Formelcompiler übersetzt werden hemie.pl beispiel. hm und liefert für jede hemistry-Umgebung eine Datei, die LATEX-Code enthält. Der Name dieser Dateien wird ebenfalls aus dem ersten Parameter und der Extension. tx gebildet, für das Beispiel übersetzen Sie also die Datei beispiel. hm und er- halten phenol. tx. (Die Extension . tx kann als ” chemistry TEX“ gedeutet werden; aufgrund der temporären Natur dieser Dateien, die jederzeit durch Neucompilie- rung erzeug- und überschreibbar sind, müssen sie nicht wie normale TEX-Files ver- waltet werden, Befehle wie ls *.tex lieferten sonst eine unübersehbare Fülle von Kleinstdateien, auch das Packen aller .tex-Dateien in ein Archiv würde diese tem- porären Dateien miterfassen.) Der Compiler schreibt für jede bearbeitete hemistry- Umgebung deren Namen (phenol im Beispiel) in eckigen Klammern auf das Termi- nal:This is OCHEM hemistry ompiler version 1.0b 2001-04-10requires OCHEM.STY 3.0e[phenol. tx℄ [1. tx℄ Diese Angabe ist nützlich, da Sie, falls ein Abbruch durch fehlerhaften Chemiecode erfolgt, leicht die Umgebung finden können, die den Fehler enthält. Die nach der Compilierung erhaltenen . tx-Dateien werden bei der zweiten Be- arbeitung mit LATEXlatex beispiel automatisch eingeladen und bilden den vollständigen Formelinhalt. Da in jedem Lauf versucht wird, sie zu laden, erhalten Sie für jede Datei die Warnung, daß sie noch nicht existiere.LATEX-Umgebung fur Direktbefehle Bei einigen Gelegenheiten müssen Sie direkt Chemiebefehle des Abschnitts 3.2 in die . hm-Zwischendatei schreiben, zum Beispiel um Bibliotheken zu laden oder Makrodefinitionen für den Präprozessor einzufügen. Sie benutzen zu diesem Zwecke die hemspe ial-Umgebung, die Ihre Befehle ohne Umsetzung in die Programm- datei schreibt:\begin{ hemspe ial}<direkte Befehle>\end{ hemspe ial} 1.3 | Einbindung in LATEX 7Der Chemiefont Der Befehl \ hemfont spezifiziert Kommandos zur Auswahl des Zeichensatzes, der für den Satz von Textzeichen innerhalb der Formeln zum Einsatz kommen soll. Als Standard ist \sffamily vorgesehen, das heißt alle Zeichen sind ebenso groß wie die Buchstaben des Grundtextes, aber serifenlos. Sie können im Vorspann des Doku- mentes einen anderen Font einstellen, zum Beispiel die Serifengrundschrift in klei- nerem Schriftgrad:\ hemfont{\rmfamily\small} Oder die aktuelle Grundschrift:\ hemfont{}Ringstrukturmodule Wie in Abschnitt 2.9 des Tutorial geschildert werden wird, können Sie Bibliotheken mit eigenen Ringstrukturen aufbauen oder bereits vorhandene nutzen. Sie werden bei Bedarf dem LATEX-Dokument, das sie benötigt, hinzugefügt. Jede verwendete Bi- bliothek muß vor ihrer Verwendung durch einen Befehl in der hemspe ial-Um- gebung geladen werden:\begin{ hemspe ial}require("<Lib>")\end{ hemspe ial} Um die mitgelieferte Bibliothek bi y lib.pmmit bizyklischen Naturstoffringen ein- zusetzen, muß Ihr Dokument sinngemäß dem in Schema 1–1 gezeigten entspre- chen.Neue Gleitumgebung Das Paket enthält eine weitere Umgebung s hema, die ähnlich der figure-Um- gebung gleitende Abbildungen mit eigenem Nummernkreis für Reaktionsschemata bereitstellt. Eine einfache Anwendung ist folgende:\begin{s hema}\begin{ hemistry}[phenolsyn℄...\end{ hemistry}\ aption{Eine einfa he Phenolsynthese.\label{phen}}\end{s hema} Im zweispaltigen Layout können Sie die Sternform (s hema*-Umgebung) verwen- den, um die Schemata über beide Spalten zu setzen. 8 Kapitel 1 | Einfuhrung \do ument lass[...℄{...}\usepa kage{o hem}\begin{do ument}\begin{ hemspe ial}require("bi y lib")\end{ hemspe ial}\begin{ hemistry}[ ampher℄multiline(1,L){ formula(L,R,"Zyklopentadien"){ ring(,,H1=3=,,5,0){} }formula(L,R){ atom("+") }formula(L,R,"Methyla rylat"){ bond(-90,=U) bond(-30) atom("COOCH$_3$",L) }arrow(){}formula(L,R){ ring("b 221h",,5=){ 2: bond(-30) atom("COOCH$_3$",L); }};}\end{ hemistry}\end{do ument} Zyklopentadien + COOCH3Methyla rylat COOCH3 Schema 1–1 Verwendung von Ringstrukturen, hier des Bizyklohexans, aus einer Bi- bliothek. 1.3 | Einbindung in LATEX 9Formeln sind LATEX-Boxen! Wie Sie aus der Überschrift entnehmen können, bilden die hemistry-Umgebun- gen normale LATEX-Boxen, genauer pi ture-Umgebungen oder -boxen, sodaß Sie zur Positionierung der Formeln im Text alles anwenden können, was auch mit LATEX- Abbildungen gestattet ist, zum Beispiel die Anordnung mehrerer vertikaler schmaler Reaktionsketten nebeneinander oder das Plazieren von Formeln mitten im Textfluß oder in Abbildungen oder eigenen Zeilen.Formeln als EPS-, PNG- ... Graphiken Die bislang dargestellte Methode, eine Formel mithilfe der hemistry-Umgebung in ein LATEX-Dokument einzubinden, setzt voraus, daSSie stets die vom Formelcom- piler erzeugten kleinen LATEX-Dateien bereit haben. An sich nicht schlimm, wird hier- durch jedoch eine Benutzung dieser Formeln nur in LATEX-Dokumenten möglich. Sie können jedoch auch durch eine Paketoption separate ein Dokument erstellen, das ausschließlich hemistry-Umgebungen enthält, die durch die Option automatisch auf eigenen Seiten, je eine Umgebung und damit Formel auf einer Seite, gesetzt werden. Da auch der Seitenstil ëmptyëingesetzt wird, erscheinen keine Seitenzah- len mehr. Als Beispiel diene die Datei formeln.tex, die die folgenden drei Formeln enthält:NHONHOIndigo Br BrN HONHO6,6'-Dibrom-indigoPurpur COOHOH CH3 OHOH CO(CHOH)4CH3OHOOCarminsaure\do ument lass{report}\usepa kage{german}\usepa kage[separate℄{o hem}\begin{do ument}\begin{ hemistry}[indigo℄formula(L,R,"Indigo",HR,24){ ring(,,H,,5,0){vertex(,2){};0: bond(r,=C,L) ring(,0,H,,5,r){vertex(,2){};1: atom("N") bond(r) atom("H");4: bond(r,=C) atom("O");};1: atom("N") bond(r) atom("H");4: bond(r,=C) atom("O"); 12 Kapitel 1 | Einfuhrung $be::BE PSLATEX : Texte werden in LATEXin einer pi ture-Umgebung gesetzt, die Graphikausgabe er- folgt in PostScript. Die Definition der verschiedenen Bindungsarten und Reaktions- pfeile ist in o hem.sty als PostScript-Headerdatei enthalten. Die Dimensionen der Textboxen werden ermittelt, indem alle auftretenden Texte in eine temporäre LATEX- Datei geschrieben werden, die durch den Compiler übersetzt wird und für jeden Text die Größe (Breite, Höhe, Tiefe) liefert. In diesem Modus können Sie die besten Ergebnisse erwarten. $be::BE PS : Dieses Format erzeugt ein reines PostScriptfile im EPS-Format. Achtung, die Größen von Text werden derzeit nicht ermittelt und stets auf Null gesetzt, was in falschen und seltsamen Verschiebungen der Texte resultiert. Dieses Format dient im Moment vor allem zum raschen Testen während der Entwicklung, ohne LATEX benutzen zu müssen, da die reinen Formelbilder korrekt dargestellt sind. Wenn Sie keinen Text in der Formel haben, können Sie so fertige EPS-Ausgabedateien erzeugen. $be::BE LATEX : Dies ist eine reine Ausgabe mit graphischen LATEX-Primitiven wie Linien, Pfeilen und Kreisen. Entsprechend den sparsamen Möglichkeiten, werden nicht alle Bindungs- formen, Winkel und Kreisradien unterstützt. Abhängig von den Ausgabeformaten, muß auch die Ermittlung der Textgrößen auf unterschiedliche Weisen geschehen. Da dieser Vorgang unmittelbar nach dem Par- sen des Programmcodes erfolgt, finden Sie die entsprechenden Zeilen nicht in be.pm, sondern in streambuf.pm. Auch in diesem Modul wird anhand des Formattyps ent- schieden, ob LATEX zur Ermittlung der Textgröße aufgerufen werden muß. Für eine reine PostScript-Ausgabe existiert derzeit keine Größenermittlung.1.5 Makrode nitionen Beim Compilieren des von LATEX erzeugten . hm-Files kann durch den Schalter -pp eine Präprozessorbearbeitung veranlaßt werden, um Makros aufzulösen oder be- dingte Bearbeitung zuzulassen. Hierfür müssen Sie in hemie.pl bei der Auswer- tung der Variablen $prepro innerhalb der Backticks den Aufruf Ihres bevorzugten Präprozessors einfügen. Der Präprozessor muß den Inhalt der Eingabedatei, deren Name in $infile steht, in bearbeiteter Form in die Zwischendatei $tmpfile übert- ragen. Wenn Sie den Gnu M4-Präprozessor benutzen, müssen Sie keine Anpassung vornehmen. Möchten Sie keinen Präprozessor einsetzen, brauchen Sie nichts anzupassen und dürfen den Compiler nicht mit -pp aufrufen.Der M4-Praprozessor Hier soll keine Manpage zu M4 gegeben, sondern nur kurz dargestellt werden, wie ein Makro definiert und eingesetzt wird. Jede Makrodefinition muß vor ihrer Benut- zung innerhalb einer hemspe ial-Umgebung auftreten; sowohl Name wie auch Ersetzungstext müssen dabei durch einfaches Backtick respektive Hochkomma ge- klammert sein. Die aktuellen Argumente sind über die Variablen $1, $2 . . .verfügbar. Mit der Sequenz 1.5 | Makrode nitionen 13\begin{ hemspe ial}define(`C3', `bond(30) atom("$1") bond(-30)')\end{ hemspe ial}\begin{ hemistry}formula(){ C3(O) C3(NH) }% ^-- aquivalent zu% bond(30) atom("O") bond(-30) ...% ... bond(30) atom("NH") bond(-30)\end{ hemistry} wird die Struktur des Methoxymethyl-methylamins erzeugt. Sie können auch Makros schreiben, die mit Hilfe von ifelse Entscheidungen tref- fen. Als Beispiel dient hier die Reihe einiger fünfgliedriger Heterozyklen (Thiophen, Furan und Pyrrol), in der die Chalkogenvertreter keinen Wasserstoff tragen:\begin{ hemspe ial}define(`CP',`ring(" pentane",,1=3=){0: atom("$1");ifelse($1,`N',`0: bond(-90) atom("H");')}')\end{ hemspe ial}\begin{ hemistry}formula(L,R,"Furan",HA,24){ CP(O) }formula(L,R,"Pyrrol",HA,24){ CP(N) }formula(L,R,"Thiophen",HA,24){ CP(S) }\end{ hemistry} Das Makro vergleicht seinen Parameter mit dem Symbol für Stickstoff und erzeugt, falls der Vergleich positiv ausfällt, eine weitere Bindung zum Wasserstoffatom. Haben Sie eine Anzahl Makros geschrieben, die Sie immer wieder benötigen, können Sie diese in einem Includefile zusammenfassen und bei Bedarf nachladen – eine Art von Bibliotheksdatei auf der Ebene des Präprozessors. Ausführliche Beispiele von Makros finden Sie in den Abschnitten 3.6 und 3.7. Sie müssen das gewünschte In- cludefile mit der Folge\begin{ hemspe ial}in lude(`natur.in ')\end{ hemspe ial} in Ihr Dokument einbinden. in lude ist ein weiterer Präprozessorbefehl von M4, der die angegebene Datei lädt und die darin enthaltenen Makrodefinitionen ausführt. Um maximalen Nutzen aus Makros zu ziehen, müssen sie möglichst flexibel ge- schrieben werden. Beim Terpengerüst TERPEN lag zum Beispiel die Überlegung zu- grunde, daß die natürlichen Terpene dieses Typs meistens an den Kohlenstoffato- men C1, C2, C3 und C8 substituiert sind. Der seltener auftretende Substituent an C2 wird als (eventuell leerer) Parameter übergeben. Die anderen Positionen wer- den gespeichert und können mit restoreXY zum Startpunkt von Substituenten wer- den. Mit Hilfe einiger ifelse-Befehle wird das STEROID-Makro so gestaltet, daß es die ähnlichen Gerüste wichtiger Steroidgrundkörper erzeugen kann, wobei die Be- schreibung der vier Ringe gemeinsam verwendet wird. 14 Kapitel 1 | Einfuhrung Sie sollten beim Schreiben Ihrer Makros ähnliche Überlegungen anstellen, um zu ei- ner Anzahl von wichtigen Schlüsselatomen zu gelangen, an denen Modifikationen möglich sind. Kleine Änderungen können als Parameter übergeben werden, sind komplizierte Formeln zu erwarten, werden diese Parameter leicht unübersichtlich und es ist besser, im Makro solche Schlüsselpositionen zu speichern und später mitrestoreXY wieder anzuspringen. Variable Gerüstteile können mit ifelse einge- setzt werden und auf einer gemeinsamen Struktur aufbauen.1.6 Ausbli k Ich habe in der vorliegenden Version die Ideen bearbeitet, die mir spontan zum Thema Formelsatz in den Sinn gekommen sind; folgen weitere, werden diese in späteren Versionen ebenfalls zur Verfügung stehen. Da sich viele Änderungen oder Erweiterungen erst beim intensiven Nutzen des Pakets herauskristallisieren, wäre ich über Anregungen oder Kritik aus Nutzerkreisen interessiert. Da jedem automatisch der Sourcecode zugängig ist, kann unter ” Nutzung“ auch die Weiterentwicklung verstanden werden *smile*! Zunächst auf den Satzmechanismus konzentriert, habe ich hier ein weites Feld zum Bestellen hinterlassen; einige Punk- te, die verbessert werden müssen, sind zum Beispiel: Verbesserte Ausgabe nur mit Mitteln von LATEX (Moduskennung $be::BE_LATEX). Ermittlung der Textgröße auch bei reiner PostScript-Ausgabe mit der Moduskennung$be::BE_PS. Vielleicht kann auch das Programmdesign insgesamt und von Grund auf besser oder einfacher gestaltet werden. Geänderter Code sollte analog dem Vorgehen bei TEX/LATEX durch eine Namensände- rung kenntlich gemacht werden, das heißt es darf unter allen Umständen nur eine einzige Version OCHEM Version 3-0e 2001-04-10 existieren! Damit nach konstruk- tiven Änderungen alle in den Genuß der Bemühungen und weiterentwickelter Ver- sionen kommen können, schlage ich vor, Verbesserungen in Form des Sourcecodes oder detaillierter Bemerkungen an mich zu mailen, damit sie in die derzeit aktuelle Version eingepflegt werden können. Meine EMail-Adresse istkloe klvk mzd. hemie.uni-mainz.deingo.kloe kl2k-software.de 2.1 | Grundlegende Elemente 17 (Formel links). In der Formel rechts können Sie erkennen, welches Aussehen die COOH-Gruppe besäße, wäre sie einfach in einem Stück mit L positioniert worden (Bindung oben). Eine Zentrierung des Textes hätte katastrophale Folgen (COOH- Gruppe unten). COOHCHOO COOHCOOH formula(L,R){ ring(){ 0: bond(r) atom("C",C,R) atom("OOH",L);3: bond(r) atom("C",C,L) atom("HOO",R);}}formula(L,R){ ring(){ 0: bond(r) atom("COOH",C);3: bond(r) atom("COOH",L); }} Das Problem tritt nicht in Erscheinung, wenn die Bindungen schräg auf einen langen Textabschnitt treffen und seitlich zum gesamten Text positioniert werden, wie Sie bereits an der Etherkette mit den zwei Carboxylgruppen gesehen haben. Ringstrukturen werden mit dem Befehl ring erzeugt. In seiner einfachsten Form erhalten Sie einen Benzenring, mit verschiedenen Parametern können Sie jedoch auch n-gliedrige Ringe sowie andere wichtige Gerüste (Campher) darstellen. Mit Ringen begegnen Ihnen erstmal Elemente, von denen mehrere Substituenten ab- zweigen können. Diese Substituenten werden wie normale Formeln beschrieben, müssen jedoch jeweils durch ein ; angeschlossen werden. Das Ringatom, von dem aus der Substituent abzweigt, wird durch eine Nummer, bei Null beginnend, be- zeichnet. Um nicht für jede Ringposition den genauen Winkel, unter dem die Bin- dungen abzweigen, lernen zu müssen, können Sie bei bond eine symbolische Win- kelangabe r für radiale Bindungen angeben (eine ausführlichere Diskussion symbo- lischer Winkel finden Sie im nächsten Abschnitt):COOH formula(L,R){ ring(){ 0: bond(r);3: bond(r) atom("C",C,R) atom("OOH",L);4: bond(r; r/; r); }} Eine weitere Form der Verzweigung kann bei Ketten auftreten. bran h hält die ak- tuelle Position in anonymer Form fest und erlaubt es, Substituenten anzugeben, die mit ; abgeschlossen werden und an diesem Punkt beginnen: HO CH2 CH2 OHOC formula(L,R){ atom("HO",L,R) bond(0)atom("CH$_2$",L,R) bond(0)atom("CH$_2$",L,R) bond(0)bran h { bond(-45) atom("OH", L);bond(45,=) atom("O",L);atom("C");}} Da dieser Punkt nach Abarbeitung des Befehlsrumpfes noch erhalten bleibt, kann 18 Kapitel 2 | Tutorial von ihm aus die Kette weitergeführt werden. Sie können daher eine Hauptkette for- mulieren und die von dieser abzweigenden Seitenäste mit bran h beschreiben:OH formula(L,R){ bond(30)bran h { bond(120,t);bond(60,o) atom("O",C,R) atom("H",L);}bond(-30; 30)} Die Befehle saveXY und restoreXY bieten die Möglichkeit, die aktuelle Position unter einer Nummer zu speichern und an beliebiger Stelle darauf zuzugreifen. Die rekursive Schachtelung, die bei Verzweigungen mit bran h auftritt, kann so in einen linearen Ablauf umgewandelt werden. Besonders bei tief geschachtelten Verzwei- gungen kann diese Form vorteilhaft sein. HO CH2 CH2 C OHO formula(L,R){ atom("HO",L,R) bond(0)atom("CH$_2$",L,R) bond(0)atom("CH$_2$",L,R) bond(0)saveXY(#1) atom("C")restoreXY(#1) bond(-45) atom("OH", L)restoreXY(#1) bond(45,=) atom("O",L)}2.1.2 Formeln anordnen Haben Sie erst einmal eine Formelbeschreibung erstellt, kann diese innerhalb desformula-Befehls als Einheit betrachtet und automatisch plaziert werden. An dieser Stelle kommen die Parameter des Befehls ins Spiel: sie geben an, wie die Formel re- lativ zu einem Startpunkt plaziert werden soll (zentriert, linksbündig, mit einer Ecke oder Kante) und an welcher Stelle der Formel der Anschlußpunkt für nachfolgende Formeln liegt (ebenfalls zentriert, eine Kante oder Ecke). Dieser Anschlußpunkt wird zum Startpunkt für folgende Formeln. Daraus folgt, daß Sie für beide Parameter be- liebige Werte, zum Beispiel C,C, einsetzen können, wenn es Ihnen nur darum geht, ein Formelbild in den Text einzufügen, da beide Parameter erst im Zusammenspiel mehrerer Formeln ihren Sinn erhalten. Betrachten Sie als Beispiel das Schema 2–1, in dem in der linken Hälfte Formeln Seite an Seite erscheinen, auf eine gemeinsame vertikale Mitte ausgerichtet mit dem Positionierungsparameter L,R. Diesselben Formeln mit T,B gesetzt, reihen sich rechts an einer gemeinsamen Mittelkante, aber vertikal auf. Die beiden Varianten, Formeln aneinanderzufügen, dürften die meistgenutzten sein, da mit ihnen Reaktionsketten aufgebaut werden können. (In einem späteren Ab- schnitt werden Sie noch lernen, wie neben dem bislang linearen Ablauf Verzweigun- gen hinzufügen.) Es sind jedoch zwei wichtige Sonderanordnungen zu erwähnen: Eine regelmäßige tabellarische Anordnung kann mit den bisherigen Mitteln nicht erreicht werden, da die Position jeder folgenden Formel von der Größe der vor- hergehenden abhängig ist. Der Befehl !gotoXY setzt den Startpunkt einer Formel 2.1 | Grundlegende Elemente 19 \begin{ hemistry}[intro2a℄formula(L,R){ bond(30; -30; 30,=; -30) }formula(L,R){ atom("HOOC",L,R) bond(30; -30; 30) atom("COOH", L) }formula(L,R){ ring(){ 0: bond(r);4: bond(r; r/; r); }}\end{ hemistry}\hfil\begin{ hemistry}[intro2b℄formula(T,B){ bond(30; -30; 30,=; -30) }formula(T,B){ atom("HOOC",L,R) bond(30; -30; 30) atom("COOH", L) }formula(T,B){ ring(){ 0: bond(r);4: bond(r; r/; r); }}\end{ hemistry} HOOC COOH HOOC COOH Schema 2–1 Die Positionierungsparameter vermitteln den Zusammenhang zwi- schen den einzelnen Formeln. In der linken Hälfte von links nach rechts angeord- nete Formeln, in der rechten Hälfte übereinandergestellte Formeln (von oben nach unten). 22 Kapitel 2 | Tutorial Mit den +- und --Angaben können auch längere Alkylketten ohne Wissen um den genauen Winkel formuliert werden. Da die Drehungen relativ zum augenblickli- chen Drehwinkel erfolgen, können Sie alle identischen Alkylsubstituenten, an wel- cher Ringpositionen sie auch auftreten, durch Angabe ein und derselben Beschrei- bung setzen. Beachten Sie, daß bei diesem Verfahren alle Ketten durch Drehung aus derselben Grundform hervorgehen und die Ketten so in Abhängigkeit ihres Starta- toms unterschiedlich orientiert sind:formula(T,B){ ring(,,H1=,,7,90){ 1: bond(r; r-; r; r-; r);2: bond(r; r-; r; r-) ;5: bond(r; r-; r; r-) ; }}formula(T,B){ ring(,,H1=,,6,90){ 1: bond(r; r-; r; r-; r);2: bond(r; r-; r; r-) ;5: bond(r; r-; r; r-) ; }}formula(L,R){ ring(,,H,,5,90){ vertex(,1,4,H,6){ 0: bond(r);1: bond(r; r-; r,=U; r+; r);};vertex(,3,1,H,7){ 0: bond(r);4: bond(r; r-; r,=U; r+; r);5: bond(r; r-; r,=U; r+; r);};}} Einige dieser Ketten werden üblicherweise horizontal orientiert dargestellt. Wünschen Sie eine solche Anordnung, können Sie den symbolischen Winkel r/ anstelle der fe- sten Rechtsdrehung r- benutzen. Diese Angabe legt keine bestimmte Drehrichtung fest, sondern bestimmt diese anhand der augenblicklichen Bindungsrichtung: weist die Bindung nach oben rechts (zum Beispiel 30o), wird die nächste Bindung nach unten rechts (-30o) gezogen. Auf Bindungen nach unten links folgen solche nach links oben und so fort. Diese Anordnung fällt am angenehmsten bei sechsgliedrigen Ringen auf: 2.2 | Komplexere Formeln 23formula(T,B){ ring(,,H1=,,7,90){ 1: bond(r; r/; r; r/; r) ;2: bond(r; r/; r; r/) ;5: bond(r; r/; r; r/) ; }}formula(T,B){ ring(,,H1=,,6,90){ 1: bond(r; r/; r; r/; r) ;2: bond(r; r/; r; r/) ;5: bond(r; r/; r; r/) ; }} Wiederholte Anwendung der +- und --Symbole erhöht oder vermindert jeweils um 60o, sodaß auch geschachtelte Alkylketten ohne Kenntnis der genauen Winkel der aktuellen Ringposition gesetzt werden können:formula(L,R){ ring(,,H,,5,90){ 1: bond(r)bran h { bond(r+); }bond(r-,=)bran h { bond(r--; r---; r--); }bond(r) bond(r-); }} Das folgende Beispiel diskutiert eine Möglichkeit der Kettenverzweigungen genauer. Durch die Festlegung einer Linksdrehung für die Methylverzweigung (r+) resultieren auf der ” linken“ Seite des Ringes andere Ketten als auf der rechten, was die Orien- tierung der Methylgruppen angeht. Die Ketten entstehen durch strenge Rotation:formula(L,R){ ring(){ 1: bond(r) bran h { bond(r+); } bond(r-;r);2: bond(r) bran h { bond(r+); } bond(r-;r);4: bond(r) bran h { bond(r+); } bond(r-;r);5: bond(r) bran h { bond(r+); } bond(r-;r); }} Die symbolischen Winkel rt und r/t versuchen, eine gefälligere, das heißt sym- metrischere und an den Koordinatenachsen orientierte Anordnung solcher Quer- bindungen zu erzielen, indem Links- oder Rechtsdrehungen zugelassen und auch automatisch bestimmt werden:formula(L,R){ ring(){ 1: bond(r) bran h { bond(rt,,s); }bond(r/) bran h { bond(r/t,,s); } bond(r);2: bond(r) bran h { bond(rt,,s); }bond(r/) bran h { bond(r/t,,s); } bond(r);4: bond(r) bran h { bond(rt,,s); }bond(r/) bran h { bond(r/t,,s); } bond(r);5: bond(r) bran h { bond(rt,,s); }bond(r/) bran h { bond(r/t,,s); } bond(r); }} 24 Kapitel 2 | Tutorial Zur Darstellung der Stereochemie an Doppelbindungen muß zu den bislang ge- nannten noch der symbolische Winkel r\ hinzutreten, mit dem eine Bindung ent- gegen dem Knickwinkel r/ gezeichnet wird. Die Auswirkungen sowie die korrek- te Formulierung von winkelunabhängigen E/Z-Isomeren ist in der folgenden Formel gezeigt: (E)-Isomer (Z)-Isomer formula(T,B,"(E)-Isomer",HR,24){ ring(){ 1: bond(r; r/; r,=; r/; r; r/);2: bond(r; r/; r,=; r/; r; r/);4: bond(r; r/; r,=; r/; r; r/);5: bond(r; r/; r,=; r/; r; r/); }}formula(T,B,"(Z)-Isomer",HR,24){ ring(){ 1: bond(r; r/; r,=; r\; r; r/);2: bond(r; r/; r,=; r\; r; r/);4: bond(r; r/; r,=; r\; r; r/);5: bond(r; r/; r,=; r\; r; r/); }}2.2.2 Lineare Systeme Viele Formelbilder lassen sich als lineare Abfolge von einfachen Bindungen oder zu- mindest identischen oder ähnlichen Einheiten auffassen und daher linear beschrei- ben. Der durchaus komplizierte Chlorinring kann trotz seines Ringcharakter als lineares System aufgefaßt werden, das aus vier Pyrrol-/Methyleneinheiten besteht. Jede die- se Methylenbrücken endet am Pyrrolring der nächsten Einheit. Der Ring kann somit durch eingeschachtelte nahezu identische Beschreibungen der Grundeinheit be- schrieben werden. Der Ringschluß ergibt sich durch korrekte Wahl der Winkel aus Symmetriegründen von selber. (Da die Anschlußpunkte einer Struktureinheit stets von der vorhergehenden abhängig sind, erlangt man hier keinen Gewinn durch den Einsatz einer Linearisierung mit saveXY und restoreXY. Dieser wäre nur gegeben, wenn die Startpunkte der Partialformeln allesamt zu Beginn verfügbar wären.) NH NNHNChlorin formula(L,R,"Chlorin",HR,24){ ring(,,H1=3=,,5,-45){ 0: atom("N") bond(-45) atom("H");4: bond(30) bond(-30,=)ring(,1,H2=4=,,5,-135){ 0: atom("N");4: bond(-60) bond(-120,=)ring(,1,H2=,,5,135){ 0: atom("N") bond(135) atom("H");4: bond(-150,=) bond(150)ring(,1,H0=,,5,45){ 0: atom("N");4: bond(120,=) bond(60);};};};}} 2.2 | Komplexere Formeln 27 HH3CNH NH2Buxenin-G formula(L,R,"Buxenin-G",HR,24){ ring(,,H4=,,7,0){ 0: bond(b,t) atom("H");vertex(,3,1,H,6){ 3: bond(t); 3: bond(b);4: bond(r,t) atom("H$_3$CNH",R); };vertex(,6,4,H5=,6){ 2: bond(t,t);3: bond(-90,o);vertex(,2,2,H,5){ 4: bond(r)bran h { bond(r+) atom("N",C,R)atom("H$_2$",L); }bond(r-);};};}} Nicht immer muß die beiden Ringen gemeinsame Bindung sichtbar sein. Das Hu- mulen besteht aus einem Neunring, kondensiert mit einem Vierring. Der Eindruck der quadratischen Aussparung wird einfach durch je eine unsichtbare Bindung in jedem der Ringe erreicht: Humulen formula(L,R,"Humulen",HR,24){ ring(,,H4s,,9,0){ 3: bond(r);vertex(,4,3,H3s,4,-45){ 2: bond(100,<.); 2: bond(170,<<); };8: bond(45);}}2.2.4 Manuelle Erstellung anellierter Systeme Sie haben im letzten Abschnitt gesehen, wie mit vertex mehrkernige Systeme aus streng polygonalen Ringen aufbaut werden können. Diese Syntaxerweiterung ist je- doch nur für den Typ ring, also n-Ecke, definiert und kann daher nicht mit ande- ren Typen wie pentane verwendet werden. Müssen Ringe aus solchen anderen Typen aufgebaut werden, müssen Sie die Berechnungen der korrekten Drehwinkel selber vornehmen. Es folgt eine kleine Anleitung, in der eine allgemeine Formel für den Drehwinkel entwickelt wird, die auf Polygonen basiert, aber auf andere Typen übertragbar ist, wenn Sie deren typische Winkel kennen. Die Basispolygone sind dabei nicht gedreht, <p2> besitzt den Wert Null. Den einzelnen Kanten sind gemäß Tabelle 2.1 Winkel i zugeordnet, die in die all- gemeine Formel einzusetzen sind. In der folgenden allgemeinen Formel bedeutensoll den gewünschten Drehwinkel des Grundkörpers,  den korrekten Drehwin- kel des Ringes, der als Substituent dargestellt wird, 1 und 2 die Kantenwinkel der zusammentreffenden Kanten von Basis- und Substituentenring: = soll + (1 2) + 180 Die folgende Verbindung basiert auf dem fünfgliedrigen Pyrrolidinring und wird zur Verdeutlichung mit den Drehwinkeln 0o, 45o und 90o dargestellt. Die Nullpunk- 28 Kapitel 2 | Tutorial Tabelle 2.1 Zuordnung des Kantenwinkels zu den einzelnen Kanten für verschie- dene Polygone (Zyklopentan, n = 5 bis Zyklooktan, n = 8). Die Kantennummer ist gleichzeitig die Nummer eines Substituenten. Kante Kantennummer n = 5 n = 6 n = 7 n = 8 a 0 54 60 64 67 b 1 -18 0 13 23 c 2 -90 -60 -38 -22 d 3 -162 -120 -90 -67 e 4 -234 -180 -141 -112 f 5 -240 -193 -157 g 6 -244 -202 h 7 -247 te der einzelnen Furanringe werden vom Sauerstoffatom eingenommen, der Null- punkt des Pyrrolidins vom Stickstoff. Konstruieren wir zunächst den Grundkörper ohne Drehung des Pyrrolidinkerns. Durch folgende Kantenkorrespondenzen ergeben sich die angegebenen Winkel: Pyrrolidin Furan Winkel Kante Substituent i Kante Startatom j b 1 e 4 + 1 = 5 0 +18180 + 180 = 18 d 3 b 1 + 1 = 2 0 +162 0 + 180 = 18 e 4 e 4 + 1 = 5 0 +234180 + 180 = 234 Durch die Wahl der Ringkanten, die übereinstimmen sollen, ist die Lage des Null- punktes des gedrehten Ringes festgelegt und ebenfalls in der Tabelle angegeben. Es gilt dabei, daß die Substituentenposition i des Basisringes die Nummer der Kante ist (Tabelle 2.1). Das Startatom j, das in der Beschreibungsliste des Substituentenringes eingesetzt werden muß, ist um Eins höher als die Kantennummer. OON formula(L,R){ ring(,,H,#N,5,0){ 1: ring(,5,H,#N,6,-18){ 0: atom("O");};3: ring(,2,H,#N,6,18){ 0: atom("O");};4: ring(,5,H,#N,6,-234){ 0: atom("O");};0: atom("N"); }} Bei den gedrehten Systemen muß nun einfach der Drehwinkel soll zu allen Win- keln addiert werden. 2.2 | Komplexere Formeln 29 OO N formula(L,R){ ring(,,H,#N,5,90){ 1: ring(,5,H,#N,6,72){ 0: atom("O");};3: ring(,2,H,#N,6,108){ 0: atom("O");};4: ring(,5,H,#N,6,-144){ 0: atom("O");};0: atom("N"); }} Und schließlich noch ein System aus Fünf-, Sieben- und Achtringen:formula(L,R){ ring(,,H,#N,7,0){ 4: ring(,3,H,#N,5,129){ 0: bond(r);}; % 0 + -141 - -90 + 1801: ring(,6,H,#N,8,350){ 0: bond(r,<<);}; % 0 + 13 - -157 + 1800: bond(r); }} Die typischen Winkel beim Ringtyp pentane entsprechen denen des Sechsecks, wobei Sie die fortfallende Ecke berücksichtigen müssen.2.2.5 Angular anellierte Ringe Ringsysteme, in denen die Ringe mehr als eine gemeinsame Bindung haben, können mitunter schwierig zu beschreiben sein, wenn Sie sie aus Polygonen aufbauen, da die Bindungen zum Beispiel eines Fünfringen andere Winkel aufweisen als die der Sechs- oder Siebenringe. Bei kondensierten Sechsringen tritt dieses Problem nicht auf; für den häufigen Fall des Zusammentreffens von Sechs- und Fünfringen kann zur Darstellung der Fünfringe der Typ " pentane" gewählt werden, dessen Winkel nahtlos zu denen der Sechsringe passen. HOO HO(+)-Hibis on A formula(L,R,"($+$)-Hibis on A",HR,24){ ring(,4,H){ 1: bond(r,o) atom("HO",R);2: bond(r,=C) atom("O");5: bond(b,o) atom("H"); }ring(,2,H){ 0: bond(r,o) bran h{ bond(r+); bond(r-);}; }ring(" pentane",,0=3=){ 2: atom("O");}} Die Formel des Crassanins zeigt, daß auch das Gerüst des Bizyklo[2.2.2]oktans mit einem Sechsring kombinieren werden kann, da die Bindungslängen im Bizyklus de- nen der sonstigen Bindungen entspricht. Die Kantenlängen des Fünfrings muß mit der Größenangabe #N etwas verringert werden, damit der Benzenring nicht erheb- lich größer als der Zyklohexanring wirkt: 32 Kapitel 2 | Tutorial HN OHLy opodin formula(L,R,"Ly opodin",HR,24){ ring(,2,H){}ring(,4,H){ 3: bond(b,<<) atom("H");5: atom("N");}ring(,0,H){ 4: bond(r,=C) atom("O");0: bond(-170,t,S; 150,p) saveXY(#1)bond(90,t; 10,t,S)restoreXY(#1) bond(-150,<.)restoreXY(#1) bond(150,<<) atom("H");}}Fall (b) Die folgenden beiden Beispiele weisen eine Brücke auf, die durch Annäherung von beiden Brückenköpfen her aufgebaut wird, der Ringschluß erfolgt durch eine wilde Linie (Brücke wiederum gestrichelt gezeichnet):formula(L,R){ ring(,2,H){ 1: bond(-120,o) saveXY(#1);vertex(,5,2,H,5){ 1: bond(-150,o; #1,o); };}} HH()-Kauran formula(L,R,"($-$)-Kauran",HR,24){ ring(,,H){ 3: bond(-90,t) atom("H");2: bond(b,o);1: bond(b,t) atom("H");vertex(,1,1,H,6){3: bond(-120,t); 3: bond(-60,o); };vertex(,3,3,H,6){ 1: bond(-40,o) saveXY(#1) bond(30,o);3: bond(-20,o) bond(#1,o);};}} Die Darstellung einer dem Humulen nahe verwandten Struktur bringt Schwierig- keiten, wenn die E/Z-Isomerie, die aus der Doppelbindung im Neunring resultiert, korrekt wiedergegeben werden soll. Am besten fassen Sie den Neunring als Brücke mit einem unbekannten Teilstück auf, das durch eine wilde Linie wiedergegeben wird. (Im Beispiel entsteht eine Asymmetrie, da diese wilde Linie nicht exakt in der vertikalen Mitte des Vierringes endet; wollen Sie eine perfekt symmetrische Formel, müssen Sie Lösungen analog dem Falle (c) suchen): 2.3 | Reaktionsketten 33 (E)-Isomer formula(L,R,"(E)-Isomer",HR,24){ ring(,,H,#N,4,-45){ 3: bond(70; 10; -50; -110,=) saveXY(#1);0: bond(-70; -10; 50; #1);}}Fall ( ) Die Lösung dieses Problems wurde bereits gegeben, im Beispiel ist es sogar einfach, den Zielpunkt zu bestimmen, da er in radialer Verlängerung des Ringatoms, das sich zwischen den beiden Brückenköpfen befindet, liegt (hier Position 5). ( ) formula(L,R,"( )",HR,24){ ring(,,H){ 5: saveXY(#1,-30,N);0: bond(#1,o);4: bond(#1,o); }}Wilde Linien Aus den vorangegangenen Beispielen ist deutlich geworden, wie nützlich wilde Li- nien sind (vor allem zum Pfuschen). Sind die Brücken sehr kompliziert und müssen Sie daher unübersichtliche Befehlsketten schreiben, kann es sinnvoll sein, die Positi- on eines oder beider Brückenköpfe mit saveXY zu speichern und später, außerhalb der geschachtelten Beschreibungen des Grundkörpers, mit restoreXY wieder auf- zugreifen.2.3 Reaktionsketten Das Konzept der automatischen Positionierung von Formeln zueinander kann mit dem weiteren Grundelement des Reaktionspfeils so erweitert werden, daß nicht nur Formeln nebeneinander gestellt, sondern mit zwischengesetzten Pfeilen zu ganzen Reaktionsschemata oder -ketten verbunden werden. Neben einer einfachen linea- ren Abfolge sind daneben auch Verzweigungen und deren Gegenteil, die Zusam- menführung sowie mehrzeilige Schemata möglich.2.3.1 Horizontale lineare Anordnung Anstelle der bereits bekannten beiden Positionierungsparameter einer Formel verfügt das Pfeilelement über die Angabe einer Richtung und Länge, um den Anschluß- punkt zu bestimmen. Der Pfeil beginnt dabei stets am aktuellen Startpunkt.Im ein- fachsten Falle einer horizontal von links nach rechts gerichteten Kette notieren Sie eine Folge von Formeln mit den Positionierungen (L,R) sowie von Pfeilen mit einem Winkel von 0o (Voreinstellung), wie Schema 2–2zeigt: 34 Kapitel 2 | Tutorial\begin{ hemistry}[hor1℄formula(L,R){ ring(){ 4: bond(r); 5: bond(r); } }arrow(){ text(T,C){ formula(C,C){ atom("Br$_2$") }}text(B,C){ formula(C,C){ atom("h$\nu$") }}}formula(L,R){ ring(){ 4: bond(r) atom("CH$_2$Br",L);5: bond(r) atom("CH$_2$Br",L); }}arrow(){ text(T,C){ formula(C,C){ atom("Na$_2$S") }}text(B,C){ formula(C,C){ atom("CH$_3$CH$_2$OH") }}}formula(L,R){ ring(,5){}ring(" pentane",1){ 4: atom("S"); }}arrow(){ text(T,C){ formula(C,C){ atom("NaIO$_4$") }}text(B,C){ formula(C,C){ atom("H$_2$O, O $^o$C") }}}formula(L,R){ ring(,5){}ring(" pentane",1){ 4: atom("S") bond(r,=C) atom("O"); }}\end{ hemistry}Br2h CH2BrCH2Br Na2SCH3CH2OH S NaIO4H2O, O oC S O Schema 2–2 Horizontales Reaktionsschema: Darstellung eines Benzothiophens. Die einzelnen Formeln werden mit dieser Positionierung auf eine gemeinsame Mit- tellinie, auf der die Reaktionspfeile liegen, zentriert. Es ist auch denkbar, die Ketten von rechts nach links aufzubauen, wobei die Positionierung (R,L) benutzt wird, für die Pfeile ein Winkel von 180o. Eine Erweiterung der Formelsyntax läßt die Beschriftung der Komponenten zu und ist speziell für den Satz von Formeln in horizontalen Ketten geeignet. Sie müssen da- zu den Typ HA (horizontal, absoluter Abstand) wählen und den Abstand der Textunterkante von der Mittellinie angeben, wie Schema 2–3 zeigt. Der Befehl \shortsta k er- laubt es, Zeilenumbrüche innerhalb des Textes vorzunehmen:\begin{ hemistry}[hor2℄formula(L,R,"o-Xylen",HA,36) 2.3 | Reaktionsketten 37{ ring(,5){}ring(,1){ 3: bond(r)bran h { bond(150,=) atom("O"); }bond(30; -30; -90) atom("C",C,R) atom("OOH",L); }}arrow(){ text(T,C){ formula(C,C){ atom("ZnHg") } }text(B,C){ formula(C,C){ atom("HCl") } } }formula(L,R,"Naphthylbutters""aure"){ ring(,5){}ring(,1){ 3: bond(r; 30; -30; -90) atom("C",C,R) atom("OOH",L); }};%line 2arrow(){ text(T,C){ formula(C,C){ atom("H$_3$PO$_4$") } }text(B,C){ formula(C,C){ atom("Zyklisierung") } } }formula(L,R){ ring(,5){}ring(,1){ 3: ring(,1,H){ 5: bond(r,=) atom("O"); }; }}arrow(){ text(T,C){ formula(C,C){ atom("ZnHg") } }text(B,C){ formula(C,C){ atom("HCl") } } }formula(L,R,"Tetrahydrophenanthren"){ ring(,5){}ring(,1){ 3: ring(,1,H){}; }}arrow(){ text(T,C){ formula(C,C){ atom("DDQ") } } }formula(L,R,"Phenanthren"){ ring(,5){}ring(,1){ 3: ring(,1){}; }};}\end{ hemistry} Sie können auf diese Weise eine lange Reaktionskette in mehrere Zeilen brechen oder auch eine Schar von unabhängigen kurzen Ketten übereinander setzen. Darüber- hinaus findet der Befehl Anwendung beim Zusammenfassen mehrerer einzelner For- meln oder größeren Reaktionsausschnitten, Beispiele hierzu sind im Abschnitt 2.3.5 gegeben. 38 Kapitel 2 | Tutorial Naphthalin AlCl3 O COOHSu inylnaphthalin ZnHgHCl COOHNaphthylbuttersaureH3PO4Zyklisierung O ZnHgHCl Tetrahydrophenanthren DDQ Phenanthren Schema 2–5 Synthese von Phenanthren, mehrzeilig gesetzt mit multiline. 2.3.3 Vertikale Anordnung Ebenso einfach wie horizontale Ketten können vertikal verlaufende Abläufe gesetzt werden, wobei die Hauptrichtung von oben nach unten mit der Positionierung (T,B), seltener von unten nach oben mit (B,T) erreicht wird, wie man anhand des Sche- mas 2–6 (links) sieht. Die Pfeile weisen nun unter einem Winkel von -90o nach un- ten:\begin{ hemistry}[vert1℄formula(T,B){ ring(){} }arrow(-90){ text(T,C){ formula(C,C){ atom("Cl") bond(30)bran h{ bond(90,=C) atom("O"); }bond(-30; 30) }}text(B,C){ formula(C,C){ atom("AlCl$_3$") }}}formula(T,B){ ring(){ 4: bond(r) bran h { bond(r+,=C) atom("O"); }bond(r-; r); }}arrow(-90){ text(T,C){ formula(C,C){ atom("S/Morpholin") }} }formula(T,B){ ring(){ 4: bond(r; r-; r) atom("COOH",L,R); }} 2.3 | Reaktionsketten 39\end{ hemistry} Cl O AlCl3O S/Morpholin COOH BenzenCl O AlCl3O S/Morpholin COOH3-Phenyl-propansaure Schema 2–6 Vertikales Reaktionsschema: Darstellung der 7-Oxononansäure. Rechts dasselbe Schema mit Bennenung der Komponenten. Die Texte weisen einen festen Abstand zur Formelunterkante auf. Auch hierbei ist eine Beschriftung der Formeln möglich, wobei in jedem Falle der Abstand der Textunterkante von der Formelunterkante angegeben werden muß (TypV), da keine horizontale Mittellinie existiert. Auch in diesem Falle können Zeile- numbrüche mit \shortsta k innerhalb des Textparameters auftreten (Schema 2–6 rechts):\begin{ hemistry}[vert2℄formula(T,B,"Benzen",V,24){ ring(){} }arrow(-90){ text(T,C){ formula(C,C){ atom("Cl") bond(30)bran h{ bond(90,=C) atom("O"); }bond(-30; 30) }}text(B,C){ formula(C,C){ atom("AlCl$_3$") }}}formula(T,B){ ring(){ 4: bond(r) bran h { bond(r+,=C) atom("O"); }bond(r-; r); }} 42 Kapitel 2 | Tutorial R H B R BAlkylboran R'-COOD R D AgNO3/OH R R H2O2/OH R OHBr2/OH R Br Schema 2–7 Was passiert mit dem Boran? Mehrfachverzweigungen, von derselben Formel ausgehend, können es zeigen. Der Kontext der Verzweigungsstelle, hier des Borans, muß dafür gespeichert werden.{ text(T,L){ formula(C,C){ atom("Cl") bond(30)bran h{bond(90,=C) atom("O");} bond(-30) } }}multiline(1,C){ formula(T,B){ ring(,,H0=2=){ 4: bond(30) bran h{ bond(90,=C) atom("O");} bond(-30);4: bond(b) atom("H");5: bond(r,s,S) atom("$\oplus$"); }}arrow(-90,,<=>){}formula(T,B){ ring(,,H2=5=){ 4: bond(30) bran h{ bond(90,=C) atom("O");} bond(-30);4: bond(b) atom("H");1: bond(r,s,S) atom("$\oplus$"); }};}arrow(){}formula(L,R,"Azetylbenzen"){ ring(){ 4: bond(r) bran h { bond(r+,=C) atom("O");} bond(r-); }};}\end{ hemistry} 2.3 | Reaktionsketten 43 Benzen Cl O OH OH OAzetylbenzen Schema 2–8 Ein unabhängiges vertikales Schema wird als einzeiliges multiline- Objekt gesetzt und kann so als Einheit in den horizontalen Formelverlauf eingefügt werden. Sie können mit diesem Verfahren ebensogut horizontal angeordnete Grenzstruk- turen oder Reaktionsabschnitte innerhalb von vertikalen Ketten anordnen, wobeiT,B als Positionierung eingesetzt werden muß. Dies ist beim Gemisch verschiede- ner Chlorbutene im Schema 2–22 benutzt worden.2.3.6 Kontexte zusammenfassenmultiline kann Ihnen auch weiterhelfen, wenn Sie einige Formeln zusammen- fassen wollen, um eine Klammerung aller beteiligten Formeln erzielen möchten, zum Beispiel um die mesomeren Zwischenstrukturen des Schemas 2–8. Der Be- fehl bra ket klammert jedoch nur die letzte gezeichnete Formel. Eine einzeiligemultiline-Einheit liefert nach außen hin einen Superkontext, das heißt einen Kon- text, der alle eingeschachtelten Kontexte enthält und es daher erlaubt, eine Ketten- verzweigung oder Einrahmung auf alle beteiligten Formeln zu beziehen. Betrachten Sie als Beispiel für eine Einrahmung Schema 2–9:\begin{s hema}\begin{ hemistry}[multli3℄multiline(1){ formula(L,R,"Benzen"){ ring(){} }arrow(){ text(T,L){ formula(C,C){ atom("Cl") bond(30)bran h{bond(90,=C) atom("O");} bond(-30) } }}multiline(1,C){ formula(T,B){ ring(,,H0=2=){ 4: bond(30) bran h{ bond(90,=C) atom("O");} bond(-30);4: bond(b) atom("H");5: bond(r,s,S) atom("$\oplus$"); }}arrow(-90,,<=>){} 44 Kapitel 2 | Tutorialformula(T,B){ ring(,,H2=5=){ 4: bond(30) bran h{ bond(90,=C) atom("O");} bond(-30);4: bond(b) atom("H");1: bond(r,s,S) atom("$\oplus$"); }};}bra ket()arrow(){}formula(L,R,"Azetylbenzen"){ ring(){ 4: bond(r) bran h { bond(r+,=C) atom("O");} bond(r-); }};}\end{ hemistry} Benzen Cl O OH OH OAzetylbenzen Schema 2–9 Ein Superkontext mit multiline erlaubt die Klammerung mehrerer Formeln. Er wird durch ein multiline-Objekt gebildet. Anstelle des bra ket-Befehls können Sie ebensogut mehrfache Verzweigungen mitsave ontext und set ontext aufbauen, wobei der Superkontext als Grundlage verwendet wird. Unabhängig von diesem können Sie aber auch auf die Einzelkon- texte zugreifen, sofern diese innerhalb von multiline gespeichert werden, wie das Beispiel des Schemas 2–10 zeigt:\begin{ hemistry}[multli4℄formula(L,R){ bond(-30,=) bond(30)bran h {bond(90,=C) atom("O");} bond(-30);}arrow(){ text(T,C){ formula(C,C){ atom("+ H$^\oplus$") } } }multiline(1,C){ formula(T,B){ bond(-30,=; 30) bran h{ bond(-90,s,S) atom("$\oplus$");bond(90) atom("O",C,R) atom("H",L);} 2.3 | Reaktionsketten 47 text mit ein, sodaß Sie bei nach unten führenden Pfeilen wie gezeigt den korrekten Anschlußpunkt erhalten. Da der multiline-Block als Ganzes betrachtet wird, ergeben sich Positionierungs- probleme, wenn außerhalb des Block eine Formel ohne Beschriftung folgen soll. Deren Mittellinie läge mittig zum gesamten vorangegangegen Block samt Beschrif- tung: COOHHOHO Ka eesaure HOHO O O multiline(1){ formula(L,R,"Kaffees""aure"){ ring(){5: bond(r;r/,=;r) atom("COOH",L);2: bond(r) atom("HO",R);1: bond(r) atom("HO",R); }}arrow(,12){};}formula(L,R){ ring(,,H5=){ vertex(,1,1){ 4: bond(r) atom("HO",R);5: bond(r) atom("HO",R); };3: atom("O");4: bond(r,=C) atom("O"); }} Die Lösung besteht wiederum darin, den Kontext der letzten Formel zu speichern und nach Abschluß des multiline-Blockes zu setzen: COOHHOHO Ka eesaure HOHO O O multiline(1){ formula(L,R,"Kaffees""aure"){ ring(){5: bond(r;r/,=;r) atom("COOH",L);2: bond(r) atom("HO",R);1: bond(r) atom("HO",R); }}save ontext(#1);}set ontext(#1,R)arrow(,12){}formula(L,R){ ring(,,H5=){ vertex(,1,1){ 4: bond(r) atom("HO",R);5: bond(r) atom("HO",R); };3: atom("O");4: bond(r,=C) atom("O"); }}2.3.7 Zusammenfuhrung mehrerer Zweige Reaktionsketten können in mehrere Teilzweige aufgespalten werden, aber auch das Gegenteil, die Zusammenführung mehrerer Zweige zu einem einzigen, etwa im Zu- ge einer konvergenten Synthese, ist oft erforderlich. Je nachdem, ob die Äste ho- rizontal oder vertikal zusammenlaufen sollen, können Sie zwischen den Befehlenjoinh und joinv wählen. Als Beispiel für ein horizontal ausgerichtetes Schema dient die Synthese eines Kro- 48 Kapitel 2 | Tutorial nenethers.\begin{ hemistry}[joinh1℄joinh(2,L){ % line1formula(L,R,"Bis- hlorethylether"){ atom("Cl") bond(45; 0; -45)atom("O") bond(45; 0; -45) atom("Cl")}arrow(){}formula(L,R){ ring(){ 5: bond(r) atom("OH",L);4: bond(30) atom("O") bond(90; 30; -30)atom("O")bond(30; -30; -90) atom("O")bond(-30)ring(,2){ 1: bond(r) atom("HO",R); }; }};% line 2formula(L,R,"2,6-Bishydroxymethyl-pyridin"){ ring(){ 0: atom("N");1: bond(r; r+) atom("O",C,L) atom("H",R);5: bond(r; r-) atom("O",C,R) atom("H",L); }}arrow(){}formula(L,R){ ring(){ 0: atom("N");1: bond(r; r+) atom("Br");5: bond(r; r-) atom("Br"); }};}arrow(){}formula(L,R,"Dibenzopyridino[18℄krone-6",HR,24){ ring(){ 5: bond(-30) atom("O")bond(-90; -30; 30) atom("O")bond(-30; 30; 90) atom("O") bond(30);4: bond(30) atom("O") bond(90; 30)ring(,1){ 5: bond(-30; -90) atom("O") bond(-30)ring(,2) {};0: atom("N");};}}\end{ hemistry} Auch mehrfache horizontale Zusammenführungen sind möglich, wenn Sie in einen oder mehrere der Zweige weitere joinh-Befehle schreiben (Schemata 2–13):\begin{ hemistry}[joinhh℄ 2.3 | Reaktionsketten 49Cl O ClBis- hlorethylether OHO O OHO NOH OH2,6-Bishydroxymethyl-pyridin NBr Br O O OO ONDibenzopyridino[18℄krone-6 Schema 2–12 Die Synthese eines Kronenethers als Beispiel für die Zusammenführung zweier horizontaler Ketten mit joinh. joinh(2,R){ joinh(2,R){ formula(L,R,"Anilin"){ ring(){ 4: bond(r) atom("N",C,R) atom("H$_2$",L);} };formula(L,R,"Salpetrige S""aure"){ atom("HNO$_2$") };}arrow(){}formula(L,R,"Diazoniumion"){ ring(){ 4: bond(r) atom("N",C,R) atom("$_2^+$",L);} };formula(L,R,"Anilin"){ ring(){ 5: bond(r) atom("N",C,R) atom("H$_2$",L);} };}arrow(){}formula(L,R,"p-Amino-diazobenzen",HR,24){ ring(){ 4: bond(r) atom("N=N",L,R) bond(r/)ring(,0,,,,r){ 3: bond(r) atom("N",C,R) atom("H$_2$",L);};}}\end{ hemistry} Analog können Sie auch vertikale Schemata zusammenführen. Das Schema 2–14 zeigt dies mit zwei ineinandergeschachtelten joinv-Einheiten:\begin{ hemistry}[joinv1℄set("rArrowExtend",18)joinv(2,B){ joinv(2,B){ formula(T,B){ bond(30,=; -30; 30)bran h { bond(150); bond(30) atom("OH",L); } bond(-30) 52 Kapitel 2 | Tutorial OHHBrBr SO2ClTosyl hloridNaOH ZnSO2Na SO2 COOH3-MethylbutensaureCH3OH CO2CH3NaOCH3 SO O CO2CH3KOH COOHtrans-Chrysanthemumsaure Schema 2–14 Synthese der Chrysanthemumsäure, gesetzt mit joinv. 2.3 | Reaktionsketten 53;}arrow(){}formula(L,R,"p-Amino-diazobenzen",HR,24){ ring(){ 4: bond(r) atom("N=N",L,R) bond(r/)ring(,0,,,,r){ 3: bond(r) atom("N",C,R) atom("H$_2$",L);};}}NH2Anilin HNO2Salpetrige Saure N+2Diazoniumion NH2 N=N NH2p-Amino-diazobenzen Schema 2–15 Synthese einer Diazoverbindung. Horizontale und vertikale Zusammenfügung gemischt. Das Pendant mit vertauschten Rollen ist ein vertikales Schema mit horizontalem An- teil (Schema 2–16):\begin{ hemistry}[joinvh℄joinv(2,T){ joinh(2,L){ formula(L,R,"Anilin"){ ring(){ 4: bond(r) atom("N",C,R) atom("H$_2$",L);} };formula(L,R,"Salpetrige S""aure"){ atom("HNO$_2$") };}arrow(,12,-){} nospa e arrow(-90){}formula(T,B,"Diazoniumion",V,24){ ring(){ 4: bond(r) atom("N",C,R) atom("$_2^+$",L);} };formula(T,B,"Anilin",V,24){ ring(){ 5: bond(r) atom("N",C,R) atom("H$_2$",L);} };}arrow(-90){}formula(T,B,"p-Amino-diazobenzen",V,24) 54 Kapitel 2 | Tutorial{ ring(){ 4: bond(r) atom("N=N",L,R) bond(r/)ring(,0,,,,r){ 3: bond(r) atom("N",C,R) atom("H$_2$",L);};}}\end{ hemistry}NH2AnilinHNO2Salpetrige Saure N+2Diazoniumion NH2Anilin N=N NH2p-Amino-diazobenzen Schema 2–16 Gemischte joinv/joinh-Befehle.2.3.8 Mis hung der Grundelemente Es ist möglich, die bislang vorgestellten Möglichkeiten zum Satz komplexer Formel- einheiten (mehrzeilige Blöcke und Zusammenführungen) miteinander zu mischen. Die homogene Mischung der Zusammenführung wurde bereits vorgestellt, hier soll gezeigt werden, wie eine Zusammenführung zu Beginn eines einzeiligen multiline- Rumpfes eingebettet wird (Schema 2–17):\begin{ hemistry}[joinhml℄multiline(1){ joinh(2,L){ formula(L,R,"Anilin"){ ring(){ 4: bond(r) atom("N",C,R) atom("H$_2$",L);} };formula(L,R,"Salpetrige S""aure"){ atom("HNO$_2$") } 2.4 | Zyklohexan und Sa haride 57 aus Platzgründen problematisch sein. Sie können jedoch das Wasserstoffsymbol mit TEX-Befehlen näher an das Sauerstoffsymbol rücken. Damit Teile des ” O“ nicht über- deckt werden, muß beim Setzen des ” H“ das Löschen des Hintergrundes abgeschal- tet werden:O OHOHOHOH -D-Lyxose formula(C,C,"$\beta$-D-Lyxose",HR,24){ ring("furanose",0,,L){ 0: atom("O");1: bond(90) atom("O",C,R) atom("H",L);2: bond(90) atom("O",C,L) atom("H\kern-.2em",R,,0);3: bond(90) atom("O",C,R) atom("\kern-.2emH",L,,0);4: bond(90;180) atom("O",C,L) atom("H",R);}} Furanoseringe können wie normale Ringe kombiniert werden, um Oligosacchari- de aufzubauen. Im folgenden Beispiel wird der Bindungstyp ~ verwendet, um ein Anomer zu kennzeichnen: O O O OHOHOHOHOHOHD-Xylofuranosyl-(1!4)- -D-arabinose formula(C,C,"D-Xylofuranosyl-(1$\to$4)-$\alpha$-D-arabinose",HR,24){ ring("furanose",0,1<<2b3>>,L){ 0: atom("O");1: bond(0,~) atom("O",C,C) bond(0;-90)ring("furanose",4,1<<2b3>>,L){ 0: atom("O");1: bond(-90) atom("O",C,R) atom("H",L);2: bond(90) atom("O",C,L) atom("H",R);3: bond(-90) atom("O",C,R) atom("H",L);};2: bond(-90) atom("O",C,R) atom("H",L);3: bond(90) atom("O",C,R) atom("H",L);4: bond(90;180) atom("O",C,L) atom("H",R);}} Auch Pyranosen können in der HAYWORTH-Darstellung wiedergegeben werden. Hierzu ist kein spezieller Ringtyp erforderlich, es kann ein normaler großer Sechs- ring verwendet werden, eventuell mit Angabe einer Bindungsliste zur Erhöhung des räumlichen Eindrucks:OOHOHOHOH CH2OH -D-Glu opyranose formula(L,R,"$\alpha$-D-Glu opyranose",HR,24){ ring(,,H,L,,0){ 5: atom("O");0: bond(-90) atom("O",C,R) atom("H",L);1: bond(-90) atom("O",C,R) atom("H",L);2: bond(90) atom("O",C,R) atom("H",L);3: bond(-90) atom("O",C,L) atom("H",R);4: bond(90) atom("C",C,R) atom("H$_2$OH",L);}} 58 Kapitel 2 | TutorialOOHOHOHOH CH2OH -D-Glu opyranose formula(L,R,"$\alpha$-D-Glu opyranose",HR,24){ ring(,,H0<<1b2>>,L,,0){ 5: atom("O");0: bond(-90) atom("O",C,R) atom("H",L);1: bond(-90) atom("O",C,R) atom("H",L);2: bond(90) atom("O",C,R) atom("H",L);3: bond(-90) atom("O",C,L) atom("H",R);4: bond(90) atom("C",C,R) atom("H$_2$OH",L);}} Mit Hilfe von wilden Linien können Derivate der Saccaride gesetzt werden, wie die 1,2-3,4-Di-O-sec-butyliden- -D-arabino-pentopyranose zeigt:OOOOO formula(L,R){ ring(,,H0t1t2t,L,,0){ 5: atom("O");1: bond(90) atom("O") saveXY(#1);0: bond(90) atom("O") bond(20,,L)bran h{bond(-30); bond(90);} bond(#1);2: bond(-90) atom("O") saveXY(#2);3: bond(-90) atom("O") bond(-120,,L)bran h{bond(150); bond(-90);} bond(#2);}} Für die genauere Darstellung der sterischen Verhältnisse der Pyranosen kann der Ringtyp hair genutzt werden, der einen Zyklohexanring in Stereodarstellung ( ” Ses- selform“) zeigt. Hilfreich sind hierbei die symbolischen Winkelangaben t und b für axiale und äquatoriale Substituenten. Aus Platzgründen muß die Hydroxylgruppe an Position 5 um 20o aus ihrer normalen t-Position gedreht werden: OH OH OH OHOOH formula(L,R){ ring(" hair",,,L,-1){ 0: bond(b) atom("O",C,L) atom("H",R);5: bond(20+t) atom("O",C,L) atom("H",R);4: bond(b) atom("O",C,R) atom("H",L);3: bond(b) atom("O",C,R) atom("H",L);2: atom("O");1: bond(t; t-) atom("OH",L);}} HO HO OH OHOOH formula(L,R){ ring(" hair",,,L){ 0: bond(b) atom("HO",R);5: bond(t) atom("HO",R);4: bond(b) atom("O",C,L) atom("H",R);3: bond(b) atom("O",C,R) atom("H",L);2: atom("O");1: bond(t; t-) atom("OH",L);}} Das Zyklohexangerüst wurde so konstruiert, daß die 1!6-glykosidische Bindung 2.4 | Zyklohexan und Sa haride 59 von Di- und Polysacchariden mit mit einem bond-Befehl doppelt-normaler Länge (NN) oder – mit Ethersauerstoff – zwei aufeinanderfolgenden Bindungen normaler Länge erzeugt werden kann. Der zweite Ring liegt dann auf der gleichen Höhe wie der erste, sodaß Oligosaccharide horizontal verlaufen:O O O formula(L,R){ ring(" hair",,,L){ 2: atom("O");3: bond(t,,L) atom("O") bond(t,,L)ring(" hair",,,L){ 2: atom("O"); };}} Durch die Symmetrie des hair-Gerüstes können mehrere Ringe aneinander ge- setzt werden, um zum Beispiel ein Steroidgerüst räumlich zu veranschaulichen. Für den fünfgliedrigen D-Ring müssen Sie eine ” wilde“ Verbindungslinie ziehen: OH 3- -Hydroxysteran formula(L,R,"3-$\alpha$-Hydroxysteran",HR,24){ ring(" hair",,,L,-1){ 0: bond(b)atom("O",C,L) atom("H",R);vertex(" hair",3,0,3-4-5-,-1){ vertex(" hair",2,5,3-4-5-,-1){ 3: bond(b,,L) saveXY(#1);4: bond(t,,L; -t|,,L; #1);};};}} OH 3- -Hydroxysteran formula(L,R,"3-$\beta$-Hydroxysteran",HR,24){ ring(" hair",,,L,-1){ 0: bond(t)atom("O",C,L) atom("H",R);vertex(" hair",3,0,3-4-5-,-1){ vertex(" hair",2,5,3-4-5-,-1){ 3: bond(b,,L) saveXY(#1);4: bond(t,,L; -t|,,L; #1);};};}} Im Falle des Valerans ergibt sich durch das Verschmelzen zweier Ringkanten mit nor- malerweise unterschiedlicher Länge eine kleine Unschönheit, da der eine Ring ent- sprechend vergrößert werden muß, um die Ringkanten anzugleichen: 62 Kapitel 2 | Tutorial0: bond(r) atom("N=N",L,R) bond(0)ring(,3,,,,r){}; }}restore(#1)set ontext(#1,BL)arrow(-135){}formula(R,R){ ring(){ 3: bond(r) atom("O",C,R) atom("H",L);4: bond(r) atom("N",C,R) atom("=N",L,R) bond(0)ring(,3,,,,r){}; }}\end{ hemistry} OH OHN=NOH N=N Schema 2–19 Hauptreaktionen können durch höhere Linienbreite von Nebenwe- gen abgehoben werden. Die Linienbreite wird mit set eingestellt. Wollen Sie alle Parameter mit einem gleichen Faktor multiplizieren, können Sie an- stelle mehrerer set-Befehle auch !s ale einsetzen.2.6 Elektronendarstellungen Ein wesentlicher Bestandteil vor allem mechanistischer Formeldarstellungen ist die Wiedergabe der Elektronenkonfigurationen und der Verschiebungen von Elektro- nen.2.6.1 Elektronenkon guration Die Wiedergabe der Elektronenkonfiguration an einem Atom ist zwar nicht unmit- telbarer Bestandteil von OCHEM, sie läßt sich jedoch mit dem LATEX-Paket e hem.sty, das in der OCHEM-Distribution enthalten ist, erreichen. Es enthält die beiden Ma- kros \vd{<Atom>} und \vdd{<Atom>}, um neben dem genannten Atom ein re- sp. zwei Elektronen vertikal übereinanderzustellen. Die Elektronen werden durch Punkte symbolisiert. Das Atomsymbol dient nur zur Festlegung des Raumes, um den die Elektronen herum angeordnet werden sollen, es wird selber nicht dargestellt und 2.6 | Elektronendarstellungen 63 muß, wie die Beispiele zeigen, nach dem Makro folgen. Je nach der Reihenfolge des Atoms und der Makros erhalten Sie die Elektronen vor oder nach dem Atomsymbol:qLi, Li q, qqBe, Be qq, qqB q \vd{Li}Li,Li\vd{Li},\vdd{Be}Be,Be\vdd{Be},\vdd{B}B\vd{B} Für eine horizontale Anordnung stehen vier Makros zur Verfügung: für Elektronen oberhalb des Atomsymbols die Makros \hdu{<Atom>}und \hddu{<Atom>}, für Elek- tronen unterhalb des Atomsymbols die Makros \hdl{<Atom>}und \hddl{<Atom>}:q Li, qLi, q qq qC \hdu{Li}Li,\hdl{Li}Li,\hddu{C}\hddl{C}C Für die Einbettung in eine OCHEM-Formel muß das Paket in einer pa kage-Anwei- sung innerhalb einer hemspe ial-Umgebung sowie im Dokument selber geladen werden: qqO qq O \usepa kage{o hem,e hem}\begin{ hemspe ial}pa kage("e hem")\end{ hemspe ial}...\begin{ hemistry}[elekt℄formula(L,R){ bond(30;-30;30)bran h { bond(90,=C)atom("\vdd{O}O\vdd{O}");}bond(-30;30;-30)atom("\hdl[\e hhbar℄{O}\hdu[\e hhbar℄{O}O",L,R)bond(30;-30)}\end{ hemistry}2.6.2 Elektronenvers hiebungen Als wichtiges Detail bei mechanistischen Betrachtungen treten kleine Pfeile inner- halb von Formeln oder -schemata auf, die die Wanderung von Elektronen veran- schaulichen. Zwar ist dies fast ein Anwendungsfall für chemische CAD-Programme, ich habe jedoch versucht, einen sinnvollen Befehl für genau diese Elektronenver- schiebungen zu implementieren. Da Start- und Zielpunkt nicht einfach durch eine Gerade verbunden werden können, sind einige Parameter zur genauen Beschrei- bung des Bogens erforderlich. Grundlage des Verschiebungspfeils ist ein kubischer Spline, der neben Start- und Zielpunkt durch die Winkel, die die Tangenten an die- sen beiden Punkten bilden, sowie zwei Kontrollpunkte beschrieben wird. Da die Aus- und Einfallswinkel meist feststehen, sind es vor allem die Kontrollpunkte (be- ziehungsweise deren Entfernung von den Zielpunkten), mit denen der Kurvenver- lauf gesteuert werden kann. Hier ist jedoch Erfahrung und Gefühl nötig, um nicht zu verzweifeln, weil die Kurve immer falsch geknickt ist :-) 64 Kapitel 2 | Tutorial Da die Zielpunkte der Verschiebungsbewegung meist in der Mitte von Bindungen liegt, die Bindungen selber aber in ganzer Länge dargestellt werden sollen, kann zum Speichern dieser mittleren Position, vom Startpunkt der Bindung ausgehend,saveXY in seiner erweiterten Syntax mit Winkel und Längenangabe eingesetzt wer- den. Diese Syntax gestattet es, die Koordinaten des Punktes zu speichern, der er- reicht würde, zöge man vom aktuellen Punkt eine Bindung mit dem angegebenen Winkel und der Länge. Da der aktuelle Punkt dabei nicht verschoben wird, kann so- fort nach saveXY ein bond-Kommando folgen. Bei saveXY kommen entsprechend der Mittelposition häufig die Kleinbuchstaben als Längenangaben (n) in Betracht. Das Beispiel zeigt, wie Sie eine Mittelposition samt Bindung speichern und zeich- nen:saveXY(#1,30,n) % Winkel 30 Grad, halbe Normallaengebond(30) % Winkel 30 Grad, volle Normallaenge Die Nummern, unter der die Punkte gesichert werden, sind Eingabeparameter füremove. Start- und Zielpunkt können innerhalb einer Formel liegen, müssen aber nicht, entscheidend ist in jedem Falle der aktuell unter der betreffenden Nummer gespeicherte Punkt (heißt also, daß Sie Ihre saveXY-Kommandos konsequent fort- laufend numerieren sollten). Betrachten Sie als Beispiel den kettenverlängernden Schritt der Isoprenoid-Biosynthese in Schema 2–20. Es werden vier Punkte gespeichert entsprechend einer intramole- kularen Verschiebung und einer intermolekularen Elektronenbewegung:formula(L,R){ bond(30) bran h { bond(90); } bond(-30,=; 30)saveXY(#2,-30,n) bond(-30)atom("O",L,R) saveXY(#4,0,n) bond(0) atom("PO(OH)$_2$",L)}emove(#2,-150,20,#4,-90,20)spa e(R)formula(L,R){ saveXY(#3,30,n)bond(30,=) bran h { bond(90);} bond(-30; 30; -30)atom("OPO(OH)$_2$",L)}emove(#3,150,20,#2,30,20)arrow(){}formula(L,R){ bond(30) bran h { bond(90); } bond(-30,=; 30; -30; 30)bran h { bond(90); }bond(-30,=; 30; -30) atom("OPO(OH)$_2$",L)}O PO(OH)2 OPO(OH)2 OPO(OH)2 Schema 2–20 Der kettenverlängernde Schritt der Biosynthese der Isoprenoide wird durch Elektronenverschie- bungen verdeutlicht. 2.7 | Beispiele 67arrow(,36){ text(T,C){ formula(C,C){ atom("O$_2$") } }text(B,C){ formula(C,C){ atom("Co(OA )$_3$") } }}formula(L,B){ atom("HOOC",L,R) bond(30;-30;30;-30;30;-30)atom("COOH", L)}fboxarrow(-90){ text(T,C){ formula(C,C){ atom("$\Delta$") } }text(B,C){ formula(C,C){ atom("NH$_3$") } }}formula(T,B){ atom("H$_2$NCO",L,R) bond(30;-30;30;-30;30;-30) atom("CONH$_2$", L) }arrow(-90){}formula(T,B){ atom("NC",L,R) bond(30;-30;30;-30;30;-30) atom("CN", L) }arrow(-90){ text(T,C){ formula(C,C){ atom("H$_2$/Ni") } }text(B,C){ formula(C,C){ atom("130 $^o$C, 240 bar") } }}formula(T,L){ atom("H$_2$N",L,R) bond(30;-30;30;-30;30;-30) atom("NH$_2$", L) }fbox save ontext(#2)arrow(180,,<-){} nospa earrow(-90,,-){ text(T,C){ formula(C,C){ atom("NH$_3$") } }text(B,C){ formula(C,C){ atom("H$_2$/Kat") } }}formula(T,B){ atom("NC",L,R) bond(30;-30;30,=;-30;30;-30) atom("CN", L) }arrow(-90,,<-){ text(T,C){ formula(C,C){ atom("CuCN") } }text(B,C){ formula(C,C){ atom("CN$^\ominus$") } }}multiline(1,C,T,B){ formula(L,R){ atom("Cl") bond(30;-30;30,=;-30;30) atom("Cl")}formula(L,R){atom("+") }formula(L,R){ bond(30,=;-30) bran h { bond(-90) atom("Cl"); }bond(30;-30) atom("Cl")}; 68 Kapitel 2 | Tutorial}formula(T,B,"Chlorbuten",V,12){}arrow(-90,,<-){ text(T,C){ formula(C,C){ atom("Cl$_2$") } } }formula(T,B,"Butadien",V,24){ bond(30,=; -30; 30,=) } Durch die Verwendung eines Hauptstranges verbleiben insgesamt zwei Verzweigun- gen, die zu den Endprodukten führen und keine Besonderheiten aufweisen:set ontext(#1,B)arrow(-90){ text(T,C){ formula(C,C){ atom("NOCl") } }text(B,C){ formula(C,C){ atom("HCl") } }}formula(T,B, "Zyklohexanonoxim",V,24){ ring(,,H){ 4: bond(r,=C) atom("NOH",L); } }arrow(-90){ text(T,C){ formula(C,C){ atom("H$_2$SO$_4$") } } }formula(T,B,"$\epsilon$-Caprola tam",V,24){ ring(,,H,,7,90){ 0: atom("N") bond(r) atom("H");1: bond(r,=C) atom("O"); }}fboxarrow(-90){}formula(T,B){ atom("Nylon 6") }set ontext(#2,B)arrow(-90){ text(T,C){ formula(C,C){ atom("270$^o$C") } }text(B,C){ formula(C,C){ atom("10 bar") } }}formula(T,B){ atom("Polyamid 66") }\end{ hemistry}2.7.2 Terpen-Biosynthese Die Biosynthese der Hauptvertreter bizyklischer Monoterpene ist als weiteres kom- plexes Beispiel vorgesehen und in Schema 2–23 dargestellt. Es enthält Verzweigun- gen, verschiedene Ringgerüste sowie fett gedruckte Formeln.save(#1) % save parameterformula(L,R){ bond(30) saveXY(#1) bond(90,=; 150) 2.7 | Beispiele 69 Benzen H2/Pt, Al2O336 bar O2Co(OA )3 HOOC COOH NH3H2NCO CONH2 NC CNH2/Ni 130 oC, 240 barH2N NH2NH3 H2/KatNC CNCuCN CN Cl Cl + Cl ClChlorbutenCl2Butadien NOCl HClNOHZyklohexanonoximH2SO4NH O-Caprola tam Nylon 6 270oC 10 barPolyamid 66 Schema 2–22 Die Nylonsynthese als Beispiel für ein komplexes Schema. 72 Kapitel 2 | TutorialrestoreXY(#1) bond(-90) restoreXY(#1) bond(30);}}arrow(){}set("rLW",1.5)formula(L,R,"3-Caren",HR,24){ ring(,,H2=){ 3: bond(r);0: bond(t) saveXY(#1) bond(90)restoreXY(#1) bond(-90) restoreXY(#1) bond(30);}}restore(#1)2.8 Weitere Verbindungsklassen Viele Verbindungsklassen wurden in diesem Tutorial nicht behandelt. Die meisten von ihnen können aber mit den besprochenen Mitteln erzeugt werden und bedürfen daher keiner Diskussion. Die Arbeit mit immer gleichen oder sehr ähnlichen For- meln kann jedoch erheblich erleichtert werden, wenn man sich einen Satz von Ma- kros schreibt, die auf diesen Ähnlichkeiten basieren. Anregungen für solche Makros erhalten Sie im Abschnitt 3.6. Dort werden folgende Klassen von Stoffen näher an- gesprochen: Steroide Isoprene Aminosäuren und Oligopeptide2.9 Entwi klung eigener Ringstrukturen Um den Compiler nicht mit einer Vielzahl von denkbaren Ringstrukturen, die nur selten benötigt werden, zu belasten, wurden nur die unter ring aufgelisteten Grund- strukturen in das Core aufgenommen. Es ist jedoch möglich, in einem Perlmodul eigene Ringstrukturen zu definieren und dieses mit Hilfe von require in dem Do- kument, das diese Strukturen benötigt, nachzuladen. Sie finden als Beispiel für den Aufbau eines solchen Moduls die beiden Dateienmn y lib.pmund bi y lib.pm, die über den Grundwortschatz hinaus mono- und bizyklische Gerüste bereitstellen. Sie können diese Dateien, deren Listings in den Abschnitten ?? und ?? abgedruckt sind, als Templates benutzen; was Sie im wesent- lichen in einer Strukturdefinition bereitstellen müssen, sind die Koordinaten der einzelnen Atome im Array $XYa, die Bindungstypen (einfache, doppelte, projektive) im Array $BT, 2.9 | Entwi klung eigener Ringstrukturen 73   OHTerpineol   3-Thujen  -Pinen  OCampher  3-Caren Schema 2–23 Die Biosynthese der bizyklischen Monoterpene aus der geradkettigen Vorstufe Farnesol. 74 Kapitel 2 | Tutorial eine Liste von Atomen, die als Startpunkt für Bindungen dienen, im Array $BLa, eine Liste mit den Winkeln der Bindungen im Array $rThetaa, eine Liste mit den Bindungslängen im Array $rLena, die Anzahl der Atome im Gerüst in $$iAnz, die Ringgröße, im allgemeinen die Länge einer typischen Ringkante in $$rLen, Information, ob ein Aromatenring gezeichnet werden soll, in $$bAromat sowie sein Radius in $$rRadius, gegebenenfalls Werte für die beiden freien Parameter. Für jedes Gerüst müssen Sie zwei Funktionen bereitstellen:<type> default : Diese Funktion gibt die Defaultwerte vor, die der Befehl ring nach außen bereit- stellt. Hierzu zählen vor allem die Anzahl der Atome und die Liste mit den Bindungs- typen, da diese von einer eventuell folgenden Bindungsliste überschrieben werden können sollen.<type> : Diese Funktion enthält die eigentliche Definition des Gerüstes. Alle Parameter, auch die beiden variablen Parameter <p1> und <p2> sind bekannt und können benutzt werden. Das Array $XYa enthält die Koordinaten der Atome in Punkt (pt), die das Gerüst aufbauen. Sie können diese auf einen beliebigen Nullpunkt beziehen und entwe- der frei angeben oder – für geometrische Gerüste – berechnen lassen. Versuchen Sie dabei nach Möglichkeit, den Längenparameter in die Koordinaten einfließen zu lassen, damit Ihre Struktur in der Größe skalierbar ist! In den Grundgerüsten be- zeichnet er die Länge einer Kante und bestimmt damit die Gesamtgröße. Die Liste $BLa enthält eine Folge von Nummern der Atome, von denen Bindun- gen ausgehen. Die i-te Bindung ist mit der i-ten Atomnummer in dieser Liste ver- knüpft und wird durch die Daten beschrieben, die jeweils an i-ter Stelle in den ein- zelnen Eigenschaftenlisten stehen. Monozyklische Systeme werden durch eine ein- fache Liste $BLa beschrieben, die aus den Zahlen von Null bis (Anzahl Atome1) besteht, analog enthalten die Eigenschaftenlisten soviele Einträge wie Atome und damit Bindungen zwischen ihnen vorhanden sind. Die Liste $BT ist einfach auf- zubauen und enthält einfach die den Bindungstypen entsprechenden Nummern (können in streambuf.pmbei der Funktion GetBond nachgelesen werden). Die an- deren beiden Listen können unter Umständen Schwierigkeiten bei der erforderli- chen Berechnung der Winkel und Längen bereiten. Sie können jedoch die Funk- tionengetangle(<p1>, <p2>)getlength(<p1>, <p2>) benutzen, um Winkel und Länge einer Bindung zwischen den Atomen mit den Ko- ordinaten <p1> und <p2> zu bestimmen, wobei der Startpunkt der Bindung am Atom <p1> liegt.getpos(<p1>, <angle>, <len>) 3. Alphabetis he Befehlsreferenz Dieses Kapitel enthält die komplette Beschreibung aller Befehle und ihrer Syntax. Für die einzusetzenden Werte gilt: Angaben wie Bindungstypen oder -längen werden durch Symbole festgelegt, deren Aussehen der späteren Erscheinung möglichst ähnlich ist. Alle Winkel werden in Altgraden gemessen. Drehsinn ist der mathematisch negative (Uhrzeigersinn), Bezugsachse die positive x-Achse. Absolut angebbare Längen werden in Punkt (pt) ohne Einheit notiert. Die meisten Parameter der Befehle sind optional und werden bei Auslassung mit einem Defaultwert belegt, der dem häufigsten Anwendungsfalle entspricht und die Schreibarbeit beträchtlich erleichern kann. Nach dem letzten konkret angegebe- nen Parameter kann bereits die schließende Klammer gesetzt werden, Notation der restlichen Parameter oder der trennenden Kommata ist unnötig. Soll ein später in der Liste auftretender Parameter angegeben werden, ist es zur Kenntlichmachung seiner Position erforderlich, alle vorhergehenden Argumente ebenfalls zu notieren. Möchten Sie keine Werte einsetzen, ist die Angabe der Kommata ausreichend. Es bedeuten in der Syntaxbeschreibung:<fliste> := atom | bond | bran h | orbital | saveXY | ring |save | restore | set<sliste> := arrow | formula |save ontext | set ontext | gotoXY | shiftXY |emove |save | restore | set | s alebra ket | fbox3.1 Benutzerbefehle Der folgende Abschnitt listet alle Befehl auf, die innerhalb der hemistry-Umge- bung (Einsatz im LATEX-Dokument) beziehungsweise des s hema-Befehls (manuelle Erstellung des Programmfiles) auftreten können. 77 78 Kapitel 3 | Alphabetis he Befehlsreferenz3.1.1 arrow arrow([ [<phi>℄ [, [<len>℄ [, [<type℄℄℄℄){ [ text(T, <Tpos>){ <fliste> } ℄[ text(B, <Tpos>){ <fliste> } ℄}[ nospa e ℄<Tpos> := L | C | RDefaults: <phi> = 0<len> = rArrowExtend<type> = 1 Mit diesem Kommando erzeugen Sie Reaktionspfeile, mit denen die einzelnen For- meln zu Reaktionsketten verbunden werden. Die Gestalt des Pfeils wird von den Parametern <phi>, <len> und <type> bestimmt. Die Richtung des Pfeils wird mit den Winkel <phi> in Altgrad und im mathematisch positiven Sinne gegenüber der positiven x-Achse gemessen.<type> legt die Art des Pfeils fest (Gleichgewichtspfeil, ” führt zu“-Pfeil, durchgestri- chener Pfeil) und wird durch ein Symbol gemäß der folgenden Aufstellung spezifi- ziert: --> -|><- <|-<=> <-> Der Parameter <len> modifiziert die Länge des Pfeils und gibt die Strecke an, die nach dem Start und vor der Spitze auf jeden Fall existieren muß. Die Mindestlänge eines Pfeils beträgt somit 2<len>. Die Angabe dieser Strecke über die halbe Länge wird verständlich, wenn man die Möglichkeit, den Pfeil zu beschriften, berücksich- tigt. Die Gesamtlänge eines Pfeiles bestimmt sich nämlich aus dem Anteil <len> vor der Beschriftung, der Länge der Beschriftung selbst und einem folgenden Anteil<len>. Die Beschriftung kann sowohl oberhalb wie auch unterhalb des Pfeils auftreten. Dem wird durch die Positionierungsparameter T und B im Befehl text Rechnung getragen. Da als Beschriftung sowohl Texte wie auch Formeln möglich sind, wird anstelle von <fliste> eine formula-Beschreibung oder eine Reaktionssequenz er- wartet. Normale Texte müssen daher mit dem Befehl atom innerhalb einer Formeln gesetzt werden. Einige einfache Beispiele mögen dies verdeutlichen: Der Parameter <Tpos> wird bedeutsam, wenn Sie Formeln oder Texte sowohl über als auch unter den Pfeil setzen wollen. In diesem Falle können Sie mit den Werten L,C und R beide Beschriftungen linksbündig zueinander, zentriert oder rechtsbündig ausrichten, wie dies im Schema 3–1 zu sehen ist. 3.1 | Benutzerbefehle 79linksbundigkurz zentriertkurz re htsbundigkurz Schema 3–1 Anordnung der oberen und unteren Beschriftung mit verschiedener Ausrichtung. Im Schema 3–2 sehen Sie, wie die Beschriftung bei verschiedenen Winkeln des Pfeils positioniert wird. obenunten oben untenoben unten oben untenobenunten obenuntenoben unten obenunten Schema 3–2 Die Anordnung der oberen und unteren Beschriftung bei verschiede- nen Winkeln des Pfeils. Wie bereits angesprochen, können anstelle einfacher Texte auch Reaktionsschema- ta auf einem Pfeil aufgesetzt werden, wie das Beispiel des Schemas 3–3 zeigt, in dem neben der Hauptreaktion auch die Darstellung des Reagenzes skizziert ist:\begin{ hemistry}[arrow2℄formula(L,R){ ring(){} }arrow(){ text(T,L){ formula(T,B){ bond(30; -30)atom("COOH",L) }arrow(-90){ text(T,L) { formula(C,C){ atom("SOCl$_2$") } } }formula(T,B){ bond(30; -30)atom("COCl",L) }}}formula(L,R){ ring(){ 4: bond(r) bran h { bond(r+,=C) atom("O"); }bond(r-; r); }}\end{ hemistry} 82 Kapitel 3 | Alphabetis he BefehlsreferenzCH2CH2 formula(L,R){ ring(){ 2: bond(r) atom("CH$_2$CH$_2$", R, L)bond(-150) ring(,4){};}} Da die Texte und Atomsymbole durch TEX gesetzt werden, sind Sie nicht auf Buch- staben beschränkt, sondern können auch mathematische Formatierungshilfsmittel einsetzen, um Indizes, die Symbole und sowie griechische Zeichen zu erhalten. Auch benutzerdefinierte Befehle können als Text auftreten, in diesem Fall müssen die Definitionen allerdings in einer Paketdatei gesammelt werden. Das Vorgehen ist in Abschnitt 3.2.2 beschrieben. 3.1 | Benutzerbefehle 833.1.3 bond bond(<phi> [, [<btype>℄ [, [<len>℄℄℄)bond([<phi>℄ [+|-℄ r|t|b|l|v [+|-℄ [, [<btype>℄ [, [<len>℄℄℄)bond(#<n> [, [<btype>℄ ℄℄)bond(<args1...>; <args2...>; ... )<btype> := - -> <- <-> <. << 3 t s >> >. p b ~<len> := S | N | L | s | n | l [...℄Defaults: <btype> = 0<len> = N Dieses Kommando erzeugt das grundlegende graphische Primitiv ” Bindung“. Die Syntaxvarianten decken verschiedene Anwendungsfälle ab.Normalform Sie können dabei mit dem Parameter <phi> den Winkel der Bindung gegenüber der positiven x-Achse vorgeben, mit Hilfe von <btype> zwischen mehreren Bindungs- formen wählen sowie mit <len> die Länge der Bindung festlegen. Die Bindung be- ginnt am aktuellen Startpunkt und verschiebt den aktuellen Endpunkt, der zum fol- genden Startpunkt wird, um ihre eigene Länge und Richtung, sodaß Sie mehrerebond-Befehle aneinanderhängen können, um Atomketten zu bilden oder einfach – in der komprimierten Syntax – mehrere Beschreibungen mit Semikola verketten können.Bindungstypen In allen Syntaxvarianten werden die verschiedenen Typen von Bindungen gemäß der folgenden Aufstellung mit Hilfe von Symbolen für <btype> ausgewählt (alle Bin- dungen sind mit einem Winkel von 90o gezeichnet):- t p b s << <. >> >. o =C =U = 3 -> <- ~ - : Diese Bindungsform entspricht der normalen Bindung, die meisten in den Formeln verwendet wird. =, =C, =U : Doppelbindungen können mit drei verschiedenen Typen gesetzt werden, die sich in der Lage der einzelnen Bindungen unterscheiden. Die normale Form ist = und wird eingesetzt, wenn die zweite Bindung im Uhrzeigersinn rechts von der Haupt- bindung liegen soll. Innerhalb von (Benzen-) Ringen ist dies die Form, die ein aus- gewogenes Aussehen aufweist, da die kleineren zweiten Bindungen innerhalb des Ringes liegen. =U erzeugt eine zweite Bindung links der Hauptbindung und wird in- nerhalb von Ringen benutzt, die gegen den Uhrzeigersinn gezeichnet werden, da- mit die Bindung wiederum im Inneren des Ringes liegt. =C schließlich zeichnet zwei 84 Kapitel 3 | Alphabetis he Befehlsreferenz gleichwertige Bindungen, die zentriert zu einer gedachten Mittellinie liegen. Sie eig- net sich nicht für Ringbindungen, wird aber benutzt, wenn eine Doppelbindung zu einem terminalen Atomsymbol führt. Die Unterschiede der einzelnen Formeln wer- den in den folgenden Formeln sichtbar:gotoXY(0,0)formula(C,C){ ring(,,H0=2=4=){} }gotoXY(50,0)formula(C,C){ ring(,,H0=U2=U4=U){} }gotoXY(100,0)formula(C,C){ ring(,,H0=C2=C4=C){} } 3 : Diese Form entspricht einer Dreifachbindunng. t, p, << : Hiermit wird eine dickere Bindung (t), eine dickere Bindung mit weißem Rand (p) oder eine sich verbreiternde Bindung (<<) gezeichnet. Die Formen t und << eignen sich gleichermaßen zur Darstellung von Bindungen aus der Papierebene heraus, wie das Beispiel zum nächsten Stichwort zeigt. Bindungen mit t sind darüberhinaus in polyzyklischen Systemen geeignet zur Darstellung der räumlich aus dem Papier ra- genden Verbrückungen. Zur Erhöhung dieses perspektivischen Eindrucks zeichnetp noch einen weißen Rand um die breitere Bindung. An der folgenden Verbindung ist dies dargestellt, wobei p nur bei den Bindungen eine Wirkung zeigt, die andere Bindungen schneiden: formula(L,R){ ring(,4,H){}ring(,2,H){}ring(,0,H){ 1: bond(180,t,S; -90,t; -30,t; 0,t,S); }}formula(L,R){ ring(,4,H){}ring(,2,H){}ring(,0,H){ 1: bond(180,t,S; -90,p; -30,t; 0,t,S); }} Wenn Sie diesen Trick anwenden, müssen Sie beachten, daß die Reihenfolge der Bindungen entscheidend ist, Bindungen mit Aussparungen (Typ p) müssen immer zuletzt gezeichnet werden! Im obigen Beispiel darf die Reihenfolge, in der die Rin- ge gezeichnet werden, nicht geändert werden, wenn die perspektivische Wirkung erhalten bleiben soll.<., o : Diese Bindungsformen entsprechen einer gestrichelten, sich verbreiternden Bindung beziehungsweise einer gestrichelten Bindungen und eignen sich alle zur Darstellung von Bindungen in die Papierebene hinein:formula(C,C){ bond(30)bran h { bond(120,<<); bond(60,<.); }bond(-30)bran h { bond(-120,t); bond(-60,o); }bond(30)} Die fein gepunkteten Linie o eignet sich auch dazu, Bindungen in statu nascendi oder Wasserstoffbrückenbindungen anzudeuten: 3.1 | Benutzerbefehle 87formula(L,R){ ring(){ 1: bond(r; r/; r; r/);2: bond(r; r/; r; r/);3: bond(r; r/; r; r/);4: bond(r; r/; r; r/);5: bond(r; r/; r; r/); }}t : Hiermit erzeugen Sie einen Winkel, der dem /-Winkel gerade entgegengesetzt ist und so eine Verzweigungsbindung hervorbringt. Dieser Winkel tritt somit üblicher- weise innerhalb von bran h auf. In der Kombination /t erhalten Sie den Abzweig- winkel zur ” anderen“ Seite der Zickzackkette:formula(L,R){ ring(){ 1: bond(r) bran h{ bond(rt); }bond(r/) bran h{ bond(r/t); }bond(r);3: bond(r) bran h{ bond(rt); }bond(r/) bran h{ bond(r/t); }bond(r);4: bond(r) bran h{ bond(rt); }bond(r/) bran h{ bond(r/t); }bond(r); }}+, - : Diese Zeichen können mehrfach auftreten und erhöhen beziehungsweise vermin- dern den Zeichenwinkel um jeweils 60o. Dies ist der übliche Winkel von Alkanen in Zickzackform oder der Hauptwinkel bei Sechsringen. Die Wirkung entspricht ei- ner Drehung aus der augenblicklichen Richtung nach links beziehungsweise nach rechts. Sie erzeugen damit Änderungen in der Kettenrichtung oder Isopropylver- zweigungen: formula(L,R){ ring(){ 2: bond(r) bran h { bond(r+); bond(r-); };3: bond(r) bran h { bond(r+); bond(r-); };5: bond(r) bran h { bond(r+); bond(r-); };}} Für längere Ketten mit Methylverzweigung ist die Bestimmung des Abzweigwinkels mit rt oder r/t besser geeignet.| : Dieses Zeichen spiegelt die Bindung an der vertikalen Achse. Sie können so einfach symmetrisch gebaute Moleküle erzeugen:formula(L,R){ ring(){ 4: bond(r; r+; r|)ring(,0,,,,r){ 3: bond(r); };}} Es ist möglich, eine Summe aus einem konkreten Winkel <phi> und dem durch die aufgeführten symbolischen Angaben erhaltenen Winkel zu bilden, um zum Bei- spiel um 10o von einer radialen Bindung abzuweichen. Der Operator + bildet die gewöhnliche Summe der Winkel, - dagegen liefert die Summe aus dem konkreten Winkel und der dem symbolischen Winkel entgegengesetzten Richtung. 88 Kapitel 3 | Alphabetis he Befehlsreferenz- kann auch ohne konkrete Zahlangabe benutzt werden, um Bindungen entgegen einer Richtung zu zeichnen: N=N NH2 formula(L,R){ ring(){ 5: bond(r) atom("N=N",L,R) bond(-r|)ring(,0,,,,r){ 3: bond(r) atom("N",C,R)atom("H$_2$",L); };}} Eine ausführliche Besprechung der einzelnen Varianten sowie zahlreiche Beispiele sind im Tutorial, Abschnitt 2.2.1 gegeben. Es folgt hier eine kurze Zusammenfassung einiger Richtungen, die durch Kombination verschiedener Winkelsymbole erhalten werden können. r-rr| -r|rr+-r+r- -r-r r/rn -rn-r/ r -rr|-r|rr+ -r+ r--r- rr/rn-rn-r/ Zu Beginn einer Formel werden diese symbolischen Angaben mit Defaultwinkeln assoziiert, und zwar 30o für r, 90o für t und -90o für b. Sie können diese Angaben somit auch außerhalb eines Ringsystems verwenden:formula(L,R){ bond(t; r; r/; r,=; r/; b) } Um die Startwinkel zu verändern, können Sie!set einsetzen:formula(L,R){ set("iAngleR",30)set("iAngleT",60)set("iAngleB",-60)bond(t; r; r/; r,=; r/; b)}#-Form Die Form mit #<n> (auch als #-Syntax bezeichnet) dient zur Erzeugung einer Bin- dung, deren Richtung und Länge nicht spezifiziert wird, sondern die zu einem zuvor mit saveXY gespeicherten Atom führt. Sie können damit das aktuelle Atom mit dem Atom <n> verbinden. Beispiele sind bei !saveXY und !restoreXY zu finden.Verkettete Bindungslisten Die Bindungsbeschreibungen mehrerer bond-Befehle können, durch Semikola ge- trennt, in einem einzigen bond-Kommando zusammengefaßt werden und dadurch viel Schreibarbeit sparen. Es sind dabei alle Syntaxvarianten sowie Kombinationen möglich. Einige Äquivalenzen: 3.1 | Benutzerbefehle 89bond(30) bond(0,=,L) bond(-30) bond(30)== bond(30; 0,=,L; -30; 30)bond(r) bond(r/) bond(r)== bond(r;r/;r)
Docsity logo



Copyright © 2024 Ladybird Srl - Via Leonardo da Vinci 16, 10126, Torino, Italy - VAT 10816460017 - All rights reserved