我想将一些 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" 的事实。显然,对于这种方法,您需要更改输入表的标题。