自定义列表中的“不正确的字母常数”

自定义列表中的“不正确的字母常数”

当我尝试编译我的 Beamer 幻灯片(下面是精简的代码)时,遇到以下错误:

! Improper alphabetic constant.
<to be read again> 
                   \relax 
l.1 \begin{python}

Beamer 幻灯片代码包含列表语法高亮自定义,如下所示。可能出了什么问题?

\documentclass{article}

\usepackage{listings}
\newcommand\pythonstyle{\lstset{
       language=Python,
       otherkeywords={self,},
}}
\lstnewenvironment{python}[1][]{
    \pythonstyle
    \lstset{#1}
}{}

\begin{document}

\begin{python}
import multiprocessing
\end{python}

\end{document}

答案1

删除 90% 或更多完全不相关的代码后,我们剩下以下损坏的代码块:

\documentclass{article}

\usepackage{listings}
\newcommand\pythonstyle{\lstset{
       language=Python,
       otherkeywords={self,},
}}
\lstnewenvironment{python}[1][]{
    \pythonstyle
    \lstset{#1}
}{}

\begin{document}

\begin{python}
import multiprocessing
\end{python}

\end{document}

注释掉该行后otherkeywords={self,},问题就消失了,因此合理的猜测是问题出在 self 后面的逗号上。果然,删除逗号就可以解决问题。

相关内容