Anzeige:
Ergebnis 1 bis 7 von 7

Thema: box/knoten oben ausrichten

  1. #1
    Registrierter Benutzer
    Registriert seit
    26.07.2008
    Ort
    Dresden
    Beiträge
    136

    box/knoten oben ausrichten

    Ich habe mit parcolumns dreispaltigen Text erzeugt, den ich mit Text und Knoten des tikz Pakets bestücke. Das Problem ist, dass die Knoten in den Spalten nicht wirklich oben angeordnet sind. Wie kann man das machen?

    Code:
    \documentclass{scrartcl}
    
    \usepackage{parcolumns,blindtext,tikz}
    
    \begin{document}
    
    \begin{parcolumns}[colwidths={1=0.3\textwidth},distance=2em,rulebetween=true,nofirstindent=true,sloppy]{3}
     \colchunk{\tikz \node[draw,rounded corners]{\begin{minipage}[t]{.9\linewidth}\textbf{hiho}Testversuch Testversuch\footnote{hoih}\end{minipage}};\\\tikz \node[draw,rounded corners]{\begin{minipage}[t]{.9\linewidth}\textbf{hiho}Testversuch Testversuch\footnote{hoih}\end{minipage}};}
     \colchunk{\tikz \node[draw,rounded corners]{\begin{minipage}[t]{.9\linewidth}\textbf{hiho}\blindtext\end{minipage}};}
     \colchunk{\tikz \node[draw,rounded corners]{\begin{minipage}[t]{.9\linewidth}\textbf{hiho}\blindtext\end{minipage}};}
      \colplacechunks
    \end{parcolumns}
    
    \end{document}

  2. #2
    Registrierter Benutzer
    Registriert seit
    21.08.2009
    Beiträge
    496
    Hallo,
    parcolumn richtet vermutlich die Zeilen an einander aus. Die tikz-Bilder werden jeweils auf der aktuellen Grundlinie eingefügt ...
    Vorschlag:
    Code:
    \documentclass{scrartcl}
    
    \usepackage{parcolumns,blindtext,tikz}
    \usetikzlibrary{positioning}
    
    \begin{document}
    
    \tikzset{every picture/.style={baseline=(current bounding box.north),node distance=\baselineskip}}
    \tikzset{every node/.style={draw,rounded corners}}
    
    \begin{parcolumns}[colwidths={1=0.3\textwidth},distance=2em,rulebetween=true,nofirstindent=true,sloppy]{3}
     \colchunk{%
     	\raisebox{\baselineskip}{\tikz\node(n1){\begin{minipage}{.9\linewidth}\textbf{hiho}Testversuch Testversuch\footnote{hoih}\end{minipage}}%
     		node[below=\baselineskip of n1.south]{\begin{minipage}{.9\linewidth}\textbf{hiho}Testversuch Testversuch\footnote{hoih}\end{minipage}};}}
     \colchunk{\raisebox{\baselineskip}{\tikz \node{\begin{minipage}{.9\linewidth}\textbf{hiho}\blindtext\end{minipage}};}}
     \colchunk{\raisebox{\baselineskip}{\tikz \node{\begin{minipage}[t]{.9\linewidth}\textbf{hiho}\blindtext\end{minipage}};}}
      \colplacechunks
    \end{parcolumns}
    
    \end{document}
    Gruß
    Elke

  3. #3
    Registrierter Benutzer
    Registriert seit
    26.07.2008
    Ort
    Dresden
    Beiträge
    136
    Vielen Dank, genau das habe ich gesucht.

    Mit der \raisebox hatte ich vorher auch schon experimentiert. Leider hatte ich statt \raisebox{\baselineskip}{} aber nur \raisebox{-0.5\height}{} versucht, was nicht den gewünschten Effekt zeigte.

  4. #4
    Registrierter Benutzer
    Registriert seit
    21.08.2009
    Beiträge
    496
    Hallo,
    das raisebox ist die kleinere Korrektur. Entscheidend ist das baseline=(current bounding box.north) für alle tikz Bilder. Es sorgt dafür, das diese nicht auf sondern unter der aktuellen Grundlinie eingefügt werden.
    Gruß
    Elke

  5. #5
    Registrierter Benutzer
    Registriert seit
    26.07.2008
    Ort
    Dresden
    Beiträge
    136
    Zitat Zitat von esdd Beitrag anzeigen
    Entscheidend ist das baseline=(current bounding box.north) für alle tikz Bilder.
    Leider funktioniert das nur dann, wenn ich Knoten ineinander schachtle.
    Aus anderen Gründen muss ich aber jeden Knoten separat erzeugen. Außerdem kann ich zwar Namen über einen Zähler number
    Code:
    \node (n\thenumber) {Knoten};
    vergeben, aber der verweis auf
    Code:
    \node (n\thenumber-1) {Knoten};
    funktioniert nicht, weil tikz -1 separat interpretiert.

    Dann liegt die baseline leider über dem letzten Knoten der Spalte, aber nicht über dem Ersten.
    Lässt sich das Problem lösen, wenn man trotzdem auf der Aneinanderreihung von Knoten per
    Code:
    \tikz\node{Knoten};Zwischentext\tikz\node{Knoten};
    beharren will?

  6. #6
    Registrierter Benutzer
    Registriert seit
    21.08.2009
    Beiträge
    496
    Hallo,
    das mit dem Zaehler könnte man zum Beispiel so lösen:
    Code:
    \tikz\node(\thezaehler){\begin{minipage}{.9\linewidth}\textbf{hiho}Testversuch Testversuch\footnote{hoih}\end{minipage}}%
     \pgfextra{\stepcounter{zaehler} \pgfmathtruncatemacro\n{\thezaehler-1}}%
     node(\thezaehler)[below=\baselineskip of \n.south]{\begin{minipage}{.9\linewidth}\textbf{hiho}Testversuch Testversuch\footnote{hoih}\end{minipage}};
    Aber vielleicht hilft Dir das folgende mehr:
    Code:
    \documentclass{scrartcl}
    
    \usepackage{parcolumns,blindtext,tikz}
    \usetikzlibrary{matrix}
    
    \pgfmathsetlengthmacro\abst{\baselineskip}
    \tikzset{every picture/.style={baseline=(current bounding box.north)}}
    \tikzset{every matrix/.style={%
      matrix of nodes,inner sep=0pt,row sep=\abst,%
      nodes={draw,rounded corners,inner sep=0.3333em}}}
    \tikzset{zwt/.style={draw=none,inner sep=0pt}}
    
    \begin{document}
    
    \begin{parcolumns}[colwidths={1=0.3\textwidth},distance=2em,rulebetween=true,nofirstindent=true,sloppy]{3}
      \colchunk{\raisebox{\baselineskip}{\tikz\matrix{%
        \begin{minipage}{.9\linewidth}\textbf{hiho}Testversuch Testversuch\footnote{hoih}\end{minipage}\\
        |[zwt]|\begin{minipage}{\linewidth}\blindtext\end{minipage}\\
        \begin{minipage}{.9\linewidth}\textbf{hiho}Testversuch Testversuch\footnote{hoih}\end{minipage}\\%
      };}}
      \colchunk{\raisebox{\baselineskip}{\tikz\matrix{%
        \begin{minipage}{.9\linewidth}\textbf{hiho}\blindtext\end{minipage}\\%
      };}}
      \colchunk{\raisebox{\baselineskip}{\tikz\matrix{%
        \begin{minipage}{.9\linewidth}\textbf{hiho}\blindtext\end{minipage}\\%
      };}}
    \end{parcolumns}
    
    \end{document}
    Gruß
    Elke
    Geändert von esdd (01-06-2010 um 15:48 Uhr) Grund: Zwischentext in 1.Spalte ergänzt

  7. #7
    Registrierter Benutzer
    Registriert seit
    26.07.2008
    Ort
    Dresden
    Beiträge
    136
    Klappt, Vielen Dank.
    Doch tikz scheint mir doch immer zwei Nummern zu groß, komplex und pefekt zu sein. Was man da alles machen kann. Wahnsinn.

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •