Inhalt von Baumstrukturen anordnen

Tabellen und Grafiken erstellen und anordnen


rix
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 68
Registriert: Fr 21. Feb 2014, 16:49

Inhalt von Baumstrukturen anordnen

Beitrag von rix »

Frage: Wie kann man bestimmte Abschnitte in einer solchen Baumstruktur linksbündig ausrichten. Ich hatte schon versucht, mit der Umgebungen begin(...), aber da wird mir nur ein Fehler angezeigt.

Im folgenden Bsp. würde ich gerne die beiden Zeilen unter "Filtrat V" linksbündig ausrichten, damit die Zahlen untereinander stehen, wobei hierfür sicher eine benummerte Aufzählung sogar besser geeignet wäre, aber auch hier wird dann bei Verwendung entsprechender Befehle an dieser Stelle ein Fehler ausgegeben.

\documentclass[a4paper,10pt, landscape]{scrartcl}

\usepackage[ngerman]{babel}
\usepackage[babel, german=quotes]{csquotes} % german=guillemets
\usepackage[T1]{fontenc}

\usepackage{geometry}

\geometry{includehead, includefoot, inner=1.8cm, outer=2cm, top=1cm, bottom=1cm}

\usepackage{qtree}

\usepackage{chemformula}

\newcommand{\f}[2] % Schriftgröße
{\fontsize{#1}{0pt} \selectfont #2}


\begin{document}


\begin{figure}

\addsec{Halogenidtrennung}
  
  \renewcommand{\arraystretch}{1.15}
  \Tree  
  [ 
    .{\f{14}{Filtrat IV} \\ \f{10pt}{+ konz. \ch{Cu(NO3)2} - Lsg. (Abwesenheit von \ch{SO3^2-} muss gewährleistet sein!)}} 
    [ .{Niederschlag: \ch{Cu(SCN)2}} ] !\qsetw{0.1cm}
    [ 
      .{Filtrat V \\
      \f{10pt}{1. falls \ch{S2O3^2-} vorhanden: erst schwach Basisch (\ch{NH4OH}) + konz. \ch{AgNO3} - Lsg. | Δ (kurz aufkochen)} \\ 
      \f{10pt}{2. dann / ansonsten schwach Sauer (\ch{HNO3}) + konz. \ch{AgNO3} - Lsg. | Δ (5 min kochen)}} 
      [
        .{Niederschlag: \ch{AgNO3} - Gr. (Ag - Salze) \\ \f{8pt}{ \ch{Cl-}, \ch{Br-}, \ch{J-}, \ch{S2O3^2-} und - falls nicht zuvor abgetrennt - \ch{SCN^-} sowie \ch{S^2-} (ggf. aus \ch{S2O3^2-} oder \ch{SCN^-}) \\ \f{10}{leicht basisch (\ch{NH4CO3})}}}
        [ .{Lösung \\ \f{10pt}{\ch{[Ag(NH3)2]^+ + Cl^-}}} ]
        [ 
          .{Rückstand \\ \f{10pt}{+ konz. \ch{NH3} - Lsg.}}
          [ .{Lösung \\ \f{10pt}{\ch{[Ag(NH3)2]^+ + Br^-}}} ]
          [ 
            .{Rückstand \\ \f{10pt}{+ Zn und \ch{H2SO4}}}
            [ .\f{10pt}{\ch{J^-}} ]
            [ .\f{10pt}{\ch{H2S ^} aus \ch{S2O3^2-}} ]
            [ .\f{10pt}{(\ch{SCN^-})} ]
          ]
        ] 
      ]
      [ .{Filtrat VI: Lösliche Gr. \\ \f{8pt}{bei unsauberem Arbeiten auch \ch{AgF}}} ]
    ]
  ]
\end{figure} 


\end{document}

Zuletzt geändert von rix am Di 17. Feb 2015, 18:03, insgesamt 7-mal geändert.

Beobachter

Angestrebte Ausgabe nicht nachvollziehbar

Beitrag von Beobachter »

Ich kann mit diesem Code-Fragment nicht wirklich nachvollziehen, wie genau der Baum aussehen soll. Erkennbar ist für mich lediglich die Verwendung einer Klasse aus dem Bündel »KOMA-Script«. Daher bleibt mir nur der Hinweis auf Pakete wie »PGF/tikZ« (mit seiner Bibliothek »trees«) und »pst-tree«.

Benutzeravatar
Stefan Kottwitz
Admin
Admin
Beiträge: 2759
Registriert: Di 8. Jul 2008, 00:39
Kontaktdaten:

Beitrag von Stefan Kottwitz »

Sieht irgendwie nach qtree oder tikzqtree aus, doch ohne weitere Angaben kann man nur raten. [mm][/mm]

Stefan

rix
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 68
Registriert: Fr 21. Feb 2014, 16:49

Beitrag von rix »

oh stimmt, gibt ja mehrere baum-pakete.

ich hoffe, jetzt ist es nachvollziehbar

es ist nur so, dass ich diesen ganzen Paket-Wahnsinn in eine einzelne zentrale Datei ausgelagert habe, um nicht jedes mal alles kopieren zu müssen.

esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Beitrag von esdd »

Mit den vielen verschiedenen Schriftgrößen sieht das irgendwie sehr durcheinander aus. Vermutlich wolltest Du \f auch nicht als Schalter definieren? Wie Du in der ersten Zeile des folgenden Beispiels siehst, ist es aber einer:
\documentclass[margin=5pt,varwidth]{standalone}
\usepackage{lmodern}
\newcommand{\f}[2] % Schriftgröße 
{\fontsize{#1}{0pt} \selectfont #2}
\newcommand{\newf}[2] % Schriftgröße 
{{\fontsize{#1}{0pt} \selectfont #2}}
\begin{document}
Test \f{4pt}{Test} und nach dem Befehl noch immer klein \normalsize Test\\[\baselineskip]
Test \newf{4pt}{Test} und nach dem Befehl nicht mehr klein
\end{document}
Ändere ich das in Deinem Code, dann fällt noch ein Klammerfehler auf. Aber es wäre ohnehin besser die Schriftfgröße über \Large und co zu ändern.

In dem Beispiel oben steht | Δ, was auch Fehlermeldungen verursacht. Ich habe das jetzt weggelassen, Du musst gegebenenfalls das richtige Zeichen (Delta?) dort wieder einfügen.

Um die beiden Zeilen linksbündig untereinander zu setzen, kannst Du zum Beispiel eine Tabelle mit einer l-Spalte verwenden:

\documentclass[10pt, landscape]{scrartcl}
\usepackage{selinput}
\SelectInputMappings{adieresis={ä},germandbls={ß}}
\usepackage[ngerman]{babel} 
\usepackage[babel, german=quotes]{csquotes} % german=guillemets 
\usepackage[T1]{fontenc} 
\usepackage{geometry} 
\geometry{includehead, includefoot, inner=1.8cm, outer=2cm, top=1cm, bottom=1cm} 
\setlength{\parindent}{0cm}    % Einrücktiefe der ersten Zeile 

\usepackage{qtree,showframe} 
\usepackage{chemformula} 

\newcommand{\f}[2] % Schriftgröße 
{{\fontsize{#1}{0pt} \selectfont #2}} 

\begin{document} 
\begin{figure} 
\addsec{Halogenidtrennung} 
   \renewcommand{\arraystretch}{1.15}
   \Tree   
   [ 
     .{\f{14}{Filtrat IV} \\ \f{10pt}{+ konz. \ch{Cu(NO3)2} - Lsg. (Abwesenheit von \ch{SO3^2-}
        muss gewährleistet sein!)}} 
     [ .{Niederschlag: \ch{Cu(SCN)2}} ] !\qsetw{0.1cm} 
     [ 
       .{Filtrat V \\ 
         \begin{tabular}{@{}l@{}}
            \f{10pt}{1. falls \ch{S2O3^2-} vorhanden: erst schwach Basisch (\ch{NH4OH}) + konz. \ch{AgNO3} 
              - Lsg. (kurz aufkochen)} \\ 
            \f{10pt}{2. dann / ansonsten schwach Sauer (\ch{HNO3}) + konz. \ch{AgNO3} 
              - Lsg. (5 min kochen)}
         \end{tabular}} 
       [ 
         .{Niederschlag: \ch{AgNO3} - Gr. (Ag - Salze) \\ \f{8pt}{ \ch{Cl-}, \ch{Br-}, \ch{J-}, \ch{S2O3^2-}
            und - falls nicht zuvor abgetrennt - \ch{SCN^-} sowie \ch{S^2-} (ggf. aus \ch{S2O3^2-} 
            oder \ch{SCN^-})} \\ 
            \f{10}{leicht basisch (\ch{NH4CO3})}} 
         [ .{Lösung \\ \f{10pt}{\ch{[Ag(NH3)2]^+ + Cl^-}}} ] 
         [ 
           .{Rückstand \\ \f{10pt}{+ konz. \ch{NH3} - Lsg.}} 
           [ .{Lösung \\ \f{10pt}{\ch{[Ag(NH3)2]^+ + Br^-}}} ] 
           [ 
             .{Rückstand \\ \f{10pt}{+ Zn und \ch{H2SO4}}} 
             [ .\f{10pt}{\ch{J^-}} ] 
             [ .\f{10pt}{\ch{H2S ^} aus \ch{S2O3^2-}} ] 
             [ .\f{10pt}{(\ch{SCN^-})} ] 
           ] 
         ] 
       ] 
       [ .{Filtrat VI: Lösliche Gr. \\ \f{8pt}{bei unsauberem Arbeiten auch \ch{AgF}}} ] 
     ] 
   ] 
\end{figure} 
\end{document}  
Gruß
Elke

rix
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 68
Registriert: Fr 21. Feb 2014, 16:49

Beitrag von rix »

hallo elke, dankeschön!

Kann man das nur mit einer Tabelle anordnen , oder ginge auch z. B. eine Aufzählung?

---

Und noch eine andere Frage: Gibt es eine Möglichkeit zu eckigen Pfaden, wie beispielswiese hier: http://www.wolkenkraft.com/wp-content/u ... d-Sets.jpg

esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Beitrag von esdd »

Wenn Du die Aufzählung in eine \parbox oder ähnliches packst, geht es. Vermutlich musst Du dann noch [d]enumitem[/d] laden, um die Abstände innerhalb der Aufzählung anpassen zu können.

Ob eckige Pfade mit qtree möglich sind, kann ich Dir nicht sagen. Möglich wäre das entsprechend den Beispielen in der Doku mit [d]tikz-qtree[/d] oder auch nur mit [d]tikz[/d].

Gruß
Elke

rix
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 68
Registriert: Fr 21. Feb 2014, 16:49

Beitrag von rix »

also die Tabelle ist hier sicher die einfachste und überschaubarste Konstruktion

Eine Frage hätte ich noch: da ich die Zeilenabstände veringert habe,
sind nun die Striche / Linien der Pfade ziemlich an den Buchstaben angeklatscht,
gibt es da eine Einstellungsmöglichkeit, diese zu verkürzen?

Mit tikz lässt sich das natürlich alles machen, aber ich habe hier die vorgefertigte Latex-variante vorgezogen, weil sie mir überschaubarer und für den Zweck ausreichend erscheint.

esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Beitrag von esdd »

So gut wie jedes Paket hat eine Dokumentation: [d]qtree[/d]. Der kannst Du entnehmen, dass es nicht viele Einstellmöglichkeiten gibt. Eventuell kann man noch unsichtbare Stützen in die Elemente einbauen.
%schafft zusätzlichen Abstand, wenn die Höhe der \rule größer
%als \ht\strutbox ist
\newcommand*\qleafhook{\rule{0pt}{2\ht\strutbox}}
\newcommand*\qlabelhook{\rule{0pt}{2\ht\strutbox}}

\newcommand*\myspace{\rule[-\ht\strutbox]{0pt}{\ht\strutbox}}
Die ersten beiden Befehle nutzen vorgesehene Haken und schaffen damit automatisch überall etwas Abstand davor. Den zweiten muss man am Ende der betreffenden Elemente von Hand einfügen, um etwas zusätzlichen Abstand danach zu erhalten.

Gruß
Elke

Antworten