6.5 出版商

除了在网上发布你的书之外,你还可以考虑通过出版商出版你的书籍。例如,本书是由 Chapman & Hall/CRC 出版的,在 https://bookdown.org/yihui/bookdown/ 也有免费的在线版本(与出版商达成了协议)。如果你不想与的发布者合作,你还可以考虑自主出版 (https://en.wikipedia.org/wiki/Self-publishing)。Pablo Casas 写了两篇你可能会觉得有用的博客文章:“How to self-publish a book”“How to self-publish a book: customizing bookdown”

如果你选择的出版商支持 LaTeX,那么出版用 bookdown 编写的书会容易得多。例如,Chapman & Hall 提供了一个名为 krantz.cls 的 LaTeX 类,Springer 提供的是 svmono.cls。如果要将这些 LaTeX 类应用于 PDF 书籍,请将 index.Rmd 的 YAML 元数据中的 documentclass 设置为 LaTeX 类文件名(不带扩展名 .cls)。

LaTeX 类是 YAML 元数据中最重要的设置。它控制了 PDF 书籍的整体样式。还有一些其他设置是你经常需要调整的,下面我们将展示有关本书的一些详细信息。

本书的 YAML 元数据包含以下设置:

documentclass: krantz
lot: yes
lof: yes
fontsize: 12pt
monofont: "Source Code Pro"
monofontoptions: "Scale=0.7"

字段 lot:yes 表示我们需要表格列表;类似地,lof 表示图片列表。基础字体大小是 ‘12pt’,我们使用了 Source Code Pro 作为等宽(固定宽度)字体,它适用于本书中的所有程序代码。

在 LaTeX 导言 (preamble)(第 4.1 节)中,我们还有一些设置。首先,我们将主字体族设置为 Alegreya,并且由于此字体没有 Small Capitals(小型大写字母)特征,我们使用 Alegreya SC 字体。

\setmainfont[
  UprightFeatures={SmallCapsFont=AlegreyaSC-Regular}
]{Alegreya}

下面的命令通过允许浮动环境占用更大部分的页面而不是浮动,从而使得它们更不太可能浮动。

\renewcommand{\textfraction}{0.05}
\renewcommand{\topfraction}{0.8}
\renewcommand{\bottomfraction}{0.8}
\renewcommand{\floatpagefraction}{0.75}

由于 krantz.cls 为引用文段提供了一个环境 VF,因此我们将标准的 quote 环境重新定义为 VF。您可以在第 2.1 节中看到它的样式。

\renewenvironment{quote}{\begin{VF}}{\end{VF}}

然后我们将超链接重新定义为脚注,因为当书印刷在纸上时,读者无法点击文本中的链接,而脚注会告诉他们实际的链接是什么。

\let\oldhref\href
\renewcommand{\href}[2]{#2\footnote{\url{#1}}}

我们还为 _output.yml 中的 bookdown::pdf_book 格式进行了一些设置:

bookdown::pdf_book:
  includes:
    in_header: latex/preamble.tex
    before_body: latex/before_body.tex
    after_body: latex/after_body.tex
  keep_tex: yes
  dev: "cairo_pdf"
  latex_engine: xelatex
  citation_package: natbib
  template: null
  pandoc_args: --top-level-division=chapter
  toc_unnumbered: no
  toc_appendix: yes
  quote_footer: ["\\VA{", "}{}"]
  highlight_bw: yes

我们上面提到的所有导言 (preamble) 设置都在文件 latex/preamble.tex 中,其中我们还指定了前言 (front matter) 的开始:

译者注:\frontmatter 通常跟在 \begin{document} 后,会关闭章节序号,页码使用罗马数字。

\frontmatter

latex/before_body.tex 中,我们插入了出版商要求的一些空白页,并编写了奉献页。在书的第一章之前,我们插入

\mainmatter

因此,LaTeX 知道将页码样式从罗马数字(前言所用的样式)更改为阿拉伯数字(正文所用的样式)。

我们在 latex/after_body.tex(第 2.9 节)中打印索引。

由于默认设备 pdf 不能嵌入字体,因此用于保存图片的图形设备 (dev) 被设置为 cairo_pdf,以便字体可以嵌入图片中。你的文案编辑可能会要求您嵌入 PDF 中使用的所有字体,以便该书可以完全按其电子版本的外观打印,否则某些字体可能会被替换,印刷时的字型可能无法预测。

quote_footer 字段是为了确保引用页脚右对齐:krantz.cls 提供了 LaTeX 命令 \VA{} 以包含引用页脚。

highlight_bw 选项被设置为 true,这样语法高亮显示的代码块中的颜色将转换为灰度,因为这本书将采用黑白打印。

这本书是通过 xelatex 编译成 PDF 的,以便于我们使用自定义字体。

VF 环境和 \VA{} 命令外,上述所有设置都可以应用于任何其他 LaTeX 文档类。

如果你也想与 Chapman & Hall 合作,你可以从我们存储库 (https://github.com/rstudio/bookdown/tree/master/inst/examples) 中的 krantz.cls 文件开始,而不使用你从编辑那里得到的副本。我们已经与 LaTeX 帮助中心合作解决了这个 LaTeX 类的许多问题,所以如果你使用 bookdown,希望它能很好地用于你的书。