Posicionamiento de imágenes TikZ

Posicionamiento de imágenes TikZ

¿Cómo coloco una imagen de TikZ en relación con el cuerpo del texto? Dibujé un círculo usando TikZ y me gustaría colocarlo al lado del cuerpo del texto (para que sea fácil de ver mientras lees, pero no estorbe). No estoy seguro de cómo hacer esto. Intenté cambiar las coordenadas para mover la imagen, pero parece que solo mueve figuras entre sí en lugar de mover todo. Agradecería algo de ayuda con esto. ¡Gracias!

\documentclass{minimal}
\usepackage{tikz}
\begin{document}
Body text.
\begin{tikzpicture}
    \draw [fill = lightgray] (0,0) circle [radius = 1.25 cm];
\end{tikzpicture}
\caption{Circular Region}
\end{document}

Respuesta1

Para aclarar los siguientes ejemplos, definiré una macro que produce una imagen tikz simple, como un círculo con algo de texto dentro:

\newcommand{\mypicture}[1][]{% 1 optional parameter for options for the tikz picture
\begin{tikzpicture}[#1]
\node[draw, circle, fill=yellow!30, inner sep=2mm] (a) {A};
\end{tikzpicture}
} 

Que produce:

ingrese la descripción de la imagen aquí

Una vez que terminas una imagen de TikZ, para TeX es solo un cuadro. Piense en ello como un "gran personaje" que puede ser parte de un párrafo, como el siguiente:

This paragraph contains a figure \mypicture{} inline.

En línea

Como puede ver, el "cuadro" que contiene la imagen está alineado con el resto del texto en su línea base. Cada personaje tiene una línea imaginaria que se utiliza para alinearlo verticalmente con otros personajes en la misma línea. El cuadro puede extenderse por encima y por debajo de su línea base, pero de forma predeterminada, tikz coloca la línea base de la imagen en la parte inferior del cuadro resultante.

Puedes cambiar esto, dándole la opción baselinea tu tikzpicture. Esta opción puede recibir como argumento una dimensión como 1mm, o el nombre de cualquier coordenada dentro de la figura, como a.center, a.northo incluso a.base, que es la línea base del texto dentro del nodo a. Veamos estos casos:

\parbox{6cm}{
\begin{itemize}
\item Default: \hrulefill\mypicture 
\item 2mm: \hrulefill\mypicture[baseline=-2mm] 
\item Center: \hrulefill\mypicture[baseline=(a.center)]
\item North: \hrulefill\mypicture[baseline=(a.north)] 
\item Base: \hrulefill\mypicture[baseline=(a.base)]
\end{itemize}
}

alineación vertical

Por supuesto, además de usarlo "en línea", puedes colocarlo en cualquier lugar donde puedas colocar cualquier otro texto, como en una nota al pie, una nota marginal, una tabla o un entorno de figura (lo que lo haría flotar). Véalo por ejemplo en una nota marginal:

\marginpar{\mypicture[baseline=(a.base)]}
\lipsum[1]

\lipsum[2]

En margenpar

También puede usarlo en combinaciones con paquetes como wrapfigel que permite que las figuras o tablas tengan texto alrededor.

Si usa las opciones de tikz remember picture y overlay, puede colocarlo en cualquier posición absoluta de la página, como muestra la otra respuesta.

Respuesta2

Puedes usar las remember picture,overlayopciones y el current pagenodo; en el siguiente ejemplo también utilicé eltikznodepagespaquete para obtener un control aún más preciso utilizando el current page text areanodo:

\documentclass{article}
\usepackage[a6paper]{geometry}
\usepackage{tikz} 
\usepackage{tikzpagenodes} 
\usepackage{lipsum} 

\begin{document} 
\begin{tikzpicture}[remember picture,overlay]
\draw[fill = lightgray] ([xshift=0.7cm]current page text area.east) circle [radius = 0.5 cm]; 
\draw[fill = red!40] ([xshift=-0.7cm]current page text area.west) circle [radius = 0.5 cm]; 
\draw[fill = green!40] ([yshift=0.7cm]current page text area.north) circle [radius = 0.5 cm]; 
\draw[fill = blue!40] ([yshift=-0.7cm]current page text area.south) circle [radius = 0.5 cm]; 
\draw[fill = magenta!40] ([xshift=0.7cm,yshift=0.7cm]current page.south west) circle [radius = 0.5 cm]; 
\draw[fill = olive!40] ([xshift=-0.7cm,yshift=-0.7cm]current page.north east) circle [radius = 0.5 cm]; 
\end{tikzpicture} 

\lipsum[4]\lipsum[4]\lipsum[4]

\end{document}

ingrese la descripción de la imagen aquí

información relacionada