利用LaTeX展现C++代码
来源:互联网 发布:js清空input内容兼容ie 编辑:程序博客网 时间:2024/04/30 11:25
最近由于需要在LaTeX中展现C++代码,于是就在网络上搜索别人提供的解决方案。结果大失所望,所搜索出来的LaTeX代码要么不能运行,要么运行结果不符合自己的需要。国内的利用百度进行搜索,国外的利用yahoo进行搜索。最可恨的是有的贴出来的LaTeX代码进行讲解的少,而且前导 (preamble) 中缺失相应的包,浪费了用户的时间。本来想直接利用别人的,反而没有达到应有的效果。这就刺激了我,我花了时间捋捋LaTeX展现代码的机制,终于弄懂了其中的机理,现讲解如下.
1 前导言加入的包
展现代码在LaTeX中需要使用listings包,由于代码中要用不同颜色的字体显示更加好看,又需要xcolor包。LaTeX中的包就像C++语言中的头文件那样,只有引入它们相应的功能才能具备。最终,前导言1应该这样书写:
\usepackage{listings}\usepackage[usenames,dvipsnames]{xcolor}
2 listings包相应的参数设置
我们不做任何设置,也会得到运行结果,但那种结果的展现通常比较单调,不是我们想要的结果。我们在真正使用它之前,必须进行相应的设置才能达到我们需要的效果。真正费工夫的地方正在于此。经过多次调试,我的设置为:
\definecolor{mygreen}{rgb}{0,0.6,0}\definecolor{mygray}{rgb}{0.5,0.5,0.5}\definecolor{mymauve}{rgb}{0.58,0,0.82}\lstset{ backgroundcolor=\color{lightgray}, basicstyle = \footnotesize, breakatwhitespace = false, breaklines = true, captionpos = b, commentstyle = \color{mygreen}\bfseries, extendedchars = false, frame =shadowbox, framerule=0.5pt, keepspaces=true, keywordstyle=\color{blue}\bfseries, % keyword style language = C++, % the language of code otherkeywords={string}, numbers=left, numbersep=5pt, numberstyle=\tiny\color{mygray}, rulecolor=\color{black}, showspaces=false, showstringspaces=false, showtabs=false, stepnumber=1, stringstyle=\color{mymauve}, % string literal style tabsize=2, title=\lstname }
上面的设置中,为了更好的使用颜色,我们定义了三种自定义的颜色,然后在listings的设置中使用它们。上面的设置选项大部分是顾名思义的,我讲解一下比较重要的几个选项的含义,其他的请读者参考相应的资料。
- basicstyle用来设置代码字体的格式
- captionpos用来设置代码块标题出现的位置
- commentstyle用来设置代码中注释的字体格式
- language用来指定是什么语言的代码,本例使用的是C++
- numbers用来指定代码块的行号出现的位置或者不出现
注意:上面的设置代码也应该出现的LaTeX的前导言中。
3 LaTeX展现C++的代码及运行结果
在LaTeX代码的正文中属性以下代码:
\begin{lstlisting}[caption={}]#include "randomGenerator.h"void normalNumGen(double mean, double sd, int num, string filename){const int nrolls=num; // number of eperimentsdefault_random_engine generator;normal_distribution<double> dnorm(mean, sd);ofstream outfile(filename,ios::out);for(int i=0; i < nrolls; ++i){double number = dnorm(generator);outfile << number << endl;}}\end{lstlisting}
上面是具体使用listings包的方式,你需要将完整的C++代码包含在环境lstlisting中。最后的运行结果如下:
4 结束语
该包是很好玩的,更加详细的介绍请参考listings包用户手册。
- 所谓前导言,就是大多数LaTeX教科书,国外或者国内的,定义的,在\documentclass以下,\begin{document}以上的那部分区域。 ↩
0 0
- 利用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插入伪代码
- Android 4.4 闹钟流程跟踪分析
- poj3122
- Android 编程下通过 Theme 和 Style 避免 APP 启动闪黑屏
- hdoj1001-java
- Spring的IOC(反向控制)
- 利用LaTeX展现C++代码
- 图像处理中的小技巧
- hdoj1002-java
- 迷宫(深度搜索dfs)
- ActionBarSherlock学习笔记 第一篇——部署
- Windows Phone 在导航时传数据
- hdoj1003-java
- poj3258
- P122 17