控制Doxygen的LaTeX输出以制作PDF文档

时间:2010-02-28 00:11:14

标签: documentation latex pdf-generation doxygen

我正在使用Doxygen为我的代码生成文档。我需要制作一个PDF版本,并使用Doxygen的LaTeX输出似乎是这样做的。

然而,我遇到了许多令人讨厌的问题,并且对LaTeX一无所知以前对如何处理它们并没有太多了解,并且对LaTeX相关事物的无数参考并没有多大帮助。 ..

我研究了如何在sty文件中创建自定义样式的东西以及如何让Doxygen使用它。经过大量的搜索,我发现了如何通过这个设置页边距等,我猜这可能是我想要做的其他事情我想要的文件,但我似乎无法找到任何doign的命令我想要的是:(

  1. 文档开头的目录包含很多项目,而不是因为它使内容很长。有没有办法限制这个内容只是说前两个级别,而不是每个单独的函数,变量等的条目?我很喜欢保留所有书签。我确实尝试了“COMPACT_LATEX”选项,但除了删除内容页面上的项目外,还删除了每个部分开头的书签和成员列表,我确实希望保留这些内容。

  2. 有没有办法改变事物的顺序,比如把完整的类描述放在部分的开头,而不是在所有成员和属性之后?

3 个答案:

答案 0 :(得分:7)

哇,这是Doxygen的邪恶。

好的,要解决tocdepth计数器问题,请将以下行添加到.sty文件中:

\AtBeginDocument{\setcounter{tocdepth}{2}}% or whatever level you want

您可以将PDF书签深度设置为单独的值:

% requires you \usepackage{hyperref} first
\hypersetup{
  bookmarksdepth = section, % of whatever level you want
}

另请注意,如果您有一个数据/表格列表,tocdepth必须至少为2才能显示。

我没有看到任何方法在LaTeX文件中重新排列这些项目 - Doxygen只是把它们放在那里,所以我们做不了多少。您将不得不在Doxygen文档周围查看是否有任何方法来指定我猜的顺序。 (这是希望!)

答案 1 :(得分:1)

所以关闭。

Google搜索“乳胶含量水平”让我看到了LaTeX - customizing the depth of the table of contents for different parts of the thesis

\setcounter{tocdepth}{n}

其中n仅从最高级别分部开始为零。这可以在所有默认样式中定义,但在doxygen中值得一试。

答案 2 :(得分:1)

你可以写一个Perl / Awk脚本来简单地从目录中删除不需要的行。对于文件burble.tex,Latex将生成文件burble.toc,其中包含以下行:

\contentsline {subsection}{Class F rewrites}{38}
\contentsline {subsection}{Class M rewrites}{39}
\contentsline {section}{\numberline {7}Definition and properties of the translation}{44}
\contentsline {paragraph}{Well-formedness}{54}

简单的正则表达式将识别每行所属的级别,您可以根据该级别过滤该文件。按照您希望的方式获得目录后,将\nofiles插入适当的位置(样式表?),这意味着Latex将读取辅助文件但不会覆盖它们。