Propiedades de cajas expresas en coordenadas tikz.

Propiedades de cajas expresas en coordenadas tikz.

Según tengo entendido, cualquier caja de LaTeX muestra estas propiedades fundamentales:

ingrese la descripción de la imagen aquí

.. ycualquier cosaestá envuelto en una caja de LaTeX.

Entonces, cuando produzco una tikzimagen, de alguna manera debo envolverla en una caja. De hecho, parece mostrar tal heighty a baselinecuando 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:

ingrese la descripción de la imagen aquí

.. ahora creo que mi punto está quedando claro. La inserción anterior no parece nada natural ya que \mypicturela 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 tikzlas propiedades del cuadro de imágenes en tikzcoordenadas?

Respuesta1

En este caso, tendrás que decirle a TikZ dónde quieres baselineque 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:

ingrese la descripción de la imagen aquí

Espero que pueda ayudar.

Respuesta2

La solución general que necesitaba era una combinación de ambas baseliney 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}

ingrese la descripción de la imagen aquí

¡Uf!

información relacionada