对于具有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
不能有列分隔符&
。可以修复此问题以在此处进行选择,但您会得到空的表格行,而不是没有行。