我有以下 MWE,它接受一个参数并逐字打印。我从以下位置获取了代码这回答。
\documentclass{article}
\makeatletter
\newcommand{\myverb}{%
\begingroup
% deactivate special characters
\let\do\@makeother
\dospecials
% change '{' and '}' back to normal
\catcode`\{=1
\catcode`\}=2
\@myverb%
}
\def\@myverb#1{%
\endgroup%
\texttt{#1}%
}
\makeatother
\begin{document}
\myverb{$\alpha$}
\end{document}
$\alpha$
页面上的收益。
我想定义一个宏\showcase
来打印用于文本的代码以及该代码的评估,即
\newcommand\showcase[1]{\myverb{#1} #1}
\showcase{$\alpha$}
我期望打印出来
$\alpha$ <actual-letter-alpha>
但它打印的是
<actual-letter-alpha> <actual-letter-alpha>
因为这个论点在被采纳之前就已经被扩展了\myverb
(我认为)。
我应该怎么做才能让宏按照我想要的方式运行?
笔记:我想在表格或小页面中使用此宏,以便展示我定义的宏。所以我需要能够使用它,比如&
在它们之间放置列分隔符,或者将它们分成两个小页面环境。
答案1
你需要\meaning
类似
\documentclass{article}
\def\foo#1>{}
\newcommand\showcase[1]{%
\def\tmp{#1}%
\texttt{\expandafter\foo\meaning\tmp} #1}
\begin{document}
\showcase{$\alpha$}
\end{document}