![通过 csname 引用已加载的 pgfplotstable](https://linux22.com/image/436155/%E9%80%9A%E8%BF%87%20csname%20%E5%BC%95%E7%94%A8%E5%B7%B2%E5%8A%A0%E8%BD%BD%E7%9A%84%20pgfplotstable.png)
我希望能够使用\csname
来操作之前通过 分配给宏的表\pgfplotstableread
。但是,尝试间接使用宏会编译失败。以下是 MWE:
\documentclass{standalone}
\usepackage{pgfplotstable}
\begin{document}
\pgfplotstableread{
a b
1 4
2 5
3 6
}{\testTable}
% OK
%\pgfplotstabletypeset{\testTable}
% Fails to compile
\pgfplotstabletypeset{\csname testTable\endcsname}
\end{document}
\pgfplotstabletypeset
当尝试编译使用的命令版本时\csname
,我收到以下错误:
! Undefined control sequence.
\testTable ->\pgfpl@@
{a}\pgfpl@@ {b}
l.18 ...stabletypeset{\csname testTable\endcsname}
是否可以以这种方式引用已加载的 pgfplotstable?我还尝试将涉及的命令替换\csname
为
\newcommand{\myTable}{\testTable}
\pgfplotstabletypeset{\myTable}
只会得到相同类型的错误消息。
答案1
您可以在调用之前构造 csname \pgfplotstabletypeset
:
\documentclass{standalone}
\usepackage{pgfplotstable}
\begin{document}
\pgfplotstableread{
a b
1 4
2 5
3 6
}{\testTable}
% OK
%\pgfplotstabletypeset{\testTable}
% Fails to compile
\expandafter\pgfplotstabletypeset\expandafter{\csname testTable\endcsname}
\end{document}