我想要定义一个如下所示的简单宏:
\newcommand{\testcommand}[1]{
\includegraphics[]{pictures/#1.jpeg}
}
但这不起作用,因为它在参数#1
和.jpeg
!之间添加了一个空格。
例如:因为文件名为 ,所以\testcommand{figure}
出现错误。File `pictures/figure .jpeg' not found
figure.jpeg
有没有办法修复这个问题而不必在文件名中添加空格?
非常感谢您的回复。
答案1
您的定义中有两个不需要的空格:
\newcommand{\testcommand}[1]{% <--- here
\includegraphics[]{pictures/#1.jpeg}% <--- here
}
行尾始终算作空格。另一方面,行首的空格(和制表符)会被忽略。
如果你还输入
\testcommand{figure
}
您添加另一个空格。
定义中的两个不需要的空格只会影响文档中的间距,而调用中的空格会影响文件名,因为它与您调用的相同
\textcommand{figure }
}
但是,正如您所认为的那样,空格并非来自 之前的空格或制表符,而是来自 之后的结束行figure
。
由于 TeX 是一种排版系统,它显然对空格很敏感,因为它们是印刷文本的重要组成部分。
重要参考:
答案2
原来我写了一个新行:
\testcommand{figure
}
因此,该空格是一个制表符!