pgfplotstable 行的使用和换行

pgfplotstable 行的使用和换行

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。显然,它后面的内容已包含在单元格中,但未进入输出。

您的示例不能按原样编译;我假设您想要包括booktabscolortbllongtable

这是我目前得到的信息:

\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 测试过这一点。

相关内容