Posicione o tikzpicture com base nas coordenadas

Posicione o tikzpicture com base nas coordenadas

Preciso colocar uma figura feita em TikZ em um local específico de uma listagem de código, onde existam apenas caracteres de espaço em branco. Tenho o seguinte documento:

insira a descrição da imagem aqui

O código que produz é o seguinte:

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

onde classic-diamond/srce classic-diamond/outcontém texto já visível na saída, enquanto classic-diamond/fig.texpossui o seguinte conteúdo:

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

Meu objetivo é colocar a figura no canto superior direito da listagem e não sei como fazer isso, apesar de muitas dúvidas existentes em torno de temas semelhantes, como colocar imagens em coordenadas especificadas, mas não tenho uma imagem, tenho uma foto tikz.

Responder1

Usando o comentário do @projetmbc consegui alterar o arquivo tikz para o seguinte:

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

o que resulta em

insira a descrição da imagem aqui

Isso é mais ou menos o que eu estava procurando. Algumas desvantagens dessa abordagem que notei:

  1. A legenda não se move com a figura e
  2. Resta um pouco de espaço em branco onde a figura apareceria, daí o vspace{-1.3cm}acréscimo no final do arquivo da figura.

Uma coisa boa dessa abordagem é que ela é super simples de executar.

informação relacionada