我有一个从文件中读取的表,我想仅显示在给定列中具有特定值的行。
这是一个 ECM:
\documentclass{minimal}
\usepackage{pgfplotstable}
\begin{document}
\pgfplotstableread{
num value
1 2
2 5
1 3
3 2
1 4
2 1
}\data
\pgfplotstabletypeset[row predicate/.code={%
\ifnum\pgfplotstablegetelem{#1}{num}\of{\data}=1\relax
\else\pgfplotstableuserowfalse\fi}]{\data}
\end{document}
我希望只看到 num 值为 1 的行。但是在编译时出现错误:
错误:缺少数字,视为零。 --- TeX 说 --- \开始组 l.14 ...之后\pgfplotstableuserowfalse\fi}]{\data}
您是否知道如何做才能仅显示特定的行?
答案1
您快完成了!但是,宏\pgfplotstablegetelem
不会“计算”您想要的值,而是将其存储在名为 的宏中\pgfplotsretval
。因此,如果您像下面这样编写代码,您的代码就可以正常工作
\documentclass{article}
\usepackage{pgfplotstable}
\begin{document}
\pgfplotstableread{
num value
1 2
2 5
1 3
3 2
1 4
2 1
}\data
\pgfplotstabletypeset[row predicate/.code={%
\pgfplotstablegetelem{#1}{num}\of{\data}
\ifnum\pgfplotsretval=1\relax
\else\pgfplotstableuserowfalse\fi}]{\data}
\end{document}