在乳胶中绘制一辆带有独立车厢的矩形火车

在乳胶中绘制一辆带有独立车厢的矩形火车

我在 latex 中找到了几个关于火车的主题,但一直找不到解决我的问题的方法。事实上,我需要画一列火车,里面有几节车厢,车厢里有几列火车。

我找到的唯一代码是此链接这个想法是,同一辆车的列车组之间的线路较短,而每辆车之间的线路较长。

\tikz\graph[nodes=draw, grow right=14mm] { "$1$" -- "$2$"--"$3$"};

在此处输入图片描述

多谢!

答案1

直接绘制这样的火车tikz并获得您想要的任何尺寸是相当简单的。

\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[scale=.5]
\draw [fill=blue!20] (0,0) rectangle (3,2) node[midway]{1} ;
\draw (3,1) -- (3.5,1);
\draw [fill=blue!20] (3.5,0) rectangle (6.5,2) node[midway]{2};
\draw (6.5,1) -- (11,1);
\draw [fill=blue!20] (11,0) rectangle (14,2) node[midway]{1};
\end{tikzpicture}
\end{document}

在此处输入图片描述

或者您可以只使用\framebox\rule(同样,您可以根据需要调整宽度)。

\documentclass{article}
\newcounter{trainnumber}
\setcounter{trainnumber}{1}
\newcommand\train{\framebox[.75cm]{\arabic{trainnumber}}\stepcounter{trainnumber}}
\newcommand\link{\raisebox{.75ex}{\rule{.25cm}{.5pt}}}
\newcommand\connect{\raisebox{.75ex}{\rule{1cm}{.5pt}}\setcounter{trainnumber}{1}}
\begin{document}
\train\link\train\connect\train
\end{document}

在此处输入图片描述

答案2

使用chains库。这个想法是使用两个嵌套\foreach命令(基本上是循环),外部命令用于“汽车”,内部命令用于“列车组”。在代码中,i迭代“汽车”列表并j迭代“汽车”中的“列车组”列表。同样使用该if语句,我们增加了两个连续“汽车”的最后一个和第一个“列车组”之间的距离。

在此处输入图片描述

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{chains}

\begin{document}
\begin{tikzpicture}[
    mbox/.style={
          draw,
          text width=2em,
          align=center,
          minimum height=1.5em,
          join,
          fill=cyan!20
      },
      start chain=going right,
      every join/.style=-,
      node distance=2mm
 ]
\foreach \i in {1,...,2} % i for no of cars
    {
        \foreach \j in {1,...,3} % j for no of trainsets in a car
            {
            \ifnum\j=1
            \begin{scope}[node distance=10mm]
                \node [mbox, on chain] {\j};
            \end{scope}
            \else
            \node [mbox, on chain] {\j};
            \fi
            }
    }
\end{tikzpicture}
\end{document}

相关内容