![Propiedades de cajas expresas en coordenadas tikz.](https://rvso.com/image/328832/Propiedades%20de%20cajas%20expresas%20en%20coordenadas%20tikz..png)
Según tengo entendido, cualquier caja de LaTeX muestra estas propiedades fundamentales:
.. ycualquier cosaestá envuelto en una caja de LaTeX.
Entonces, cuando produzco una tikz
imagen, de alguna manera debo envolverla en una caja. De hecho, parece mostrar tal height
y a baseline
cuando lo uso. Por ejemplo, este código:
\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}
produce:
.. ahora creo que mi punto está quedando claro. La inserción anterior no parece nada natural ya que \mypicture
la línea base del cuadro no coincide con (a)
la línea base del nodo. Y si así fuera, el espacio vertical entre las dos líneas probablemente se vería afectado.
Cómo corregir esto sin un ajuste sucio con \raisebox
,\vspace
etc.?
¿Cómo expresar todas tikz
las propiedades del cuadro de imágenes en tikz
coordenadas?
Respuesta1
En este caso, tendrás que decirle a TikZ dónde quieres baseline
que esté. Aquí quieres que esté, por ejemplo, en tu (a)
nodo.
Aquí hay un código para proporcionarlo:
\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}
Y su resultado:
Espero que pueda ayudar.
Respuesta2
La solución general que necesitaba era una combinación de ambas baseline
y la maravillosa clave use as bounding box
: considera esto :)
\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}
¡Uf!