如何将电子书函数 epub_book 和 kindlegen() 用于现有的 bookdown 文档?
How do I use the ebook functions epub_book and kindlegen() for existing bookdown documents?
我在 github(即 Hadley 的 R for Data Science and Efficient R)上找到了一些我想从源代码构建的电子书文档。编写文档的 Bookdown 有几个功能,即 epub_book()
和 kindlegen()
来构建电子书(而不是 github 图书网站),我想使用它我可以在 Kindle 上看书了。
我看过 bookdown documentation for those functions,但我不明白 how/where 使用这些函数来构建电子书文件 and/or 如果已经写入了输出选项我需要编辑的代码。
它们是结构。你应该这样做
render_book("file.Rmd", epub_book())
构建电子书。一些变量可以传递给 epub_book().
你可以看看 https://bookdown.org/yihui/bookdown/ 。这是一本用bookdown写的关于bookdown的书。
您可以手动使用kindlegen()
函数的方法如下:
- 安装 Kindlegen(这是一款来自 Amazon 的免费命令行工具,可将 .epub 转换为 .mobi)。
- 将Kindlegen的路径添加到PATH环境变量中
- 运行 R studio,构建.epub版本(构建面板(默认右上部分)>
Build book
> bookdown::epub_book
(取决于你的_output.yml
配置)).
- 当你已经有了epub版本后,在Console面板(默认左下部分),运行
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 格式。
我在 github(即 Hadley 的 R for Data Science and Efficient R)上找到了一些我想从源代码构建的电子书文档。编写文档的 Bookdown 有几个功能,即 epub_book()
和 kindlegen()
来构建电子书(而不是 github 图书网站),我想使用它我可以在 Kindle 上看书了。
我看过 bookdown documentation for those functions,但我不明白 how/where 使用这些函数来构建电子书文件 and/or 如果已经写入了输出选项我需要编辑的代码。
它们是结构。你应该这样做
render_book("file.Rmd", epub_book())
构建电子书。一些变量可以传递给 epub_book().
你可以看看 https://bookdown.org/yihui/bookdown/ 。这是一本用bookdown写的关于bookdown的书。
您可以手动使用kindlegen()
函数的方法如下:
- 安装 Kindlegen(这是一款来自 Amazon 的免费命令行工具,可将 .epub 转换为 .mobi)。
- 将Kindlegen的路径添加到PATH环境变量中
- 运行 R studio,构建.epub版本(构建面板(默认右上部分)>
Build book
>bookdown::epub_book
(取决于你的_output.yml
配置)). - 当你已经有了epub版本后,在Console面板(默认左下部分),运行
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 格式。