我正在尝试为包中的不同单词组添加不同的样式(颜色等)listings
。请注意,我的问题不同于如何在列表的 emphstyle 中使用多个声明(\textbf、\emph)?。
让我给你展示一些代码:
\documentclass{article}
\usepackage{listings}
\begin{document}
...
\begin{lstlisting}
{
"id": {integer},
"login": {string},
"password": {string},
"name": {string},
"picture": {
File Resource
}
}
...
PUT /files/{file_id}
\end{lstlisting}
\end{document}
我使用该\lstset
命令来定义以下内容:
...
emph={ % HTTP Request
GET,POST,PUT,DELETE
},
emphstyle={\color{green}},
...
但我想添加更多具有不同风格(颜色等)的单词,就像这样
...
emph2={ % Variable Types
integer,string,blob,datetime
},
emphstyle2={\color{darkBlue}},
...
我怎样才能做到这一点?
答案1
你已经成功了一半。listings
手册(v1.5b 中的第 31 页)告诉你,可以使用以下方法定义多个标识符类和相关样式:
\emph=[<number>]{<identifier list>}
\emphstyle=[<number>]{<identifier style>}
其中<number>
是您选择的与所讨论的标识符类别相关的某个整数。
\documentclass{article}
\usepackage{xcolor}
\usepackage{listings}
\lstset%
{%
emph=[1]%
{%
DELETE,
GET,
POST,
PUT,
},
emphstyle=[1]{\color{green}},
%
emph=[2]% Variable Types
{%
blob,
datetime,
integer,
string,
},
emphstyle=[2]{\color{blue}},
}
\begin{document}
...
\begin{lstlisting}
{
"id": {integer},
"login": {string},
"password": {string},
"name": {string},
"picture": {
File Resource
}
}
...
PUT /files/{file_id}
\end{lstlisting}
\end{document}
答案2
对@Jubobs 的回答的补充,以提醒用户listings v1.6
(也许也适用于后续版本,我还没有检查)。
在 中,在和listings v1.6
中指定组的有效语法已更改为emph
keywords
emph={[2]...}, emphstyle={[2]...}
keywords={[1]...}, keywordstyle={[1]...}
listings
这些可以在手册(v1.6,p22)中找到。