2017-08-30 42 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”。