ns3生成PDF格式API文档
2017-06-16 本文已影响120人
catHeart
不喜欢ns3提供的HTML格式API文档,特别是当网速慢的时候,查找一个函数都要等上一阵子。ns3的manual, model-library和tutorial都有PDF格式的文档,唯独没有提供API的PDF文档。所以决定自己生成一下PDF格式的API文档。
安装必要软件
ns3的文档通过doxygen从代码注释中抽取出来,整合成文档。同时,提供了各类之间的依赖关系,其依赖关系图通过graphviz的dot命令生成。生成PDF文档的基本流程是,首先通过 doxygen生成Latex文档,该过程需要使用到graphviz,然后利用Latex生成PDF。因此,需要安装doxygen、graphviz和latex三个软件包。软件包安装方式依操作系统发行版本而已,不给出具体指令了,以免造成误导。
修改doxygen配置文件
doxygen的输出由配置文件doxygen.conf
控制,其中GENERATE_LATEX
控制是否输出Latex格式的文档,默认为否。PDF文档是基于Latex生成的,此处将GENERATE_LATEX
该为是。
将$NS3/doc/doxygen.conf
中,GENERATE_LATEX = NO
改为GENERATE_LATEX = YES
。
waf
waf是ns3的编译系统,依次执行以下指令,输出Latex格式的文档。
waf configure
waf doxygen
修改中间文件
如果一切正常,只需要在$NS3/doc/latex
目录下,执行make
指令就可以了。但是(现实总是充满惊喜和惊吓),存在着分配的内存不足和超链接的问题,需要修改一下相关的中间文件。
- 修改Makefile
分配更多的内存给pdflatex。打开$NS3/doc/latex/Makefile
,将所有的
pdflatex refman
替换为
buf_size=800000 save_size=40000000 pool_size=40000000 extra_mem_top=40000000 pdflatex refman
- 修改refman.tex
打开$NS3/doc/latex/refman.tex
,在\begin{document}
前,插入\hypersetup{draft}
。这样会忽略超链接存在的问题,完成编译。
生成PDF文件
在$NS3/doc/latex
目录下,执行make
指令,得到refman.pdf
。
其他
- 编译过程中,pdflatex遇到问题时暂停,直接回车,继续编译过程。
- 目前的方法还是很不完美,生成的PDF文件没有链接,无法从目录直接跳转到对应的正文。
- 最后生成的
refman.pdf
文件有288M,真是够大的。 - 最终的选择还是HTML,编译ns3的API文档为html格式,然后用lighttpd搭了一个Web服务器;搜索功能很方便,运行速度也很快。