首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在Bookdown中提供自定义模板时未呈现的标题和作者

在Bookdown中提供自定义模板时未呈现的标题和作者
EN

Stack Overflow用户
提问于 2020-04-11 22:17:04
回答 1查看 191关注 0票数 1

我的项目结构如下:

代码语言:javascript
代码运行次数:0
运行
复制
mybook/
├── _bookdown.yml
├── index.Rmd
├── c1.Rmd
├── c2.Rmd
├── template.tex

_bookdown.yml文件是:

代码语言:javascript
代码运行次数:0
运行
复制
rmd_files:
- c1.Rmd
- c2.Rmd
output_dir: _out
book_filename: _index_merged.Rmd

index.Rmd文件是:

代码语言:javascript
代码运行次数:0
运行
复制
---
title: A simple book
author: Andrea Tino
---

c1.Rmdc2.Rmd文件有一些琐碎的内容:只是一个标记标题和一些文本。

template.tex文件是:

代码语言:javascript
代码运行次数:0
运行
复制
% !TeX program = pdfLaTeX
\documentclass{monograph}

\usepackage{hyperref}
\usepackage{newtxmath}

\makeindex

\begin{document}

\author{ $for(authors)$ $authors.name$ \and $endfor$ }
\title{$title$}
$if(subtitle)$
    \subtitle{$subtitle$}
$endif$

\maketitle
\tableofcontents

$body$

\printindex

\end{document}

问题

当我从一个run (其中工作目录是mybook/)运行它时:

代码语言:javascript
代码运行次数:0
运行
复制
bookdown::render_book("index.Rmd", rmarkdown::pdf_document(template="template.tex", keep_tex=TRUE))

我收到一份PDF,其中:

  • 标题和作者不见了。
  • 内容( c1.Rmdc2.Rmd的结果)实际上是存在的。

通过查看_index_merged.tex (生成的TEX,我可以访问它,因为我在rmarkdown::pdf_document中指定了keep_tex=TRUE ),我可以清楚地看到:

  • 占位符$title$$author$被空字符串替换,因此出现空标题和作者。
  • 占位符$body$充满了内容。

以下是_index_merged.tex内容的相关摘录

代码语言:javascript
代码运行次数:0
运行
复制
...
\begin{document}

\author{ }
\title{}

\maketitle
...

为什么模板没有正确提取标题author

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-18 20:16:04

在bookdown中,如果您在rmd_files中指定了_bookdown.yml,那么只有这些文件才会被bookdown处理。由于您的标题和作者都在index.Rmd的yaml头中,所以您需要在rmd_files中也包含这个文件。或在c1.Rmd中添加yaml标头

参见rmd_files下订书中的行为

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61164416

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档