R bookdown 标题前的封面和版权声明?

Lyn*_*ark 5 latex r r-markdown bookdown

早在 3 月份,我提出了一个问题,并得到了一个答案,即在 R bookdown 呈现的 pdf 文档中包含封面:

R bookdown - 封面和附录

我尝试了解决方案并得出以下结果:

在 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
Run Code Online (Sandbox Code Playgroud)

标题仍然出现在封面之前,并且章节标题中的章节“措辞”(即章节标题的实际词之前的“第 1 章”)消失了。每章的章节编号以0开头,以此类推。

如果我去掉上面的包含条款——标题和作者出现在第一页,然后是目录,所有章节标题和章节编号都正确出现——但当然没有封面或版权页。

frontpage.tex 如下所示:

\frontmatter

\includegraphics {coverpage.png}

This edition first published August 2017 etc
Run Code Online (Sandbox Code Playgroud)

我如何在标题之前获得封面,在标题之后和目录之前获得版权页,并让章节标题即(章节标题前面的单词章节和数字按该顺序正确呈现。

到目前为止,R bookdown 在书籍布局和格式方面做得非常出色,但我似乎无法制作这些典型的工作所需的东西。

谢谢...

小智 5

要在由 bookdown 生成的 pdf 文件中的标题页之前获得封面,诀窍是关闭 LaTeX 的\maketitle命令,创建封面,然后重新打开\maketitle并执行它(如果您还想要标题页) .

从标准的bookdown 演示开始,将以下两行附加到preamble.tex的末尾

\let\oldmaketitle\maketitle
\AtBeginDocument{\let\maketitle\relax}
Run Code Online (Sandbox Code Playgroud)

这会将\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
Run Code Online (Sandbox Code Playgroud)

这会在输出 pdf 的开头插入一个页面,然后将\maketitle返回到其原始状态,然后执行它。如果您已经有before_body.tex文件,只需将这些行添加到末尾即可。在上面的例子中,我在图像前后添加了一些文本,只是为了表明可以。

最后,您需要将封面图像文件 ( cover.png ) 放在同一目录中。并构建您的 pdf_book。这将生成一个带有标题(“A BOOK”)的封面页,然后是封面图片,然后是作者(“by Me”)。

在这个例子中,我使用了一个 png 文件,但 pdf 或 jpg 文件也可以正常工作。如果您有一个更复杂的目录结构,如在标准bookdown 示例中,您可能需要修改必要文件的路径,例如“latex/preamble.tex”而不是“preamble.tex”。