我正在使用包从 CSV 文件创建表格csvsimple
。表格的内容都是左对齐的,因此我想知道是否可以单独将第一行居中(其余行左对齐)?
我的代码是:
\documentclass{beamer}
\usepackage{csvsimple}
\begin{filecontents*}{\jobname.csv}
0.1,0.4,0.7,1.0,1.3
0.201,1.001,1.801,4.601,3.401
0.200,1.000,1.800,2.600,3.400
\end{filecontents*}
\begin{document}
\begin{frame}
\csvreader[autotabular,
%full filter=\ifcsvstrcmp{\csvcoliv}{m}{\csvfilteraccept}{\csvfilterreject}
]{\jobname.csv}{}{\csvlinetotablerow}%
\end{frame}
\end{document}
Csvsimple \csvautotabular 和 \csvautobooktabular 具有居中列的内容显示了如何将整个表格的默认对齐方式切换为居中,但这只能针对第一行执行吗?
答案1
有可能\csviffirstrow
,\multicolumn{1}{c|}{...}
对第一行的每个元素进行添加。
@{}p{0pt}@{}
为了避免错误,伪造第一列的技巧是必要的! Misplaced \omit
。
\documentclass{beamer}
\usepackage{csvsimple}
\begin{filecontents*}{\jobname.csv}
0.1,0.4,0.7,1.0,1.3
0.201,1.001,1.801,4.601,3.401
0.200,1.000,1.800,2.600,3.400
\end{filecontents*}
\begin{document}
\begin{frame}
\begin{tabular}{@{}p{0pt}@{}|*5{l|}}
\hline
\csvreader[
no head,
late after line=\\\hline,
]{\jobname.csv}{}{%
\csviffirstrow{%
& \multicolumn{1}{c|}{\csvcoli} & \multicolumn{1}{c|}{\csvcolii} & \multicolumn{1}{c|}{\csvcoliii} & \multicolumn{1}{c|}{\csvcoliv} & \multicolumn{1}{c|}{\csvcolv}
}{%
& \csvcoli & \csvcolii & \csvcoliii & \csvcoliv & \csvcolv
}%
}
\end{tabular}
\end{frame}
\end{document}