为什么 \verb 中有一个 \null?

为什么 \verb 中有一个 \null?

在中source2e.pdf,的定义\verb

\def\verb{\relax\ifmmode\hbox\else\leavevmode\null\fi
  \bgroup
    \verb@eol@error \let\do\@makeother \dospecials
    \verbatim@font\@noligs
    \@ifstar\@sverb\@verb}

\null非数学模型中有一个。\null就是\hbox{}。在这里使用它的目的是什么?

答案1

有一种情况\null会有所不同:

在一行的开头,TeX 会删除粘连和惩罚。如果\verb以不可见的空格开头,则会将其删除:

\documentclass{article}
\begin{document}
  \noindent x\\
  \begingroup
    % \let\null\relax
    \verb| |y
  \endgroup
\end{document}

\nullas\hbox{}可防止新行开头的空间被吞噬:

结果不包含 \null

如果\null被禁用,那么空间将被删除:

结果为 \null

\null有助于确保参数内的字符\verb不会意外消失。

免责声明:我不知道真实的原因,这是作者所\verb想的。

相关内容