Ich muss eine in TikZ erstellte Abbildung an einer bestimmten Stelle einer Codeliste platzieren, an der nur Leerzeichen vorhanden sind. Ich habe das folgende Dokument:
Der erzeugte Code lautet wie folgt:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{arrows.meta}
\usepackage{float}
\usepackage{listings}
\usepackage{color}
\definecolor{mygray}{rgb}{0.4,0.4,0.4}
\definecolor{myblue}{rgb}{0,0,1}
\definecolor{myorange}{rgb}{1.0,0.4,0}
\lstset{
% some listing settings
}
\begin{document}
\section{Classic diamond problem}
\lstinputlisting[caption={Classic diamond problem}]{classic-diamond/src}
\input{classic-diamond/fig}
\lstinputlisting{classic-diamond/out}
\end{document}
wobei classic-diamond/src
und classic-diamond/out
Text enthalten, der bereits in der Ausgabe sichtbar ist, während classic-diamond/fig.tex
den folgenden Inhalt hat:
\begin{figure}[H]\label{figure:e4c}
\begin{tikzpicture}[x=1.5cm,y=1.5cm]
\tikzset{
e4c node/.style={circle,draw,minimum size=0.8cm,inner sep=0,font=\LARGE},
e4c edge/.style={sloped,above,font=\footnotesize,-{Latex[length=3mm, width=3mm]}}
}
\node[e4c node] (A) at (0.0, 1.0) {A};
\node[e4c node] (B) at (-0.5, 0.0) {B};
\node[e4c node] (C) at (0.5, 0.0) {C};
\node[e4c node] (D) at (0.0, -1.0) {D};
\path[->,draw,ultra thick]
(B) edge[e4c edge,densely dashed] (A)
(C) edge[e4c edge,densely dashed] (A)
(D) edge[e4c edge] (B)
(D) edge[e4c edge] (C)
;
\end{tikzpicture}
% \caption{Optional caption.}
\end{figure}
Mein Ziel ist es, die Abbildung in der oberen rechten Ecke der Auflistung zu platzieren, und ich weiß nicht, wie ich dies erreichen kann, obwohl es bereits viele Fragen zu ähnlichen Themen gibt, z. B. zum Platzieren von Bildern an angegebenen Koordinaten. Ich habe jedoch kein Bild, sondern ein Tikz-Bild.
Antwort1
Mithilfe des Kommentars von @projetmbc konnte ich die Tikz-Datei wie folgt ändern:
\begin{figure}[H]\label{figure:e4c}
\begin{tikzpicture}[overlay, x=1.5cm, y=1.5cm, right=10cm, above=10cm]
\tikzset{
e4c node/.style={circle,draw,minimum size=0.8cm,inner sep=0,font=\LARGE},
e4c edge/.style={sloped,above,font=\footnotesize,-{Latex[length=3mm, width=3mm]}}
}
\node[e4c node] (A) at (0.0, 1.0) {A};
\node[e4c node] (B) at (-0.5, 0.0) {B};
\node[e4c node] (C) at (0.5, 0.0) {C};
\node[e4c node] (D) at (0.0, -1.0) {D};
\path[->,draw,ultra thick]
(B) edge[e4c edge,densely dashed] (A)
(C) edge[e4c edge,densely dashed] (A)
(D) edge[e4c edge] (B)
(D) edge[e4c edge] (C)
;
\end{tikzpicture}
\end{figure}
\vspace{-1.3cm}
was dazu führt
Das ist mehr oder weniger das, wonach ich gesucht habe. Ein paar Nachteile dieses Ansatzes, die mir aufgefallen sind:
- Die Beschriftung bewegt sich nicht mit der Figur, und
- An der Stelle, an der die Abbildung erscheinen würde, bleibt etwas Leerraum, daher wird dieser
vspace{-1.3cm}
am Ende der Abbildungsdatei hinzugefügt.
Das Gute an diesem Ansatz ist, dass er ganz einfach umzusetzen ist.