有时我必须排版具有嵌套定义的文档,如下所示:
\def\foo{\ensuremath{foo}\xspace}
\def\baz{\ensuremath{\beta}\xspace}
\def\qux{{\ensuremath{{\foo\mskip -3mu/\mskip -2mu\baz\mskip 2mu}}}\xspace}
\def\quux{\kern 0.2em\overline{\kern -0.2em quux}{}\xspace}
\def\corge{\ensuremath{\quux^{*0}}\xspace}
\newcommand{\grault}{\ensuremath{a^b_c \to \qux \corge}\xspace}
由于某些我无法解释的保密义务的原因,我不能在文档的某些部分使用直接嵌套的宏,例如\qux
,\quux
等等,而必须使用它们的完整定义。因此,我的目标是自动获取以下宏:
%\def\foo{\ensuremath{foo}\xspace}
%\def\baz{\ensuremath{\beta}\xspace}
%\def\qux{{\ensuremath{{\foo\mskip -3mu/\mskip -2mu\baz\mskip 2mu}}}\xspace}
%\def\quux{\kern 0.2em\overline{\kern -0.2em quux}{}\xspace}
%\def\corge{\ensuremath{\quux^{*0}}\xspace}
%\newcommand{\grault}{\ensuremath{a^b_c \to \qux \corge}\xspace}
\def\foo{\ensuremath{foo}\xspace}
\def\baz{\ensuremath{\beta}\xspace}
\def\qux{{\ensuremath{{\ensuremath{foo}\xspace\mskip -3mu/\mskip -2mu\ensuremath{\beta}\xspace\mskip 2mu}}}\xspace}
\def\quux{\kern 0.2em\overline{\kern -0.2em quux}{}\xspace}
\def\corge{\ensuremath{\kern 0.2em\overline{\kern -0.2em quux}{}\xspace^{*0}}\xspace}
\newcommand{\grault}{\ensuremath{a^b_c \to {\ensuremath{{\ensuremath{foo}\xspace\mskip -3mu/\mskip -2mu\ensuremath{\beta}\xspace\mskip 2mu}}}\xspace \ensuremath{\kern 0.2em\overline{\kern -0.2em quux}{}\xspace^{*0}}\xspace}\xspace}
有办法做到这一点吗?
附言:我知道这些宏的“扩展”版本很糟糕。
平均能量损失
\documentclass{article}
\usepackage{xspace}
\def\foo{\ensuremath{foo}\xspace}
\def\baz{\ensuremath{\beta}\xspace}
\def\qux{{\ensuremath{{\foo\mskip -3mu/\mskip -2mu\baz\mskip 2mu}}}\xspace}
\def\quux{\kern 0.2em\overline{\kern -0.2em quux}{}\xspace}
\def\corge{\ensuremath{\quux^{*0}}\xspace}
\newcommand{\grault}{\ensuremath{a^b_c \to \qux \corge}\xspace}
\begin{document}
\grault
\end{document}