über Zellengrenzen hinaus zeichnen

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: über Zellengrenzen hinaus zeichnen

von MoonKid » Sa 1. Jun 2013, 18:03

Ah, so hauts hin. So langsam wirds auch heller... ;)

Laut doc (TexLive2012 Ubuntu, vim :help \texttt) kann man das auch als environmen verwenden.

von esdd » Sa 1. Jun 2013, 17:54

Du hast den tikzstyle unvollständig übernommen. Nimm
\tikzset{table/.style={remember picture,baseline,every node/.style={anchor=base,inner sep=0pt}}}
inner sep=0pt habe ich jetzt zusätzlich ergänzt, damit die Noden wirklich nur den Platz benutzen, der für den Inhalt gebraucht wird. Du kannst dir die Noden selbst anzeigen lassen, wenn du draw beim every node/.style ergänzt.

\ttfamily ist übrigens ein Schalter und keine Umgebung.
Gruß
Elke

von MoonKid » Sa 1. Jun 2013, 17:29

Oh, ich merke, es wird doch schon ganz schnell relevant. ;)

Neuer Code:
\documentclass{scrartcl}

\usepackage{xltxtra}
\defaultfontfeatures{Mapping=tex-text}

\usepackage{polyglossia}
\setdefaultlanguage[spelling=new]{german}

\usepackage{tikz}
\tikzset{
    table/.style={remember picture,baseline,every node}
}

\begin{document}
\begin{ttfamily}
\begin{tabular} {c | c}
    D&
    \tikz[table] \node (nA) {A};
\end{tabular}
\end{ttfamily}
\end{document}
Auf einer horizontalen Linie sitz A tiefer als D.
Nehme ich "baseline" weg, ist A höher als D.
Sowas wie center, centerline, middle, middleline scheint es nicht zu geben.

Mit dem anchor hab ich auch n bisl rumprobiert, ohne zu wissen, was ich da eigentlich mache.

Ok, als workaround könnte ich aus D auch einfach ein node machen, aber das brauch ich eigentlich nicht. Gibts nen eleganteren Weg?

von MoonKid » Sa 1. Jun 2013, 17:00

Mhm... Ich sehe einen Unterschied. Aber so ganz schnall ich es nicht. :D

Is für mein Problem auch erstmal nciht wichtig. Trotzdem danke.

von esdd » Sa 1. Jun 2013, 16:19

Den Unterschied siehst du nicht, so lange du keinen Text außerhalb der Noden und nur Großbuchstaben ohne Unterlängen verwendest. Nimm das folgende Beispiel und kommentiere da die beiden Zeilen abwechselnd oder gleichzeitig aus.
\documentclass{scrartcl} 

\usepackage{xltxtra} 
\defaultfontfeatures{Mapping=tex-text} 

\usepackage{polyglossia} 
\setdefaultlanguage[spelling=new]{german} 

\usepackage{tikz} 
\tikzset{table/.style={remember picture,%
  baseline,%
  every node/.style={anchor=base}%
  }}

\begin{document} 
\begin{tabular} {c | c} 
     \tikz[table] \node (nA) {A};& 
     \tikz[table] \node (nB) {B};\\ 
     \tikz[table] \node (nC)[anchor=base] {C}; Text ohne tikz g& 
     \tikz[table] \node (nD) {Dg};Text ohne tikz g
\end{tabular} 

\begin{tikzpicture}[remember picture,overlay] 
     \draw[->] (nA.center) -- (nD.center); 
\end{tikzpicture} 
\end{document}
Da wir für das Einfügen der Node keine Koordinaten vorgegeben haben, wird deren center im Ursprung des tikzbildes - also dem Punkt (0,0) - eingefügt. Mit anchor=base sorgen wir dafür, dass base anstatt center auf dem Ursprung positioniert wird.

Das tikzbild selbst wird allerdings mit seiner Unterkante auf der Grundlinie des umgebenden Textes eingefügt. Mit baseline als Synonym für baseline=0pt oder baseline=(current bounding box.base) wird das Bild nun so verschoben, dass die Linie y=0 des Bildes, die auch den Ursprung enthält, auf der Grundlinie des Textes neben dem tikzbild liegt.

Gruß
Elke

von MoonKid » Sa 1. Jun 2013, 15:32

Danke für die schöne Lösung. Da hast du mir ja gleich, ein paar Hausaufgaben mit aufgegeben. :D

Das ich die nodes mit .center oder den Himmelsrichtungen ansprechen kann, hab ich kapiert.

Auch das ein Style "table" definiert und später verwendet wird.

das "anchor=base" verstehe ich aber nicht (im style und im node). In der doc finde ich diesen String überall im Code, aber nirgendwo im Text erklärt.
Ich sehe auch keinen Unterschied (3fach Lauf!) ob ich das nun im Code hab oder nicht. Was steckt dahinter?

Und wozu brauch ich einen Anker, wenn ein Node mit center, north, ... schon Ansatzpunkte (Anker?) hat?

von esdd » Sa 1. Jun 2013, 14:42

Hallo,
setz doch den Text in die Noden und lass die Pfeile dann bis zu deren center gehen:
\documentclass{scrartcl} 

\usepackage{xltxtra} 
\defaultfontfeatures{Mapping=tex-text} 

\usepackage{polyglossia} 
\setdefaultlanguage[spelling=new]{german} 

\usepackage{tikz} 
\tikzset{table/.style={remember picture,baseline,every node/.style={anchor=base}}}

\begin{document} 
\begin{tabular} {c | c} 
     \tikz[table] \node (nA) {A};& 
     \tikz[table] \node (nB) {B};\\ 
     \tikz[table] \node (nC)[anchor=base] {C};& 
     \tikz[table] \node (nD) {Dg};
\end{tabular} 

\begin{tikzpicture}[remember picture,overlay] 
     \draw[->] (nA.center) -- (nD.center); 
\end{tikzpicture} 
\end{document}
Gruß
Elke[/code]

von MoonKid » Sa 1. Jun 2013, 12:22

Ok, aktuell sieht der Mini-Code so aus.
\documentclass{scrartcl}

\usepackage{xltxtra}
\defaultfontfeatures{Mapping=tex-text}

\usepackage{polyglossia}
\setdefaultlanguage[spelling=new]{german}

\usepackage{tikz}

\begin{document}
\begin{tabular} {c | c}
    \tikz[remember picture] \node (nA) {}; A &
    B \tikz[remember picture] \node (nB) {}; \\
    \tikz[remember picture] \node (nC) {}; C &
    \tikz[remember picture] \node (nD) {}; D
\end{tabular}

\begin{tikzpicture}[remember picture,overlay]
    \draw[->] (nA) -- (nD);
\end{tikzpicture}
\end{document}
Problem ist, dass beide Enden des Pfeils neben den Buchstaben gezeichnet werden.

Ich möchte aber das der Ansatzpunkt für beide Enden direkt in der Mitte der Zelle und somit direkt auf (also in der Mitte) dem Buchstaben ist.

von MoonKid » Di 7. Mai 2013, 10:10

Ach wie geil! :P

Sieht noch nicht hübsch aus, aber macht sinngemäß das, was ich mir vorgestellt hatte.
\documentclass{scrartcl}

\usepackage{xltxtra}
\defaultfontfeatures{Mapping=tex-text}

\usepackage{polyglossia}
\setdefaultlanguage[spelling=new]{german}

\usepackage{tikz}

\begin{document}
\begin{tabular} {c | c}
    \tikz[remember picture] \node (n1) {}; A
    &
    B \tikz[remember picture] \node (n2) {};
\end{tabular}

\begin{tikzpicture}[remember picture,overlay]
    \draw[->,very thick] (n1) -- (n2);
\end{tikzpicture}
\end{document}

von esdd » Di 7. Mai 2013, 09:59

Hallo,

eventuell hilft auch dieser Thread bei mrunix weiter.

Gruß
Elke

Nach oben