包 inputenc 错误:RStudio 中的 Unicode char \u8
Posted
技术标签:
【中文标题】包 inputenc 错误:RStudio 中的 Unicode char \\u8【英文标题】:Package inputenc Error: Unicode char \u8 in RStudio包 inputenc 错误:RStudio 中的 Unicode char \u8 【发布时间】:2015-12-23 23:50:09 【问题描述】:在 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 --输出报告。 pdf --template "C:\Users\USER\Documents\R\win-library\3.2\rmarkdown\rmd\latex\default.tex" --highlight-style tango --latex-engine pdflatex --variable "几何: margin=1in"' 的状态为 43 执行停止
我的 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)
【问题讨论】:
盲射,你定义了编码吗?\usepackage[utf8]inputenc
错误消息提示“尝试使用 --latex-engine=xelatex 运行 pandoc”。这是通过在输出下的 yaml 标头中添加 latex_engine: xelatex
来完成的:pdf_document。
仅供参考,\usepackage[utf8]inputenc
或 latex_engine: xelatex
或 @svannoy 的答案都对我有用。所以这仍然是一个悬而未决的问题,应该有赏金。
更新:我注意到我的一个双引号 (") 是从字处理器(例如 Microsoft Word)复制粘贴的,这是罪魁祸首。轻松修复。仔细检查那些双引号!
还有(现在)一个选项latex_engine: lualatex
。请参阅here 了解选项之间的简短比较。
【参考方案1】:
鉴于几乎相同的错误消息,我尝试按照@scoa 的建议进行操作,但是将该行放在 YAML 标头中并没有改变错误,因此无论出于何种原因,Knitr 都没有查看那里来确定 LaTex 引擎。但是,控制栏中的“Knit PDF”按钮旁边是一个设置菜单,允许您指定以“高级”窗格结尾的 LaTex。这为我解决了这个问题。它对上述建议产生了轻微的变化,因此修改了 YAML 标头:
output:
pdf_document:
latex_engine: xelatex
我可以看到@scoa 可能假设 YAML 输出已经采用这种方式格式化,但我缺少的是 'pdf_document' 后面的冒号。使用设置对话框在标题中创建了正确的语法。
RStudio 版本 0.99.896,knitr 版本 1.12.3。
【讨论】:
我使用了你的解决方案,尽管没有检索到错误,但它显示了纯乳胶代码 knitr.v1.15.1
。【参考方案2】:
这是一个技术含量较低的解决方案,但是当其他所有方法都不起作用时,它对我有用。尝试删除(在将代码复制到其他地方之后)文件的某些部分,然后编织它。然后通过消除过程,您将能够将其缩小到导致问题的字符。请记住,问题可能会多次出现。为了更容易找到字符,错误消息给了我字符的 utf 代码,我能够查找它是什么。显然,在我复制和粘贴的文本中使用了五次特殊的“fi”字符,所以我查找并用普通的“fi”替换它们。
【讨论】:
【参考方案3】:我知道我对此有点晚了,但我几乎遇到了同样的错误(减去 pandoc 部分)。
问题是我从***复制粘贴了一个句子,其中有一个不是 utf8 格式的破折号字符。我更换了破折号,它起作用了。
如果您的文档中有“特殊”字符,例如不正确的空格/换行符或带有重音符号的字符,Latex 将无法(出现编码错误)创建 pdf。检查复制粘贴文本的一种简单方法是首先将其粘贴到一个非常基本的文本编辑器中,例如 nedit。
【讨论】:
【参考方案4】:我最近确实有同样的问题。
我以直截了当的方式解决了这个问题,也许你认为这很愚蠢。显然,该错误表明 LaTeX 无法正确识别代码中的某些字符或符号。
所以,我从 R markdown 中逐部分删除代码,以查找导致此问题的部分。最后,我在我的代码中找到了导致错误的部分。在我的代码中只是一个非常简短的描述。
### Platform:Affymetrix A-AFFY-2-Affymetrix GeneChip Arabidopsis Genome [ATH1-121501].
我记得我从网页或其他地方复制了这些信息。
所以我自己将这部分输入到我的代码中。它可以运行并生成pdf文件而不会出现任何错误。 现在,复制版本和我打字的版本有什么区别?
为了清楚起见,我在下图中向您展示:
.
这只是我认为的一个例子。我想指出,当您将未知资源文件中的某些内容复制到代码中时,总是会出现问题。
希望这可以帮助您和其他对此问题感到沮丧的人。
【讨论】:
【参考方案5】:我遇到了同样的问题,但是文档很长。我没有手动拆分文档来查找有问题的非 utf8 文本,而是找到了这个解决方案(适用于 RStudio 的用户),将文档保存为 utf8 格式,效果很好,节省了大量时间:
在工作室中 从菜单中选择“文件”>“使用编码保存...” 从对话框中选择“UTF-8”这里是原始链接:
https://shiny.rstudio.com/articles/unicode.html https://github.com/rstudio/rmarkdown/issues/339【讨论】:
【参考方案6】:我解决了我的问题,逐块检查,复制并粘贴到另一个脚本以测试并找到错误。这是一个白痴错误,我不小心在评论中添加了字符 'ẽ'。我修好了,导出的 pdf 非常好。 :)
【讨论】:
【参考方案7】:进一步说明
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
在 Global 和 Project 选项中设置 XeLateX 无效。唯一可行的方法是在 YAML 中手动设置,如上所述,或者转到 knitr 输出选项(按文件设置)并在 PDF 输出的高级选项卡下选择 XeLateX。
这已经不止一次地咬我了。
【讨论】:
【参考方案8】:尝试在 RStudio 中更改“Sweave”选项。
【讨论】:
以上是关于包 inputenc 错误:RStudio 中的 Unicode char \u8的主要内容,如果未能解决你的问题,请参考以下文章
R Markdown 无法获取 RStudio 版本 - knit 中的错误消息