我刚刚学会了使用 pgfplottables 绘制表格,感觉非常好,非常流畅。这是我的代码示例:
\documentclass[14pt]{book}
\usepackage{pgfplots}
\usepackage{pgfplotstable}
\usepackage{amsmath}
\usepackage{booktabs}
\begin{document}
\begin{center}
\pgfplotstableread{
X C1 C2 C3 C4
$A$ 1 1 1 1
$B$ 1 1 1 1
$C$ 1 1 1 1
$D$ 1 1 1 1
}\testdata
\pgfplotstabletypeset[
every head row/.style={
before row={\toprule
& \multicolumn{2}{c}{\textbf{table}}\\ \cmidrule{2-3}},
after row=\midrule},
every last row/.style={after row=\bottomrule},
columns/X/.style={string type, column name={test},column type/.add={}{|}},
columns/C1/.style={string type, column name={$a$}},
columns/C2/.style={string type, column name={$b$}},
columns/C3/.style={string type, column name={$c$}},
columns/C4/.style={string type, column name={$d$}},
columns={X, C1,C2,C3,C4},
]\testdata
\end{center}
\end{document}
我的问题是关于
columns/X/.style={string type, column name={test},column type/.add={}{|}},
它在正确的位置给我一条线,但是当它到达“X abc d”正下方的水平线时规则就被打破了,它并不会在那里停止,而且还会执行留给“表格”的规则。
有没有可能让它在 $X$ 旁边停下来,而不会在通过水平线时中断?
谢谢你!
答案1
不确定这是否是您感兴趣的输出,但通过添加可以缩短垂直线。在下面的示例中,我还用和\multicolumn{1}{c}{}
替换了一些线,booktabs
以避免水平线和垂直线交叉点周围出现间隙。\hline
\cline
\documentclass{book}
\usepackage{pgfplots}
\usepackage{pgfplotstable}
\usepackage{amsmath}
\usepackage{booktabs}
\begin{document}
\begin{center}
\pgfplotstableread{
X C1 C2 C3 C4
$A$ 1 1 1 1
$B$ 1 1 1 1
$C$ 1 1 1 1
$D$ 1 1 1 1
}\testdata
\pgfplotstabletypeset[
every head row/.style={
before row={\toprule
\multicolumn{1}{c}{} & \multicolumn{2}{c}{\textbf{table}}\\ \cline{2-3}},
after row=\hline},
every last row/.style={after row=\bottomrule},
columns/X/.style={string type, column name={test},column type/.add={}{|}},
columns/C1/.style={string type, column name={$a$}},
columns/C2/.style={string type, column name={$b$}},
columns/C3/.style={string type, column name={$c$}},
columns/C4/.style={string type, column name={$d$}},
columns={X, C1,C2,C3,C4},
]\testdata
\end{center}
\end{document}