利用LaTeX展现C++代码
来源:互联网 发布:js控制div滚动条位置 编辑:程序博客网 时间:2024/05/17 08:17
原文转自:http://blog.csdn.net/robertchenguangzhi/article/details/45126785
最近由于需要在LaTeX中展现C++代码,于是就在网络上搜索别人提供的解决方案。结果大失所望,所搜索出来的LaTeX代码要么不能运行,要么运行结果不符合自己的需要。国内的利用百度进行搜索,国外的利用yahoo进行搜索。最可恨的是有的贴出来的LaTeX代码进行讲解的少,而且前导 (preamble) 中缺失相应的包,浪费了用户的时间。本来想直接利用别人的,反而没有达到应有的效果。这就刺激了我,我花了时间捋捋LaTeX展现代码的机制,终于弄懂了其中的机理,现讲解如下.
1 前导言加入的包
展现代码在LaTeX中需要使用listings包,由于代码中要用不同颜色的字体显示更加好看,又需要xcolor包。LaTeX中的包就像C++语言中的头文件那样,只有引入它们相应的功能才能具备。最终,前导言1应该这样书写:
- 1
- 2
- 1
- 2
2 listings包相应的参数设置
我们不做任何设置,也会得到运行结果,但那种结果的展现通常比较单调,不是我们想要的结果。我们在真正使用它之前,必须进行相应的设置才能达到我们需要的效果。真正费工夫的地方正在于此。经过多次调试,我的设置为:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
上面的设置中,为了更好的使用颜色,我们定义了三种自定义的颜色,然后在listings的设置中使用它们。上面的设置选项大部分是顾名思义的,我讲解一下比较重要的几个选项的含义,其他的请读者参考相应的资料。
- basicstyle用来设置代码字体的格式
- captionpos用来设置代码块标题出现的位置
- commentstyle用来设置代码中注释的字体格式
- language用来指定是什么语言的代码,本例使用的是C++
- numbers用来指定代码块的行号出现的位置或者不出现
注意:上面的设置代码也应该出现的LaTeX的前导言中。
3 LaTeX展现C++的代码及运行结果
在LaTeX代码的正文中属性以下代码:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
上面是具体使用listings包的方式,你需要将完整的C++代码包含在环境lstlisting中。最后的运行结果如下:
4 结束语
该包是很好玩的,更加详细的介绍请参考listings包用户手册。
- 所谓前导言,就是大多数LaTeX教科书,国外或者国内的,定义的,在\documentclass以下,\begin{document}以上的那部分区域。 ↩
- 利用LaTeX展现C++代码
- 利用LaTeX展现C++代码
- Latex中插入C代码
- LaTeX 排版C语言代码
- 用LaTeX在同一篇文章中展现不类型的代码
- 《展现 C#》(二)
- 《展现 C#》(三)
- 利用LaTex制作个人简历
- 利用包实现视图内容的不同展现(续new)——前台调用,给出代码部分
- 利用sharepoint中的的SPgridview展现数据
- LaTeX常用代码片段
- latex lstlisting备用代码
- Latex常用代码
- Latex常用代码
- Latex插入Matlab代码
- latex插入伪代码
- latex插入代码
- Latex插入伪代码
- VMware 虚拟机linux联网
- 终身机器学习(Lifelong Machine Learning)综述
- 递推递归练习E
- 【实验三】多媒体文件的读写和转换
- Codeforces Beta Round #4 (Div. 2 Only) D. Mysterious Present 记忆化搜索
- 利用LaTeX展现C++代码
- 20170325#cs231n#10.Understanding and Visualizing Convolutional Neural Networks
- 懒人后台模板
- fortify——Unreleased Resource: Streams
- mysql 索引原理
- Linnux无名管道的创建例子
- Gson使用指南(一)
- 快速排序
- nginx实现反向代理