5

我在 github 上找到了几个 bookdown 文档(即 Hadley 的R for Data ScienceEfficient R),我想从源代码构建为电子书。编写文档的 Bookdown 有几个功能,即构建电子书(epub_book()kindlegen()不是 github 书网站),我想使用它,以便可以在我的 Kindle 上阅读书籍。

我已经查看了这些函数的 bookdown 文档,但我不明白如何/在哪里使用这些函数来构建电子书文件和/或是否已经在我需要编辑的代码中编写了输出选项。

4

2 回答 2

5

它们是结构。你应该做这样的事情

render_book("file.Rmd", epub_book())

构建电子书。一些变量可以传递给 epub_book()。

你可以看看https://bookdown.org/yihui/bookdown/。这是一本用bookdown写的关于bookdown的书。

于 2017-06-06T11:25:45.957 回答
2

您可以手动kindlegen()使用该功能的方法如下:

  1. 安装 Kindlegen(这是来自 Amazon 的免费命令行工具,用于将 .epub 转换为 .mobi)。
  2. 将 Kindlegen 的路径添加到 PATH 环境变量中。
  3. 运行 R studio,构建 .epub 版本(构建面板(默认右上角)> Build book> bookdown::epub_book(取决于您的_output.yml配置)。
  4. 在您已经拥有 epub 版本后,在控制台面板(默认为左下方)中,运行bookdown::kindlegen().

Kindlegen 将找出在哪里可以找到 .epub 版本,并将其转换为 .mobi。


要将其添加到构建过程中,您_build.sh可能看起来像这样(注意最后一行):

#!/bin/sh

set -ev

Rscript -e "bookdown::render_book('index.Rmd', 'bookdown::html_book')"
Rscript -e "bookdown::render_book('index.Rmd', 'bookdown::pdf_book')"
Rscript -e "bookdown::render_book('index.Rmd', 'bookdown::epub_book')"
Rscript -e "bookdown::kindlegen()"

_output.yml需要为html_book, pdf_book,定义配置epub_book,如下所示:

bookdown::html_book:
  toc: yes
  css: style.css
  split_by: chapter
bookdown::pdf_book:
  includes:
    in_header: preamble.tex
  latex_engine: xelatex
  citation_package: natbib
  keep_tex: yes
  template: null
bookdown::epub_book: default

在此之后,Build book>All formats应该生成所有 HTML、PDF、EPUB 和 MOBI 格式。

于 2018-12-05T12:38:37.077 回答