Positionieren Sie Tikzpicture anhand von Koordinaten

Positionieren Sie Tikzpicture anhand von Koordinaten

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:

Bildbeschreibung hier eingeben

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/srcund classic-diamond/outText enthalten, der bereits in der Ausgabe sichtbar ist, während classic-diamond/fig.texden 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

Bildbeschreibung hier eingeben

Das ist mehr oder weniger das, wonach ich gesucht habe. Ein paar Nachteile dieses Ansatzes, die mir aufgefallen sind:

  1. Die Beschriftung bewegt sich nicht mit der Figur, und
  2. 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.

verwandte Informationen