listings 是专用于代码排版的

LaTeX宏包,可对关键词、注释和字符串等使用不同的字体和颜色或颜色,也可以为代码添加边框、背景等风格。

1

基本用法

下面给出一份用于排版 C 语言 HelloWorld 程序代码的完整的 LaTeX 文档:

\documentclass{ article} \usepackage{ listings} \begin{ document} \begin{ lstlisting}[ language=C] int main(int argc, char ** argv) { printf("Hello world! \n"); return 0; } \end{ lstlisting} \end{ document}

注意,要使用 listings 宏包提供的语法高亮,需要 xcolor 宏包支持。

语法高亮的排版效果如下图所示:

4

添加边框

listings宏包为代码边框提供了很多风格,大体可分为带有阴影的边框与圆角边框。这里仅仅给出一个阴影边框的示例,至于其它边框风格,可查阅listings

宏包文档,里面给出了一些示例。

下面 LaTeX 源文档将为代码添加阴影边框,并将阴影设置为浅灰色:

\begin{ lstlisting}[language={[ANSI]C},keywordstyle=\color{blue!70},commentstyle=\color{red!50!green!50!blue!50},frame=shadowbox,

rulesepcolor=\color{red!20!green!20!blue!20}] int main(int argc, char ** argv) { printf("Hello world! \n"); return 0; } \end{ lstlisting}

排版效果如下图:

5

添加行号

很多时候需要对文档中的代码进行解释,只有带有行号的代码才可以让解释更清晰,因为你只需要说第

x行代码有什么作用即可。如果没有行号,那对读者而言就太残忍了,他们不得不从你的文字叙述中得知行号信息,然后去一行一行的查到相应代码行。

listings 宏包通过参数 numbers 来设定行号,该参数的值有两个,分别是 left

与right,表示行号显示在代码的左侧还是右侧。下面为带有边框的代码添加行号,并设置行号字体为 \tiny:

\begin{ lstlisting}[language={[ANSI]C},numbers=left,

numberstyle=\tiny,keywordstyle=\color{blue!70},commentstyle=\color{red!50!green!50!blue!50},frame=shadowbox,

rulesepcolor=\color{red!20!green!20!blue!20}] int main(int argc, char ** argv) { printf("Hello world! \n"); return 0; } \end{ lstlisting}

排版效果如下图所示:

6

全局设置

上面所给的各个示例中,lstlisting 环境后面尾随了很多参数,要是每使用一次

lstlisting环境就要设置这么多参数,那就没什么意思了。

可以使用 \lstset 命令在 LaTeX 源文档的导言区设定好 lstlisting 环境所用的公共参数,如下:

\documentclass{ article} \usepackage{ listings} \usepackage{ xcolor} \begin{ document} \lstset{numbers=left, numberstyle= \tiny, keywordstyle= \color{ blue!70},commentstyle=\color{red!50!green!50!blue!50}, frame=shadowbox, rulesepcolor= \color{ red!20!green!20!blue!20} } \begin{ lstlisting}[language={[ANSI]C}] int main(int argc, char ** argv) { printf("Hello world! \n"); return 0; } \end{ lstlisting} \end{ document}

7

显示中文

listings 宏包默认是不支持包含中文字串的代码显示的,但是可以使用 “逃逸” 字串来显示中文。

在 \lstset 命令中设置逃逸字串的开始符号与终止符号,推荐使用的符号是左引号,即

“ `”

\lstset{numbers=left, numberstyle= \tiny,keywordstyle= \color{ blue!70},commentstyle=\color{red!50!green!50!blue!50}, frame=shadowbox, rulesepcolor= \color{ red!20!green!20!blue!20}, escapeinside=``} …… \begin{ lstlisting}[language={[ANSI]C}] int main(int argc, char ** argv) { printf("`我爱中文`! \n"); return 0; } \end{ lstlisting}

8

调整一下边距

listings的代码框的宽度默认是与页芯等宽的,其上边距也过于小,可根据自己的审美观念适度调整一下。我通常是将代码框的左右边距设置为2em,上边距为

1em,下边距采用默认值即可,所作设定如下:

\lstset{numbers=left,numberstyle=\tiny,keywordstyle=\color{blue!70},commentstyle=\color{red!50!green!50!blue!50},frame=shadowbox,

rulesepcolor=\color{red!20!green!20!blue!20},escapeinside=``,xleftmargin=2em,xrightmargin=2em,

aboveskip=1em}

latex中输入matlab代码,Latex插入matlab代码相关推荐

  1. latex中表格怎么加标题_在LateX中输入公式、表格技巧

    文章目录 公式编辑器表格编辑器Latex设置表格字体大小LateX给表格加标题和标签LateX插入三线表LateX安装指南 如果在LateX中直接输入.编辑公式或表格,不是不可以,但是不能直接可视化编 ...

  2. Latex中输入大小写罗马数字

    以前,帮助一同学输入LaTeX源文件的时候才知道,LaTeX不能输入罗马数字,搞得我好几天都在研究和寻找,最后,终于搞定,相信大家如果使用罗马数字,肯定不会再有问题了. 如下解决方案: \upperc ...

  3. LaTeX入门最终集 :LaTeX格式的调整LaTeX中怎么打出数学公式LaTeX的各种上下标

    LaTeX入门最终集!LaTeX格式的调整!LaTeX中怎么打出数学公式!LaTeX的各种上下标! 一.资源 Latex设置A4页面及页边距调整 atex 编译Underfull \hbox (bad ...

  4. 如何在 LaTeX 中输入角度、角分、角秒?

    转载地址 https://blog.litofu.com/latex-degree-prime/

  5. latex中输入数学中的“属于” 符号

    非常简单,我还以为是/belong呢 属于: /in 不属于:/notin

  6. Latex中输入角度的度°

    可以使用^{\circ} 引入\usepackage{gensymb}包, 使用\degree. 注意这里使用后后面会减少一个空格, 所以如果后面不是符号的话要加上一个空格.

  7. 中输入learn_Scikit-learn新版本发布,一行代码秒升级

    十三 发自 凹非寺 量子位 报道 | 公众号 QbitAI Scikit-learn,这个强大的Python包,一直深受机器学习玩家青睐. 而近日,scikit-learn 官方发布了 0.22 最终 ...

  8. matlab在命令行注册,在命令行窗口中输入语句

    在命令行窗口中输入语句 当您在 MATLAB® 中工作时,可以在命令行窗口中输入各个语句.例如,通过在命令行中键入以下语句来创建名为 a 的变量: a = 1 MATLAB 会立即将变量 a 添加到工 ...

  9. latex 多行公式_Markdown中输入多行并列的公式

    本篇旨在以两个Markdown文件编辑器-Typora与Visual Code Studio为例, 说明对于多行并列公式不同的处理方式. Latex中输入多行并列公式 在latex文件编辑器中使用al ...

  10. latex中极限号下边怎么打_latex均方极限符号l.i.m在lyx下的输入方法

    $\mathop{l.i.m}\limits_{x\to +\infty}$ 命令说明: 1.指定数学环境$$ 2.\mathop{l.i.m}指数学符号自定义为l.i.m 3.\limits_{x\ ...

最新文章

  1. 【NIO】阻塞与非阻塞
  2. using bgp data to find spammers
  3. python那么慢为什么还有人用-为什么Python如此慢
  4. 河南acret计算机报名,Acret, Ex Parte U.S. Supreme Court Transcript of Record with Supporting Pleadings...
  5. 电气论文实现:从大规模用户中找出异常用电用户
  6. java 解析并生成 XML
  7. ubuntu安装wine之后进不了系统
  8. pycharm导入自己写的模块时,模块下方出现红色波浪线的解决方案
  9. python脚本判断一个数是否为素数的几种方法
  10. 织梦高端大气响应式会员中心模板 自适应手机端
  11. 阿里云nginx站点http升级https
  12. 递增三元数组——第九届蓝桥杯C语言B组(省赛)第六题
  13. docker搭建python开发环境_PyCharm使用之利用Docker镜像搭建Python开发环境
  14. jquery实现html表格隔行变色
  15. 集体智慧编程源代码(免费)
  16. Python:实现拓扑排序算法(附完整源码)
  17. 利用pyecharts绘制雷达图的案例(含参数解释)
  18. 如何才能制定好测试策略_全(转载)
  19. 学术论文写作 | (7)NLP学术论文写作方法和技巧
  20. springboot项目部署 + vue项目部署

热门文章

  1. DB2 DIgits函数用法
  2. 网页跳转代码的三种方法
  3. wps日期加减算天数_日期相减之后的天数怎么用公式计算 - 卡饭网
  4. java垃圾回收机制简介
  5. android开发ViewPager按比例显示图片(显示下一张图片的一部分)
  6. Multisim软件实验
  7. SMBIOS介绍(3):实现
  8. sqlyog 注册码
  9. 【软件工程】安装rational rose的步骤
  10. 【amtlib.dll文件下载】amtlib.dll怎么替换