Recomendações para o desenvolvimento de documentos de Sweave
Pergunta
Estou procurando agilizar meu Arrancrar Criação de documentos, e eu gostaria de ouvir sobre as configurações atuais das pessoas. Eu sinto que o Santo Graal vai algo assim:
- Editando o código RNW em metade da tela
- Compilos de encadernação única Sweave Document e executa pdflatex
- Veja PDF na outra metade da tela; Uma vez compilado, o PDF é atualizado e centrado na parte do documento que você está editando
- Se a compilação tiver erros, substitua o PDF pelos resultados da compilação (por exemplo, erros de látex ou sweave erros)
Acho que a solução é parte do EMACS/ESS combinada com algum código para o perfil do EMACS e/ou um bom makefile. Mas eu realmente gostaria de ouvir sobre a maneira preferida de todos os documentos de sucar e/ou látex.
Solução
Alguns outros usuários do R que conversei para usar uma configuração de 'diretor por projeto' e um simples makefile. Como você suspeitava, isso funciona bem com o Emacs/ESS.
Eu tendem a chamar um script de shell simples sweave
que eu escrevi antes de 'r cmd sweave' foi adicionado (como eu encontro recriar ou copiar o Makefile Unpurepaning, YMMV). Eu também uso emacs e um visualizador de pdf de refrescamento automático (como okular
ou kpdf
). O EMACS23 também pode visualizar os arquivos PDF diretamente, mas ainda tenho que mudar meu fluxo de trabalho para isso.
edd@ron:~$ cat bin/sweave
#!/bin/bash -e
function errorexit () {
echo "Error: $1"
exit 1
}
function filetest () {
if [ ! -f $1 ]; then
errorexit "File $1 not found"
fi
return 0
}
if [ "$#" -lt 1 ]; then
errorexit "Need to specify argument file"
fi
BASENAME=$(basename $1 .Rnw)
RNWFILE=$BASENAME.Rnw
filetest $RNWFILE
echo "library(tools); Sweave(\"$RNWFILE\")" \
| R --no-save --no-restore --slave
LATEXFILE=$BASENAME.tex
filetest $LATEXFILE && pdflatex $LATEXFILE
Outras dicas
Você pode fazer tudo o que sugere lá com o plug -in Statet para o Eclipse. Isso é o que eu uso para o desenvolvimento do Swove; Entende muito bem o látex e o r, incluindo destaques de sintaxe, etc.
Você pode obtê-lo aqui: http://www.walware.de/goto/statet.
Longhow Lam escreveu um bom guia: http://www.splusbook.com/rintro/r_eclipse_statet.pdf.
eu uso Texshop no OS X para produzir todo o meu látex e soltar relatórios. Para mim, um novo pipeline de compilação é tão simples quanto adicionar um arquivo, chamado Sweave.engine
para ~/Library/TeXShop/Engines/
que contém o seguinte:
#!/usr/bin/env Rscript
args <- commandArgs(T)
fname <- strsplit(args[1],'\\.')[[1]][2]
Sweave(paste(fname,'Rnw',sep='.'))
system(paste('pdflatex',paste(fname,'tex',sep='.')))
O Sweave agora é um método selecionável para compilar um documento dentro da TexShop. Eu posso configurá-lo como o padrão para um documento adicionando o seguinte Hash-Bang no topo do arquivo:
% !TEX TS-program = Sweave
O pressionamento do CMD-T digitará o documento- o PDF aparece automaticamente em uma janela separada. Texshop também incorpora Synctex A tecnologia, portanto, um clique em CMD na fonte RNW destacará a saída correspondente na janela PDF e um clique CMD na janela PDF destacará a entrada correspondente na fonte RNW.
Texshop é apenas para Mac, mas um ótimo clone baseado em QT/Poppler, Texworks, está disponível para Linux, Windows e Mac e suporta muitos dos mesmos recursos-incluindo Tex Hash-Bangs e Synctex. Texworks atingiu um nível de maturidade onde está incluído na versão 2.8 do Miktex Pacote para Windows.
Tentar Rstudio.
Eu tenho sido fã de Emacs e Texshop Como mencionado em respostas anteriores.
No entanto, o RSTUDIO está começando a me conquistar. É um IDE dedicado rapidamente para melhorar a R. definitivamente vale a pena conferir.
Eu ainda amo fazer certas tarefas de desenvolvimento somente R no RI PADRÃO IDE para Mac. Mas para os documentos de Swave e alguns associados R Devel ao mesmo tempo, o RSTUDIO vence. Funciona com ajustes praticamente zero. Não tenho certeza sobre os recursos relacionados ao PDF na segunda metade da pergunta original.
Uma coisa que me salvou algum tempo é o modo 'Auto-Insert' no EMACS. Eu o configurei para que cada vez que eu abra um novo arquivo .RNW, o EMACS configure automaticamente um modelo básico de documento e tudo o que preciso fazer é começar a escrever meu relatório.
ATUALIZAÇÃO: Eu mudei para longe do auto-inserção. Agora eu uso a abordagem "modelo.el".
Eu também uso a abordagem "um diretório por projeto" e o Makefile. Também incluo comandos para criar saída no HTML, que pode ser convertido em OOO e MS Word, usando TTH. Isso é importante para mim, pois muitos dos meus colaboradores são usuários do MS Office e são resistentes a usar a saída PDF. Aprendi muito sobre como fazer isso com o Twiki de Frank Harrell em Vanderbilt.
Pessoalmente, uso GVIM como meu editor de escolha e corrida faço A partir daí, é bastante simples, como é da EMACS.