【问题标题】:Producing pdf with knitr and Rmarkdown: accents in text show up but not in figures.使用 knitr 和 Rmarkdown 生成 pdf:文本中出现重音符号,但数字中没有。
【发布时间】:2017-09-13 15:30:17
【问题描述】:

段落中的重音效果很好。图中的文本在绘图查看器中是正确的,但是一旦我编译了 pdf,重音就会从图中消失。

这是一个重现该问题的示例。

---
title: 'Some title'
author: 'This be me'
date: '`r format(Sys.Date(), "%B %Y")`'
lang: es
header-includes: 
  - \usepackage{tikz}
output: 
  pdf_document:
    fig_caption: yes
---


```{r global options, echo = F, message=F}
library(knitr)
opts_chunk$set(fig.width=6, fig.height=3.5, dev = 'tikz')
```

I have some paragraphs that include cool accents like áspid. 

If I run the next chunk in the R console I see the accent on the figure it generated. But the accent is missing in the pdf. 


```{r}
plot(pressure, main= "áspid")
```

【问题讨论】:

  • 我认为这是一个你需要考虑的简单编码问题。尝试使用堆栈中的这个旧建议:stackoverflow.com/questions/18146409/accent-in-knitr
  • 感谢您的建议。编码不会影响整个文档吗?错误的编码不会也弄乱段落中的重音吗?
  • 它可能...这取决于您用于整个文档的语言,您可能有带或不带重音的选项。

标签: r pdf knitr r-markdown tikz


【解决方案1】:

这看起来像是 R tikzDevice 包中的错误。它使用 UTF-8 编码生成.tikz 文件,但不包含类似

\usepackage[utf8]{inputenc}

在其中声明编码。在其文档中有许多对?tikzDevice 帮助主题的“Unicode”部分的引用,但没有这样的部分。您可能想在软件包的 Github 页面上报告问题,https://github.com/yihui/tikzDevice

编辑添加:

经过一些实验,我看不到将该行添加到 .tikz 文件的方法,但请求 xelatex 而不是默认的 LaTeX 引擎 似乎确实有效。您可以通过添加 R 代码来做到这一点

options(tikzDefaultEngine = "xetex")

进入您的早期代码块。这将使用xelatex 用于数字,pdflatex 用于其余部分。 ("xetex" 不是错字;这就是您请求xelatex 的方式。)

如果需要,您可以在 YAML 标头中使用 latex_engine: xelatex 切换到 xelatex 其余部分,但除非您还添加选项设置,否则这些数字仍将使用 pdflatex

【讨论】:

  • 我不知道tikzDevice 包,谢谢分享!
猜你喜欢
  • 1970-01-01
  • 2020-01-06
  • 1970-01-01
  • 2016-07-09
  • 1970-01-01
  • 2021-08-14
  • 1970-01-01
  • 2013-06-09
  • 2014-03-30
相关资源
最近更新 更多