O RStudio fornece uma maneira de um botão para produzir arquivos PDF a partir da fonte LaTeX + R com Knitr. Parece ótimo para fazer pesquisas reproduzíveis. E estou tentando configurar meu Emacs para:
- no buffer esquerdo, código LaTeX + R, no modo Knitr;
- no buffer direito de visualização da saída PDF;
- uma combinação de teclas para compilar.
Se for possível: como devo configurar isso, por favor?
(O ESS funciona bem, mas não sei como configurar o Knitr-way e um botão para compilar.)
rmarkdown::render
(viashell-command
) na correntebuffer-file-name
, que atualizará o pdf na outra janela.Respostas:
ATUALIZAR
No ESS 19.04, as bibliotecas
ess-noweb
eess-swv
são obsoletas:Consequentemente, minha resposta original (abaixo) não se aplica mais. Os recursos que essas bibliotecas costumavam fornecer agora são fornecidos pelo polymode e a configuração é mais simples. Para obter suporte mínimo, tudo que você precisa é instalar o
ess
,polymode
epoly-R
pacotes (de Melpa, ou da fonte, se é assim que você rolo).É isso aí! Agora, se você abrir um
Rnw
arquivo, deverá ver aPM-Rnw
bandeira na modelagem e haverá umPolymode
menu na parte superior. Você pode transformar seu arquivo em um.tex
arquivo viaM-n w
(ou no menu polymode) e exportá-lo para.pdf
viaM-n e
(ou no menu). Você será solicitado a exportar a primeira vez que fizer isso; Eu apenas pegueiknitr
.NOTA: exportar (
M-n e
) executa automaticamente o seu código, gera o pdf e o exibe, tudo de uma só vez. Não consegui obter esse comportamento de "um clique" com a versão antiga descrita abaixo.Os arquivos gerados terão a palavra
-woven
e serão-exported
anexados. Se você não gostar disso, poderá personalizar as opçõespolymode-weaver-output-file-format
epolymode-exporter-output-file-format
.O processo é semelhante para os arquivos RMarkdown (
.Rmd
).Detalhes completos são fornecidos no manual do polimodo
Resposta original (obsoleta após o ESS 19.04)
Três variáveis precisam ser definidas:
ess-swv-pdflatex-commands
, no grupo de personalizaçãoess-sweave
precisa ter "pdflatex" como o primeiro comando. ou seja, deve ser algo como:("pdflatex" "texi2pdf" "make")
ess-swv-processor
, no grupo de personalizaçãoess-R
, deve ser o valor"knitr"
ess-pdf-viewer-pref
no grupo de personalizaçãoess
para"emacsclient"
. Isso pressupõe que você esteja executando o servidor emacs ou o emacs esteja executando no modo --daemon. Você também deve usar as ferramentas pdf, se possível, pois é muito preferível ao visualizador de PDF embutido no Emacs.Eu uso um gancho para adicionar duas combinações de teclas para chamar BibTeX e texi2pdf:
Uma vez feito isso,
M-n s
você tricotará seu documento,M-n b
fará bibtex eM-n P
o processará com pdflatex.Observe que não há uma maneira simples de o Emacs saber quando o tricô está completo; portanto, você não pode configurá-lo para tricotar e látex em uma única etapa; você deve acionar manualmente o pdflatex depois de ver o tricô terminado.
Dadas as várias etapas aqui - Rnw -> Látex -> PDF, não acho que você possa fazer com que o Synctex mantenha seus arquivos PDF e Rnw para rolar juntos, mas ficaria emocionado por estar errado.
Quanto ao arranjo das janelas, nunca consigo que eles fiquem onde quero. Então, para compensar, tornei-me bastante hábil em baralhar janelas e buffers conforme necessário;)
Yihui postou um pequeno vídeo no site knitr demonstrando parte disso.
fonte
Esta é uma solução multifuncional. Ele criará e exibirá um PDF a partir de um Rnw .
Especificamente:
O procedimento tenta sair com mensagens informativas se uma das etapas acima falhar.
Uma instância R será aberta, se necessário, ou a atual será usada para mostrar o processo de tricô.
A saída LaTeX é enviada para o buffer "TeX-output", que também é acionado em caso de erro de compilação.
Uso
Meta- x
knit-me
para criar e visualizar o PDF.Meta- x
knit-me-clear
para remover arquivos intermediários do LaTeX eknit-me
.A bibliografia requer o pacote "biblatex", ou seja:
O nome do mecanismo de jardinagem (por exemplo
bibtex
,biber
) é obtido analisando abackend
palavra - chave.\addbibresource
O comando é analisado para obter o arquivo bibliográfico: sefoo.bib
for mais recente que o arquivo TeX, o mecanismo de babagem será executado. Nesse sentido, somente o primeiro\addbibresource
comando é levado em consideração se houver muitos.Customizar
Para realmente visualizar o PDF, defina o caminho executável do visualizador com:
Possivelmente, use um visualizador como o SumatraPDF , que atualiza automaticamente o PDF quando recompilado e não bloqueia o arquivo aberto, impedindo novas compilações.
O mecanismo LaTeX padrão é
pdflatex
(assumido no caminho atual). Personalize com:Claro que você pode querer ligar
knit-me
eknit-me-clear
a algumas teclas convenientes.Notas
Testado no Windows MiKTeX, com
biber
ebibtex8
back-ends e GNU Emacs 25.1.1.Código Elisp
fonte