重新定义 \LaTeX 命令

重新定义 \LaTeX 命令

我如何才能看到 \LaTeX 命令的“实现”?如何书写 (La)TeX (带括号) [或任何其他与 TeX 相关的徽标],我了解到\LaTeX实现为

L\kern -.36em{\sbox \z@ T\vbox to\ht \z@ {\hbox {\check@mathfonts \fontsize \sf@size \z@ \math@fontsfalse \selectfont A}\vss }}\kern -.15em\TeX

\kern参数需要根据所使用的字体进行调整,正如 Knuth 在TUGboat 文章。但是,当尝试在上面的代码中更改该参数时,我收到错误! Undefined control sequence. <argument> \z

我怎样才能调整命令(以及命令)\kern的值?\LaTeX\TeX

\documentclass{article}
\renewcommand{\LaTeX}{L\kern -.20em{\sbox \z@ T\vbox to\ht \z@ {\hbox {\check@mathfonts \fontsize \sf@size \z@ \math@fontsfalse \selectfont A}\vss }}\kern -.10em\TeX}

\begin{document}
\LaTeX
\end{document}

答案1

正在使用的命令是\z@,而不是\z。将重新定义包装在\makeatletter/ 中\makeatother

\documentclass{article}
\makeatletter
\renewcommand{\LaTeX}{L\kern -.20em{\sbox \z@ T\vbox to\ht \z@ {\hbox {\check@mathfonts \fontsize \sf@size \z@ \math@fontsfalse \selectfont A}\vss }}\kern -.10em\TeX}
\makeatother

\begin{document}
\LaTeX
\end{document}

相关内容