未定义的控制序列。使用自定义 cls 文件时,\begin{lstlisting}

未定义的控制序列。使用自定义 cls 文件时,\begin{lstlisting}

当我使用 xelatex 在 texstudio 中编译该文档时:

\documentclass{dolphinbook}

\usepackage{xeCJK}
\usepackage{subfiles}
\usepackage{listings}
\usepackage[bookmarksopen,bookmarksdepth=4]{hyperref}

\setCJKmainfont{Noto Serif CJK SC}

\begin{document}

\begin{lstlisting}
    ddddd
\end{lstlisting}

\end{document}

显示错误:

Undefined control sequence. \begin{lstlisting}

dolphinbook文件如下所示:

\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{dolphinbook}
\LoadClass[8pt]{book}

\RequirePackage{listings}

\lstset{      
    alsolanguage= XML,  
    tabsize=4, %  
    frame=shadowbox,   
    commentstyle=\color{red!50!green!50!blue!50},
    frameround=tttt,  
    rulesepcolor=\color{red!20!green!20!blue!20}, 
    keywordstyle=\color{blue!90}\bfseries,   
    showstringspaces=false,
    stringstyle=\ttfamily, 
    keepspaces=true, %  
    breakindent=22pt, % 
    breaklines=true,
    numbers=left,  
    stepnumber=1,
    %numberstyle=\tiny, 
    numberstyle={\color[RGB]{0,192,192}\tiny},
    numbersep=8pt,   
    basicstyle=\ttfamily,  
    showspaces=false, % 
    escapechar=`,
    flexiblecolumns=true, %  
    breaklines=true,  
    breakautoindent=true,%  
    breakindent=4em, %         
    aboveskip=1em,
    tabsize=4,  
    showstringspaces=false, 
    backgroundcolor=\color[RGB]{245,245,244},   
    %backgroundcolor=\color[rgb]{0.91,0.91,0.91}    
    escapeinside={``}{\_},  
    %% added by http://bbs.ctex.org/viewthread.php?tid=53451  
    fontadjust,  
    captionpos=t,  
    framextopmargin=2pt,
    framexbottommargin=2pt,
    abovecaptionskip=-3pt,
    belowcaptionskip=3pt,  
    xleftmargin=1em,
    xrightmargin=1em,  
    texcl=true
}

我是否遗漏了什么?我应该怎么做才能解决这个问题?

答案1

不要相信某些 LaTeX 前端提供的简短错误消息。确切的错误消息是

! Undefined control sequence.
\lst@fillcolor ->\color
                        [RGB]{245,245,244}
l.12 \begin{lstlisting}

\lstset例如,由于您在设置中应用了颜色,

    commentstyle=\color{red!50!green!50!blue!50},

你需要xcolor语法。因此添加

\RequirePackage{xcolor}

到你的班级档案。

%当你这样做时,请删除参数中的所有尾随\lstset:它们是不必要的,并且没有理由在某些行中存在它们而在其他行中不存在它们。

而选择[8pt]book完全未知的:确实

LaTeX Warning: Unused global option(s):
    [8pt].

告诉你这一点。

答案2

\RequirePackage{xcolor}添加到文件中后dolphinbook.cls,我可以成功编译您的代码。

相关内容