8

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

但是,我遇到了许多烦人的问题,并且以前对 LaTeX 一无所知,对如何处理它们并没有真正的了解,并且对 LaTeX 相关事物的无数参考资料并没有太大帮助......

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

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

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

4

3 回答 3

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 文档,看看是否有任何方法可以指定我猜的顺序。(这是希望!)

于 2010-03-01T14:14:55.253 回答
2

你是如此接近。

谷歌搜索“乳胶内容级别”将我带到了LaTeX - 为论文的不同部分定制目录的深度,这表明

\setcounter{tocdepth}{n}

其中n只有最高级别的划分从零开始。这可能在所有默认样式中都有定义,但在 doxygen 中值得一试。

于 2010-02-28T00:27:33.993 回答
1

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

\contentsline {subsection}{F 类重写}{38}
\contentsline {subsection}{M 类重写}{39}
\contentsline {section}{\numberline {7}翻译的定义和属性}{44}
\contentsline {段落}{格式正确}{54}

简单的正则表达式将识别每行所属的级别,您可以基于此过滤文件。一旦你得到了你想要的目录,插入\nofiles适当的地方(样式表?),这意味着 Latex 将读取辅助文件但不会覆盖它们。

于 2010-03-01T10:38:31.230 回答