pgfplotstable 似乎是将 CSV 数据自动合并到表格中的理想选择。但是,我在处理线条方面遇到了麻烦(它们不会与标题合并,而且我似乎无法让它们在表格底部工作)。
梅威瑟:
\documentclass[10pt,a4paper]{article}
\usepackage[utf8x]{inputenc}
\usepackage{ucs}
\usepackage[english]{babel}
\begin{filecontents*}{xpoweredby-trunc.csv}
X-Powered-By 2011-07 Perc1 2012-06 Perc2 2012-11 Perc3
PHP 7354 48.1 6225 43.75 7484 54.02
ASP.NET 12 0.08 37 0.26 5587 40.32
PleskLin 10 0.07 283 1.99 202 1.46
W3 69 0.45 137 0.96 186 1.34
UrlRewriter.NET 0 0 0 0 73 0.53
PleskWin 0 0 0 0 72 0.52
Servlet 135 0.88 110 0.77 81 0.58
Phusion 39 0.26 37 0.26 41 0.3
\end{filecontents*}
\usepackage{pgfplotstable}
\begin{document}
{\footnotesize
\pgfplotstabletypeset[
every head row/.style={
before row=\caption{X-Powered-By header}\\\toprule, after row=\bottomrule \endhead
% as in the previous example, this patches the first row:
before row={
\hline
},
after row=\hline,
},
every even row/.style={
before row={\rowcolor[gray]{0.92}}},
columns/X-Powered-By/.style={string type, column type=|r},
columns/2011-07/.style={numeric type, column type=||r},
columns/Perc1/.style={/pgf/number format/fixed, numeric type, column type=r||, column name=\% },
columns/2012-06/.style={numeric type, column type=r},
columns/Perc2/.style={/pgf/number format/fixed, numeric type, column type=r||, column name=\%},
columns/2012-11/.style={numeric type, column type=r},
columns/Perc3/.style={/pgf/number format/fixed, numeric type, column type=r|, column name=\%},
]{xpoweredby-trunc.csv}
} % footnotesize ends
\end{document}
该示例当前生成:
我还希望它:
- 将 toprule 与 header 中的行合并 - 目前它似乎是浮动的
- 让表格底部闭合 - 也使用合并的非浮动线
我知道这张表与 Tufte-ian 相去甚远,但会议的风格指南却要求如此。
关于如何定义线路/规则,我是否遗漏了什么?
答案1
我认为,如果您在 之前插入缺失的逗号,您会更接近您的预期% as in the previous example
。显然,它后面的内容已包含在单元格中,但未进入输出。
您的示例不能按原样编译;我假设您想要包括booktabs
、colortbl
和longtable
。
这是我目前得到的信息:
\documentclass[10pt,a4paper]{article}
\usepackage[utf8x]{inputenc}
\usepackage{ucs}
\usepackage[english]{babel}
\usepackage{longtable}
\usepackage{booktabs}
\usepackage{colortbl}
\begin{filecontents*}{xpoweredby-trunc.csv}
X-Powered-By 2011-07 Perc1 2012-06 Perc2 2012-11 Perc3
PHP 7354 48.1 6225 43.75 7484 54.02
ASP.NET 12 0.08 37 0.26 5587 40.32
PleskLin 10 0.07 283 1.99 202 1.46
W3 69 0.45 137 0.96 186 1.34
UrlRewriter.NET 0 0 0 0 73 0.53
PleskWin 0 0 0 0 72 0.52
Servlet 135 0.88 110 0.77 81 0.58
Phusion 39 0.26 37 0.26 41 0.3
\end{filecontents*}
\usepackage{pgfplotstable}
\begin{document}
{\footnotesize
\pgfplotstabletypeset[
begin table=\begin{longtable}, % -------- CF
end table=\end{longtable},
every head row/.style={
%before row=\caption{X-Powered-By header}\\\toprule, after row=\bottomrule \endhead,% --------- CF
% as in the previous example, this patches the first row:
before row={\hline},
after row=\hline,
},
every last row/.style={% ------------ CF
after row=\hline,
},
every even row/.style={
before row={\rowcolor[gray]{0.92}}},
columns/X-Powered-By/.style={string type, column type=|r},
columns/2011-07/.style={numeric type, column type=||r},
columns/Perc1/.style={/pgf/number format/fixed, numeric type, column type=r||, column name=\% },
columns/2012-06/.style={numeric type, column type=r},
columns/Perc2/.style={/pgf/number format/fixed, numeric type, column type=r||, column name=\%},
columns/2012-11/.style={numeric type, column type=r},
columns/Perc3/.style={/pgf/number format/fixed, numeric type, column type=r|, column name=\%},
]{xpoweredby-trunc.csv}
} % footnotesize ends
\end{document}
此解决方案不再使用booktabs
-我取消了您第一次尝试的注释toprule
。
也许一些表格排版专家可以告诉您如何调整booktabs
。您可能还想搜索如何修改标题行的垂直大小的输入。
请注意,您可以添加选项debug
来查看生成的输出 - 这可能会简化实验,因为您可以直接使用纯 LaTeX 代码。
答案2
一般来说,使用带有垂直线的 Booktab 表是没有意义的(但会带来很多麻烦)。此外,给 Booktab 表着色并非完全是小事。你可以尝试使用 Booktabs 定义的额外空间,这些空间在手册中有记录(参见等) \heavyrulewidth
。\aboverulesep
通过使用和部分重新定义它们,你可以实现如下所示的效果,但这并不好玩(我不是 Latex 专家,而且还有许多其他涉及的问题)。
如果需要,我可以尝试提取最重要的部分,但我根本没有用 pgfplotstable 测试过这一点。