文本中的 LaTeX 命令

文本中的 LaTeX 命令

我如何在 LaTeX 中写出诸如“ Note that we have used \renewcommand several times ..”之类的内容?这里没有什么特殊的\renewcommand,它可以是\usepackage\textit或任何 LaTeX 命令。

答案1

任何时候,如果您想要指定一些文本,而不想将其作为 LaTeX 命令进行评估,则应将其包装\verb在行内逐字文本中,或者对于多行文本,使用verbatim环境。它还会将文本设置为文档的默认打字机字体系列(通常是 Computer Modern Typewriter 或具有替代编码的等效字体)。您需要这样做,因为 Computer Modern Roman(又名“TeX 字体”)的默认编码在这些字符位置中不包含 <、>、|、{、} 或 \ 的预期字符。

例如,你可以写:

Note that we have used \verb+\renewcommand+ several times

请注意,\verb其参数的语法与大多数 LaTeX 命令不同:它将采用其后的下一个字符并将所有内容视为逐字逐句,直到出现相同字符的下一个实例。¹

verbatim环境非常简单,不仅会保留字符,还会保留任何换行符³。在这两种环境中,空格都会按输入的方式重现。

由于 LaTeX 解析其参数的方式,您不能将\verbverbatim环境放入另一个命令的参数中。⁴ 在该上下文中设置逐字文本的最完整方法是使用\texttt和输入任何特殊字符,例如

\char`\\

对于任何应输出的特殊字符,请在特殊字符后加上\char反引号和反斜杠。⁵


  1. 对此有一些例外。例如,您不能像这样使用{}。如果您使用字母,则\verb字母²和字母²之间必须有一个空格,空格显然不能用作分隔符,Unicode 字符可以在 XeLaTeX 或 LuaLaTeX 中使用,但不能在 pdfLaTeX 中使用,等等。大多数人坚持使用少数字符作为分隔符。

  2. 对于更有经验的 LaTeX 用户来说,您是否考虑过打字的可能性\verb m\foom

  3. 参数中不能有换行符,\verb这是有道理的,因为它是用于行内使用的,而换行符是没有意义的。LaTeX 假设如果它在参数中发现换行符\verb,那一定是错误,并会给出错误。

  4. 严格来说,这并不正确。\index将允许您输入\verb其参数。有一个包允许\footnote采用以允许其包含的方式解析的参数\verb(虽然我忘记了它叫什么),尽管这是一种脆弱的做法,容易意外中断。还有一个文档类\footnote以相同的方式进行修改,这是令人厌恶的。文档类不应以这种方式更改标准命令的行为。

  5. 也许有办法,但我无法弄清楚如何逐字逐句地制作该特定字符串的内联 markdown 文本。

相关内容