簡潔で効率的なグーグル検索の後、このリンクを見つけました。一見、すべて問題ないように見えますが、Sweaving 後に pdf ファイルが文字化けしてしまいます...だから、この問題に別の方法で取り組みました。ここで入手可能な Dirk の Sweave bash スクリプトからエラー チェック機能を恥知らずに盗みました。基本的に、これは回避策です。.RnwファイルでR CMD Sweave
実行されるため、 latexが入り、その後pdflatexが...
私のために仕事をするbashスクリプトを投稿します。私は高度な bash プログラマーではないことを述べなければなりません。さらに、職業上のプログラマーでさえないため、このスクリプトを適切に最適化/作成できる可能性は十分にあります。ここに行きます:
#!/bin/bash
FILEBASE=${1%.*}
FILEXT=${1##*.}
FILEPATH=${1%/*}
TEXFILE=$FILEBASE.tex
PDFFILE=$FILEBASE.pdf
# errorexit
function errorexit () {
echo "Error: $1"
exit 1
}
# check if file exists
if [ ! -f $1 ]; then
errorexit "File $1 not found!"
else
# check for filename length
if [ ${#1} -lt 1 ]; then
errorexit "Need to specify argument file!"
else
# if filelength OK, check extension
if [ $FILEXT != "Rnw" ]; then
errorexit "You must pass Sweave (.Rnw) file!"
# finally, run Sweave
else
cd $FILEPATH && R CMD Sweave $1
# latex $TEXFILE
pdflatex $TEXFILE
# xdg-open $PDFFILE
fi
fi
fi
次に、このスクリプトを任意のフォルダーに保存/コピー/移動し(私echo $PATH
の/usr/bin/
場合は.
(global-set-key (kbd "C-c s")
(lambda ()
(interactive)
(shell-command (concat "sweave " buffer-file-name))))
もちろん、必要に応じてキーバインディングを変更することもできます。また、スクリプト名を に配置して、sweave/usr/bin/
を必ず変更してください。
これは答えではなく、回避策であることに注意してください。AucTeX/ESS/Sweave の統合に対処する方法を見つけた場合は、投稿してください。チェックマークを付けます。
この回避策の前に、M-n s
Sweaveを実行する必要がありました。その後C-c C-c
、LaTeX ファイルのコンパイル用に AucTeX でデフォルトのキーバインドが行われました。生成されたファイルが間違っているので、bash で試してみる必要がありました。それは私にとってはうまくいきます。何か提案があれば教えてください。
よろしく、
aL3xa
編集:
挿入cd $FILEPATH