我想定义一个接受两个输入的宏
\Make{a}{b~\theint}
其中宏定义为
```
\newcounter{int}
\newcommand{\Make}[2][]{
\thispagestyle{empty}
\par\medskip{
\textbf{\small #2 -- Fall 2020} \par
\setcounter{int}{1}
\loop
\input{#1}
\newpage
\addtocounter{int}{1}\ifnum\value{int}<8
\repeat
} \rmfamily}{\medskip}
```
但我收到错误,输入命令中的文件未找到
答案1
\Make
定义为接受两个参数,其中第一个参数是可选的,因为它具有以下结构:
\newcommand{\Make}[2][]{%
% <your definition>
}
因此,使用两个强制参数调用\Make{<a>}{<b>}
它将有效地忽略<b>
的一部分\Make
,并分配#1
(可选参数)一个空/空白值和#2
= <a>
。将您的定义更改为以下内容:
\newcommand{\Make}[2]{%
% <your definition>
}
还请注意此处的用法%
。参见%
行尾的百分号 ( ) 有什么用?(为什么我的宏会产生额外的空间?)