![更高级别的新命令或宏/命令模板生成器(命令模板),但在模板创建期间没有参数](https://linux22.com/image/452215/%E6%9B%B4%E9%AB%98%E7%BA%A7%E5%88%AB%E7%9A%84%E6%96%B0%E5%91%BD%E4%BB%A4%E6%88%96%E5%AE%8F%2F%E5%91%BD%E4%BB%A4%E6%A8%A1%E6%9D%BF%E7%94%9F%E6%88%90%E5%99%A8%EF%BC%88%E5%91%BD%E4%BB%A4%E6%A8%A1%E6%9D%BF%EF%BC%89%EF%BC%8C%E4%BD%86%E5%9C%A8%E6%A8%A1%E6%9D%BF%E5%88%9B%E5%BB%BA%E6%9C%9F%E9%97%B4%E6%B2%A1%E6%9C%89%E5%8F%82%E6%95%B0.png)
这个问题和答案是相关的,非常有帮助 但是我还需要帮助来创建在模板创建时不接受参数的模板,然后创建一个接受参数的宏?
例子:
\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}
是你所需要的全部。