Eigenschaften von Express-Boxen in Tikz-Koordinaten

Eigenschaften von Express-Boxen in Tikz-Koordinaten

Nach meinem Verständnis weist jede LaTeX-Box die folgenden grundlegenden Eigenschaften auf:

Bildbeschreibung hier eingeben

.. Undirgendetwasist in eine LaTeX-Box verpackt.

Wenn ich also ein Bild erstelle , muss es irgendwie in eine Box eingebunden sein. Tatsächlich scheint es ein solches a und a tikzanzuzeigen, wenn ich es verwende. Zum Beispiel dieser Code:heightbaseline

\documentclass{report}

\usepackage[english]{babel}

\usepackage{tikz}
  \tikzset{x=1pt, y=1pt, z=1pt}

\begin{document}

\newcommand{\mypicture}{\begin{tikzpicture}
        \node (a) at (0, 0) {\strut$a$};
        \node (b) at (30, 0) {\strut$b$};
        \draw[->] (a) .. controls (15, -20) and (30, -30) .. (b);
\end{tikzpicture}}

In my rather long, multilined text, I wish I could insert \mypicture{} just
as if it were something natural..

\end{document} 

erzeugt:

Bildbeschreibung hier eingeben

.. jetzt wird mein Punkt, glaube ich, klarer. Die obige Einfügung erscheint überhaupt nicht natürlich, da die \mypictureGrundlinie der Box nicht mit (a)der Grundlinie des Knotens übereinstimmt. Und wenn dies der Fall wäre, wäre der vertikale Abstand zwischen den beiden Linien wahrscheinlich beeinträchtigt.

Wie kann man dies korrigieren, ohne eine schmutzige Handarbeit mit \raisebox,\vspace usw.?

Wie lassen sich alle tikzBildbox-Eigenschaften in tikzKoordinaten ausdrücken?

Antwort1

In diesem Fall müssen Sie TikZ mitteilen, wo Ihr Server baselinesein soll. Hier soll er beispielsweise auf Ihrem (a)Knoten sein.

Hier ist ein Code, um es bereitzustellen:

\documentclass{report}

\usepackage[english]{babel}

\usepackage{tikz}
  \tikzset{x=1pt, y=1pt, z=1pt}

\begin{document}

\newcommand{\mypicture}{\begin{tikzpicture}[baseline=(a.base)]
        \node (a) at (0, 0) {\strut$a$};
        \node (b) at (30, 0) {\strut$b$};
        \draw[->] (a) .. controls (15, 20) and (30, 30) .. (b);
\end{tikzpicture}}

In my text, insert \mypicture{} just as if it were something natural..


\end{document}

Und das Ergebnis:

Bildbeschreibung hier eingeben

Ich hoffe, es hilft.

Antwort2

Die allgemeine Lösung, die ich brauchte, war eine Kombination aus beidem baselineund dem wunderbaren Schlüssel use as bounding box: Bedenken Sie Folgendes :)

\documentclass[a4paper, 12pt]{report}

\usepackage{tikz}
    \tikzset{x=1pt, y=1pt, z=1pt}

\begin{document}

\def\myfig{\begin{tikzpicture}[baseline=(base)] % choose baseline
    % box dimensions
    \path[draw, use as bounding box] (0, 0) rectangle (10, 15);
    % set baseline
    \coordinate (base) at (0, 5);
    % actual content
    \path[fill=blue] (0, 0) % a random path
        ..  controls (10, 10)
                 and (10, -10) ..
                     (10, 20) -- cycle;
    % visualize baseline
    \draw (0, 5) -- (10, 5);
\end{tikzpicture}}

Now I can define \emph{every} frea\myfig ng property of my tikz box!

\end{document}

Bildbeschreibung hier eingeben

Puh!

verwandte Informationen