您的位置:首页 > Web前端 > CSS

LaTeX技巧017:定义使用多种代码样式

2016-08-07 13:06 525 查看

前言

使用LaTeX插入代码的时候我们可以使用
\lstset
命令来进行代码样式的设置,但是这种设置是全局的,也就是说使用
lstlisting
环境插入的代码都是公用一种样式。如果我们需要对不同的语言设置不同的样式,在使用的时候直接引用即可,那么能不能做到,答案是可以的。

实现

本文要介绍的命令是
\lstdefinestyle
,它是用来定义一个代码样式,我们先来看代码:

% system=ubuntu
%soft=Tex Live2015
% complie=XeLaTeX
\documentclass[a4paper,UTF8]{article}
\usepackage{listings}
\usepackage{ctex}
\usepackage{color}
\definecolor{keywordcolor}{rgb}{0.8,0.1,0.5}
\definecolor{webgreen}{rgb}{0,.5,0}
\definecolor{bgcolor}{rgb}{0.92,0.92,0.92}

\lstdefinestyle{styleJ}{
language=[AspectJ]Java,
keywordstyle=\color{keywordcolor}\bfseries,
commentstyle=\color{blue} \textit,
showstringspaces=false,
numbers=left,
numberstyle=\small
}
\lstdefinestyle{styleP}{
language=Python,
numbers=right,
frame=single,
numberstyle=\small ,
}
\begin{document}
\begin{lstlisting}[style=styleJ]
public int sum(int n){
int sum = 0;
for(int i=0;i<n;i++){  //开始的
sum += i;
}
return sum;
}
\end{lstlisting}

\begin{lstlisting}[style=styleP]
def fun():
print('你好,世界') #我是注释
\end{lstlisting}

\end{document}


可以看到使用
lstdefinestyle
定义了两个样式,styleJ和styleP,分别是java和python的样式,在使用
lstlisting
环境的时候调设置了这两个样式。

如果不想把代码放在.tex文件里,也可以把代码放在单独的文件,然后使用下面的命令即可:

\lstinputlisting[style=styleJ]{code.java}


效果

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: