【问题标题】:Text (not syntax) highlighting in Rmarkdown/Papaja在 Rmarkdown/Papaja 中突出显示文本(不是语法)
【发布时间】:2019-07-12 22:52:35
【问题描述】:

我正在使用 Papaja 和 Rmarkdown 编写一份报告,并且我想在整个过程中突出显示各种文本。使用乳胶或纯 Rmarkdown 这样做很容易,但是当我使用 Papaja 的 Knitr 应用程序将报告编译为 PDF 时,我收到“未定义的控制序列”错误。

此处回答了有关在单个 Rmarkdown 文件中突出显示文本的类似问题:RMarkdown / pandoc fails to knit Pdf with latex color commands。我想知道使用 Papaja 的多个 Rmarkdown 文件是否存在答案。

我将在下面包含一个最小的示例。

1) 名为 papaja_file.Rmd 的文件

---

# https://crsh.github.io/papaja_man/index.html

title             : "Some Title"
shorttitle        : "HEADER"

author: 
  - name          : "Name R Here"
    affiliation   : "1"
    corresponding : yes    # Define only one corresponding author
    address       : "Include addresss"
    email         : "randomemail@usa.edu"

affiliation:
  - id            : "1"
    institution   : "Any University"



author_note: |
  ....

abstract: |
  Text here for abstract. 

keywords          : "Keyword1, keyword2, keyword3"
bibliography      : ["references.bib"]

figsintext        : no
figurelist        : no
tablelist         : no
footnotelist      : no
lineno            : yes

lang              : "english"
class             : "man"
output            : papaja::apa6_pdf
---

```{r load_packages, include = FALSE}
library("papaja")
```

```{r analysis_preferences}
# Seed for random number generation
set.seed(42)
```

```{r global_options, include=FALSE}
knitr::opts_chunk$set(fig.path = 'figures/', echo = TRUE, warning = FALSE, message = FALSE)
```


```{r child = 'child_document.Rmd'}
```


\newpage

# References
```{r create_references, echo = F}
r_refs(file = "references.bib")
```

\setlength{\parindent}{-0.5in}
\setlength{\leftskip}{0.5in}

请注意,它引用了单个子 Rmarkdown 文档。

2) 带有文本的子文档,称为child_document.Rmd

---
output: 
  pdf_document:
      includes:
          in_header: preamble.tex
---

One sentence without highlighting. \hl{Another with highlighting.}

3) 序言,称为 preamble.tex

\usepackage{color}
\usepackage{soul}
\definecolor{lightblue}{rgb}{0.90, 0.95, 1}
\sethlcolor{lightblue}

编织主 papaja 文件会产生错误。删除子文档中的 \hl 命令可以让 pdf 顺利编译。

将 YAML 标头放入主 papaja 文档而不是子文档后的结果:

【问题讨论】:

  • 您的 YAML 标头看起来不像普通的 papaja 文件。请提供minimal reproducible example
  • 好的,我已经编辑了问题以包含一个最小示例。

标签: r latex r-markdown knitr papaja


【解决方案1】:

未评估您子文档中的 YAML 标头,c.f.

例如,主文档由 YAML 前端内容组成并包括子文档,这些子文档本身就是没有 YAML 前端内容的 R Markdown 文档。

https://crsh.github.io/papaja_man/tips-and-tricks.html#splitting-an-r-markdown-document

但是您可以使用以下方法将您的 preamble.tex 包含在您的主文件中:

output: 
  papaja::apa6_pdf:
    includes:
      in_header: preamble.tex

参考https://github.com/rstub/stackoverflow/commit/a92a67d4721ee9c06e995b08adbf8cb89daebcb4

结果:

【讨论】:

  • 太棒了。这适用于诸如 \textcolor{blue}{A sentence with colored text} 之类的命令,但仅使用以下命令突出显示第一个括号:\hl{Sentence with color} 而不是整个句子...
  • @Topher 这很奇怪。我在 GitHub 上添加了示例文档结果的屏幕截图。你能从这份文件中得到什么?
  • 查看上面的结果。出于某种原因,它包含了括号并突出显示了第一个。
  • @Topher 您使用哪个 pandoc 版本? rmarkdown::pandoc_version() 可以告诉你。我正在使用与 RStudio 1.2.1335 一起安装的 2.3.1 版本。
  • 看起来我正在使用 pandoc 版本 2.2.3.2 和 RStudio 1.1.456
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-06-14
  • 1970-01-01
  • 1970-01-01
  • 2011-01-04
  • 1970-01-01
  • 2015-06-13
  • 1970-01-01
相关资源
最近更新 更多