我尝试使用方括号将特定表行中的所有元素括postproc cell content
起来pgfplotstable
。
如 MWE 所示,它可以很好地处理列,但不能处理行:
\documentclass{article}
\usepackage{pgfplotstable}
\begin{document}
\pgfplotstabletypeset[
string type,
every first row/.append style={postproc cell content/.append style={/pgfplots/table/@cell content/.add={[}{]}}},
columns/B/.append style={postproc cell content/.append style={/pgfplots/table/@cell content/.add={[}{]}}},
]{
A B C
m s kg
1 2 3
4 5 6
7 8 9
}
\end{document}
我原本期望看到第二行(every first row
)中的所有元素以及B
用方括号括起来的列中的所有元素。
不能postproc cell content
按行进行工作吗?
答案1
这个问题揭示了 中的定义不明确pgfplotstable
。查看其源代码可以确认postproc cell content
仅适用于评估列样式的上下文。
这要么是缺少的功能,要么至少是手册中需要澄清的内容。可能是第一个。
在此期间,您可以使用every row <index> column <name>
使用支持 postproc cell content
:
\documentclass{standalone}
\usepackage{pgfplotstable}
\begin{document}
\pgfplotstabletypeset[
string type,
brackets/.style={
postproc cell content/.append style={/pgfplots/table/@cell content/.add={\relax[}{]}},
},
every row 0 column A/.append style={brackets},
%every row 0 column B/.append style={brackets},
every row 0 column C/.append style={brackets},
columns/B/.append style={brackets},
]{
A B C
m s kg
1 2 3
4 5 6
7 8 9
}
\end{document}
我可以自由地为您的括号定义一种单独的样式。
注意\relax
:事实证明,pgfplotstable
没有它也能很好地工作,但tabular
事实并非如此:它假定括号与前面的相关联\\
。要查看这一点,请将其添加debug
到您的选项并查看日志文件。
请注意,还有every row <index> column no <index>
。