5

更新

この質問へのコメントに詳述されているさまざまなことを試した後、私の問題は進化しました。この質問で以前に説明された問題は、@apple16 で提案されているように、または @RandyLai で"$PATH"議論されているように、私の構成に関連するように、JSON が正しくないことが原因である可能性があります。

根本的な問題である文字エンコーディングを特定した可能性があります。Sublime Text でビルド バリアントを使用して、.Rmdドキュメントの YAML フロントマターに分音記号を付けると (ここで元の質問をするときに行っていました)、最初に説明したものとは異なるエラーが発生し、もはや取得していないようです:

Error en yaml::yaml.load(front_matter)

興味深いことに、このエラーは、すべてが完全にレンダリングされる RStudio またはターミナル (またはシェル スクリプトから) の同じ YAML ではスローされません。YAML から分音記号を削除しても、ST でエラーは発生しません。ただし、メイン ドキュメントに分音記号を入れるとNA、結果の HTML のようにレンダリングされます。この種のことは、以下で「奇抜に間違った」HTML 出力として説明した、以前に起こっていたことに似ています。

この質問へのコメント"$PATH"では、@RandyLaiの場合と同様に、不要に見えるさまざまなことをしようとしています。pandoc特にパスをtoに追加することについて言及しています/etc/launchd.config: デフォルトのパスを復元した後、ビルドバリアントを'sまたは' s/usr/bin:/bin:/usr/sbin:/sbinで使用するかどうかに関係なく、すべてが ST で機能します。SublimeKnitr-knitr.sublime-buildR Box-R Markdown.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 Text がそのファイルをどのように実行するかを調べようとしてい.sublime-buildます。

Mac の Sublime Text 3 (v10.9.3) で、SublimeKnitrknitr-MarkdownR Boxの両方の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')\""
    }
  ]
}

そして、これが私.sublime-buildの R Box の R Markdown です。これは、SublimeKnitr の Knitr-Markdown ビルドと非常によく似ています。

{
    "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')

SublimeKnitr のビルドを使用しても、R Box のビルドを使用した場合と同じ結果が得られます。私が得る出力は次のとおりです。

  1. マッピングで:

    "cmd": [ "Rscript -e \"rmarkdown::render(input = '$file')\"" ],
    "shell": true
    

    私は得る:

    Error: pandoc version 1.12.3 or higher is required and was not found.
    Ejecuci'on interrumpida
    [Finished in 0.4s with exit code 1]
    [cmd: ['Rscript -e "rmarkdown::render(input = \'/path/to/file.Rmd\')"']]
    [dir: /path/to/pertinent/directory]
    [path: /usr/bin:/bin:/usr/sbin:/sbin]
    

    私は実際にpandocインストールして完全に動作していることに注意してください。

    Mi-Mac:~ LeGastronome$ pandoc --version
    pandoc 1.12.4.2
    Compiled with texmath 0.6.6.1, highlighting-kate 0.5.8.1.
    Syntax highlighting is supported for the following languages:
        actionscript, ada, apache, asn1, asp, awk, bash, bibtex, boo, c, changelog,
        clojure, cmake, coffee, coldfusion, commonlisp, cpp, cs, css, curry, d,
        diff, djangotemplate, doxygen, doxygenlua, dtd, eiffel, email, erlang,
        fortran, fsharp, gcc, gnuassembler, go, haskell, haxe, html, ini, isocpp,
        java, javadoc, javascript, json, jsp, julia, latex, lex, literatecurry,
        literatehaskell, lua, makefile, mandoc, markdown, matlab, maxima, metafont,
        mips, modelines, modula2, modula3, monobasic, nasm, noweb, objectivec,
        objectivecpp, ocaml, octave, pascal, perl, php, pike, postscript, prolog,
        python, r, relaxngcompact, restructuredtext, rhtml, roff, ruby, rust, scala,
        scheme, sci, sed, sgml, sql, sqlmysql, sqlpostgresql, tcl, texinfo, verilog,
        vhdl, xml, xorg, xslt, xul, yacc, yaml
    Default user data directory: /Users/LeGastronome/.pandoc
    Copyright (C) 2006-2014 John MacFarlane
    Web:  http://johnmacfarlane.net/pandoc
    This is free software; see the source for copying conditions.  There is no
    warranty, not even for merchantability or fitness for a particular purpose.
    
  2. マッピングで:

    "shell_cmd": "Rscript -e \"rmarkdown::render(input = '$file')\""
    

    目的のタイプのドキュメントである HTML を取得しましたが、HTML は奇妙に間違っており、ターミナルおよび RStudio から前述のコードを実行したときに取得したものとは異なります。さらに、Sublime Text でのみ、次の警告が表示されます。

    pandoc: YAML header is not an object "source" (line 1, column 1)
    

    上記の元のビルド構成のように、括弧 " [ " を次のように使用することに注意してください。

    "shell_cmd": [ "Rscript -e \"rmarkdown::render(input = '$file')\"" ]
    

    ビルド バリアントを実行しようとすると、Sublime はビルドもせず、ファイルを保存する以外にも何もしません。

.sublime-build私の問題はかなりユーザー固有のように思われるため、ファイルの実行方法に関するより正確な情報を探しています。一部の非公式ドキュメントから、デフォルトで少しの Python が実行されていることがわかります。ただし、上記のように、ビルドバリアントに含まれているのと同じコードをターミナルから実行すると、次のことが可能になる可能性があります。

Rscript -e "rmarkdown::render(input = 'path/to/file.Rmd')"

Sublime Text とはまったく異なる結果が得られますか? 助けてくれてありがとう。

4

1 に答える 1