Tikz 图形在子图中被挤压

Tikz 图形在子图中被挤压

我尝试在同一个图中显示两个 tikz 图。但其中一个图完全被挤进了一个小区域。在这里,我在两个子图中使用同一个文件,得到了以下结果:

在此处输入图片描述

\usepackage{subcaption}
\usepackage{tikz}
\usepackage{float}
\usepackage{subfiles}

\begin{document}
\begin{figure}
    \centering
      \begin{subfigure}{0.3\textwidth}
         \subfile{rgb_graph.tex}
         \caption{first graph}
     \end{subfigure}
    \begin{subfigure}{0.3\textwidth}
        \subfile{rgb_graph.tex}
        \caption{second graph}
    \end{subfigure}
\end{figure}

\end{document}

已加载的文件rgb_graph.tex包含

\documentclass[../main.tex]{subfiles}    
\begin{document}    
\usetikzlibrary{arrows,positioning,automata}

\begin{tikzpicture}[>=stealth',shorten >=1pt,node distance=3cm,on grid,initial/.style    ={}]
  \node[state]          (1)                 {R};
  \node[state]          (2) [right =of 1]   {G};
  \node[state]          (3) [below =of 2]   {B};

\tikzset{mystyle/.style={->,double=black}} 
\tikzset{every node/.style={}} 
\path (1)     edge [->]    node[yshift=7pt]   {$c_1$} (2)
      (2)     edge [->]    node[xshift=7pt]   {$c_2$} (3) 
      (1)     edge [->]    node[xshift=7pt]   {$c_3$} (3)

\end{tikzpicture}
\end{document}

答案1

检查日志文件,你会发现错误消息。修复它们后,文档就可以编译了。

  • 在 中的语句;末尾添加分号 ( ) 。\pathrgb_graph.tex

    (错误信息:Did you forget a semicolon?

  • 移动线

    \usetikzlibrary{arrows,positioning,automata}
    

    从子文件到主文件的前言部分。将此命令放入子文件中将在浮动部分内的普通文本中间执行两次命令(每次包含此文件时)。

    (错误信息:箭头stealth'未定义)

在此处输入图片描述

% main.tex
\documentclass{article}
\usepackage{subcaption}
\usepackage{tikz}
\usetikzlibrary{arrows,positioning,automata}
\usepackage{float}
\usepackage{subfiles}
\begin{document}
\begin{figure}
    \centering
      \begin{subfigure}{0.4\textwidth}
         \subfile{rgb_graph.tex}
         \caption{first graph}
     \end{subfigure}
    \begin{subfigure}{0.4\textwidth}
        \subfile{rgb_graph.tex}
        \caption{second graph}
    \end{subfigure}
\end{figure}
\end{document}

% rgb_graph.tex
\documentclass[main]{subfiles}    
\begin{document}    
\begin{tikzpicture}[>=stealth',shorten >=1pt,node distance=3cm,on grid,initial/.style    ={}]
  \node[state]          (1)                 {R};
  \node[state]          (2) [right =of 1]   {G};
  \node[state]          (3) [below =of 2]   {B};
\tikzset{mystyle/.style={->,double=black}} 
\tikzset{every node/.style={}} 
\path (1)     edge [->]    node[yshift=7pt]   {$c_1$} (2)
      (2)     edge [->]    node[xshift=7pt]   {$c_2$} (3) 
      (1)     edge [->]    node[xshift=7pt]   {$c_3$} (3);
\end{tikzpicture}
\end{document}

相关内容