在 TeX 中,如何定义数据列表,以便我可以使用数值参数来调用列表中的一个条目

在 TeX 中,如何定义数据列表,以便我可以使用数值参数来调用列表中的一个条目

我希望能够有一个类似这样的定义宏:

\def\testmacro[1]{[54.7],[74.1],[98.5]}

当我打电话的时候

\testmacro{2}, 

在一份文件中,

74.1 

打印出来。这可能吗?

背景:

我正在编写一个 C++ 程序,它将数据导出到 TeX 文件。我有最多 20 个项目(但有时更少),它们有各种测量值,例如压力。此 TeX 文件将调用一个模板,该模板将指定实际打印不同数据的方式。在模板中,我将指定要打印第二项的压力这里

我很想说:

\def\pressure1{54.7}
\def\pressure2{74.1}

等等,但 Tex 无法处理宏名称中的数字。有什么建议吗?

谢谢,本

答案1

在此处输入图片描述

您可以在命令名称中使用数字,只需间接或通过非标准 catcode 访问它们。

\newcount\zcount
\def\pressure{\afterassignment\zpressure\zcount}
\def\zpressure{\csname\string\pressure\the\zcount\endcsname}
\def\zdef#1#2#{\expandafter\def\csname\string#1#2\endcsname}

\zdef\pressure1{54.7}
\zdef\pressure2{74.1}
\zdef\pressure3{98.5}



Pressure 2 is \pressure2.

\bye

答案2

我的解决方案基于 Kpym 的回答

    \documentclass[varwidth,border=7]{standalone}
    \usepackage{pgfmath}
    \begin{document}

    \def\pressureData{{1.2, 3.3, 2.3 ,3.4}}
    \def\pressure#1{\pgfmathparse{\pressureData[#1]}\pgfmathresult}

    \pressure0

    \pressure1

    \pressure2

    \pressure3      

    \end{document}

在此处输入图片描述

相关内容