问题很简单,我想在ppt中添加带有语法高亮的程序代码,搞了几天,总算找到了比较好的解决方法了。
详细的要求如下:
1.代码带有语法高亮。
2.结果是矢量图,也就是说可以随便缩小放大的,因此别拿直接对代码截图来忽悠我。
3.最好带有行号。
方法一:
下载软件SciTE,下载地址:http://www.fauskes.net/nb/syntaxms/
这个软件是我从网上搜到的,外国人写的。效果如下:
不过要把带有语法高亮的格式拷贝到ppt里有点麻烦,把代码复制到这个软件内,然后用Copy as RTF复制,再粘到Word里面,然后再在ppt里面选择性粘贴为带格式文本。
当然这种方法不满足条件3。
PPT里的效果如下:
好吧,其实我想说一开始我看到大段的英文就很头疼,我简单看了下,没有看到在ppt里面需要额外的步骤,直接粘贴了,结果当然很失望,于是继续找其他的方法。
以下两个应该是我自己原创的吧。
方法二:
首先使用notepad++打印源代码的话可以获得带有完整语法高亮的代码,我一般打印成pdf,但是pdf在PPT里面虽然能够直接插入,但是pdf一般都是一整页A4,如果代码比较短的话需要对pdf重新进行裁剪,还是比较麻烦的。
这个方法不满足条件2,虽然在pdf里面内容是矢量的,但是我发现在PowerPoint里面插入pdf后放大时出现了模糊。
方法三:
继续想,本质上我想要一个矢量图,所以我就想到了eps格式,把pdf另存为eps后就直接能够在PPT里面像插入图片一样插入代码了。编辑是也可以直接像编辑图片一样,比较方便,可以随意裁剪。
这种方法基本能够满足上述三个条件了。
效果如下:
最后总结一下,整体的思路分为两个方向:
a)将代码自动转换成带有格式的文本。方法一是这个路子,另外一个流产的方法是生成html代码然后插入到PPT里,但是这个我没有试成功。
b)将代码转换成带有语法高亮的矢量图。方法二、三都是这个思路,虽然方法二在实际插入到PPT中时失去了矢量图的特性。而将代码转换成带语法高亮的图片则是依靠Notepad++强大的打印功能。
个人推荐方法三,因为我不是很喜欢SciTE里的语法高亮,而Notepad++提供了各种语法高亮方案,可以自定义输出,并且可以输出行号。
10月18日更新
找到了一个比SciTE更加强大的软件HightLight,官网是:http://www.andre-simon.de/
这款软件可以把源码输出成各种不同格式,例如tex、html等。我最初就是想找在Latex下的代码高亮而找到的。
就看这个界面就知道非常强大了……支持自动调整格式、添加行号、n多配色方案,字体设置等等……
不过需要注意的是,上述软件均对中文支持不好!!!代码有中文注释的话一律会被转换成乱码。建议转换前去掉注释或者干错习惯写英文注释。