如何删除在 longtable 中创建的空行?

如何删除在 longtable 中创建的空行?

当我尝试为里面的一行着色时,xstring它创建了不需要的空白行,我需要longtable大量的数据,那么我该如何进行过滤呢?

这是我的 MWE:

 \documentclass[a4paper,12pt]{article}
 \usepackage{longtable,filecontents,datatool,xstring}
 \usepackage[table]{xcolor}

 \begin{filecontents*}{data.csv}
 Sl.No., Name, Class, Gender
 1, Mr. David , X, M
 2, Miss Kache , XII,F
 3, Mr. Stephan, XII,M
 4, Mr. Prakash, XII,M
 5, Mr. Digvijay, XII,M
 \end{filecontents*}
 \DTLloaddb{mydata}{data.csv}

 \begin{document}

 \begin{longtable}{|l|l|l|l|}
 \hline
 Sl.No. & Name & Class & Gender\\ \hline
 \DTLforeach*{mydata}{\sl=Sl.No.,\name=Name,\c=Class,\g=Gender}{

 \IfStrEq{\g}{M}{\\\rowcolor{red!20} \sl & \name & \c & \g \\ \hline}{}

 }


 \end{longtable}

 \end{document}

在此处输入图片描述

答案1

你似乎把\hlines 和\\s 放错了位置。这是一个清理过的版本

 \documentclass[a4paper,12pt]{article}
 \usepackage{longtable,filecontents,datatool,xstring}
 \usepackage[table]{xcolor}

 \begin{filecontents*}{data.csv}
 Sl.No., Name, Class, Gender
 1, Mr. David , X, M
 2, Miss Kache , XII,F
 3, Mr. Stephan, XII,M
 4, Mr. Prakash, XII,M
 5, Mr. Digvijay, XII,M
 \end{filecontents*}
 \DTLloaddb{mydata}{data.csv}

 \begin{document}

 \begin{longtable}{|l|l|l|l|}
 \hline
 Sl.No. & Name & Class & Gender  \DTLforeach*{mydata}{\sl=Sl.No.,\name=Name,\c=Class,\g=Gender}{%
 \IfStrEq{\g}{M}{\\\hline\rowcolor{red!20} \sl & \name & \c & \g }{}
 }\\\hline


 \end{longtable}

 \end{document}

在此处输入图片描述

另一方面,我建议删除垂直分隔符,并将第 1、3 和 4 列居中。在此示例中,我还包含了另一行,该行在您的示例中被过滤掉了(只是为了完整性,因为上面显示了如何不呈现它)

 \documentclass[a4paper,12pt]{article}
 \usepackage{longtable,filecontents,datatool,xstring}
 \usepackage[table]{xcolor}

 \begin{filecontents*}{data.csv}
 Sl.No., Name, Class, Gender
 1, Mr. David , X, M
 2, Miss Kache , XII,F
 3, Mr. Stephan, XII,M
 4, Mr. Prakash, XII,M
 5, Mr. Digvijay, XII,M
 \end{filecontents*}
 \DTLloaddb{mydata}{data.csv}

 \begin{document}

 \begin{longtable}{clcc}
 \hline
 Sl.No. & Name & Class & Gender  \DTLforeach*{mydata}{\sl=Sl.No.,\name=Name,\c=Class,\g=Gender}{%
 \IfStrEq{\g}{M}{\\\hline\rowcolor{red!20} \sl & \name & \c & \g }{\\\hline\rowcolor{blue!20} \sl & \name & \c & \g}
 }\\\hline


 \end{longtable}

 \end{document}

在此处输入图片描述

相关内容