CsvSimple 带表格:设置特定的行数

CsvSimple 带表格:设置特定的行数

对于具有tabular以下环境,csvsimple我想具体设置行数。

此示例尝试仅显示前两行:

\documentclass{article}
\usepackage{csvsimple,filecontents}

\begin{filecontents*}{scientists.csv}
    name,surname,age
    Albert,Einstein,133
    Marie,Curie,145
    Thomas,Edison,165
\end{filecontents*}

\begin{document}
    \csvreader[tabular=|l|l|c|,
    table head=\hline & Name & Age\\\hline,
    late after line=\\\hline]%
    {scientists.csv}{name=\name,surname=\surname,age=\age}%
    {\ifnum\thecsvrow<2 \thecsvrow & \surname~\name & \age \else \fi}%
\end{document}

应该说的是,我几乎没有经验\ifnum

答案1

有几种方法可以实现您的目标。一种方法是使用filter仅接受前两行的选项。filter使用ifthen包语法:

filter={\value{csvrow}<2}

完整代码如下:

\documentclass{article}
\usepackage{csvsimple,filecontents}

\begin{filecontents*}{scientists.csv}
    name,surname,age
    Albert,Einstein,133
    Marie,Curie,145
    Thomas,Edison,165
\end{filecontents*}

\begin{document}
    \csvreader[tabular=|l|l|c|,
    table head=\hline & Name & Age\\\hline,
    late after line=\\\hline,
    filter={\value{csvrow}<2},
    ]%
    {scientists.csv}{name=\name,surname=\surname,age=\age}%
    {\thecsvrow & \surname~\name & \age }%
\end{document}

在此处输入图片描述

或者,before filter可以使用来实现自己的过滤选项。这里\ifnum可以使用:

\documentclass{article}
\usepackage{csvsimple,filecontents}

\begin{filecontents*}{scientists.csv}
    name,surname,age
    Albert,Einstein,133
    Marie,Curie,145
    Thomas,Edison,165
\end{filecontents*}

\begin{document}
    \csvreader[tabular=|l|l|c|,
    table head=\hline & Name & Age\\\hline,
    late after line=\\\hline,
    before filter=\ifnum\thecsvrow<2\relax\csvfilteraccept\else\csvfilterreject\fi,
    ]%
    {scientists.csv}{name=\name,surname=\surname,age=\age}%
    {\thecsvrow & \surname~\name & \age }%
\end{document}

您的尝试未获得预期结果,因为在\ifnum... \else...之间\fi不能有列分隔符&。可以修复此问题以在此处进行选择,但您会得到空的表格行,而不是没有行。

相关内容