我在 CSV 文件中有一个数据表,并使用 打印它。我可以通过使用而不是环境来pgfplotstable
拆分长数据表;到目前为止一切顺利。我的问题是我的数据表只有两列,因此导致页面如下:pgfplotstable
longtable
tabular
+-------------------------+
| XX XX |
| XX XX |
| XX XX |
| XX XX |
| XX XX |
| |
| |
+-------------------------+
重点是:表格左右两侧都留有大量可用空间。我希望表格打印如下:
+-------------------------+
| XX XX | XX XX | XX XX |
| XX XX | XX XX | XX XX |
| XX XX | XX XX | XX XX |
| XX XX | XX XX | XX XX |
| XX XX | XX XX | XX XX |
| XX XX | XX XX | XX XX |
| XX XX | XX XX | XX XX |
| |
| |
+-------------------------+
我知道我可以通过使用以下解决方案来实现这一点多列长表或枚举,但是这有两个缺点:
- 我必须手动指定要使用的列数
- 列不平衡
- 我不能在浮点数中使用它
table
所以,我的问题是:是否有一个软件包可以提供此功能,并满足上述三点?
答案1
您可以使用/pgfplots/table/select equal part entry of={<part no>}{<part count>}
,参考 pgfplotstable 手册第 40 页。此代码取自手册,并进行了一些修改。
\documentclass{article}
\usepackage{pgfplotstable}
\usepackage{booktabs}
\usepackage{filecontents}
\begin{filecontents*}{pgfplotstable.example2.dat}
A B
A1 B1
A2 B2
A3 B3
A4 B4
A5 B5
A6 B6
A7 B7
A8 B8
A9 B9
A10 B10
A11 B11
A12 B12
A13 B13
A14 B14
A15 B15
A16 B16
A17 B17
A18 B18
A19 B19
A20 B20
A21 B21
\end{filecontents*}
\begin{document}
\pgfplotstableset{
every head row/.style={before row=\toprule,after row=\midrule},
every last row/.style={after row=\bottomrule}}
\pgfplotstabletypeset[string type]{pgfplotstable.example2.dat}%
%
\pgfplotstabletypeset[
columns={A,B,A,B},
display columns/0/.style={select equal part entry of={0}{2},string type},% first part of ‘A’
display columns/1/.style={select equal part entry of={0}{2},string type},% first part of ‘B’
display columns/2/.style={select equal part entry of={1}{2},string type},% second part of ‘A’
display columns/3/.style={select equal part entry of={1}{2},string type},% second part of ‘B’
]{pgfplotstable.example2.dat}
\end{document}
part no
您可以通过更改和轻松更改列数(部分)part count
。例如,为了有三个部分,我们这样做:
\pgfplotstabletypeset[
columns={A,B,A,B,A,B},
display columns/0/.style={select equal part entry of={0}{3},string type},% first part of ‘A’
display columns/1/.style={select equal part entry of={0}{3},string type},% first part of ‘B’
display columns/2/.style={select equal part entry of={1}{3},string type},% second part of ‘A’
display columns/3/.style={select equal part entry of={1}{3},string type},% second part of ‘B’
display columns/4/.style={select equal part entry of={2}{3},string type},% third part of ‘A’
display columns/5/.style={select equal part entry of={2}{3},string type},% third part of ‘B’
]{pgfplotstable.example2.dat}