tikz矩阵中的空行

tikz矩阵中的空行

我可以通过以下方式使 tikz 矩阵有一个空行

\documentclass{standalone}

\usepackage{tikz}
\usetikzlibrary{matrix}
\begin{document}

\begin{tikzpicture}
  \matrix [matrix of math nodes, nodes=draw]
  {
    a & b & c \\
      &   & |[white]| d \\
    e & f & g \\
  };
\end{tikzpicture}

\end{document}

这使

平均能量损失

但有没有更好的方法呢?

预计到达时间

我知道这个选项nodes in empty cells。但正如它所说,它将节点放在空单元格中。我不想在那一行中显示节点,或者至少不想显示节点。以下

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{matrix}

\begin{document}

\begin{tikzpicture}
\matrix [matrix of math nodes, nodes={draw,circle}, nodes in empty cells]
  {
    a & b & c \\
      &   &   \\
    e & f & g \\
  };
\end{tikzpicture}

\end{document}

给出了截然不同的结果

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{matrix}

\begin{document}

\begin{tikzpicture}
\matrix [matrix of math nodes, nodes=draw]
  {
    a & b & c \\
      &   &  |[white]| d \\
    e & f & g \\
  };
\end{tikzpicture}

\end{document}

答案1

[...]您是否知道您可以简单地使用选项来增加一行的行距\\或增加所有行的行距row sep=...

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{matrix}

\begin{document}
% one row sep increased:
\begin{tikzpicture}
\matrix [matrix of math nodes, nodes={draw,circle}, nodes in empty cells]
  {
    a & b & c \\[2.6ex]
    e & f & g \\
  };
\end{tikzpicture}

% all row seps increased 
\begin{tikzpicture}
\matrix [matrix of math nodes, nodes={draw,circle}, nodes in empty cells,
row sep=2.6ex]
  {
    a & b & c \\
    e & f & g \\
  };
\end{tikzpicture}

\end{document}

我的两个tikzpictureMWE(当然,根据您的需要,您只需使用其中一个)都给出了这个结果:

在此处输入图片描述

答案2

答案是肯定的。从PGFlots 手册(第 647 页),我们可以通过输入 option 在空单元格中绘制节点nodes in empty cells,这样就会显示一个空行(或空列)。

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{matrix}

\begin{document}

\begin{tikzpicture}
\matrix [matrix of math nodes, nodes in empty cells]
  {
    a & b & c \\
      &   &   \\
    e & f & g \\
  };
\end{tikzpicture}

\end{document} 

答案3

下面的代码显示了为什么第二行是空的,& & \\或者& & [white] d\\会产生不同的结果:

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{matrix}

\begin{document}

\begin{tikzpicture}
\matrix [matrix of math nodes, 
    nodes in empty cells,
    nodes = draw,
    ]
  {
    a & b & c \\
      &   & d  \\
    e & f & g \\
  };
\end{tikzpicture}

\end{document}

在此处输入图片描述

正如您在第二行中看到的那样,空节点小于包含的节点d。因此,当您声明一个空行时,所有节点都具有与相关的默认大小inner sep。只要您插入一个非空节点,该节点就会强制增加行高。

如果您希望在第 1 行和第 3 行绘制节点,但不在第 2 行绘制节点,则可以为每行定义不同的样式:row 1/.style={...}。以下代码draw为所有节点定义样式,但特定节点row 2/.style不绘制第二行的节点,并且固定其高度。

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{matrix}

\begin{document}

\begin{tikzpicture}
\matrix (A) [matrix of math nodes, 
    nodes in empty cells,
    nodes = draw,
    row 2/.style = {nodes={draw=none, minimum height=1cm}}
    ]
  {
    a & b & c \\
      &   &   \\
    e & f & g \\
  };

  \draw[red,<->] (A-2-2.south)--(A-2-2.north) node[midway, right] {1 cm};
\end{tikzpicture}

\end{document}

在此处输入图片描述

相关内容