pgfplotstabletypeset 使用多行和垂直线问题

pgfplotstabletypeset 使用多行和垂直线问题

请忍受我这里笨拙的代码。我正在使用multicolumnmultirow定制标题,但遇到了麻烦。我将使用一个示例 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质量更好的表格。

相关内容