![列表中支持的语言选项](https://linux22.com/image/260962/%E5%88%97%E8%A1%A8%E4%B8%AD%E6%94%AF%E6%8C%81%E7%9A%84%E8%AF%AD%E8%A8%80%E9%80%89%E9%A1%B9.png)
恐怕该列表不支持 javascript。
\begin{lstlisting}[language=javascript]
...
\end{lstlisting}
我究竟做错了什么?
答案1
以下是 Fran 所举的例子,基于所引用的(现已不存在的)来源:
% Taken from Lena Herrmann at
% http://lenaherrmann.net/2010/05/20/javascript-syntax-highlighting-in-the-latex-listings-package
\documentclass{article}
\usepackage{listings}
\usepackage{color}
\definecolor{lightgray}{rgb}{.9,.9,.9}
\definecolor{darkgray}{rgb}{.4,.4,.4}
\definecolor{purple}{rgb}{0.65, 0.12, 0.82}
\lstdefinelanguage{JavaScript}{
keywords={typeof, new, true, false, catch, function, return, null, catch, switch, var, if, in, while, do, else, case, break},
keywordstyle=\color{blue}\bfseries,
ndkeywords={class, export, boolean, throw, implements, import, this},
ndkeywordstyle=\color{darkgray}\bfseries,
identifierstyle=\color{black},
sensitive=false,
comment=[l]{//},
morecomment=[s]{/*}{*/},
commentstyle=\color{purple}\ttfamily,
stringstyle=\color{red}\ttfamily,
morestring=[b]',
morestring=[b]"
}
\lstset{
language=JavaScript,
backgroundcolor=\color{lightgray},
extendedchars=true,
basicstyle=\footnotesize\ttfamily,
showstringspaces=false,
showspaces=false,
numbers=left,
numberstyle=\footnotesize,
numbersep=9pt,
tabsize=2,
breaklines=true,
showtabs=false,
captionpos=b
}
\begin{document}
\medskip
\begin{lstlisting}[caption=My Javascript Example]
Name.prototype = {
methodName: function(params){
var doubleQuoteString = "some text";
var singleQuoteString = 'some more text';
// this is a comment
if(this.confirmed != null && typeof(this.confirmed) == Boolean && this.confirmed == true){
document.createElement('h3');
$('#system').append("This looks great");
return false;
} else {
throw new Error;
}
}
}
\end{lstlisting}
\end{document}
答案2
我合并了@awx 和@commonhare 的答案,得到了这个要旨:
\usepackage{color}
\definecolor{lightgray}{rgb}{.9,.9,.9}
\definecolor{darkgray}{rgb}{.4,.4,.4}
\definecolor{purple}{rgb}{0.65, 0.12, 0.82}
\lstdefinelanguage{JavaScript}{
keywords={break, case, catch, continue, debugger, default, delete, do, else, false, finally, for, function, if, in, instanceof, new, null, return, switch, this, throw, true, try, typeof, var, void, while, with},
morecomment=[l]{//},
morecomment=[s]{/*}{*/},
morestring=[b]',
morestring=[b]",
ndkeywords={class, export, boolean, throw, implements, import, this},
keywordstyle=\color{blue}\bfseries,
ndkeywordstyle=\color{darkgray}\bfseries,
identifierstyle=\color{black},
commentstyle=\color{purple}\ttfamily,
stringstyle=\color{red}\ttfamily,
sensitive=true
}
\lstset{
language=JavaScript,
backgroundcolor=\color{lightgray},
extendedchars=true,
basicstyle=\footnotesize\ttfamily,
showstringspaces=false,
showspaces=false,
numbers=left,
numberstyle=\footnotesize,
numbersep=9pt,
tabsize=2,
breaklines=true,
showtabs=false,
captionpos=b
}
答案3
目前接受的答案遗漏了很多关键词,所以这是我的语言定义:
\lstdefinelanguage{JavaScript}{
keywords={break, case, catch, continue, debugger, default, delete, do, else, finally, for, function, if, in, instanceof, new, return, switch, this, throw, try, typeof, var, void, while, with},
morecomment=[l]{//},
morecomment=[s]{/*}{*/},
morestring=[b]',
morestring=[b]",
sensitive=true
}
答案4
涵盖 TypeScript 的完整关键字列表如下:
keywords={abstract, any, as, boolean, break, case, catch, class, console,
const, continue, debugger, declare, default, delete, do, else, enum, export,
extends, false, finally, for, from, function, get, if, implements, import, in,
infer, instanceof, interface, keyof, let, module, namespace, never, new, null,
number, object, package, private, protected, public, readonly, require, return,
set, static, string, super, switch, symbol, this, throw, true, try, type, typeof,
undefined, unique, unknown, var, void, while, with, yield}