pgfplotstable:postproc 单元格内容重置单元格样式

pgfplotstable:postproc 单元格内容重置单元格样式

我正在使用 pgfplotstable 从 .csv 文件创建表格。但是当我使用它postproc cell content来更改特定单元格的外观时,该单元格的所有以前的格式似乎都被忽略了。我怎样才能更改特定单元格的外观并同时保持表格的统一样式?

以下是 MWE:

\documentclass{article}

\usepackage{multirow}
\usepackage{booktabs}
\usepackage{pgfplotstable}

%Make rows higher:
\setlength\extrarowheight{1.4pt}

%GLOBAL FORMATING:
\pgfkeys{/pgf/number format/.cd,
                use comma,
                1000 sep={}}

\usepackage{lipsum}
\usepackage{filecontents}

\begin{filecontents}{data.csv}
Name,1,2
A,10.23,3.23
B,11.23,4.23
C,12.23,5.23
D,13.23,6.23
E,14.23,7.23
F,15.23,8.23
\end{filecontents}

\begin{document}

\lipsum[1]

\begin{table}[!htb]
\centering
\caption{Some text describing the table}

\pgfplotstabletypeset[col sep=comma,
    columns={Name, 1, 2},% <---these columns will appear in the table
%------------------TYPESETTING COLUMNS:-------------------------------
     columns/Name/.style={% <---style column "Name"
      string type,%
      column type/.add={}{|},%
    },
    %
    columns/1/.style={% <---style column "1"
      column name=I,
      precision=1,column type/.add={}{|},%
    },
    %
    columns/2/.style={% <---style column "2"
      column name=II,
      precision=1, column type/.add={}{},%
      postproc cell content/.code={% <--- style row 2 (=index 1) of column "2"
        \ifnum\pgfplotstablerow=1 
            \pgfkeysalso{@cell content=\textcolor{red!100}{##1}}% <---make it red
        \fi
      },
    },
    %
%------------------TYPESETTING ROWS-------------------------------
    every head row/.style={before row=\toprule, after row=\midrule},%
    every last row/.style={after row=\bottomrule}%
    ]%
{data.csv}
\end{table}

\lipsum[2]



\end{document}

它看起来是这样的:

Obviously the formatting of the red cell differs from the others.

我希望包含的单元格4.23包含4,2,以便它被格式化为所有其他单元格。

提前非常感谢您!

答案1

这是一个可能的(但我认为不是最好的)解决方案:

  postproc cell content/.append code={% <--- style row 2 (=index 1) of
      \ifnum\pgfplotstablerow=1\relax% 
          \edef\temp{%
              \noexpand\pgfkeyssetvalue{/pgfplots/table/@cell content}%
                  {\noexpand\color{red!100}\pgfkeysvalueof{/pgfplots/table/@cell content}}%
          }\temp%
      \fi%
  }

enter image description here

更新:

使用粗体字体而不是改变文本颜色(突出显示单元格)更容易:

  \ifnum\pgfplotstablerow=1\relax% 
      \pgfkeysalso{@cell content/.add={$\bf}{$}}
  \fi%

相关内容