如何显示命令 \autoref 的代码?

如何显示命令 \autoref 的代码?

编辑:我认为这是我如何才能看到 \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}

相关内容