我想定义一个\mydef
执行如下操作的命令:
\mydef{\foo{bar}}
生产
\def\foo{bar} \verb|\foo=bar|
命令:
\newcommand{\mydef}[1]{\def #1}
执行第一位,但我似乎无法在命令中逐字使用 - 我如何访问内容#1
?在这种情况下,如果我可以丢弃第一个字符,我会很高兴......
答案1
您可以使用\string
将命令打印为字符串,并\strip@prefix
结合\meaning
显示宏内容:
\documentclass{article}
\makeatletter
\newcommand*{\mydef}[2]{%
\def#1{#2}%
{\ttfamily\string#1=\expandafter\strip@prefix\meaning#1}%
}
\makeatother
\begin{document}
\mydef\foo{bar}
\end{document}