我正在尝试在 tikz 节点内创建一个具有多列且多列宽度固定的表。
我的代码如下:
\documentclass{article}
\usepackage{booktabs}
\usepackage{array}
\usepackage{tikz}
\newcommand{\mystyle}[1]{\bfseries\sffamily\color{black}#1}
\begin{document}
\begin{tikzpicture}
\node[draw] (K2) {
\setlength{\tabcolsep}{2pt}%
\begin{tabular}{rclr}
\multicolumn{3}{>{\centering\arraybackslash}p{4.2cm}}{Toptext} & text\\%
\multicolumn{3}{>{\centering\arraybackslash}p{4.2cm}}{\mystyle{Long Text which should be break in two lines}} &%
\end{tabular}
\setlength{\tabcolsep}{6pt}%
};
\end{tikzpicture}
\end{document}
如果我删除样式,一切看起来都很好。当包含样式时,间距变得奇怪,样式中包含的文本前会添加一行。
答案1
添加时应非常小心\color
;在这种情况下,添加的时间不对。请确保在发布之前启动段落模式\color{black}
。
\documentclass{article}
\usepackage{booktabs}
\usepackage{array}
\usepackage{tikz}
\newcommand{\mystyle}{\leavevmode\bfseries\sffamily\color{black}}
\begin{document}
\begin{tikzpicture}
\node[draw] (K2) {%
\setlength{\tabcolsep}{2pt}%
\begin{tabular}{rclr}
\multicolumn{3}{>{\centering\arraybackslash}p{4.2cm}}{Toptext} & text\\
\multicolumn{3}{>{\centering\arraybackslash}p{4.2cm}}{%
\mystyle Long Text which should be break in two lines} &
\end{tabular}
};
\end{tikzpicture}
\end{document}
请注意,您不需要\mystyle
使用参数进行定义(也不需要括号)。还要注意行尾。
也没有理由重置\tabcolsep
,因为节点的内容是按组排版的。