更新
我的问题是在尝试了对这个问题的评论中详细说明的各种事情之后发生了变化。前面在这个问题中描述的问题可能确实是由于@apple16 16所建议的糟糕的JSON造成的,或者与我的"$PATH"配置有关,就像@RandyLai所讨论的那样。
我可能已经发现了潜在的问题:字符编码。使用我在崇高文本中的构建变体和我的.Rmd文档前面的对话(我在这里询问原始问题时一直在做的)会导致一个与最初描述的错误不同的错误,而我似乎不再得到这样的错误:
Error en yaml::yaml.load(front_matter)有趣的是,此错误不是在RStudio或终端(或从shell脚本)中抛出的相同的YAML,在这些脚本中,所有内容都呈现得非常完美。当我从YAML中删除diacritics时,我在ST中没有错误;但是,如果我将diacritics放在主文档中,这些内容在生成的NA中被呈现为NA。这种类似于之前发生的事情,我在下面描述为“错误的”HTML输出。
在对这个问题的评论中,我试图对我的"$PATH"做各种事情,就像@RandyLai一样,现在似乎没有必要;我特别指的是在/etc/launchd.config中添加到pandoc的路径:在恢复了默认路径/usr/bin:/bin:/usr/sbin:/sbin之后,一切都在ST中工作,就像我现在描述的那样,无论我在SublimeKnitr-knitr's .sublime-build还是R Box-R Markdown's .sublime-build中使用构建变体。
这是我的地区信息,如果有用的话:
Mi-Mac:~ LeGastronome$ locale
LANG=
LC_COLLATE="C"
LC_CTYPE="UTF-8"
LC_MESSAGES="C"
LC_MONETARY="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_ALL=我正在试图了解崇高文本是如何执行其.sublime-build文件的。
在我的Mac上的崇高文本3 (v10.9.3)中,我为SublimeKnitr的knitr-Markdown和R盒的R Markdown语法创建了一个自定义构建变体;以下是前者的.sublime-build文件,该文件具有完全功能的原始/默认构建,然后是我的错误版本:
{
"selector": "text.html.markdown.knitr",
"working_dir": "${project_path:${folder}}",
"cmd": [ "Rscript -e \"library(knitr); knit('$file', output='$file_path/$file_base_name.md')\"" ],
"shell": true,
"variants":
[
{
"name": "Render",
"working_dir": "$file_path",
"shell_cmd": "Rscript -e \"rmarkdown::render(input = '$file')\""
}
]
}下面是我用于R Box的R Markdown的.sublime-build,它非常类似于SublimeKnitr的针织品-标记器构建:
{
"selector": "text.html.rmarkdown",
"working_dir": "${project_path:${folder}}",
"cmd": [ "Rscript -e \"library(knitr); knit('$file', output='$file_path/$file_base_name.md')\"" ],
"shell": true,
"variants":
[
{
"name": "Render",
"working_dir": "$file_path",
"shell_cmd": "Rscript -e \"rmarkdown::render(input = '$file')\""
}
]
}在我的自定义构建变体中,我尝试使用cmd和shell这对键,以及上面代码中引用的shell_cmd,我认为这对于ST3来说是新的。在任何情况下,我在终点站运行时,两人都会做一些不受欢迎的事情:
Rscript -e "rmarkdown::render(input = 'path/to/file.Rmd')"我也不会在RStudio中运行:
rmarkdown::render(input = 'path/to/file.Rmd')我得到了相同的结果,使用亚石灰build的构建,就像我使用R Box的构建。我得到的输出如下:
pandoc并已完全运行,例如:
Mac:~ LeGastronome$ pandoc -版本pandoc 1.12.4.2,用文本数学0.6.6.1编译,突出显示-kate 0.5.8.1。以下语言支持语法突出显示: actionscript、ada、apache、asn1、asp、awk、bash、bibtex、boo、c、changelog、clojure、cmake、咖啡、coldfusion、commonlisp、cpp、cs、css、curry、d、diff、djangotemplate、doxygen、doxygen、dtd、eiffel、电子邮件、erlang、fortran、fsharp、gcc、go、go、haskell、haxe、html、ini、isocpp、java、javadoc、javascript、json、jsp、julia、乳胶乳、lex、apache、literatehaskell、lua、makefile、makefile、latex、maxima、lua。metafont、mips、modelines、modula2、modula3、monobasic、nasm、noweb、objectivec、objectivecpp、ocaml、octave、pascal、perl、php、pike、postscript、prolog、python、r、松弛性压缩、重组文本、rhtml、roff、ruby、锈病、scala、John、sci、sed、sgml、sql、sqlmysql、sqlpostgresql、tcl、texinfo、verilog、vhdl、xml、xorg、xul、xul、yacc、yaml默认用户目录:/ user /LeGastronome/.pandoc (C) --2014年-- MacFarlane http://johnmacfarlane.net/pandoc:免费软件;有关复制条件,请参见源。没有任何保证,即使是适销性或适合某一特定用途。我的问题似乎是特定于用户的,因此我正在寻找关于如何执行.sublime-build文件的更精确的信息。我从一些非正式文件了解到,默认情况下会运行一些Python;但是,正如上面提到的,当我从终端运行与构建变体中包含的代码相同的代码时,怎么可能:
Rscript -e "rmarkdown::render(input = 'path/to/file.Rmd')"我从崇高的文本中得到了如此不理想的不同结果?谢谢你的帮助。
发布于 2014-06-18 01:25:04
看来你的系统不是用英语写的。当您在终端中运行R时,因为"LC_CTYPE“是utf-8,R会将文档读入UTF-8文档。但是,如果命令是在Sublime内部启动的,那么"LC_CTYPE“是空的,因此R不知道使用什么编码。
有几种解决办法。
https://stackoverflow.com/questions/24235175
复制相似问题