【问题标题】:How to remove compact title from R markdown to latex conversion?如何从 R markdown 到 Latex 转换中删除紧凑的标题?
【发布时间】:2017-07-26 16:43:01
【问题描述】:

我编写了自己的标题页,它是通过 R-markdown 文件中的包含加载的。但是,这与 pandoc 标题冲突。我正在尝试在 R markdown yaml 标头中查找设置,以便 pandoc 不会将以下代码插入到 tex 文件中。

% Create subtitle command for use in maketitle
\newcommand{\subtitle}[1]{
  \posttitle{
    \begin{center}\large#1\end{center}
    }
}

\setlength{\droptitle}{-2em}
  \title{}
  \pretitle{\vspace{\droptitle}}
  \posttitle{}
  \author{}
  \preauthor{}\postauthor{}
  \date{}
  \predate{}\postdate{}

pandoc 文档或 r markdown 指南中没有明确指示如何禁用标题生成。任何帮助将不胜感激。

更新: 特别是,我正在寻找能够让我继续使用\maketitle 命令创建标题页的解决方案。这就是为什么我专注于这个我想要摆脱的特定代码片段。

【问题讨论】:

  • 我猜你必须使用你自己的 pandoc 乳胶模板,并用你发布的内容替换那里的标题代码。请参阅:pandoc.org/MANUAL.html#templates(以及 rmd 文档,以防它们覆盖这些模板)
  • 谢谢,这听起来像是一个有效的选择。我真的浏览了文档,我认为你是对的。如果您将此作为答案,我会接受。
  • 确实,添加自己的模板是更灵活的选择;但仍然考虑以下来自 StatnMap 的答案,因为它非常有效
  • 这是一个有趣的选择,但遗憾的是它不是我想要的。我仍然会尝试创建自己的模板。

标签: r latex r-markdown pandoc


【解决方案1】:

我还使用我自己的标题页和 rmarkdown 文档来输出latex/pdf。要删除标题,您可以在名为 in_header 的文本文件中添加以下命令:

\AtBeginDocument{\let\maketitle\relax}

直接在 Rmd 文档中构建的 header.tex 文件的可复制示例:

---
title: "RMarkdown No title Test"
author: "StatnMap"
date: "July 30, 2017"
output:
  pdf_document:
    includes:
      in_header: header.tex
--- 

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```

```{r rm_title_page, echo=FALSE}
head <- cat('
\\AtBeginDocument{\\let\\maketitle\\relax}
', file = "header.tex")

```

# Title 1
**Some text**

# Title 2
**Some text**

【讨论】:

  • 感谢您的回答。然而,这并不是我想要的。特别是,我仍然使用\maketitle 来生成我的标题,所以\relax 作为替代品对我不起作用。我将更新问题,以反映这一细节。
  • 你为什么不创建一个新命令来调用你的标题,比如\newcommand*{\mytitle}{\begingroup .... \endgroup}?这样您就可以在 before_body tex 文件中使用 \mytitle 而不是 \maketitle 来调用它。
【解决方案2】:

在 YAML 工作中使用 compact-title: false

---
title: "This title is not compact"
author: "Test"
date: "2019 May 10"
output: pdf_document
compact-title: false
---

【讨论】:

  • 谢谢。这是对问题的最简洁和最简单的答案。
  • 嗨...在 rmarkdown 文件(truefalse)的 yaml 标头中添加一行 compact-title: false 似乎没有任何效果。两次显示相同的标题。有什么收获吗? @JaschaGrübel 你能澄清一下你到底想要什么吗?
  • knitr 编译器添加了一些设置,现在这些设置在标准情况下使标题看起来相同,但特定调用与我当时所做的冲突。请注意,如果您将 knitr 设置为保留 latex 文件,您可以使用 compact-title: false 进行验证,我在问题中引用的代码 sn-p 不会生成,而是使用标准 maketitle。
【解决方案3】:

我今天也遇到了同样的问题。这就是我所做的。 (也许当我想出更好的东西时,我会更新解决方案。)

解决方案很笨但很有用。我现在不能在行之间设置任意空格,因为我使用了\newline

---
title: "\\huge My Smart Title"
author: "\\newline \\Large My Smart Author"
date: "\\newline \\Large 2018-12-25"
output:
  pdf_document:
    includes:
      in_header: preamble.tex
    latex_engine: xelatex
---

以下是解决方案前后的输出。

之前:

之后:

注意: 如果你不知道“作者”和“日期”的字体大小是\large而不是@默认为 987654326@。

结束

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-02-15
    • 2016-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多