我正在尝试调试\newcommand
我正在研究的一些宏,我已经将其归结为这个最小示例。它所做的只是定义两个长度,然后设置它们的值 - 它不会将它们用于任何事情。
\documentclass{article}
\newlength{\xscale}
\newlength{\yscale}
\newcommand{\setscale}[2] {
\setlength{\xscale}{#1}
\setlength{\yscale}{#2}
}
\newcommand{\mystyle} {
\setscale{0.25cm}{0.18cm}
}
\begin{document}
foo, \mystyle%
bar
foo, \setlength{\xscale}{0.25cm}\setlength{\yscale}{0.18cm}%
bar
\end{document}
输出如下所示:
\setlength
为什么当我将命令包装在 内时会插入大空格\newcommand
,而不包装时则不会?我该如何定义这些命令,以便它们设置长度而不在文档中插入额外空间?
答案1
以下是部分自我回答。如果我将定义\mystyle
改为
\newcommand{\mystyle} {
\setlength{\xscale}{0.25cm}
\setlength{\yscale}{0.18cm}
}
那么我仍然会遇到这个问题,但如果我将其更改为
\newcommand{\mystyle} {%
\setlength{\xscale}{0.25cm}%
\setlength{\yscale}{0.18cm}%
}
然后它就消失了。所以它与我的宏代码中的换行符有关。我想,我试图编写布局合理的代码,这对我来说是值得的。