2017-08-30 48 views
2

回到三月,我問了一個問題,得到的答案包括由R bookdown呈現的PDF文檔中封頁:R bookdown之前的封面和版權聲明?

R bookdown - cover page and appendix

我試圖解決方案,並具有以下結果出來了:

使用index.rmd YAML:

output: 
    pdf_document: 
    includes: 
     before_body: frontpage.tex 
    number_sections: yes 
    toc: yes 
    toc_depth: 3 
site: bookdown::bookdown_site 
documentclass: book 
classoption: letterpaper 

標題仍然之前實際的封頁和在章節標題(即「第1章」章節「措辭」之前出現章節標題中的字詞)消失了。各章節的編號從0開始。

如果我把上面的標題和作者的包含條款作爲第一頁拿出來,然後是目錄,所有章節標題和章節編號出來妥善 - 但當然沒有封面或版權頁。

frontpage.tex是這樣的:

\frontmatter 

\includegraphics {coverpage.png} 

This edition first published August 2017 etc 

我如何標題後和目錄前得到提前封頁標題,copyrightpage的,並有章節標題即(字章,並提前數章節標題的渲染的順序和正確。

[R bookdown迄今所做的圖書格式和佈局,一個了不起的工作,但我似乎無法做出這將需要工作,這些典型的東西。

謝謝...

回答

1

要通過bookdown生成的PDF文件的標題頁之前得到一個封面,關鍵是要關閉的LaTeX的\ maketitle命令,創建封面頁,然後打開\ maketitle回並執行它如果你想要標題頁面。

與標準bookdown demo開始,下面的兩行追加到的preamble.tex

\let\oldmaketitle\maketitle 
\AtBeginDocument{\let\maketitle\relax} 

結束這節省了\ maketitle命令作爲\ oldmaketitle,然後關閉原始\ maketitle 。在同一目錄中,現在創建一個before_body.tex文件,該文件包含以下行

\thispagestyle{empty} 
\begin{center} 
{\Huge A BOOK} 
\includegraphics{cover.png} 
{\huge by Me} 
\end{center} 

\let\maketitle\oldmaketitle 
\maketitle 

這在你的輸出PDF的開頭插入一個頁面,然後返回\ maketitle到原來的狀態,然後執行它。如果您已有before_body.tex文件,只需將行添加到最後。在上面的例子中,我在圖片前後添加了一些文字,只是爲了表明可以。

最後你需要把你的封面圖像文件(cover.png)放在同一個目錄下。並建立你的pdf_book。這將產生一個帶有標題(「A BOOK」)的封面,然後是封面圖片,然後是作者(「由我」)。

在這個例子中,我使用了一個PNG文件,但PDF或JPG文件也工作正常。如果您的目錄結構更復雜,如標準bookdown example,則可能需要修改必要文件的路徑,例如「latex/preamble.tex」而不是「preamble.tex」。