Pgfplotstable-在分配列名中使用条件语句

Pgfplotstable-在分配列名中使用条件语句

我目前正在通过 '\pgfplotstabletypeset` 加载表格,我发现我可以像这样操作标题:

\documentclass{article}
\usepackage{pgfplotstable}
\usepackage{filecontents}

\begin{filecontents*}{data.csv}
    a b c d
    1 4 5 1
    2 3 1 5
    3 5 6 1
    4 1 4 9
    5 3 4 7
\end{filecontents*}

\begin{document}
    \pgfplotstabletypeset[
        assign column name/.style= {%
            /pgfplots/table/column name={#1 $\left[\frac{1}{\textrm{s}}\right]$}
        },
    ] {data.csv}
\end{document}

现在我只想更改列 > 0 的列名(因此第一个应该保持原样)。但是,我创建用于\pgfplotstablecol检索列索引的条件语句的所有尝试都失败了。

我想要的是这样的:\documentclass{article} \usepackage{pgfplotstable} \usepackage{filecontents}

\begin{filecontents*}{data.csv}
    a b c d
    1 4 5 1
    2 3 1 5
    3 5 6 1
    4 1 4 9
    5 3 4 7
\end{filecontents*}

\begin{document}
    \pgfplotstabletypeset[
        assign column name/.style= {%
            if first column -> /pgfplots/table/column name={#1}
            else -> /pgfplots/table/column name={#1 $\left[\frac{1}{\textrm{s}}\right]$}
        },
    ] {data.csv}
\end{document}

解决这个问题的正确方法是什么?

答案1

使用自己的计数器,解决方案相当简单:

\documentclass{article}
\usepackage{pgfplotstable}
\usepackage{filecontents}

\begin{filecontents*}{data.csv}
    a b c d
    1 4 5 1
    2 3 1 5
    3 5 6 1
    4 1 4 9
    5 3 4 7
\end{filecontents*}

\newcount\Ravenfoo

\begin{document}
\pgfplotstabletypeset[
  assign column name/.style = {%
    /pgfplots/table/column name = {
      \ifnum\Ravenfoo>0%
          #1 $\left[\frac{1}{\textrm{s}}\right]$
      \else
        \global\advance\Ravenfoo by 1\relax
        #1
      \fi%
    }
  },
] {data.csv}
\end{document}

相关内容