pgfkeys
似乎没有问题,例如,改编来自如何创建带有键值的命令?,我可以定义一个键text=
如下:
\pgfkeys{ % <-- NOTE: Space here is ok
/MyMacro/.is family,
/MyMacro,
default MyMacro options/.style={ % <-- NOTE: Space here is ok
text={},
},
text/.store in = \Text,
}
一切按预期进行。然而,当我尝试实际使用我需要用这个键来抑制前导空格:
\MyMacro{% <-- How to eliminate requiring this?
text={Some Text},
}%
如果不需要额外的 那就太好了%
。有没有简单的方法可以做到这一点?
笔记:
这只是一个次要的不便,所以很容易忍受,但我想我应该问一下,以防我遗漏了什么。此外,
tikzpicture
和axis
环境中的选项没有这些问题,所以我想有一些开关可以解决这个问题。但是,不需要花费太多宝贵的预测时间来解决这个问题——另外我还有一些其他的实际问题,
pgfkeys
所以如果需要的话,你可以推迟解决这些问题(只需构建 MWE)。
代码:
\documentclass{article}
\usepackage{tikz}
\pgfkeys{ % <-- NOTE: Space here is ok
%% https://tex.stackexchange.com/a/34318/4301
/MyMacro/.is family,
/MyMacro,
default MyMacro options/.style={ % <-- NOTE: Space here is ok
text={},
},
text/.store in = \Text,
}
\newcommand{\MyMacro}[1]{%
\pgfkeys{/MyMacro/.cd, default MyMacro options, #1}%
\Text
}%
\begin{document}
\MyMacro{% <-- How to eliminate requiring this?
text={Some Text},
}%
\end{document}
答案1
的定义文本\MyMacro
在逗号和后面的 之间有一个空格#1
。
在向 提供参数时,请再提供一个空格\MyMacro
。
因此将有两个连续的空格标记,而看起来鍵盤确实“期望”最多一个空间标记。
因此,我建议删除逗号之间和#1
定义文本内的空格\MyMacro
:
\documentclass{article}
\usepackage{tikz}
\pgfkeys{ % <-- NOTE: Space here is ok
%% http://tex.stackexchange.com/a/34318/4301
/MyMacro/.is family,
/MyMacro,
default MyMacro options/.style={ % <-- NOTE: Space here is ok
text={},
},
text/.store in = \Text,
}
\newcommand{\MyMacro}[1]{%
\pgfkeys{/MyMacro/.cd, default MyMacro options,#1}%<-space between comma and #1 removed
\Text
}%
\begin{document}
\MyMacro{
text={Some Text},
}%
\end{document}