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

来源:互联网 发布:网络摄像机价格 编辑:程序博客网 时间:2024/06/05 15:58

前言

使用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}

效果



0 0
原创粉丝点击