更高级别的新命令或宏/命令模板生成器(命令模板),但在模板创建期间没有参数

更高级别的新命令或宏/命令模板生成器(命令模板),但在模板创建期间没有参数

这个问题和答案是相关的,非常有帮助 但是我还需要帮助来创建在模板创建时不接受参数的模板,然后创建一个接受参数的宏?

例子:

\def\myStyleOne#1{\textbf{#1:}}
\def\myStyleTwo#1{\textit{#1:}}

\newcommand{\highlightWord}{ create_command_macro(myStyleOne)  }
\newcommand{\highlightSentence}{ create_command_macro(myStyleTwo)  }

% usage:
\highlightWord{asdf}
\highlightSentence{foo bar baz}

输出:

在此处输入图片描述

梅威瑟:

\documentclass{article}

\def\myStyleOne#1{\textbf{#1:}}
\def\myStyleTwo#1{\textit{#1:}}

% desired outcome for definition:
%\newcommand{\highlightWord}{ create_command_macro(myStyleOne)  }
%\newcommand{\highlightSentence}{ create_command_macro(myStyleTwo)  }

% current definition:
\def\highlightWord#1{\textbf{#1:}}
\def\highlightSentence#1{\textit{#1:}}


\begin{document}

\highlightWord{asdf}\\

\highlightSentence{foo bar baz}\\

\end{document}

谢谢您的帮助。

答案1

你不需要在外部公布的命令中声明参数,因此

\newcommand{\highlightWord}{\myStyleOne}
\newcommand{\highlightSentence}{\myStyleTwo}

\documentclass{article}

% not \def
\newcommand*\myStyleOne[1]{\textbf{#1:}}
\newcommand*\myStyleTwo[1]{\textit{#1:}}

\newcommand{\highlightWord}{\myStyleOne}
\newcommand{\highlightSentence}{\myStyleTwo}


\begin{document}

\highlightWord{asdf}% no badness 10000!\\

\highlightSentence{foo bar baz}% no badness 10000!\\

\end{document}

是你所需要的全部。

相关内容