当函数插入字符串时,R Markdown 生成的 pdf 中的德语变音符号出错

Error with german umlauts in R Markdown generated pdf, when a string is inserted by a function

我 运行 在尝试使用自制函数时遇到了一个 st运行ge 问题,该函数根据字符串在文本中的位置以特定格式从数据框中插入字符串,带有几个子文档的文档。在我的 df 字符串中使用带有变音符号的德国机构名称后,PDF 文档的生成总是以 LaTeX 错误代码 1 停止。没有编码解决方法(例如 \"u, ü)可以解决问题。

设置:RStudio (1.1.442) with rmarkdown (1.9) 和 papaja (0.1.0) on Windows 10 (1803)。函数在主文档中定义,但在编织过程中在子文档中调用。

我已经尝试过 LaTeX 模板 encoding/language 设置但没有成功。主文档中的变音符按预期工作,所以我很确定子文档的编织有问题。

注意我已经自己解决了这个问题(见答案)。但是,我认为这是函数和子文档的问题,而不是 papaja 包的问题,​​因此在类似情况下可能会有帮助。也许其他人可以就这个问题说更多,或者有一些更可靠的方法来防止这种情况?

最终,我使用 Georgery 和 Dirk Eddelbuettel 在 问题中描述的两种方法解决了这个问题。

简而言之:

  1. 检查所有涉及文档的编码,必要时设置为UTF-8
  2. 将函数打印的字符串中的变音符号更改为 html 符号。

我发现子文档编码错误,但将其更改为 UTF-8 仅解决了文档本身的问题。当函数从 main 向 child 打印一个字符串时,LaTeX 仍然会抛出错误。多次尝试编织也没有奏效。在将 'ü' 换成 ü 之后一切正常。

我不知道幕后发生了什么,但我假设当字符串被放置在子文档中的预期位置时,编码以某种方式搞砸了。