为什么要用花括号将 \verb 块括起来?

为什么要用花括号将 \verb 块括起来?

为什么要用花括号括起 \verb 块?这会改变什么吗?请考虑以下示例:

The \verb|acmart| document is \verb|orange| and \verb|blue|. 

Use the {\verb|verb|} command to insert in-line code. 
You can also use {\verb|other commands like textt|}.

答案1

为什么要用花括号括住 \verb 块?

要限制花括号之间和之前某些其他命令的范围\verb

Lore {\color{red}\verb|ipsum|} dolor sit amet.

姆韦

但请注意,{...}组不能作为命令的参数。下一个代码(据称等效)会产生致命错误:

Lore \textcolor{red}{\verb|ipsum|} dolor sit amet.

LaTeX Error: \verb illegal in command argument.

这有改变什么吗?

如果组仅包含\verb命令,则无任何变化。如果组中还有其他命令,则可能会发生很大变化,如上所示,即使每个括号之前和/或之后都有一些空格。

LaTeX 用户学到的第一件事就是单词之间的多余空格会被忽略。但可能需要花更多时间注意,当空格之间有花括号时情况就不一样了:

x                   x  % ---> produces "x x"

x{ { { { { } } } } }x  % --->  produces "x                   x" 

您必须考虑到许多没有参数的宏可以吃掉下一个空格,但显然它们在左括号后面。一开始会让人困惑,因为许多命令不会这样做。即使您很清楚在每种情况下会发生什么,这也是愚蠢错误的根源。

因此,如果没有客观理由接受逐字文本(因为只需使用另一个命令对其进行修改),则避免使用它们会更安全,也更不容易出错。对于占用大量空间的宏,在左括号后留一个空格似乎是一个好主意,但更好的方法是在宏后留空组,然后跟一个空格(即:),{}但留下逐字文本。根据个人喜好,您可以{}简单地用\(或另一个空格,如~、 或\,等,如果需要)替换。

总而言之,最好举一个例子来说明这么多:

\documentclass[11pt]{article}
\begin{document}

Lore   \verb|ipsum| \par % OK (simpler, better?)  
Lore  {\verb|ipsum|}\par % OK
Lore{  \verb|ipsum|}\par % OK 
Lore { \verb|ipsum|}\par % Wrong! (space x2)

% but ...

\LaTeX     \verb|ipsum| \par % Wrong! (no space)  
\LaTeX    {\verb|ipsum|}\par % Wrong! (no space)
\LaTeX{    \verb|ipsum|}\par % OK
\LaTeX   { \verb|ipsum|}\par % OK
\LaTeX{}   \verb|ipsum| \par % OK
\LaTeX\    \verb|ipsum| \par % OK (simpler, better?)

% but ...

Lore {\Large     \verb|ipsum|}\par  % OK (simpler, better?)    
Lore {\Large    {\verb|ipsum|}}\par % OK
Lore {\Large{    \verb|ipsum|}}\par % Wrong  (space x2)
Lore {\Large {   \verb|ipsum|}}\par % Wrong  (space x2) 

\end{document}

相关内容