包装的 lstinline 中的数学模式

包装的 lstinline 中的数学模式

我正在编写的文本应该显示为带有一些奇特的数学模式字符的代码块。

\documentclass{article}
\usepackage{listings}

\begin{document}
\lstinline[mathescape=true]{Integer $\not \sim$ String}
\end{document}

这按预期呈现。但是,我想将 \lstinline 的这种用法包装在一个自定义命名的命令中,以便能够轻松地更改颜色、类型系列等。对于以后的所有情况。我想要的是:

\documentclass{article}
\usepackage{listings}

\begin{document}
\newcommand{\codem}[1]{\lstinline[mathescape=true]{#1}}
\codem{Integer $\not \sim$ String}
\end{document}

但是,这不能编译,并且会显示以下消息:

! Improper alphabetic constant.
<to be read again> 
                   \not 
l.622 \codem{Integer $\not \sim$ String}
                                        
? 
! Missing $ inserted.
<inserted text> 
                $
l.622 \codem{Integer $\not \sim$ String}
                

为什么我不能在这里包装 \lstinline,以及如何实现类似的抽象?

相关内容