Rmarkdown 文本突出显示未显示在 PDF 输出中

Posted

技术标签:

【中文标题】Rmarkdown 文本突出显示未显示在 PDF 输出中【英文标题】:Rmarkdown text highlighting not showing up in PDF output 【发布时间】:2019-09-10 16:41:49 【问题描述】:

当我尝试使用单个反引号突出显示 Rmarkdown 中的文本时,我的 html 输出将包括突出显示和等宽,但 PDF 输出只生成具有等宽但没有突出显示的文本。语法突出显示在两种输出中都可以正常工作。

这是一个例子:

---
title: "Highlighting"
output: 
  pdf_document: default
  html_document: default
---

Syntax highlighting works fine, but when I highlight `text like this`, it highlights in the html output but not the pdf. 

我已经浏览了 pandoc 和 rmarkdown 文档,但找不到有关此特定问题的任何指导。任何有关故障排除的想法都值得赞赏。

> sessionInfo()
R version 3.6.0 (2019-04-26)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 17763)

Matrix products: default

Random number generation:
 RNG:     Mersenne-Twister 
 Normal:  Inversion 
 Sample:  Rounding 

locale:
[1] LC_COLLATE=English_United States.1252  LC_CTYPE=English_United States.1252    LC_MONETARY=English_United States.1252 LC_NUMERIC=C                          
[5] LC_TIME=English_United States.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] bookdownplus_1.5.7 bookdown_0.13      tinytex_0.15      

loaded via a namespace (and not attached):
 [1] Rcpp_1.0.2      digest_0.6.20   crayon_1.3.4    magrittr_1.5    evaluate_0.14   xaringan_0.11   pillar_1.4.2    rlang_0.4.0     magick_2.0      rmarkdown_1.15  tools_3.6.0    
[12] xfun_0.7        yaml_2.2.0      compiler_3.6.0  pkgconfig_2.0.2 htmltools_0.3.6 knitr_1.24      tibble_2.1.3

【问题讨论】:

您好,您可以使用以下 LaTeX 代码:\hlTextYouWantHighlighted。这将适用于 .pdf 输出。只需添加这些包soulcolor 安装这些软件包后,我得到一个“!未定义的控制序列。”错误——我还需要在 yaml 中添加什么来避免这种情况吗? 那些是 LaTeX 包而不是 R 包。 抱歉,感谢您的澄清 在这个线程中有一个答案,我可以修改它以产生我想要的输出,我会为遇到这个问题的其他人发布:community.rstudio.com/t/… 仍然不确定 html/ 发生了什么pdf 差异 【参考方案1】:

根据@Gainz 的建议,这终于(!)对我有用(感谢 Gainz):

---
header-includes:
   - \usepackagesoul
   - \usepackagecolor
output:
     pdf_document:
         latex_engine: xelatex
         extra_dependencies: xcolor
---

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

\hlyou text

【讨论】:

以上是关于Rmarkdown 文本突出显示未显示在 PDF 输出中的主要内容,如果未能解决你的问题,请参考以下文章

iTextSharp PDF 使用 C# 读取突出显示的文本(突出显示注释)

PDF 在图像上方/文本下方突出显示

如何使用 PDFKit 突出显示 pdf 中的选定文本?

iOS 无法选择/突出显示 PDF 中的文本

突出显示 PDF 上的文本

使用 iTextSharp 突出显示文本减少对 PDF 文件大小的影响