좌표를 기준으로 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}

where classic-diamond/srcclassic-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}

내 목표는 목록의 오른쪽 상단에 그림을 배치하는 것입니다. 지정된 좌표에 이미지를 배치하는 등 비슷한 주제를 둘러싼 많은 기존 질문에도 불구하고 이를 달성하는 방법을 모르겠습니다. 하지만 이미지가 없습니다. 틱즈픽쳐.

답변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}그림 파일 끝에 추가됩니다.

이 접근 방식의 한 가지 좋은 점은 실행이 매우 간단하다는 것입니다.

관련 정보