Positionierung von TikZ-Bildern

Positionierung von TikZ-Bildern

Wie positioniere ich ein TikZ-Bild relativ zum Fließtext? Ich habe mit TikZ einen Kreis gezeichnet und möchte ihn neben dem Fließtext positionieren (damit er beim Lesen gut zu sehen ist, aber nicht im Weg ist). Ich bin mir nicht sicher, wie das geht. Ich habe versucht, die Koordinaten zu ändern, um das Bild zu verschieben, aber es scheint nur die Figuren relativ zueinander zu verschieben, anstatt das gesamte Bild zu verschieben. Ich wäre für etwas Hilfe dankbar. Danke!

\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}

Antwort1

Um die folgenden Beispiele zu verdeutlichen, definiere ich ein Makro, das ein einfaches Tikz-Bild erzeugt, beispielsweise einen Kreis mit etwas Text darin:

\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}
} 

Das Ergebnis:

Bildbeschreibung hier eingeben

Wenn Sie ein TikZ-Bild fertiggestellt haben, ist es für TeX nur ein Kästchen. Stellen Sie es sich als „großes Zeichen“ vor, das Teil eines Absatzes sein kann, wie das Folgende:

This paragraph contains a figure \mypicture{} inline.

Im Einklang

Wie Sie sehen, ist die „Box“, die das Bild enthält, an ihrer Grundlinie mit dem Rest Ihres Textes ausgerichtet. Jedes Zeichen hat eine imaginäre Linie, die verwendet wird, um es vertikal mit anderen Zeichen in derselben Zeile auszurichten. Die Box kann über und unter ihrer Grundlinie verlaufen, aber standardmäßig platziert Tikz die Grundlinie des Bildes ganz unten in der resultierenden Box.

Sie können dies ändern, indem Sie baselineIhrem Tikzpicture die Option geben. Diese Option kann als Argument eine Dimension wie 1mmoder den Namen einer beliebigen Koordinate innerhalb der Abbildung erhalten, wie a.centeroder a.northsogar a.base, was die Grundlinie des Textes innerhalb des Knotens ist a. Sehen wir uns diese Fälle an:

\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}
}

Vertikale Ausrichtung

Natürlich können Sie es nicht nur „inline“ verwenden, sondern auch überall dort einfügen, wo Sie auch jeden anderen Text einfügen könnten, z. B. in einer Fußnote, einer Randnotiz, einer Tabelle oder einer Abbildungsumgebung (wodurch es schweben würde). Sehen Sie sich das beispielsweise in einer Randnotiz an:

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

\lipsum[2]

Im Randbereich

Sie können es auch in Kombination mit Paketen verwenden, die es beispielsweise wrapfigermöglichen, Text um Abbildungen oder Tabellen herumzufließen.

remember picture Wenn Sie die Tikz-Optionen und verwenden overlay, können Sie es an jeder absoluten Position auf der Seite platzieren, wie die andere Antwort zeigt.

Antwort2

remember picture,overlaySie können die Optionen und den Knoten verwenden current page; im folgenden Beispiel habe ich auch dietikznodepagesPaket, um mithilfe des Knotens eine noch feinere Kontrolle zu erhalten current page text area:

\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}

Bildbeschreibung hier eingeben

verwandte Informationen