为什么要用花括号括起 \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}