有人能解释一下,我该如何修改下面的例子,以便每种方言或语言都可以用不同的颜色显示吗?我很难理解classoffset
中的概念是什么listings
。读了几遍手册,但我仍然在努力掌握这些概念。语言与此有何关系?样式数组类型样式与关键字有何关系?为什么当我添加另一种语言时[5.3]Lua
颜色会出错?
\documentclass{article}
\usepackage{xcolor}
\usepackage{listings}
\begin{document}
\section{lststyles tests}
% Define a new language
\ExplSyntaxOn
\lstdefinelanguage{LaTeXiii}
{ alsoletter={_,:},
morekeywords=[1]{cs_set_nopar:Npn,luadirect},
moretexcs =[2]{clist_new:N},
morekeywords=[3]{\seq_new:N,\seq_set:Nn}
}%
\ExplSyntaxOff
\lstloadlanguages{[AlLaTeX]TeX, [LaTeX]TeX,[primitive]TeX,LateXiii}
\lstdefinestyle{simple}{%
keywordstyle={\ttfamily\color{brown}},% [0]?
keywordstyle=[1]{\ttfamily\color{blue}},%
texcsstyle=[2]{\ttfamily\color{red}},%
texcsstyle=[5]{\ttfamily\color{purple}},%
keywordstyle=[3]{\ttfamily\color{orange}},%
keywordstyle=[4]{\ttfamily\color{green}},%
basicstyle={\ttfamily\color{black}},%
}
\lstnewenvironment{myenv}[1][]
{
\lstset{
language=[AlLaTeX]TeX,%
alsolanguage=[LaTeX]TeX,
alsolanguage=[primitive]TeX,
alsolanguage=[plain]TeX,
alsolanguage=LaTeXiii,%
%alsolanguage={[5.3]Lua}, ***** <- How do I get this right?
}
\lstset{style=simple,#1} %allow options for new listing
}
{}
\begin{myenv}
\begin{luacode}
local a=12
\end{luacode}
\cs_set_nopar:Npn\mycommand
\def\test{}
\advance \setcounter
\clist_new:N \l_my_clist
\seq_set:Nn \l__my_seq
% TeX primitives
\addcontentsline
\advancepageno
\end{myenv}
\end{document}
编辑:
按照评论中的建议加载后的输出[5.3]Lua
。情况越来越好。为了更好地阐明问题。我如何组合语言并让它们显示自己的颜色?我必须指定吗classoffsets
?它们是如何工作的?