我知道(通过\hspace 与 \hspace*)该命令\hspace*
调用内部命令
\vrule width 0pt \nobreak \hskip 1cm \hskip 0pt plus 0pt minus 0pt
但使用了哪些命令\hspace
?有没有办法查看 的实现\hspace
?
答案1
您可以使用\show
或\meaning
查看单个命令,但我通常latex.ltx
在我的 emacs(编辑器)缓冲区中,您可以使用 kpsewhich 找到您的副本(或者只需在任何 latex 文件的日志中查找文件路径等article.cls
)
在我的系统上
$ kpsewhich latex.ltx
/usr/local/texlive/2014/texmf-dist/tex/latex/base/latex.ltx
在第 1308 行你会看到
\DeclareRobustCommand\hspace{\@ifstar\@hspacer\@hspace}
\def\@hspace#1{\hskip #1\relax}
\def\@hspacer#1{\vrule \@width\z@\nobreak
\hskip #1\hskip \z@skip}
在文件中搜索将显示\hspace
除了这些行之外没有出现的内容,因此格式中没有定义命令\hspace
在其定义中使用。
您还可以通过以下方式查看排版后的 PDF 版本:
texdoc source2e
答案2
\makeatletter
\show\hspace
% \hspace=macro: ->\protect \hspace .
\expandafter\show\csname hspace \endcsname
% \hspace =\long macro: ->\@ifstar \@hspacer \@hspace .
\show\@hspace
% > \@hspace=macro: #1->\hskip #1\relax .
所以它\hskip
被调用了。\expandafter\show\csname
诀窍之前已经解释过了。