包inputenc错误:RStudio中的Unicode char \ u8

时间:2015-09-26 06:00:47

标签: r pdf markdown rstudio knitr

在RStudio中,当我将我的Markdown文件转换为PDF时,它会给我错误:

  

输出文件:report.knit.md

     

!包inputenc错误:Unicode char \ u8:未设置为与LaTeX一起使用。

     

有关说明,请参阅inputenc软件包文档。   输入H即可获得帮助。   ......

     

l.117表现为32辆汽车(1973年

     

尝试使用--latex-engine = xelatex运行pandoc。   pandoc.exe:从TeX源生成PDF时出错   错误:pandoc文档转换失败,错误43   另外:警告信息:   运行命令'“C:/ Program Files / RStudio / bin / pandoc / pandoc”+ RTS -K512m -RTS report.utf8.md --to latex --from markdown + autolink_bare_uris + ascii_identifiers + tex_math_single_backslash-implicit_figures --output report。 pdf --template“C:\ Users \ USER \ Documents \ R \ win-library \ 3.2 \ rmarkdown \ rmd \ latex \ default.tex”--highlight-style tango --latex-engine pdflatex --variable“geometry: margin = 1in“'状态为43   执行暂停

My R版本(Windows 7):

R version 3.2.1 (2015-06-18) -- "World-Famous Astronaut" Copyright (C) 2015 The R Foundation for Statistical Computing Platform: x86_64-w64-mingw32/x64 (64-bit)

8 个答案:

答案 0 :(得分:24)

鉴于几乎相同的错误信息,我尝试了@ scoa的建议,但是将该行放在YAML标题中并没有改变错误,所以无论出于何种原因,Knitr都没有在那里查看确定LaTex引擎。然而,旁边的" Knit PDF"控制栏中的按钮是一个设置菜单,允许您指定在"高级"中结束的LaTex。窗格。这解决了我的问题。它会对上面的建议产生轻微的变化,因此修改YAML标题:

<html>...

我可以看到@scoa可能已经假定YAML输出已经按照这种方式格式化了,但我遗漏的是&#39; pdf_document&#39;之后的冒号。使用设置对话框在标题中创建了正确的语法。

RStudio版本0.99.896,编织版本1.12.3。

enter image description here

答案 1 :(得分:0)

这是一个技术含量较低的解决方案,但在其他所有方法都不奏效的情况下,它对我有用。尝试删除文件的一部分(将代码复制到其他位置之后),然后进行编织。然后通过消除过程,您可以将其范围缩小到引起问题的字符。请记住,问题可能多次发生。为了更容易找到字符,错误消息给了我字符的utf代码,我能够查看它的含义。显然,在我复制粘贴的文本中使用了五次特殊的“ fi”字符,因此我寻找并用普通的“ fi”替换了它们。

答案 2 :(得分:0)

我知道我为此有些迟,但是我只是遇到了几乎相同的错误(减去了pandoc部分)。

问题是我复制了维基百科上的一个句子,该句子的破折号不是utf8格式。我替换了破折号,它奏效了。

如果文档中包含“特殊”字符(例如不正确的空格/换行符或带重音的字符),则Latex无法创建pdf(出现编码错误)。检查复制粘贴文本的一种简单方法是首先将其粘贴到一个非常基本的文本编辑器中,例如nedit。

答案 3 :(得分:0)

我最近确实有同样的问题。

我以一种直截了当的方式解决了这个问题,也许您认为这很愚蠢。显然,该错误表明LaTeX无法正确识别代码中的某些字符或符号。

因此,我从R降价部分中删除了代码,以找出导致此问题的部分。最后,我找到了导致代码错误的部分。在我的代码中只是一个简短的描述。

### Platform:Affymetrix A-AFFY-2-Affymetrix GeneChip Arabidopsis Genome [ATH1-121501].

我记得我从网页或其他地方复制了此信息。

因此,我自己将这部分输入我的代码。它可以运行并生成pdf文件,没有任何错误。 现在,副本版本和我输入的版本之间有什么区别?

为清楚起见,我在下图中向您展示:

enter image description here

这只是我认为的一个例子。我想指出的是,当您将未知资源文件中的内容复制到代码中时,总是有问题的。

希望这可以帮助您和其他对此问题感到沮丧的人。

答案 4 :(得分:0)

我遇到了同样的问题,但是文档很长。我找到了这个解决方案(针对RStudio用户),而不是手动拆分文档以查找有问题的非utf8文本,而是以utf8格式保存了文档,做了很多工作并节省了很多时间:

  • 在Rstudio中
  • 从菜单中选择“文件”>“使用编码保存...”
  • 从对话框中选择“ UTF-8”

以下是原始链接:

答案 5 :(得分:0)

我解决了逐块检查、复制并粘贴到另一个脚本以测试并找到错误的问题。这是一个白痴错误,我不小心在评论中添加了字符 'ẽ'。我修复了,导出的 pdf 非常好。 :)

答案 6 :(得分:0)

更进一步

rstudio --version
1.3.1056

R version 4.0.5 (2021-03-31) -- "Shake and Throw"
Platform: x86_64-pc-linux-gnu (64-bit)

xelatex --version
XeTeX 3.14159265-2.6-0.999992 (TeX Live 2020 Gentoo Linux)
kpathsea version 6.3.2
Compiled with ICU version 67.1; using 67.1
Compiled with zlib version 1.2.11; using 1.2.11
Compiled with FreeType2 version 2.10.4; using 2.10.4
Compiled with Graphite2 version 1.3.14; using 1.3.14
Compiled with HarfBuzz version 2.7.4; using 2.7.4
Compiled with libpng version 1.6.37+apng; using 1.6.37+apng
Compiled with poppler version 21.02.0
Compiled with fontconfig version 2.13.1; using 2.13.1

在全局和项目选项中设置 XeLateX 不起作用。唯一有效的方法是在 YAML 中手动设置它,如上所述,或者转到 knitr 输出选项(按文件设置)并在 PDF 输出的“高级”选项卡下选择 XeLateX。

这让我不止一次被咬。

答案 7 :(得分:0)

尝试在 RStudio 中更改选项“Sweave”。

enter image description here