\begin{align*} 中的命令参数中的 \verb 非法

\begin{align*} 中的命令参数中的 \verb 非法

我正在尝试生成一组对齐的方程,看起来像,

在此处输入图片描述

(注意:随机和变量应该是伪代码)

然而我得到的却是

在此处输入图片描述

并出现错误,提示:

\verb 在命令参数中非法

有谁知道如何解决这个问题?

最小工作示例:

\documentclass{book} 
\usepackage[font=small,format=plain,labelfont={bf,up},labelsep=space{caption} 
\usepackage{amsmath} 
\usepackage{mathtools}

\begin{document} 
\begin{align*}
    \verb|random| &= \verb|variable|\\
    & | \verb|random : variable|\\
    & | \verb|<random> <variable>| \end{align*}
\end{document}

答案1

可能使用cprotect,但这样很浪费资源。如你所见,第二个示例的排版与第一个示例完全相同。

\documentclass{article}
\usepackage{amsmath}
\usepackage{cprotect}

\newcommand{\ftexttt}[1]{\texttt{\frenchspacing#1}}

\begin{document}
\cprotEnv\begin{align*}
    \verb|random| &= \verb|variable|\\
    & \mid \verb|random : variable|\\
    & \mid \verb|<random> <variable>|
\end{align*}

\begin{align*}
    \ftexttt{random} &= \ftexttt{variable}\\
    & \mid \ftexttt{random : variable}\\
    & \mid \ftexttt{<random> <variable>}
\end{align*}
\end{document}

在此处输入图片描述

相关内容