\documentclass[tablecaptionabove]{scrartcl} \usepackage{amssymb} % Symbole \usepackage{ifpdf} \ifpdf \usepackage[pdftex]{gu} \else \usepackage[dvips]{gu} %\usepackage[dvips,pstarrows]{gu} \fi %\setlength{\extrarowheight}{0.1em} % Extraabstand Zellinhalt-Zellrahmen \usepackage[latin1]{inputenc} \usepackage[T1]{fontenc} \usepackage{ngerman} %\usepackage[german]{babel} \usepackage{textcomp,lmodern,booktabs} \ifpdf \usepackage[pdftex,usenames]{color} \else \usepackage[dvips,usenames]{color} \fi \usepackage{microtype} \usepackage[% \ifpdf pdftex,% \else dvipdfm,% \fi linktocpage=true,% nur Seitenzahl im toc/lof/lot ist verlinkt pdfpagelabels=true,% plainpages=false,% final=true,% auch im draft-Modus von KOMA schon linken bookmarks=true,% bookmarksnumbered=true,% Abschnittsnummern in den Bookmarks colorlinks=true,% pdftitle={Das Paket gu},% pdfsubject={Dokumentation},% pdfauthor={Stefan Lange},% pdfkeywords={Gruppe, Untergruppe, Stammbaum, Bärnighausen, Symmetrieabbau, Lagenfortführung},% linkcolor=blue,% Farbe von Querverweisen \ref etc. citecolor=blue,% Farbe von Lit. \cite etc. pagecolor=blue,% Farbe von Seitenverweisen im toc etc. pagebackref=true,% Rckverweise im Lit-Verzeichnis auf die Seiten ]{hyperref} \title{Das Paket gu} \author{Stefan Lange} \date{2007-01-19} \begin{document} \maketitle \tableofcontents \listoffigures \listoftables \section{Überblick} Das Paket \texttt{gu.sty} erleichtert das Setzen von einfachen Gruppe-Untergruppe-Stammbäumen und/oder Lagenfortführungstabellen im Bärnighausen-Formalismus.\footnote{siehe H. Bärnighausen, \textit{Comm. Math. Chem.} \textbf{1980}, \textit{9}, 139. und H. Bärnighausen, U. Müller, \textit{Symmetriebeziehungen zwischen den Raumgruppen als Hilfsmittel zur straffen Darstellung von Strukturzusammenhängen in der Kristallchemie}, Universität Karlsruhe und Universität/GH Kassel, \textbf{1996}.} Die einzelnen Elemente und Abstände werden innerhalb einer neuen Umgebung namens \texttt{stammbaum} mittels vorgegebener Kommandos definiert. Anschließend werden alle Abstände automatisch berechnet und der Stammbaum und/oder die Tabellen ausgegeben. Momentan werden maximal zwei Abstiegsschritte unterstützt, eine Erweiterung ist aber relativ problemlos möglich. \section{Voraussetzungen} \texttt{gu.sty} benötigt \LaTeXe mit folgenden Zusatzpaketen: \begin{itemize} \item array \item tabularx \item pict2e \item calc (mindestens Version [2005/08/06]) \item fp \item ifthen \end{itemize} \section{Optionen} Unterstützt werden die meisten Optionen des Paketes \texttt{pict2e.sty} (vgl. Dokumentation dieses Pakets). Alle Optionen werden an dieses Paket unverändert durchgereicht. Eine Aufstellung ist in Tabelle~\ref{tabelle_optionen} zu finden. Hinweis (aus der \texttt{pict2e}-Dokumentation): \texttt{pict2e} (und damit auch \texttt{gu}) sollte immer mit der gleichen Treiberoption wie die Pakete \texttt{graphic\{x,s\}} und \texttt{color} aufgerufen werden. Andernfalls könnten unerwünschte Nebeneffekte auftreten. \begin{table}[tbp] \caption{Unterstützte Paketoptionen von \texttt{gu.sty}} \label{tabelle_optionen} \centering \begin{tabular}{l l} \toprule Option & Funktion \\ \midrule dvips & Treiberoption \\ xdvi & Treiberoption \\ pdftex & Treiberoption \\ vtex & Treiberoption \\ dvipdfm & Treiberoption \\ ltxarrows & Pfeilspitzen im \LaTeX{}-Stil \\ pstarrows & Pfeilspitzen im PSTricks-Stil\\ \bottomrule \end{tabular} \end{table} \section{Neue Befehle und Umgebungen} \texttt{gu.sty} definiert die neue Umgebung \texttt{stammbaum}. Ein Stammbaum im Bärnighausen-Formalismus wird also nach folgendem Prinzip definiert: \begin{quote} \texttt{\textbackslash{}begin\{stammbaum\}\newline \textbackslash{}befehl1\newline \textbackslash{}befehl2\newline \ldots\newline \textbackslash{}end\{stammbaum\}} \end{quote} Momentan werden zwei Symmetrieabstiegsschritte unterstützt. Ein schematischer Stammbaum ist in Abbildung~\ref{abb_schematisch} gezeigt. Die neuen Befehle und ihre Bedeutung werden im folgenden kurz beschrieben. \begin{figure}[btp] \begin{stammbaum} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%% Ab hier die einzelnen Elemente eintragen %%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % Die verschiedenen Elemente, die links gesetzt werden, der Stammbaum \setuplinks{true} % Raumgruppe+Summenformel eins: true=Anzeigen, false=Ausblenden {2em} % Mindestlänge Linie/Pfeil1: Muss unbedingt Längeneinheit % sein, zum Ausblenden: 0em oder 0pt etc. {true} % Abstiegssymbol eins: true=Anzeigen, false=Ausblenden {true} % Raumgruppe+Summenformel zwei: true=Anzeigen, false=Ausblenden {2em} % Mindestlänge Linie/Pfeil2: Muss unbedingt Längeneinheit % sein, zum Ausblenden: 0em oder 0pt etc. {true} % Abstiegssymbol zwei: true=Anzeigen, false=Ausblenden {true} % Raumgruppe+Summenformel drei: true=Anzeigen, false=Ausblenden {0em} % zusätzliche Abstände zwischen den Elementen: Muss % unbedingt Längeneinheit sein % Die Elemente rechts, die Tabellen mit der Lagenfortführung \setuprechts{true} % Lagentabelle eins: true=Anzeigen, false=Ausblenden {2em} % Pfeile eins Mindestlänge: Muss unbedingt Längeneinheit % sein, zum Ausblenden: 0em oder 0pt etc. {true} % Transformationsmatrix eins: true=Anzeigen, false=Ausblenden {true} % Lagentabelle zwei: true=Anzeigen, false=Ausblenden {4em} % Pfeile zwei Mindestlänge: Muss unbedingt Längeneinheit % sein, zum Ausblenden: 0em oder 0pt etc. {true} % Transformationsmatrix zwei: true=Anzeigen, false=Ausblenden {true} % Lagentabelle drei: true=Anzeigen, false=Ausblenden {0.5em} % zusätzliche Abstände zwischen den Elementen: Muss % unbedingt Längeneinheit sein % Weitere Einstellungen \setupdivers{2em} % horizontaler Abstand Stammbaum <--> Lagentabellen {0em} % Extraabstand für Kollisionskontrolle Pfeile rechts {0em} {false} % Abstieg 1: true=Symbole links und rechts auf gleicher Höhe {false} % Abstieg 2: true=Symbole links und rechts auf gleicher Höhe {false} % true=Randbox, false=keine Randbox anzeigen % Einstellungen, die die Lagentabellen betreffen \setuprlagentabellen{4.5em} % Spaltenbreite (Längeneinheit, bei Bedarf anpassen) {2} % Anzahl Spalten Tabelle 1 (Zahl) {1} % Anzahl Spalten Tabelle 2 (Zahl) {1} % Anzahl Spalten Tabelle 3 (Zahl) {0em}% horizontale Verschiebung Tabelle eins {0em}% horizontale Verschiebung Tabelle zwei {0em}% horizontale Verschiebung Tabelle drei % Raumgruppe und Summenformel eins \lverbindungeins{% \fbox{{\Huge lblockeins}}% } % Abstiegssymbol eins \labstiegeins{% \fbox{lseins}% } % Raumgruppe und Summenformel zwei \lverbindungzwei{% \fbox{{\tiny lblockzwei}}% } % Abstiegssymbol zwei \labstiegzwei{% \fbox{lszwei}% } % Raumgruppe und Summenformel drei \lverbindungdrei{% \fbox{{\Huge lblockdrei}}% } % Transformationsmatrix zwischen Tabelle 1 und 2 \rlagentranseins{% \fbox{rseins}% } % Transformationsmatrix zwischen Tabelle 2 und 3 \rlagentranszwei{% \fbox{rszwei}% } % Lagentabelle eins % Optional Verschiebung in x angeben (Längeneinheit) % negative Werte funktionieren evtl. noch nicht so 100% \rlagentabelleeins{% \fbox{{\tiny rblockeins}}% } % Lagentabelle zwei % Optional Verschiebung in x angeben (Längeneinheit) % negative Werte funktionieren evtl. noch nicht so 100% \rlagentabellezwei{% \fbox{{\Huge rblockzwei}}% } % Lagentabelle drei % Optional Verschiebung in x angeben (Längeneinheit) % negative Werte funktionieren evtl. noch nicht so 100% \rlagentabelledrei{% \fbox{{\tiny rblockdrei}}% } % Die Pfeile zwischen den Tabellen % \rpfeileinszwei{start}{ziel} zeichnet einen Pfeil von Spalte "start" nach % Spalte "ziel" von Lagentabelle eins nach Lagentabelle zwei % \rpfeilzweidrei{start}{ziel} zeichnet einen Pfeil von Spalte "start" nach % Spalte "ziel" von Lagentabelle zwei nach Lagentabelle drei \rechtspfeilsetup{ \rpfeileinszwei{1}{1} \rpfeilzweidrei{1}{1} \rpfeileinszwei{1}{3} \rpfeilzweidrei{1}{3} } \end{stammbaum} \caption{Allgemeiner schematischer Aufbau der einzelnen Elemente.} \label{abb_schematisch} \end{figure} \subsection{Allgemeines} Einige Befehle dienen der Konfiguration des Stammbaumes, also der Definition, welche Elemente vorhanden sind. Diese Befehle sind obligatorisch, ein Weglassen führt zu Fehlermeldungen. Argumente vom Typ \emph{Länge} erwarten eine von \TeX{} unterstützte Längeneinheit (sp, pt, bp, dd, mm, pc, cc, cm, in, ex oder em). Zum vollständigen Deaktivieren eines solchen Elements muss die entsprechende Länge auf 0 gesetzt werden, allerdings \emph{mit} Einheit, also etwa \texttt{0em}. Argumente vom Typ \emph{boolean} erwarten als Eingabe entweder \texttt{true} oder \texttt{false}. \texttt{true} aktiviert das jeweilig Element, \texttt{false} deaktiviert es, so dass es nicht angezeigt wird. Argumente vom Typ \emph{Integer} erwarten eine positive ganze Zahl. \subsection{Befehle zur Konfiguration des Stammbaumes (obligatorisch)} \subsubsection{\textbackslash{}setuplinks} \texttt{\textbackslash{}setuplinks} erwartet insgesamt acht Argumente, welche die einzelnen Elemente und Abstände im linken Teil der Abbildung, dem Symmetriestammbaum, steuern. Die Argumente sind im Einzelnen in Tabelle~\ref{tab_optionen_setuplinks} aufgeführt. \begin{table}[hbtp] \centering \caption{Argumente von \texttt{\textbackslash{}setuplinks}} \label{tab_optionen_setuplinks} \begin{tabular}{l l l l} \toprule & Typ & Beschreibung & Name in Abb.~\ref{abb_schematisch} \\ \midrule \texttt{\textbackslash{}setuplinks} & \{\emph{boolean}\} & Raumgruppe und Summenformel eins & lblockeins \\ & \{\emph{Länge}\} & Mindestlänge Linie/Pfeil1 & \\ & \{\emph{boolean}\} & Abstiegssymbol eins & lseins \\ & \{\emph{boolean}\} & Raumgruppe und Summenformel zwei & lblockzwei \\ & \{\emph{Länge}\} & Mindestlänge Linie/Pfeil2 & \\ & \{\emph{boolean}\} & Abstiegssymbol zwei & lszwei \\ & \{\emph{boolean}\} & Raumgruppe und Summenformel drei & lblockdrei \\ & \{\emph{Länge}\} & zusätzliche vertikale Abstände& \\ \bottomrule \end{tabular} \end{table} \subsubsection{\textbackslash{}setuprechts} \texttt{\textbackslash{}setuprechts} erwartet insgesamt acht Argumente, welche die einzelnen Elemente und Abstände im rechten Teil der Abbildung, den Tabellen mit der Lagenfortführung, steuern. Die Argumente sind im Einzelnen in Tabelle~\ref{tab_optionen_setuprechts} aufgeführt. \begin{table}[hbtp] \centering \caption{Argumente von \texttt{\textbackslash{}setuprechts}} \label{tab_optionen_setuprechts} \begin{tabular}{l l l l} \toprule & Typ & Beschreibung & Name in Abb.~\ref{abb_schematisch} \\ \midrule \texttt{\textbackslash{}setuprechts} & \{\emph{boolean}\} & Lagentabelle eins & rblockeins \\ & \{\emph{Länge}\} & Mindestlänge Linie/Pfeil1 & \\ & \{\emph{boolean}\} & Transformation eins & rseins \\ & \{\emph{boolean}\} & Lagentabelle zwei & rblockzwei \\ & \{\emph{Länge}\} & Mindestlänge Linie/Pfeil2 & \\ & \{\emph{boolean}\} & Transformation zwei & rszwei \\ & \{\emph{boolean}\} & Lagentabelle drei & rblockdrei \\ & \{\emph{Länge}\} & zusätzliche vertikale Abstände& \\ \bottomrule \end{tabular} \end{table} \subsubsection{\textbackslash{}setupdivers} \label{setupdivers} \texttt{\textbackslash{}setupdivers} erwartet insgesamt sechs Argumente, welche weitere Zeichnungsoptionen, steuern. Die Argumente sind im Einzelnen in Tabelle~\ref{tab_optionen_setupdivers} aufgeführt. \begin{table}[hbtp] \centering \caption{Argumente von \texttt{\textbackslash{}setupdivers}} \label{tab_optionen_setupdivers} \begin{tabular}{l l l} \toprule & Typ & Beschreibung \\ \midrule \texttt{\textbackslash{}setupdivers} & \{\emph{Länge}\} & horizontaler Abstand links $\leftrightarrow$ rechts \\ & \{\emph{Länge}\} & Feinabstimmung Kollisionskontrolle x \\ & \{\emph{Länge}\} & Feinabstimmung Kollisionskontrolle y \\ & \{\emph{boolean}\} & lseins und rseins vertikal zentrieren \\ & \{\emph{boolean}\} & lszwei und rszwei vertikal zentieren \\ & \{\emph{boolean}\} & Randbox zeichnen \\ \bottomrule \end{tabular} \end{table} \subsubsection{\textbackslash{}setuprlagentabellen} \texttt{\textbackslash{}setuprlagentabellen} erwartet insgesamt sieben Argumente, welche die Lagenfortführungstabellen steuern. Die Argumente sind im Einzelnen in Tabelle~\ref{tab_optionen_setuprlagentabellen} aufgeführt. Die letzten drei Längenangaben bei den Lagentabellen definieren dabei eine optionale Verschiebung der jeweiligen Tabelle in $x$-Richtung. Achtung: Führt eventuell zu Problemen, weitgehend ungetestet. \begin{table}[hbtp] \centering \caption{Argumente von \texttt{\textbackslash{}setuprlagentabellen}} \label{tab_optionen_setuprlagentabellen} \begin{tabular}{l l l} \toprule & Typ & Beschreibung \\ \midrule \texttt{\textbackslash{}setuprlagentabellen} & \{\emph{Länge}\} & Spaltenbreite \\ & \{\emph{Integer}\} & Anzahl Spalten Tabelle 1 \\ & \{\emph{Integer}\} & Anzahl Spalten Tabelle 2 \\ & \{\emph{Integer}\} & Anzahl Spalten Tabelle 3 \\ & \{\emph{Länge}\} & optionale horizontale Verschiebung Tabelle 1 \\ & \{\emph{Länge}\} & optionale horizontale Verschiebung Tabelle 2 \\ & \{\emph{Länge}\} & optionale horizontale Verschiebung Tabelle 3 \\ \bottomrule \end{tabular} \end{table} \subsection{Befehle zur Definition der einzelnen Elemente (optional)} \subsubsection{Festlegen der einzelnen Elemente links} Die einzelnen Blöcke links (Stammbaum) werden mit weiteren Befehlen definiert. Die Angabe dieser Elemente ist optional, nicht benötigte Blöcke müssen nicht definiert werden. Alle Befehle erwarten je ein Argument, einen beliebigen \TeX{}-Ausdruck, also zum Beispiel einen einzelnen Buchstabe, ein Wort, eine mathematische Formel, eine Tabelle etc. Die einzelnen Befehle und die entsprechende Bezeichung des jeweiligen Elements in Abbildung~\ref{abb_schematisch} lauten: \begin{itemize} \item \texttt{\textbackslash{}lverbindungeins}\{\TeX\emph{-Ausdruck}\}: lblockeins \item \texttt{\textbackslash{}lverbindungzwei}\{\TeX\emph{-Ausdruck}\}: lblockzwei \item \texttt{\textbackslash{}lverbindungdrei}\{\TeX\emph{-Ausdruck}\}: lblockdrei \item \texttt{\textbackslash{}labstiegeins}\{\TeX\emph{-Ausdruck}\}: lseins \item \texttt{\textbackslash{}labstiegzwei}\{\TeX\emph{-Ausdruck}\}: lszwei \end{itemize} \subsubsection{Festlegen der einzelnen Elemente rechts} Die einzelnen Blöcke rechts (Lagenfortführung) werden mit weiteren Befehlen definiert. Die Angabe dieser Elemente ist optional, nicht benötigte Blöcke müssen nicht definiert werden. Alle Befehle ervarten je ein Argument, einen beliebigen \TeX{}-Ausdruck, also zum Beispiel einen einzelnen Buchstabe, ein Wort, eine mathematische Formel, eine Tabelle etc. Die einzelnen Befehle und die entsprechende Bezeichung des jeweiligen Elements in Abbildung~\ref{abb_schematisch} lauten: \begin{itemize} \item \texttt{\textbackslash{}rlagentabelleeins}\{\TeX\emph{-Ausdruck}\}: rblockeins \item \texttt{\textbackslash{}rlagentabellezwei}\{\TeX\emph{-Ausdruck}\}: rblockzwei \item \texttt{\textbackslash{}rlagentabelledrei}\{\TeX\emph{-Ausdruck}\}: rblockdrei \item \texttt{\textbackslash{}rlagentranseins}\{\TeX\emph{-Ausdruck}\}: rseins \item \texttt{\textbackslash{}rlagentranszwei}\{\TeX\emph{-Ausdruck}\}: rszwei \end{itemize} \subsubsection{Festlegen der Pfeile rechts} Die Definition der Pfeile rechts zwischen den einzelnen Lagentabellen erfolgt mit Hilfe des Befehls \texttt{\textbackslash{}rechtspfeilsetup}. Dieser erhält als Argument eine Reihe von Pfeildefinitionen. Als Hilfe existieren die beiden weiteren Befehle \begin{itemize} \item \texttt{\textbackslash{}rpfeileinszwei}\{\emph{Integer}\}\{\emph{Integer}\} und \item \texttt{\textbackslash{}rpfeilzweidrei}\{\emph{Integer}\}\{\emph{Integer}\}. \end{itemize} Beide erhalten jeweils zwei Argumente, die die Nummer des Start- und des Endkästchens der Pfeile festlegen. \texttt{\textbackslash{}rpfeileinszwei}\{1\}\{3\} zeichnet so beispielsweise einen Pfeil von Kästchen 1 der ersten Tabelle nach Kästchen 3 der zweiten Tabelle, \texttt{\textbackslash{}rpfeilzweidrei}\{4\}\{3\} entsprechend von Kästchen 4 der zweiten Tabelle nach Kästchen 3 der dritten. Hinweis: Die Start- und Endwerte müssen technisch gesehen keine Integerzahlen sein, eine Angabe der Form \texttt{\textbackslash{}rpfeileinszwei}\{1\}\{2.9\} ist durchaus möglich. Dies kann nützlich sein, um einzelne Pfeile minimal in der Position anzupassen, um ein \glqq{}Ineinanderlaufen\grqq{} mehrerer Pfeilspitzen zu verhindern. \subsubsection{Details zu den Lagentabellen} Damit die Pfeile rechts zwischen den Lagentabellen automatisch generiert werden können, müssen die Tabellen eine fixe, bekannte Breite besitzen. Aus diesem Grund sind die Lagentabellen in \texttt{tabularx}-Umgebungen mit fester Gesamtbreite anzugeben. Als Spaltentyp wurde der neue Typ \texttt{z} definiert, der Spalten mit fester Breite und zentriertem Inhalt liefert. Die Tabellen werden am einfachsten folgendermaßen definiert (Beispiel für Tabelle eins): \begin{quote} \begin{verbatim} \rlagentabelleeins{% \begin{tabularx}{\spaltenbreiteem*\spalteneins}[b]{|z|z|} ... Tabelleninhalt ... \end{tabularx}% } \end{verbatim} \end{quote} Die Längenangabe \texttt{\{\textbackslash{}spaltenbreiteem{}*\textbackslash{}spalteneins\}} und die Platzierungsangabe \texttt{[b]} sollten dabei auf keinen Fall editiert werden, da hiermit die Berechnung der Breite und der vertikalen Platzierung durchgeführt werden. Die Einstellung der Spalten, im Beispiel \texttt{|z|z|}, muss an die Anzahl der tatsächlich vorhandenen Spalten angepasst werden. Achtung: Eine Änderung der Schriftgröße mitten in einer Stammbaum-Umgebung kann bei Verwendung relativer Längeneinheiten (em, ex) zu unerwarteten Nebenwirkungen wie falsch platzierten Pfeilen führen! \subsection{Sonstige neue Befehle} Der neue Befehl \texttt{\textbackslash{}nfrac} wird definiert.\footnote{\texttt{\textbackslash{}nfrac} wurde übernommen aus: Donald E. Knuth: The \TeX{}book. Addison-Wesley Publ., Reading, Mass., März 1992.} Er erwartet zwei Argumente und bietet eine alternative Schreibweise für Brüche im Vergleich zur Standard-\LaTeX-Variante: \begin{quote} \texttt{\textbackslash{}nfrac\{2\}\{3\}}: $\nfrac{2}{3}$ im Gegensatz zu \texttt{\textbackslash{}frac\{2\}\{3\}}: $\frac{2}{3}$ \end{quote} Einige Abkürzungen für häufig benutzte Brüche werden ebenfalls vordefiniert: \begin{quote} \texttt{\textbackslash{}eh}: \eh, \texttt{\textbackslash{}ed}: \ed, \texttt{\textbackslash{}ev}: \ev, \texttt{\textbackslash{}es}: \es, \texttt{\textbackslash{}zd}: \zd, \texttt{\textbackslash{}dv}: \dv, \texttt{\textbackslash{}fs}: \fs, \texttt{\textbackslash{}ea}: \ea, \texttt{\textbackslash{}da}: \da, \texttt{\textbackslash{}fa}: \fa, \texttt{\textbackslash{}sa}: \sa, \end{quote} \section{Beispiele} \subsection{Einfacher Stammbaum ohne Lagenfortführung} Abbildung~\ref{abb_einfach} zeigt einen einfachen Stammbaum mit einem Symmetrieabstieg ohne Lagenfortführung. Der entsprechende Quellcode ist in Abbildung~\ref{abb_einfach_src} gezeigt. \begin{figure}[htbp] \centering \begin{stammbaum} \setuplinks% {true}% Raumgruppe und Summenformel 1 {2em}% Mindestlänge Linie/Pfeil 1 {true}% Abstiegssymbol 1 {true}% Raumgruppe und Summenformel 2 {0em}% Mindestlänge Linie/Pfeil 2 {false}% Abstiegssymbol 2 {false}% Raumgruppe und Summenformel 3 {0em}% zusätzliche vertikale Abstände \setuprechts% {false}% Lagentabelle 1 {0em}% Mindestlänge Linie/Pfeil 1 {false}% Transformation 1 {false}% Lagentabelle 2 {0em}% Mindestlänge Linie/Pfeil 2 {false}% Transformation 2 {false}% Lagentabelle 3 {0em}% zusätzliche vertikale Abstände \setupdivers% {0em}% horizontaler Abstand links <-> rechts {0em}% Feinabstimmung Kollisionskontrolle x {0em}% Feinabstimmung Kollisionskontrolle y {false}% lseins und rseins vertikal zentrieren {false}% lszwei und rszwei vertikal zentieren {false}% Randbox zeichnen \setuprlagentabellen% {0em}% Spaltenbreite {0}% Anzahl Spalten Tabelle eins {0}% Anzahl Spalten Tabelle zwei {0}% Anzahl Spalten Tabelle drei {0em}% horizontale Verschiebung Tabelle eins {0em}% horizontale Verschiebung Tabelle zwei {0em}% horizontale Verschiebung Tabelle drei \lverbindungeins{% \begin{tabular}{c}% $P6_3/mmc$\\ \fbox{AuSn}\\ \end{tabular}% } \labstiegeins{% t2% } \lverbindungzwei{% \begin{tabular}{c}% $P\overline{3}m1$\\ \fbox{AuNiSn$_2$}\\ \end{tabular}% } \end{stammbaum} \caption{Einfacher Stammbaum ohne Lagenfortführung.} \label{abb_einfach} \end{figure} \begin{figure}[bp] \centering \begin{minipage}{0.45\textwidth} \begin{tiny} \begin{verbatim} \begin{stammbaum} \setuplinks% {true}% Raumgruppe und Summenformel 1 {2em}% Mindestlänge Linie/Pfeil 1 {true}% Abstiegssymbol 1 {true}% Raumgruppe und Summenformel 2 {0em}% Mindestlänge Linie/Pfeil 2 {false}% Abstiegssymbol 2 {false}% Raumgruppe und Summenformel 3 {0em}% zusätzliche vertikale Abstände \setuprechts% {false}% Lagentabelle 1 {0em}% Mindestlänge Linie/Pfeil 1 {false}% Transformation 1 {false}% Lagentabelle 2 {0em}% Mindestlänge Linie/Pfeil 2 {false}% Transformation 2 {false}% Lagentabelle 3 {0em}% zusätzliche vertikale Abstände \setupdivers% {0em}% horizontaler Abstand links <-> rechts {0em}% Feinabstimmung Kollisionskontrolle x {0em}% Feinabstimmung Kollisionskontrolle y {false}% lseins und rseins vertikal zentrieren {false}% lszwei und rszwei vertikal zentieren {false}% Randbox zeichnen \end{verbatim} \end{tiny} \end{minipage} \hfill \begin{minipage}{0.45\textwidth} \begin{tiny} \begin{verbatim} \setuprlagentabellen% {0em}% Spaltenbreite {0}% Anzahl Spalten Tabelle eins {0}% Anzahl Spalten Tabelle zwei {0}% Anzahl Spalten Tabelle drei {0em}% horizontale Verschiebung Tabelle eins {0em}% horizontale Verschiebung Tabelle zwei {0em}% horizontale Verschiebung Tabelle drei \lverbindungeins{% \begin{tabular}{c}% $P6_3/mmc$\\ \fbox{AuSn}\\ \end{tabular}% } \labstiegeins{% t2% } \lverbindungzwei{% \begin{tabular}{c}% $P\overline{3}m1$\\ \fbox{AuNiSn$_2$}\\ \end{tabular}% } \end{stammbaum} \end{verbatim} \end{tiny} \end{minipage} \caption{Quellcode zu Abb.~\ref{abb_einfach}: Einfacher Stammbaum ohne Lagenfortführung.} \label{abb_einfach_src} \end{figure} \subsection{Einfacher Stammbaum mit Lagenfortführung} Abbildung~\ref{abb_einfach_mit} zeigt einen einfachen Stammbaum mit einem Symmetrieabstieg mit Lagenfortführung. Dieses Mal werden die Lagentabellen mit definiert. Zur Demonstration des optionalen Parameters zur Verschiebung der Tabellen ist die untere Tabelle um \texttt{2em} nach rechts verschoben. Der zugehörige Quellcode ist in Abbildung~\ref{abb_einfach_mit_src} gezeigt. \begin{figure}[btp] \centering \begin{stammbaum} \setuplinks% {true}% Raumgruppe und Summenformel 1 {2em}% Mindestlänge Linie/Pfeil 1 {true}% Abstiegssymbol 1 {true}% Raumgruppe und Summenformel 2 {0em}% Mindestlänge Linie/Pfeil 2 {false}% Abstiegssymbol 2 {false}% Raumgruppe und Summenformel 3 {0em}% zusätzliche vertikale Abstände \setuprechts% {true}% Lagentabelle 1 {2em}% Mindestlänge Linie/Pfeil 1 {false}% Transformation 1 {true}% Lagentabelle 2 {0em}% Mindestlänge Linie/Pfeil 2 {false}% Transformation 2 {false}% Lagentabelle 3 {0.5em}% zusätzliche vertikale Abstände \setupdivers% {1em}% horizontaler Abstand links <-> rechts {0em}% Feinabstimmung Kollisionskontrolle x {0em}% Feinabstimmung Kollisionskontrolle y {true}% lseins und rseins vertikal zentrieren {false}% lszwei und rszwei vertikal zentieren {false}% Randbox zeichnen \setuprlagentabellen% {4.5em}% Spaltenbreite {2}% Anzahl Spalten Tabelle eins {3}% Anzahl Spalten Tabelle zwei {0}% Anzahl Spalten Tabelle drei {0em}% horizontale Verschiebung Tabelle eins {2em}% horizontale Verschiebung Tabelle zwei {0em}% horizontale Verschiebung Tabelle drei \lverbindungeins{% \begin{tabular}{c}% $P6_3/mmc$\\ \fbox{AuSn}\\ \end{tabular}% } \labstiegeins{% t2% } \lverbindungzwei{% \begin{tabular}{c}% $P\overline{3}m1$\\ \fbox{AuNiSn$_2$}\\ \end{tabular}% } \rlagentabelleeins{% \begin{tabularx}{\spaltenbreiteem*\spalteneins}[b]{|z|z|} \hline Au: $2a$ & Sn: $2c$ \\ $\overline{3}m.$ & $\overline{6}m2$ \\ \hline 0 & \ed \\ 0 & \zd \\ 0 & \ev \\ \hline \end{tabularx}% } \rlagentabellezwei{% \begin{tabularx}{\spaltenbreiteem*\spaltenzwei}[b]{|z|z|z|} \hline Au: $2a$ & Ni: $1b$ & Sn: $2d$ \\ $\overline{3}m.$ & $\overline{3}m.$ & $3m.$ \\ \hline 0 & 0 & \ed \\ 0 & 0 & \zd \\ 0 & \eh & 0.2831 \\ \hline \end{tabularx}% } \rechtspfeilsetup{% \rpfeileinszwei{1}{1} \rpfeileinszwei{1}{2} \rpfeileinszwei{2}{3} } \end{stammbaum} \caption{Einfacher Stammbaum mit Lagenfortführung.} \label{abb_einfach_mit} \end{figure} \begin{figure}[btp] \centering \begin{minipage}{0.45\textwidth} \begin{tiny} \begin{verbatim} \begin{stammbaum} \setuplinks% {true}% Raumgruppe und Summenformel 1 {2em}% Mindestlänge Linie/Pfeil 1 {true}% Abstiegssymbol 1 {true}% Raumgruppe und Summenformel 2 {0em}% Mindestlänge Linie/Pfeil 2 {false}% Abstiegssymbol 2 {false}% Raumgruppe und Summenformel 3 {0em}% zusätzliche vertikale Abstände \setuprechts% {true}% Lagentabelle 1 {2em}% Mindestlänge Linie/Pfeil 1 {false}% Transformation 1 {true}% Lagentabelle 2 {0em}% Mindestlänge Linie/Pfeil 2 {false}% Transformation 2 {false}% Lagentabelle 3 {0.5em}% zusätzliche vertikale Abstände \setupdivers% {1em}% horizontaler Abstand links <-> rechts {0em}% Feinabstimmung Kollisionskontrolle x {0em}% Feinabstimmung Kollisionskontrolle y {true}% lseins und rseins vertikal zentrieren {false}% lszwei und rszwei vertikal zentieren {false}% Randbox zeichnen \setuprlagentabellen% {4.5em}% Spaltenbreite {2}% Anzahl Spalten Tabelle eins {3}% Anzahl Spalten Tabelle zwei {0}% Anzahl Spalten Tabelle drei {0em}% horizontale Verschiebung Tabelle eins {2em}% horizontale Verschiebung Tabelle zwei {0em}% horizontale Verschiebung Tabelle drei \end{verbatim} \end{tiny} \end{minipage} \hfill \begin{minipage}{0.45\textwidth} \begin{tiny} \begin{verbatim} \lverbindungeins{% \begin{tabular}{c}% $P6_3/mmc$\\ \fbox{AuSn}\\ \end{tabular}% } \labstiegeins{% t2% } \lverbindungzwei{% \begin{tabular}{c}% $P\overline{3}m1$\\ \fbox{AuNiSn$_2$}\\ \end{tabular}% } \rlagentabelleeins{% \begin{tabularx}{\spaltenbreiteem*\spalteneins}[b]{|z|z|} \hline Au: $2a$ & Sn: $2c$ \\ $\overline{3}m.$ & $\overline{6}m2$ \\ \hline 0 & \ed \\ 0 & \zd \\ 0 & \ev \\ \hline \end{tabularx}% } \rlagentabellezwei{% \begin{tabularx}{\spaltenbreiteem*\spaltenzwei}[b]{|z|z|z|} \hline Au: $2a$ & Ni: $1b$ & Sn: $2d$ \\ $\overline{3}m.$ & $\overline{3}m.$ & $3m.$ \\ \hline 0 & 0 & \ed \\ 0 & 0 & \zd \\ 0 & \eh & 0.2831 \\ \hline \end{tabularx}% } \rechtspfeilsetup{% \rpfeileinszwei{1}{1} \rpfeileinszwei{1}{2} \rpfeileinszwei{2}{3} } \end{stammbaum} \end{verbatim} \end{tiny} \end{minipage} \caption{Quellcode zu Abb.~\ref{abb_einfach_mit}: Einfacher Stammbaum mit Lagenfortführung.} \label{abb_einfach_mit_src} \end{figure} \subsection{Etwas aufwändigerer Stammbaum mit Lagenfortführung} Abbildung~\ref{abb_mit_aufw} zeigt einen etwas aufwändigeren Stammbaum mit zwei Symmetrieabbaustufen und Lagenfortführung. Außerdem wird die Möglichkeit der Angabe einer Lagentransformation demonstriert, auch wenn sie in diesem Beispiel kristallographisch gesehen sinnfrei ist. Die Pfeile rechts werden gegebenenfalls durchbrochen, wenn sie den Text der Lagentransformation schneiden würden. Die virtuelle Box um den Text der Lagentransformation (rseins, rszwei), die benutzt wird, um zu bestimmen, ob der Pfeil unterbrochen werden muss oder nicht, kann mit Hilfe eines Parameters zur Feineinstellung (Teil des Befehls \texttt{\textbackslash{}setupdivers}, siehe Abschnitt~\ref{setupdivers}) manuell vergrößert oder verkleinert werden, wenn die Ergebnisse suboptimal aussehen. In diesem Fall wurde der Parameter für die horizontale Feineinstellung auf \texttt{-0.5em} angepasst, um ein Durchbrechen des unteren Pfeils rechts außen zu verhindern. Dieses Beispiel zeigt auch die beiden unterschiedlichen Anordnungsoptionen für die Abstiegssymbole und die Lagentransformation. Im ersten Schritt sind beide auf gleicher Höhe ausgerichtet, das Abstiegssymbol ist dafür nicht mehr genau in der Mitte zwischen lblockeins und lblockzwei. Im Fall des zweiten Abstiegs sind rseins und lseins jeweils genau in der Mitte der Pfeile, aber dafür nicht bündig auf einer Höhe. Das Verhalten läßt sich mittels der Schalter in \texttt{\textbackslash{}setupdivers} einstellen (siehe Abschnitt~\ref{setupdivers}). Weiterhin wurden die Pfeilmindestlängen links und rechts auf diverse verschiedene Werte festgelegt, um diese Option zu demonstrieren. Der Quellcode zu diesem Beispiel ist in Abbildung~\ref{abb_mit_aufw_src} gezeigt. \begin{figure}[btp] \centering \begin{stammbaum} \setuplinks% {true}% Raumgruppe und Summenformel 1 {1em}% Mindestlänge Linie/Pfeil 1 {true}% Abstiegssymbol 1 {true}% Raumgruppe und Summenformel 2 {4em}% Mindestlänge Linie/Pfeil 2 {true}% Abstiegssymbol 2 {true}% Raumgruppe und Summenformel 3 {0em}% zusätzliche vertikale Abstände \setuprechts% {true}% Lagentabelle 1 {5em}% Mindestlänge Linie/Pfeil 1 {true}% Transformation 1 {true}% Lagentabelle 2 {2em}% Mindestlänge Linie/Pfeil 2 {true}% Transformation 2 {true}% Lagentabelle 3 {0.5em}% zusätzliche vertikale Abstände \setupdivers% {3em}% horizontaler Abstand links <-> rechts {-0.5em}% Feinabstimmung Kollisionskontrolle x {0em}% Feinabstimmung Kollisionskontrolle y {true}% lseins und rseins vertikal zentrieren {false}% lszwei und rszwei vertikal zentieren {false}% Randbox zeichnen \setuprlagentabellen% {4.5em}% Spaltenbreite {2}% Anzahl Spalten Tabelle eins {2}% Anzahl Spalten Tabelle zwei {4}% Anzahl Spalten Tabelle drei {0em}% horizontale Verschiebung Tabelle eins {0em}% horizontale Verschiebung Tabelle zwei {0em}% horizontale Verschiebung Tabelle drei \lverbindungeins{% \begin{tabular}{c}% $P6_3/m \, 2/c \, 2/m$\\[0.3em] \fbox{hex. TiI$_3$}\\ \end{tabular}% } \labstiegeins{% \begin{tabular}{c} k3\\ $\mathbf{a-b, a+2b, c}$ \end{tabular}% } \lverbindungzwei{% $P6_3/m \, 2/m \, 2/c$%\\ } \labstiegzwei{% t2% } \lverbindungdrei{% \begin{tabular}{c} $P\overline{3} \, 2/m \, 1$\\[0.3em] \fbox{$\beta$-WCl$_6$}\\ \end{tabular}% } \rlagentranseins{% $x,y,z$ (überflüssig)% } \rlagentranszwei{% $x,y,z$ (sinnfrei)% } \rlagentabelleeins{% \begin{tabularx}{\spaltenbreiteem*\spalteneins}[t]{|z|z|} \hline Ti: $2b$ & $\Box$: $4d$ \\ $\overline{3}m$ & $3.2$ \\ \hline 0 & \zd \\ 0 & \ed \\ 0 & 0 \\ \hline \end{tabularx}% } \rlagentabellezwei{% \begin{tabularx}{\spaltenbreiteem*\spaltenzwei}[t]{|z|z|}% \hline $2a$ & $4f$ \\ $\overline{3}m$ & $3m$ \\ \hline 0 & \ed \\ 0 & \zd \\ 0 & 0.0 \\ \hline \end{tabularx}% } \rlagentabelledrei{% \begin{tabularx}{\spaltenbreiteem*\spaltendrei}[t]{|z|z|z|z|} \hline W1: $1a$ & $\Box$: $1b$ & W2: $2d$ & $\Box$: $2d$\\ $\overline{3}m$ & $\overline{3}m$ & $3m$ & $3m$ \\ \hline 0 & 0 & \ed & \ed \\ 0 & 0 & \zd & \zd \\ 0 & \eh & 0.473 & 0.0 \\ \hline \end{tabularx}% } \rechtspfeilsetup{ \rpfeileinszwei{1}{1} \rpfeileinszwei{1}{2} \rpfeilzweidrei{1}{1} \rpfeilzweidrei{1}{2} \rpfeilzweidrei{2}{3} \rpfeilzweidrei{2}{4} } \end{stammbaum} \caption{Etwas aufwändigerer Stammbaum mit Lagenfortführung und (sinnfreier) Koordinatentransformation.} \label{abb_mit_aufw} \end{figure} \begin{figure}[btp] \centering \begin{minipage}{0.45\textwidth} \begin{tiny} \begin{verbatim} \begin{stammbaum} \setuplinks% {true}% Raumgruppe und Summenformel 1 {1em}% Mindestlänge Linie/Pfeil 1 {true}% Abstiegssymbol 1 {true}% Raumgruppe und Summenformel 2 {4em}% Mindestlänge Linie/Pfeil 2 {true}% Abstiegssymbol 2 {true}% Raumgruppe und Summenformel 3 {0em}% zusätzliche vertikale Abstände \setuprechts% {true}% Lagentabelle 1 {5em}% Mindestlänge Linie/Pfeil 1 {true}% Transformation 1 {true}% Lagentabelle 2 {2em}% Mindestlänge Linie/Pfeil 2 {true}% Transformation 2 {true}% Lagentabelle 3 {0.5em}% zusätzliche vertikale Abstände \setupdivers% {3em}% horizontaler Abstand links <-> rechts {-0.5em}% Feinabstimmung Kollisionskontrolle x {0em}% Feinabstimmung Kollisionskontrolle y {true}% lseins und rseins vertikal zentrieren {false}% lszwei und rszwei vertikal zentieren {false}% Randbox zeichnen \setuprlagentabellen% {4.5em}% Spaltenbreite {2}% Anzahl Spalten Tabelle eins {2}% Anzahl Spalten Tabelle zwei {4}% Anzahl Spalten Tabelle drei {0em}% horizontale Verschiebung Tabelle eins {0em}% horizontale Verschiebung Tabelle zwei {0em}% horizontale Verschiebung Tabelle drei \lverbindungeins{% \begin{tabular}{c}% $P6_3/m \, 2/c \, 2/m$\\[0.3em] \fbox{hex. TiI$_3$}\\ \end{tabular}% } \labstiegeins{% \begin{tabular}{c} k3\\ $\mathbf{a-b, a+2b, c}$ \end{tabular}% } \lverbindungzwei{% $P6_3/m \, 2/m \, 2/c$%\\ } \labstiegzwei{% t2% } \end{verbatim} \end{tiny} \end{minipage} \hfill \begin{minipage}{0.45\textwidth} \begin{tiny} \begin{verbatim} \lverbindungdrei{% \begin{tabular}{c} $P\overline{3} \, 2/m \, 1$\\[0.3em] \fbox{$\beta$-WCl$_6$}\\ \end{tabular}% } \rlagentranseins{% $x,y,z$ (überflüssig)% } \rlagentranszwei{% $x,y,z$ (sinnfrei)% } \rlagentabelleeins{% \begin{tabularx}{\spaltenbreiteem*\spalteneins}[t]{|z|z|} \hline Ti: $2b$ & $\Box$: $4d$ \\ $\overline{3}m$ & $3.2$ \\ \hline 0 & \zd \\ 0 & \ed \\ 0 & 0 \\ \hline \end{tabularx}% } \rlagentabellezwei{% \begin{tabularx}{\spaltenbreiteem*\spaltenzwei}[t]{|z|z|}% \hline $2a$ & $4f$ \\ $\overline{3}m$ & $3m$ \\ \hline 0 & \ed \\ 0 & \zd \\ 0 & 0.0 \\ \hline \end{tabularx}% } \rlagentabelledrei{% \begin{tabularx}{\spaltenbreiteem*\spaltendrei}[t]{|z|z|z|z|} \hline W1: $1a$ & $\Box$: $1b$ & W2: $2d$ & $\Box$: $2d$\\ $\overline{3}m$ & $\overline{3}m$ & $3m$ & $3m$ \\ \hline 0 & 0 & \ed & \ed \\ 0 & 0 & \zd & \zd \\ 0 & \eh & 0.473 & 0.0 \\ \hline \end{tabularx}% } \rechtspfeilsetup{ \rpfeileinszwei{1}{1} \rpfeileinszwei{1}{2} \rpfeilzweidrei{1}{1} \rpfeilzweidrei{1}{2} \rpfeilzweidrei{2}{3} \rpfeilzweidrei{2}{4} } \end{stammbaum} \end{verbatim} \end{tiny} \end{minipage} \caption{Quellcode zu Abb.~\ref{abb_mit_aufw}: Etwas aufwändigerer Stammbaum mit Lagenfortführung und (sinnfreier) Koordinatentransformation.} \label{abb_mit_aufw_src} \end{figure} \section{Lizenz} Dieses Paket unterliegt der LaTeX Project Public License, siehe \href{http://www.ctan.org/tex-archive/help/Catalogue/licenses.lppl.html}{http://www.ctan.org/tex-archive/help/Catalogue/licenses.lppl.html} für nähere Details. Copyright \textcopyright{} 2006, 2007 Stefan Lange \section{Dank} Die Idee für dieses Paket basiert auf einem \LaTeXe{}-Beispiel von Prof. Dr. U. Müller, in dem ebenfalls Stammbäume mit Hilfe der picture-Umgebung gesetzt werden. Ich danke Melanie Bawohl, Michael Bräu und Michael Leitl für das Testen und viele hilfreiche Kommentare und Hinweise. \section{Fehler} Ich habe versucht, alle offensichtlichen Fehler zu beseitigen. Nichtsdestotrotz sind möglicherweise noch Fehler enthalten. Insbesondere ist das Paket sehr anfällig gegenüber unsinnigen Eingaben, es gibt kein Fehlermanagement. Die Übersetzungszeit für einen Stammbaum ist aufgrund sehr vieler (ineffizient umgesetzter) Berechnungen relativ hoch. \section{Kontakt} Anregungen, Kommentare und Fehlerberichte sind erwünscht an die email-Adresse \href{mailto:hoirkman@gmx.de}{hoirkman@gmx.de}. \end{document}