2010-02-28 22 views
8

我使用Doxygen爲我的代碼生成文檔。我需要爲此製作PDF版本,並且使用Doxygen的LaTeX輸出似乎是實現它的方式。控制Doxygen的LaTeX輸出製作PDF文檔

但是我遇到了一些令人討厭的問題,並且不知道有關LaTeX的任何事情以前並沒有真正瞭解如何接近它們的想法,而且LaTeX相關事物的無數參考並沒有太多幫助...

我研究出瞭如何在一個sty文件中創建一個自定義風格的東西,以及如何讓Doxygen使用它。經過大量的搜索後,我發現如何設置頁邊距等,通過這個,我猜可能這是我想要做的其他事情我想要的文件,但我似乎無法找到任何命令我想:(

  1. 的在文檔的開頭內容表中包含了很多項目的識別,而這並不像它使內容很長,是否有某種方式到內容限制只是說前兩個級別,而不是每個單獨的函數,變量等都有條目?我很喜歡保留所有的書籤,但我嘗試了「COMPACT_LATEX」選項,但也刪除了內容頁上的項目,它刪除了每個部分開頭的書籤和成員列表,我確實想保留這些列表。

  2. 有沒有辦法改變事物的順序,比如把整個類的描述放在本節的開頭,而不是所有的成員和屬性之後?

回答

7

哇,這是Doxygen的邪惡。

好了,讓周圍的tocdepth計數器的問題,下面的行添加到您的​​文件:

\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文檔來查看是否有任何方法來指定我猜的順序。 (這是希望!)

+0

+1這應該解決與dmckee的建議有關的問題,並且比我的建議更強大。誰知道,也許它甚至可以工作...... – 2010-03-01 18:20:10

1

你是所以關閉。

在谷歌搜索「乳膠含量水平」把我帶到LaTeX - customizing the depth of the table of contents for different parts of the thesis這表明

\setcounter{tocdepth}{n} 

其中n從零開始,只有最高級別的劃分。這在所有的默認樣式中都是可以設定的,但在doxygen中值得一試。

+0

我試圖把它放在我的樣式表中,但它沒有任何效果。在進一步搜索後,我發現Doxygen在「\ makeindex」命令之後放置了「\ setcounter {tocdepth} {3}」,該命令在包含自定義軟件包後即被打開。所以我回來編輯每次Doxygen生成它的文件,除非有什麼可以阻止Doxygen補充,或防止乳膠讓後者覆蓋我的? – 2010-02-28 10:42:32

+0

IT也會影響書籤的深度,因爲可摺疊樹結構使其更適合完整列表,所以該ID儘可能保留。然而,我發現的一切似乎都把它們看成是一樣的:( – 2010-02-28 10:46:14

+2

我們中很多人使用LaTeX作爲文檔使用make文件來控制發佈,使用自定義腳本執行sed和awk(以及其他實用程序)的某些部分來執行編輯你描述了當然,我們很多人都是長期使用Unix/Linux的用戶,對於這些用戶來說,這和呼吸一樣自然,而且這種方法可能不適合你的需求或者背景。 – 2010-02-28 14:03:35

1

您可以編寫一個Perl/Awk腳本來簡單地從目錄中刪除不需要的行。對於文件burble.tex,乳膠會生成文件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將讀取輔助文件但不覆蓋它們。