答案1
理想情况下,应该listings
为每种语言定义一个新环境。也就是说,为 创建一个列表,为 创建一个列表,python
为 创建一个列表,为 创建一个列表,为 创建一个列表,为 创建一个列表。对于每个列表,我们使用:java
c
php
\lstnewenvironment
\lstnewenvironment{python}
{\lstset{language=python,...}}
{}
\lstnewenvironment{java}
{\lstset{language=java,...}}
{}
\lstnewenvironment{clang}
{\lstset{language=c,...}}
{}
\lstnewenvironment{php}
{\lstset{language=php,...}}
{}
其中...
表示针对所讨论语言的其他定制设置。有关此内容的更多详细信息,请参阅5.14 环境的listings
文档。
以上内容现在允许您使用(例如)
\documentclass{article}
\usepackage{listings}
\lstnewenvironment{python}
{\lstset{language=python}}
{}
\begin{document}
\begin{python}
print "This line will be printed."
\end{python}
\end{document}
答案2
当然也存在一个解决方案minted
因此,你可以定义不同的代码环境,这很容易minted
\usepackage{minted}
\usemintedstyle{vs}
\newminted{kotlin}{%
breakbytoken,%
breaklines,%
autogobble,%
frame=lines,%
label=Kotlin,%
framesep=2\fboxsep%
}
\newminted{mysql}{%
breakbytoken,%
breaklines,%
autogobble,%
label=SQL,%
}
对于每个环境,您可以定义不同的参数。
要使用您定义的环境,请使用\begin{language+'code'}
\begin{kotlincode}
data class Customer(val name: String, val email: String, val company: String)
\end{kotlincode}
完整示例如下:
\documentclass{article}
\usepackage{minted}
\usemintedstyle{vs}
\newminted{kotlin}{%
breakbytoken,%
breaklines,%
autogobble,%
frame=lines,%
label=Kotlin,%
framesep=2\fboxsep%
}
\newminted{mysql}{%
breakbytoken,%
breaklines,%
autogobble,%
label=SQL,%
}
\begin{document}
\begin{kotlincode}
data class Customer(val name: String, val email: String, val company: String)
\end{kotlincode}
\end{document}