允许在使用 pgfkeys 时留有前导空格

允许在使用 pgfkeys 时留有前导空格

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},
}%

如果不需要额外的 那就太好了%。有没有简单的方法可以做到这一点?

笔记:

  • 这只是一个次要的不便,所以很容易忍受,但我想我应该问一下,以防我遗漏了什么。此外,tikzpictureaxis环境中的选项没有这些问题,所以我想有一些开关可以解决这个问题。

    但是,不需要花费太多宝贵的预测时间来解决这个问题——另外我还有一些其他的实际问题,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}

相关内容