我知道可以用 ,分别更改\matrix
命令中的行和列分隔。但是如何仅更改特定行或列的分隔?row sep
column sep
也就是说,不同行之间的间距不同?另外,如何对列间距做同样的处理?
\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\matrix[column sep=5mm, row sep=5mm]
{
% Row 1
\node {1:1};&\node {1:2};&\node {1:3};&\node {1:4};;\\
% Row 2
\node {2:1};&\node {2:2};&\node {2:3};&\node {2:4};\\
% Row 3
\node {3:1};&\node {3:2};&\node {3:3};&\node {3:4};\\
};
\end{tikzpicture}
\end{document}
答案1
您可以将分隔设置为零;然后&[<width>]
在第一行中使用来进行列分隔和\\[<width>]
行分隔。
\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\matrix[column sep=0mm, row sep=0mm]{
% Row 1
\node {1:1}; &[5mm] \node {1:2}; &[10mm] \node {1:3}; &[10mm] \node {1:4}; \\[5mm]
% Row 2
\node {2:1}; & \node {2:2}; & \node {2:3}; & \node {2:4}; \\[10mm]
% Row 3
\node {3:1}; & \node {3:2}; & \node {3:3}; & \node {3:4}; \\
};
\end{tikzpicture}
\end{document}
答案2
行分隔
对于行间距,不需要指定矩阵宽的行间距,而是使用可选参数来\\
完成特定行的跳过。
\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\matrix[column sep=5mm]
{
% Row 1
\node {1:1};&\node {1:2};&\node {1:3};&\node {1:4};;\\[5mm]
% Row 2
\node {2:1};&\node {2:2};&\node {2:3};&\node {2:4};\\[10mm]
% Row 3
\node {3:1};&\node {3:2};&\node {3:3};&\node {3:4};\\
};
\end{tikzpicture}
\end{document}
或者,您可以保留默认值row sep
并指定与默认值的偏差:
\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\matrix[column sep=5mm, row sep=5mm]
{
% Row 1
\node {1:1};&\node {1:2};&\node {1:3};&\node {1:4};;\\
% Row 2
\node {2:1};&\node {2:2};&\node {2:3};&\node {2:4};\\[5mm]
% Row 3
\node {3:1};&\node {3:2};&\node {3:3};&\node {3:4};\\
};
\end{tikzpicture}
\end{document}
柱分离
至于列分隔问题,我不知道有什么简单的方法可以做到这一点。在特别的楼主提供的例子,列间隙都是整数倍数彼此。如果总是这样,只需添加空白列即可:
\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\matrix[column sep=5mm, row sep=5mm]
{
% Row 1
\node {1:1};&\node {1:2};&&\node {1:3};&\node {1:4};;\\
% Row 2
\node {2:1};&\node {2:2};&&\node {2:3};&\node {2:4};\\[5mm]
% Row 3
\node {3:1};&\node {3:2};&&\node {3:3};&\node {3:4};\\
};
\end{tikzpicture}
\end{document}
但我认为这是奢望。对于一般情况,我能做的最好的事情就是提供\knode
内置了可选字距的宏。
\documentclass{standalone}
\usepackage{tikz}
\newcommand\knode[2][0]{\node{#2\kern#1mm}}
\begin{document}
\begin{tikzpicture}
\matrix[column sep=5mm, row sep=5mm]
{
% Row 1
\node {1:1};&\knode[5]{1:2};&\node {1:3};&\node {1:4};;\\
% Row 2
\node {2:1};&\knode[5]{2:2};&\node {2:3};&\node {2:4};\\[5mm]
% Row 3
\node {3:1};&\knode[5]{3:2};&\node {3:3};&\node {3:4};\\
};
\end{tikzpicture}
\end{document}