[tikz] mideway,sloped ohne Text zu rotieren

Tabellen und Grafiken erstellen und anordnen


MoonKid
Forum-Meister
Forum-Meister
Beiträge: 690
Registriert: Sa 30. Jun 2012, 11:56

[tikz] mideway,sloped ohne Text zu rotieren

Beitrag von MoonKid »

Ich zeichne hier einen Pfeil auf desen Mitte ein Kreis mit einem Text darin sitzt. Die Position des Kreises, so wie hier im Code ist genau das was ich mir wünsche. Problem ist allerdings, dass der Kreis auch passend zur Neigung es Pfeils entsprechend rotiert wird. Das betrifft auch den darin enthaltenen Text.
Ich möchte den Text (von mir aus auch den Kreis selbst) nicht rotiert haben.

Ist das machbar?

Hier scheitere ichwieder ein bisl an der tikz-Doku (die eigentlich super-gut ist!). Ich weiß nicht, wo ich nachschauen sollte, was in einer solchen Situation noch für Optionen/Keywords möglich wären.
\documentclass{scrartcl}

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

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

\usepackage{tikz}
\usetikzlibrary{shadows}
\usetikzlibrary{lindenmayersystems}
\tikzset{
    table/.style={
        remember picture,
        baseline,
        every node/.style={
            anchor=base,
            inner sep=0pt} },
    operator/.style={
        sloped,
        midway,
        above=0.3mm,
        draw,
        circle,
        fill=blue,
        inner sep=0.1mm}
}

\begin{document}
    % Tabelle mit zwei TikZ-Knoten
    \begin{tabular} {c | c}
        \tikz[table] \node (nA) {a};&
        xxx\\
        \tikz[table] \node (nB) {b};&
        yyy
    \end{tabular}

    \begin{tikzpicture}[remember picture,overlay]
        % Knoten mit Pfeil verbinden
            \draw[->] (nA.center)
            -- node [operator] {\tiny w}
            (nB.center); 
    \end{tikzpicture}

\end{document}
XeLaTeX, TeX Live, vim-latexsuite

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

Beitrag von esdd »

So lange die Node kreisförmig ist, kannst du mit \phantom den Platz für den Text reservieren und ihn anschließend einfügen.
\draw[->](nA.center)--node[operator](nH){\phantom{\tiny w}}(nB.center)(nH)node{\tiny w}; 
Gruß
Elke

MoonKid
Forum-Meister
Forum-Meister
Beiträge: 690
Registriert: Sa 30. Jun 2012, 11:56

Beitrag von MoonKid »

Das klingt logisch und einfach.

Aber irgendwas stimmt bei mir noch nicht. Die Positionierung des Text haut nicht hin. Auch nach drei Läufen landet das w links unten außerhalb der Tabelle.
\documentclass{scrartcl}

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

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

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

\begin{document}
    % Tabelle mit zwei TikZ-Knoten
    \begin{tabular} {c | c}
        \tikz[table] \node (nA) {a};&
        xxx\\
        \tikz[table] \node (nB) {b};&
        yyy
    \end{tabular}

    \begin{tikzpicture}[remember picture,overlay]
        % Knoten mit Pfeil verbinden
            \draw[->] (nA.center)
            -- node [midway,above,sloped] (nH) {\phantom{\tiny w}}
            (nB.center); 
            (nH) \node {\tiny w};
    \end{tikzpicture}

\end{document}
XeLaTeX, TeX Live, vim-latexsuite

MoonKid
Forum-Meister
Forum-Meister
Beiträge: 690
Registriert: Sa 30. Jun 2012, 11:56

Beitrag von MoonKid »

Ah, dit wars
\node at (nH) {\tiny w};
XeLaTeX, TeX Live, vim-latexsuite

Antworten