Lyn*_*ark 5 latex r r-markdown bookdown
早在 3 月份,我提出了一个问题,并得到了一个答案,即在 R bookdown 呈现的 pdf 文档中包含封面:
我尝试了解决方案并得出以下结果:
在 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”。