编辑:我认为这是我如何才能看到 \LaTeX 命令的“实现”?。
我想查看 hyperref 命令的代码\autoref
,因此创建了这个简单的文档:
\documentclass{article}
\usepackage{hyperref}
\begin{document}
\show\autoref
\end{document}
但是,在日志输出中,我看到的不是代码,而是:
> \autoref=macro:
->\protect \autoref .
l.4 \show\autoref
将第 4 行更改为\show\section
显示的代码\section
与预期一致:
> \section=\long macro:
->\@startsection {section}{1}{\z@ }{-3.5ex \@plus -1ex \@minus -.2ex}{2.3ex \@plus .2ex}{\normalfont \Large \bfseries }.
l.4 \show\section
我如何才能获得的实际代码\autoref
?
答案1
那是\autoref
如果你想查看内部命令的代码(\autoref_
带空格),那么
{\let\protect\show\autoref}
作品
> \autoref =macro:
->\leavevmode \@ifstar {\HyRef@autoref \@gobbletwo }{\HyRef@autoref \hyper@@lin
k }.
\autoref ->\protect \autoref
l.4 {\let\protect\show\autoref
}
答案2
tex faq 中对此进行了描述:https://texfaq.org/FAQ-ltxcmds
用于显示内部命令的 expl3-variant(正如 David 提到的,以空格结尾):
\documentclass{article}
\usepackage{hyperref,expl3}
\begin{document}
\ExplSyntaxOn\cs_show:c{autoref~}\ExplSyntaxOff
\end{document}