我正在尝试创建一个代表比文本大一个单词的新命令。
\newcommand {\Large}{\Large} is that right?
然后我必须在其中集成 top 命令
\newcommand{\smindexx}[2]{#2 \index{#2}}
我使用smindexx
如下\smindexx{\ITerm}{Test}
并且测试应该比其他词更大。
我该怎么做,有人能给我点想法吗?
答案1
您的方法存在一些问题:
首先,\newcommand
获取括号中的参数数量[2]
,然后将参数引用为#1
和#2
。因此,你的第二个代码段应该是
\newcommand{\smindexx}[2]{#1 \index{#2}}
并会被调用
\smindexx{\ITerm}{Test}
所以这部分你是对的。
接下来,正如 David Carliste 所评论的那样,定义\Large
as\Large
是多余的,可能会导致循环。此外,您不能使用\newcommand
for 现有命令,但需要\renewcommand
。
如果你只是想要测试,\Large
你可以简单地嵌套命令:
\newcommand{\smindexx}[2]%
{%
#2%
\index{%
\Large{#2}%
}%
}
缩进是多余的,但我希望它能阐明思路。renewcommand 的部分\Large
是不必要的。
答案2
我猜(但这只是一个猜测,因为问题的细节太少)你想要
\newcommand{\smindexx}[2]{{\Large#1}\index{#2}}
然后\smindexx{abc}{xyz}
将在此点以大号文本排版 abc 并制作索引条目xyz
。
正如评论中澄清的那样,你实际上想要
\newcommand{\smindexx}[2]{{\Large#2}\index{#2}}
并重复使用#2
两次丢弃#1
。