pgfplotstable 如何读取数据文件中的 LaTeX 代码?

pgfplotstable 如何读取数据文件中的 LaTeX 代码?

我想将一些 LaTeX 数学代码放在要读取的文件的列中pgfplotstable。与如何在 pgfplotstable 中使用下划线?,我希望对列进行格式化,以便 LaTeX 能够解释其包含的下标和符号。例如,我有一个如下所示的数据文件:

{Time}   {$\theta$}   {Fit to $C_a \tan 3\theta$}
0        0.2          0.195
...

每次我尝试用读取这样的文件时pgfplotstable,都会收到错误:

! Missing \endcsname inserted.
<to be read again>
                   \mathop
l.101       }
             ^^M

是否可以将格式嵌入到数据文件的列标题中?如果可以,该怎么做?

答案1

pgfplotstable假定列名不包含可扩展的材料。

column name其处理“显示名称”的方式是使用期间使用的键明确提供显示名称\pgfplotstabletypeset

pgfplotstable不支持保护列名中的可扩展内容。将来不太可能自动支持此类保护(因为在\edef访问列的常见用例期间无法进行保护)。

因此,答案是:不,这通常是不受支持的。就是这样。

您可以破解该处理程序,使其执行基本的转义 - 风险自负。除非您知道自己在做什么,也知道为什么要这样做,否则您应该跳过此部分。不要怪我。如果您想排版表格,以下代码会起作用:

\let\ESCAPE=\string
\pgfplotstabletypeset[
    every head row/.style={before row={\global\let\ESCAPE=\relax}},
]{
{Time}   {$\ESCAPE\theta$}   {Fit to $C_a \ESCAPE\tan 3\ESCAPE\theta$}
0        0.2          0.195
}

它基于\string\macro产生字符串序列 "\ macr o" 的事实。显然,对于这种方法,您需要更改输入表的标题。

相关内容