-
Notifications
You must be signed in to change notification settings - Fork 165
排版源代码
模板需要两个外部工具辅助排版源代码:
- Notepad++:http://notepad-plus-plus.org/download/
- highlight:http://www.andre-simon.de/zip/download.php。Windows系统可直接下载Windows (W32) installer。其余平台需自行编译。
你的程序源代码可能不是无BOM头的UTF-8编码的文件。首先需要将它们转换成模板需要的编码,你可能需要将这些源代码先复制一份再转换。
使用Notepad++打开需要排版的源代码文件,然后点击菜单:格式,转为UTF8无 BOM 编码格式。如下图:
然后我们用Highlight工具将源代码文件处理成tex文件。打开Highlight程序,选择输入文件,可以批量转换。但是注意这个程序不支持文件路径中含有中文,否则会造成输入错误。还注意要选择那些已经转换成UTF8无 BOM 编码格式的源文件。然后确定输出路径。在下方的通用选项卡里如下图设置:
然后点击转换文件按钮。
生成的tex文件不是完全正确的,需要进一步处理。可以还用notepad++打开生成的tex文件。
转换生成的tex文件的倒数第4行最后的\\
是多余的,它相当于在段落结束时又写了换行命令。应该删去。如下图:
如果批量处理,建议将\\
和后面的三行内容一同匹配,然后替换成只有后面三行的内容。
TeX对于大部分键盘上的符号都有特殊的字体设置,而排版源代码需要让所有字符都应用等宽字体。需要做如下替换:
源代码中存在符号 | 搜索 | 替换为 |
^ | \textasciicircum␣ | \^{} |
| | \textbar␣ | \symbol{124} |
_ | \textunderscore␣ | \symbol{95} |
\ | \symbol{92} | |
< | \symbol{60} | |
> | \symbol{62} | |
~ | \symbol{126} | |
{ | \{ | \symbol{123} |
} | \} | \symbol{125} |
注意前3种符号的搜索内容最后有一个空格,上表中写的是一个可见空格符号␣
,实际搜索时应该改成普通空格。
将处理好的tex文件同样放到chapters目录中即可。然后在需要插入源代码的地方用\input
命令载入该tex文件即可。例如:
\input{chapters/Matrix.java.tex}
注意该命令前后应该换段。
排版源代码的示例可以在example范例中找到。
为了正确显示等宽字体,模板将Highlight生成的sty文件内置到模板中了。所以要修改高亮格式应该在cls文件中修改。可以从源码文档中找到位置。也可以直接在cls中搜索:
\RequirePackage{color,marvosym}
这行下方的许多行到\definecolor{bgcolor}{rgb}{1,1,1}
为止是控制排版源代码格式的。
可以从源代码中看到有许多\textcolor[rgb]{}
命令。如果要将文字都改为纯黑色,只需要将那些参数不全为0的改为\textcolor[rgb]{0,0,0}
即可。