请忍受我这里笨拙的代码。我正在使用multicolumn
并multirow
定制标题,但遇到了麻烦。我将使用一个示例 csv 文件来说明我正在尝试做什么。我的 csv 文件(带有原始标题行)如下所示scientists_names.csv
name,surname,age,sex,birthday
Albert,Einstein,135,male,3/14/1879
Marie,Curie,146,female,11/7/1867
Thomas,Edison,168,male,2/11/1847
我的 Latex 代码:
\documentclass{article}
\usepackage{colortbl}
\usepackage{hhline}
\usepackage{pgfplotstable}
\pgfplotsset{compat=1.11}
\usepackage{multirow}
\usepackage{color}
\begin{document}
%use the package of pgfplotstable
\pgfplotstabletypeset[
col sep=comma, header=true,
string type,
columns/name/.style={column type={|c}},
columns/surname/.style={ column type={|c}},
columns/age/.style={ column type={|c}},
columns/sex/.style={ column type={|c}},
columns/birthday/.style={ column type={|c|}},
every head row/.style={
output empty row,
before row={
\hline
\multicolumn{2}{|>{\columncolor{cyan}}c}{ } & \multicolumn{3}{>{\columncolor{cyan}}c| }{Basic Info} \\
\hhline{~~---}
\rowcolor{cyan}
& & Age & Sex & \\
\rowcolor{cyan}
\multirow{-2}{*}{Name} & \multirow{-2}{*}{Surname} & in years & M or F & \multirow{-2}{*}{Birthday}
\\
},
after row={
\hline
}
},
every last row/.style={after row=\hline},
]{scientists_names.csv}
\end{document}
结果表:
我实际上想要:
即,恢复“姓名”和“姓氏”的部分屏蔽,并删除“性别”和“生日”之间的垂直线,我认为这条垂直线会被 rowcolor 屏蔽。(并可能将“生日”移到中间,就像我对姓名和姓氏所做的那样。)任何想法都将不胜感激。谢谢!
答案1
由于您的代码无法按原样编译,因此我编辑了少量内容来演示:
\documentclass{article}
\usepackage{colortbl}
\usepackage{multirow}
\usepackage{xcolor}
\begin{document}
\begin{tabular}{*{5}{c}}
\multicolumn{2}{|>{\columncolor{cyan}}c}{ } & \multicolumn{3}{>{\columncolor{cyan}}c|}{Basic Info} \\\hline
\rowcolor{cyan}
& & Age & Sex & Birthday\\
\rowcolor{cyan}
\multirow{-2}{*}{Name} & \multirow{-2}{*}{Surname}& in years & M or F & \\
\end{tabular}
\end{document}
[显然一点也不整洁。]
建议:考虑使用booktabs
质量更好的表格。