![Eigenschaften von Express-Boxen in Tikz-Koordinaten](https://rvso.com/image/328832/Eigenschaften%20von%20Express-Boxen%20in%20Tikz-Koordinaten.png)
Nach meinem Verständnis weist jede LaTeX-Box die folgenden grundlegenden Eigenschaften auf:
.. 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 tikz
anzuzeigen, wenn ich es verwende. Zum Beispiel dieser Code:height
baseline
\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:
.. jetzt wird mein Punkt, glaube ich, klarer. Die obige Einfügung erscheint überhaupt nicht natürlich, da die \mypicture
Grundlinie 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 tikz
Bildbox-Eigenschaften in tikz
Koordinaten ausdrücken?
Antwort1
In diesem Fall müssen Sie TikZ mitteilen, wo Ihr Server baseline
sein 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:
Ich hoffe, es hilft.
Antwort2
Die allgemeine Lösung, die ich brauchte, war eine Kombination aus beidem baseline
und 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}
Puh!