Pgfplotstable 一行以粗体显示

Pgfplotstable 一行以粗体显示

考虑到这个 MWE,我希望在行上获得粗体样式。highlight的样式适用于列,但不适用于行。

\documentclass{standalone}
\usepackage{pgfplotstable}

\begin{document}
\pgfplotstableset{highlight/.append style={
    postproc cell content/.append code={
            \pgfkeysalso{@cell content=\textbf{##1}}%
    }
}}
\pgfplotstabletypeset[
   every first column/.style={highlight,/pgf/number format/sci},
   every last row/.style={highlight,/pgf/number format/sci}, %does not work
    col sep=&,row sep=\\]{
  colA & colB & colC \\
  11   & 12   & 13   \\
  21   & 22   & 23   \\
}
\end{document}

您有什么想法吗?这似乎postproc cell content对行不起作用。

编辑

另一个问题是\pgfkeysalso删除sci格式....

\documentclass{standalone}
\usepackage{pgfplotstable}

\begin{document}
\pgfplotstableset{hhb/.append style={
    postproc cell content/.append code={
            \pgfkeysalso{@cell content=\textbf{##1}}%
    }
}}
\pgfplotstabletypeset[
 every first column/.style={highlight,/pgf/number format/sci},
 % every last row/.append style={highlight},
 %every first column/.style={sci,postproc cell content/.append style=    {/pgfplots/table/@cell content/.add={\bf}{coucou}}},
  col sep=&,row sep=\\]{
 colA & colB & colC \\
 11   & 12   & 13   \\
 3E+4   & 22   & 23   \\
}
\end{document}

编辑2:

为了避免前面的问题,语法必须是:

\pgfplotstableset{hhc/.style={
postproc cell content/.append style={
            /pgfplots/table/@cell content/.add={$\bf}{$},
        }
        }}

但这只适用于列,不适用于行。

编辑3:

使第 I 行显示为粗体的解决方案:

\pgfplotstableset{
    highlightrow/.style={
        postproc cell content/.append code={
           \count0=\pgfplotstablerow
            \advance\count0 by1
            \ifnum\count0=#1
            \pgfkeysalso{@cell content/.add={$\bf}{$}}
               %\pgfkeysalso{@cell content=\textbf{##1}}%
            \fi
        },
    },
}

使用示例:

\pgfplotstabletypeset[ highlightrow={2},
    col sep=&,row sep=\\]{
  colA & colB & colC \\
  11   & 12   & 13   \\
  3E+4   & 22   & 23   \\
}

答案1

你是对的,postproc 选项仅适用于特定于列的选项。

为了限制它们的应用到特定的行,您必须使它们依赖于行索引\pgfplotstablerow

\documentclass{standalone}
\usepackage{pgfplotstable}

\begin{document}
\pgfplotstableset{
    highlight/.append style={
        postproc cell content/.append code={
                \pgfkeysalso{@cell content=\textbf{##1}}%
        },
    },
    highlight last row/.style={
        postproc cell content/.append code={
            \count0=\pgfplotstablerow
            \advance\count0 by1
            \ifnum\count0=\pgfplotstablerows
                \pgfkeysalso{@cell content=\textbf{##1}}%
            \fi
        },
    },
}
\pgfplotstabletypeset[
   every first column/.style={highlight,/pgf/number format/sci},
   highlight last row,
   every last row/.style={/pgf/number format/sci},
    col sep=&,row sep=\\]{
  colA & colB & colC \\
  11   & 12   & 13   \\
  21   & 22   & 23   \\
}
\end{document}

在此处输入图片描述

手册上关于这个特定方面的说明相当不清楚;我改进了手册并引入了检测此类问题的检查。

相关内容