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

前言

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

效果



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值