我正在使用 tikz 矩阵来布局图表。但是,我意识到我希望某些行之间的间距比现在更小。因此,我想将其中一个节点的高度设置为小于其标签。
下面是一个 MWE 来解释我的意思。
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[baseline=(current bounding box.center)]
\matrix[inner sep=0] {
\node{A}; & \\
& \node{B}; \\
\node{C}; & \\
};
\end{tikzpicture}
\end{document}
它看起来像这样
但想象一下,我想把“A”和“C”挤在一起,这样看起来更像这样
我认为,要使用矩阵布局来实现这一点,需要“B”节点的高度小于字母“B”的高度,这样标签才能与框的边界重叠。要么这样,要么需要将字母“B”绘制在节点顶部,而不会影响其边界框。这样可行吗?
答案1
答案2
我不知道这是否是最明智的答案(欢迎反馈),但这是使用该adjustbox
包的一种方法
\documentclass{article}
\usepackage{tikz}
\usepackage{adjustbox}
\begin{document}
\begin{tikzpicture}[baseline=(current bounding box.center)]
\matrix[inner sep=0] {
\node{A}; & \\
& \node{\adjustbox{trim = 0pt 2pt}{B}};\\
\node{C}; & \\
};
\end{tikzpicture}
\end{document}
2pt 参数是修剪顶部和底部的高度,而 0pt 是修剪左侧和右侧的高度。