2012-03-16 26 views
17

Sphinx文檔工具是否提供不同的PDF主題,如提供不同的HTML主題?Sphinx PDF主題

我搜索了這個問題,但找不到答案,這導致我相信答案是'不'。不過,我想我會在這裏問。

謝謝。

回答

20

首先,獅身人面像不會產生本身PDF輸出,但一般有兩種方式可從獅身人面像的源文件爲PDF格式輸出:

  1. 使用乳膠製造商,然後像latex2pdf一個單獨的工具生成PDF輸出
  2. 使用來自rst2pdf project

獅身人面像插件話雖這麼說,有很多潛在的使用這兩種方法自定義PDF輸出的造型。

  1. 當使用latex-> pdf方法時,您可以使用sphinx配置文件中的許多選項來自定義乳膠輸出。見here。雖然(IMO),但這種方法不如Sphinx用於HTML生成的HTML主題方便。
  2. 使用rst2pdf時,您可以定義自己的樣式表,他在manual(請參見「樣式」標題下)中詳細介紹了他的樣式表。 rst2pdf包含許多樣式表,可以組合各種結果。當然,您也可以修改它們或創建自己的(它們只是JSON文件)。這些樣式表也支持一種繼承,因此比以前的方法更像Sphinx HTML主題。
2

斯芬克斯的PDF輸出沒有預定義的主題。但是LaTex提供了豐富的選項來設置文檔的樣式。我的問題是找到用獅身人面像來設計文檔的正確方法。在這裏,我的工作方式:

首先看看conf.py。在那裏你會找到一個選項latex_elements。使用此選項,您可以將您自己的LaTex命令添加到輸出中。例如:

latex_elements = { 
# The paper size ('letterpaper' or 'a4paper'). 
'papersize': 'a4paper', 

# The font size ('10pt', '11pt' or '12pt'). 
'pointsize': '12pt', 

'fontpkg': r""" 
\PassOptionsToPackage{bookmarksnumbered}{hyperref} 

""", 

# Additional stuff for the LaTeX preamble. 
'preamble': r""" 
\usepackage{setspace} 
""", 

'footer': r""" 
""", 

'maketitle': r''' 
\pagenumbering{arabic} 
''', 
} 

有幾點重要的是要知道。

  • 使用r"""避免與蟒蛇
  • 雖然preamble衝突是添加\usepackage你可以有獅身人面像的默認設置衝突的正確點。在示例中查看fontpkg。它是.tex輸出文件中的第一個。如果您必須爲默認包設置選項,請在此處執行。
  • maketitle讓你定義你自己的標題頁。看一些乳膠文件。我在那裏設置了\pagenumbering以使內容列表具有阿拉伯數字,所以真正的內容從頁面「1」開始。

有了Latex命令的正確知識,您可以通過幾條命令獲得良好的主題。一個很好的來源尋找幫助是https://tex.stackexchange.com/其中最常見的問題有一個解決方案。但是找到合適的Latex命令要比爲HTML選擇主題困難得多。

查看./_build下的Tex-Output可能會有所幫助。在那裏您可以看到,文檔中包含latex_elements-選項。