![相当于 \show,用于在文档中显示 LaTeX 代码](https://linux22.com/image/237821/%E7%9B%B8%E5%BD%93%E4%BA%8E%20%5Cshow%EF%BC%8C%E7%94%A8%E4%BA%8E%E5%9C%A8%E6%96%87%E6%A1%A3%E4%B8%AD%E6%98%BE%E7%A4%BA%20LaTeX%20%E4%BB%A3%E7%A0%81.png)
我正在寻找一个命令类似于显示,但希望在文档本身中输出。我发现的所有示例都在终端中产生输出,而不是在文档中产生输出。
\show
因此,我想用下面的适当的宏来替换的使用:
\documentclass{article}
\newcommand*{\MyFrac}{\ensuremath{\frac{\pi}{4}}}
\begin{document}
The macro \textbackslash MyFrac is set to \show\MyFrac.
\end{document}
我想要产生的输出是
The macro \MyFrac is set to \ensuremath{\frac{\pi}{4}}
我可能可以使用 verbatim 包,但我认为如果要更新它,就需要我在两个地方更改定义。我希望能够在一个地方定义宏并能够根据需要使用它,同时还能够显示与其关联的 LaTeX 代码。
答案1
对于零近似值,您可以使用\meaning
:
The macro \textbackslash MyFrac is set to {\ttfamily\meaning\MyFrac}
产量
The macro \MyFrac is set to macro:->\ensuremath {\frac {\pi }{4}}.
如果你知道你无论如何都只能在宏上调用它,那么你可以扩展它以剥离宏:->位(它还将列出参数等),就像这样,使用 LaTeX 内核命令:
\makeatletter
\newcommand\meaningbody[1]{%
{\ttfamily
\expandafter\strip@prefix\meaning#1}%
}
\makeatother
\begin{document}
The macro \textbackslash MyFrac is set to \meaningbody\MyFrac.
\end{document}
答案2
\textbackslash
您还可以避免
\usepackage{shortvrb}
\AtBeginDocument{\MakeShortVerb{\|}}
现在你可以写|\MyFrac|
。分隔符的字符也可以有其他选择