我想定义一个执行以下操作的变量
\newcounter{ver}
\newcommand{\version}[1][]{Version ~\thever ##1 \addtocounter{ver}{1}}
这个想法是,每当你写命令时,\version
它都会显示版本号,并在数字上加 1。但是当我写上面的命令时,我得到了一个错误“你不能使用宏参数...”
知道如何定义这样的变量吗
答案1
##
在定义中是#
并且#1
在定义中意味着第一个参数,所以在替换文本中##1
产生 ,所以给出一个你在那时#1
不能遇到的错误。#
你也可以更换
\addtocounter{ver}{1}
经过
\stepcounter{ver}
(注意命令前没有空格)
或更好
\refstepcounter{ver}
如果你使用,\refstepcounter
你将能够使用\version{zzz}\label{myver}.... see \ref{myver}