我有以下形式的变量: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 已经提到了\@nameuse
LaTeX 内核。该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}