使用合并的变量名

使用合并的变量名

我有以下形式的变量:dim1a、dim1b、dim1c...;dim2a、dim2b、dim2c...

我想创建一个\newcommand以维度为参数但为常数 a/b/c。

\documentclass[12pt,a4paper]{article}

\begin{document}

\newcount\lengtha \lengtha = 500
\newcount\lengthb \lengthb = 800
\newcount\speeda \speeda = 100
\newcount\speedb \speedb = 600

\newcommand{\dim}[1]{\#1a}

\divide\dim{length} by 10 
\divide\dim{speed} by 10 

\end{document}

我不知道如何在没有乳胶的情况下将字符串“\speed”传输到表单\speeda以寻找(不存在的)变量\speed

答案1

该命令\newcount是 TeX 原语。您应该改用 LaTeX2e 命令\newcounter。但是该命令\newcounter只能处理整数表达式。根据您的名称定义,我猜您想使用维度。因此正确的命令是\newlength

如果你想计算浮点数,我推荐使用 expl3 模块l3fp或较旧的包fp。该包pgf提供了一些用于计算的等效材料。

答案2

Stephan 已经提到了\@nameuseLaTeX 内核。该etoolbox包提供了一个用户级命令 \csuse来生成控制序列标记:

\documentclass[12pt,a4paper]{article}
\usepackage{etoolbox}

\begin{document}

\newcount\lengtha \lengtha = 500
\newcount\lengthb \lengthb = 800
\newcount\speeda \speeda = 100
\newcount\speedb \speedb = 600

\newcommand{\mydim}[1]{\csuse{#1a}}

\divide\mydim{length} by 10 
\divide\mydim{speed} by 10 

\end{document}

相关内容