pgfplotstable:为什么在样式中使用时“postproc cell content”不能正常工作?

pgfplotstable:为什么在样式中使用时“postproc cell content”不能正常工作?

我使用 pgfplotstable 并希望对特定列进行后格式化。除其他事项外,我需要复制其内容。我的问题是,postproc cell content作为直接参数,它工作正常,pgfplotstabletypeset但当我尝试将其放入样式中以便可以将其用于多个表时,它却不行。

\documentclass[11pt]{article}
\usepackage{pgfplotstable}

\begin{document}
\begin{table}
\centering

\pgfplotstableread{
A   B   C
1   3.5 2.4
2   1.2 6.7
3   2.1 3.3
}\data

\pgfplotstableset{
 debug,
 mytable/.style={
  columns={A,B,C},
  columns/A/.style={string type,
                    postproc cell content/.style={
                     @cell content=\ensuremath{##1 \leftrightarrow ##1}
                    }
                   },
 }
}

\pgfplotstabletypeset[
    mytable,
%    columns/A/.style={string type,
%                      postproc cell content/.style={
%                       @cell content=\ensuremath{##1 \leftrightarrow ##1}
%                      }
%                     }
]{\data}

\caption{Some important table}
\end{table}

\end{document}

当我启用注释行时,它看起来应该如此,如果没有它们,原始数字就会丢失。

抱歉,无法发布图片...

答案1

这有点难以解释(你甚至可以称其为错误),但每次参数通过样式时,扩展都会#丢失。所以你需要四个#字符。

\documentclass[11pt]{article}
\usepackage{pgfplotstable}

\begin{document}
\begin{table}
\centering

\pgfplotstableread{
A   B   C
1   3.5 2.4
2   1.2 6.7
3   2.1 3.3
}\data

\pgfplotstableset{
 debug,
 mytable/.style={
  columns={A,B,C},
  columns/A/.style={string type,
                    postproc cell content/.style={
                     @cell content=\ensuremath{####1 \leftrightarrow ####1}
                    }
                   },
 }
}

\pgfplotstabletypeset[
    mytable,
%    columns/A/.style={string type,
%                      postproc cell content/.style={
%                       @cell content=\ensuremath{##1 \leftrightarrow ##1}
%                      }
%                     }
]{\data}

\caption{Some important table}
\end{table}

\end{document}

在此处输入图片描述

相关内容