过滤器 ifnumgreater 不适用于 csvsimple

过滤器 ifnumgreater 不适用于 csvsimple

每次添加包含过滤器的行时,LaTeX 都会出错。没有过滤器时它也能正常工作。我做错了什么?

这是我的 LaTeX 条目:

\documentclass{article}
\usepackage{float}
\renewcommand{\baselinestretch}{0}  %spacing between lines of a same paragraph
\usepackage[margin=1in,includefoot]{geometry}           %set margins
\usepackage{tabulary}
\usepackage{tabularx}
\usepackage{csvsimple,filecontents,longtable}
\usepackage{array}
\usepackage{etoolbox}
\usepackage{booktabs}
\begin{document}

\begin{filecontents*}{random.csv}
A,  B,  C
egfwgt, 36, ery
wrgsreh,    3645467,    yfghs
rshgtesh,   346,    rsth
ethshs, 365,    sty
\end{filecontents*}

\begin{table}[H]
        \setlength{\extrarowheight}{0.2in}
        \begin{center}
        \csvreader 
            [tabular=ccc,
            table head= \toprule A & B & C \\ \midrule,
            table foot= \bottomrule, 
            filter test=\ifnumgreater{\B}{300},
            ]%
            {random.csv}{A=\A, B=\B, C=\C}%
            {\A  & \B & \C}
        \end{center} \end{table}

\end{document}

答案1

您可能已经注意到,输入必须是逗号分隔的值,因此现在输入是正确的。接下来查看手册中的第 18 页,其中有一个示例可以实现这一点,结果是使用

full filter= \ifnumgreater{\B}{300}{\csvfilteraccept}{\csvfilterreject},

根据手册,filter=...这是相同的filter ifthen=...,因此只有ifthen包装中的构造才是可行的。

作为参考,这是我的完整、有效的示例,删除了不相关的内容(对于这个问题)(在 texlive 2016 上运行)

\documentclass{article}
\usepackage{csvsimple,filecontents,longtable}
\usepackage{etoolbox}
\usepackage{booktabs}

\begin{filecontents*}{random.csv}
A,B,C
egfwgt,36,ery
wrgsreh,3645467,yfghs
rshgtesh,346,rsth
ethshs,365,sty
\end{filecontents*}



\begin{document}


            \csvreader 
                [tabular=ccc,
                table head= \toprule A & B & C \\ \midrule,
                late after line= \\,
                table foot= \bottomrule, %very important to put line at bottom
                full filter= \ifnumgreater{\B}{300}{\csvfilteraccept}{\csvfilterreject},
                ]%
                {random.csv}{A=\A, B=\B, C=\C}%
                {\A  & \B & \C}



\end{document}

顺便说一句,请不要使用该float包和 [H] 选项来处理浮点数,最好学会正确使用浮点数。

相关内容