在 pgfplotstable 中定义和使用列样式

在 pgfplotstable 中定义和使用列样式

是否可以定义自定义样式并使用它们来显示列?

我有 10 列,其中 3 列是字符串,其余是浮点数,带有一系列我定义的选项。我想定义两种样式(一种用于字符串,一种用于数字),并在 TeX 代码中为每列引用它们,而不是多次复制和粘贴它们。

答案1

是的,这当然是可能的,例如,pgfplotstable 表中的文本大小

在下面的代码中,相关部分是:

% reduce repetition of column styles
\pgfplotstableset{
    mittelmania siunitx column/.style={%
        /pgfplots/table/display columns/#1/.style={%
            string type,column type=S,
        }
    },
    mittelmania string column/.style={%
        /pgfplots/table/display columns/#1/.style={%
            string type,
        }
    }
}

然后与

mittelmania siunitx column/.list={0,2},
mittelmania string column/.list={1},

记住pgfplotstable列索引从 0 开始。

如果你使用

outfile=myfile.tex

然后你会看到输出如预期的那样:

\begin {tabular}{ScS}%
11.1&mittlemainia&12.1\\%
11.2&mittlemainia&12.2\\%
11.3&mittlemainia&12.3\\%
11.4&mittlemainia&12.4\\%
11.5&mittlemainia&12.5\\%
11.6&mittlemainia&12.6\\%
11.7&mittlemainia&12.7\\%
11.8&mittlemainia&12.8\\%
11.9&mittlemainia&12.9\\%
11.10&mittlemainia&12.10\\%
\end {tabular}%

以下是完整的 MWE:

% arara: pdflatex
% !arara: indent: {overwrite: yes}
\documentclass{article}

\usepackage{pgfplotstable}
\usepackage{siunitx}
\usepackage{filecontents}

\begin{filecontents}{data.txt}
    11.1  mittlemainia 12.1
    11.2  mittlemainia 12.2
    11.3  mittlemainia 12.3
    11.4  mittlemainia 12.4
    11.5  mittlemainia 12.5
    11.6  mittlemainia 12.6
    11.7  mittlemainia 12.7
    11.8  mittlemainia 12.8
    11.9  mittlemainia 12.9
    11.10 mittlemainia 12.10
\end{filecontents}

\pgfplotstableread{data.txt}\mittelmaniaData

% reduce repetition of column styles
\pgfplotstableset{
    mittelmania siunitx column/.style={%
        /pgfplots/table/display columns/#1/.style={%
            string type,column type=S,
        }
    },
    mittelmania string column/.style={%
        /pgfplots/table/display columns/#1/.style={%
            string type,
        }
    }
}

\begin{document}

\pgfplotstabletypeset[
    % remember that columns start at 0
    mittelmania siunitx column/.list={0,2},
    mittelmania string column/.list={1},
    % outfile=myfile.tex, % use this line to see the output
]{\mittelmaniaData}

\end{document}

相关内容