当我使用 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
,我可以成功编译您的代码。