为什么条件格式和 dec sep 对齐会呈现两次值?

为什么条件格式和 dec sep 对齐会呈现两次值?

我想dec sep align同时使用和条件格式。我设法单独使它们工作,但它们一起使用会使列中的每个值翻倍。

\documentclass[]{article}
\usepackage{booktabs,pgfplotstable,colortbl}
\begin{document}
    \begin{table}[h!]
            \pgfplotstabletypeset[%
            columns/A/.style={%
                postproc cell content/.style={
                    /pgfplots/table/@cell content/.initial={}{
                        \pgfmathparse{int(less(##1,0))} 
                        \ifnum\pgfmathresult=1
                        \cellcolor{green}{##1}
                        \else
                        {##1}
                        \fi
                    }
                },
                dec sep align,
            },
%           columns/.style={
%               dec sep align
%           },
            col sep=comma
            ]{          ,A,B,C,D
                1,-2.27,-32.94,134.32,-19.92
                2,3.40,13.53,106.51,11.79
                3,-116.5,-6.43,208.59,-0.11
                4,-16.47,-2.38,299.76,-9.76
                }
    \end{table}
\end{document}

其结果如下

两次渲染的值

所评论的解决方案也不起作用。

理想情况下,我希望所有列都遵守条件格式dec sep align,A、B 和 D 列也遵守条件格式。到目前为止,我设法让 A 列遵守条件格式,但前提是我不同时使用dec sep align

这是一个dec sep align无法与条件格式一起使用的错误,还是我只是不明白如何使用它们?

答案1

请查看当前第 12 页的脚注pgfplotstable 手册。看起来dec sep align不太适合\cellcolor

至于双重输入,该dec sep align选项将输入拆分为两列,并将您的post proc应用于这两列。使用.initial并添加##1将用原始条目覆盖已解析的条目,从而产生双重输入。使用add并删除##1允许拆分doc sep align继续进行;但是,\cellcolor比必要的大,第二个单元格覆盖了第一个单元格的一小部分(我推测这是手册中提到的悬垂部分):

\documentclass[]{article}
\usepackage{booktabs,pgfplotstable,colortbl,siunitx}
\begin{document}
    \begin{table}[h!]
            \pgfplotstabletypeset[%
            columns/A/.style={
                postproc cell content/.style={
                    /pgfplots/table/@cell content/.add={}{
                        \pgfmathparse{int(less(##1,0))} 
                        \ifnum\pgfmathresult=1
                        \cellcolor{green}
                        \fi
                    }
                },
                dec sep align={c}},
            columns/B/.style={dec sep align={c}},
            columns/C/.style={dec sep align={c}},
            columns/D/.style={dec sep align={c}},
            col sep=comma
            ]{          ,A,B,C,D
                1,-2.27,-32.94,134.32,-19.92
                2,3.40,13.53,106.51,11.79
                3,-116.5,-6.43,208.59,-0.11
                4,-16.47,-2.38,299.76,-9.76
                }
    \end{table}
\end{document}

在此处输入图片描述

相关内容