我可以通过以下方式使 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}
我的两个tikzpicture
MWE(当然,根据您的需要,您只需使用其中一个)都给出了这个结果:
答案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}