Arquivo

Posts Tagged ‘alias’

Dicas para compilar Sweave no Linux

Sweave é o ponto de encontro entre o R e LaTeX. É uma ferramenta de edição de texto que combina o poder e elegância do LaTeX para edição de textos científicos com o as funcionalidades do aplicativo (mais que) estatístico R. Nesse post vamos apresentar dicas para compilar arquivos de extensão *.Rnw no terminal do Linux.

Considere que existe um arquivo mysweave.Rnw em um diretório de trabalho do seu Linux. Crie um arquivo de extensão *.sh que basicamente é um arquivo com comandos que são aplicados na linha do terminal do Linux. Use o nome swv.sh (acrônimo de sweave) e cole nele o conteúdo abaixo.

#!/bin/sh
# compila o arquivo *.Rnw gerando um *.tex
echo "library(tools); Sweave(paste(\"$1\",'.Rnw', sep=''))" | R --no-save --no-restore;
# compila o arquivo *.tex gerando um arquivo *.dvi
latex $1.tex
# compila o arquivo *.bib que contém as bibliografias
bibtex $1
# compila o arquivo *.tex gerando um arquivo *.pdf
pdflatex $1.tex

Cada comando do arquivo swv.sh contém um comentário acima da respectiva ordem que identifica a ação. O arquivo swv.sh deve estar no mesmo diretório do arquivo mysweave.Rnw e será onde os demais arquivos serão criados.

Nesse passo criaremos uma alias para o arquivo swv.sh. Para isso, vá no seu diretório pessoal (home) e edite o arquivo .bashrc (é um arquivo oculto). Adicione nesse arquivo as linhas abaixo.

# atalho para compilar *.Rnw
alias swv="./swv.sh"

Para compilar o seu arquivo mysweave.Rnw basta executar o comando swv no seu diretório de trabalho dessa forma

$ swv mysweave

Não é necessária a inclusão da extensão *.Rnw. É esperado que os respectivos arquivos mysweave.dvi e mysweave.pdf sejam gerados.

É possível definir esse atalho globalmente. Para isso, cole o arquivo swv.sh no diretório /bin. Para usar, na linha de comando faça

$ swv.sh mysweave

Dessa forma não é necessário ter o arquivo swv.sh em todo diretório com arquivos *.Rnw.

Anúncios
Categorias:linux, sweave Tags:, , , , ,