座標に基づいて tikzpicture を配置する

座標に基づいて tikzpicture を配置する

コード リストの特定の場所に、空白文字のみがある TikZ で作成した図を配置する必要があります。次のドキュメントがあります。

ここに画像の説明を入力してください

生成されるコードは次のようになります。

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

ここでclassic-diamond/src、 とにはclassic-diamond/out出力にすでに表示されているテキストが含まれますが、 にはclassic-diamond/fig.tex次の内容が含まれます。

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

私の目標は、リストの右上隅に図を配置することですが、指定された座標に画像を配置するなど、同様のトピックに関する多くの既存の質問にもかかわらず、これを実現する方法がわかりません。しかし、私は画像を持っておらず、tikzpictureを持っています。

答え1

@projetmbc のコメントを使用して、tikz ファイルを次のように変更することができました。

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

その結果

ここに画像の説明を入力してください

これは多かれ少なかれ私が探していたものです。私が気づいたこのアプローチの欠点がいくつかあります。

  1. キャプションは図に合わせて動かず、
  2. 図が表示される場所には少し空白が残っているので、vspace{-1.3cm}図ファイルの最後に が追加されています。

このアプローチの良い点の 1 つは、実行が非常に簡単なことです。

関連情報