在我的 LaTeX 文档中,我经常需要表格中的特定值。因此我可以定义以下宏:
\newcommand{\values}{\pgfplotstablegetelem{0}{0}\of\mydata\pgfplotsretval}
pgfplotstable 手册建议不要在循环中使用此命令:
注意力:如果可能的话,请避免在循环内使用此命令。它相当慢。
明智的做法是只计算一次值\value
,然后根据需要多次使用它,而不会减慢编译速度。最好的方法是什么?
这是一个示例代码。
\documentclass[border=2mm]{standalone}
\usepackage{pgfplotstable}
\pgfplotsset{compat=1.8}
\pgfplotstableread[col sep=comma]{
1,15,53
5,74,12
}\mydata
\renewcommand{\value}{\pgfplotstablegetelem{0}{0}\of\mydata\pgfplotsretval}
\begin{document}
This is the first values : \values
\end{document}
答案1
当你这样做
\pgfplotstablegetelem{0}{0}\of\mydata
宏\pgfplotsretval
仅扩展为计算值。因此,您只需将宏定义为的当前扩展\pgfplotsretval
:
\documentclass[border=2mm]{standalone}
\usepackage{pgfplotstable}
\pgfplotsset{compat=1.8}
\pgfplotstableread[col sep=comma]{
1,15,53
5,74,12
}\mydata
\pgfplotstablegetelem{0}{0}\of\mydata
\makeatletter
\@ifdefinable{\myvalue}{\let\myvalue\pgfplotsretval}
\makeatother
\begin{document}
This is the first value: \myvalue
\end{document}
重要警告
\renewcommand
如果您不清楚自己在做什么,请不要使用。宏\value
是 LaTeX 内核的一个非常重要的功能。重新定义它会破坏大量内部功能。