RStudio proporciona una forma de un botón para producir archivos PDF desde la fuente LaTeX + R con Knitr. Se ve muy bien para hacer una investigación reproducible. Y estoy tratando de configurar mi Emacs para:
- en el código del búfer izquierdo LaTeX + R en forma Knitr;
- en la vista previa de salida de PDF del búfer derecho;
- Una combinación de teclas para compilar.
Si es posible: ¿cómo debo configurar esto, por favor?
(ESS funciona bien, pero no sé cómo configurar Knitr-way y un botón para compilar).
rmarkdown::render
(víashell-command
) en el actualbuffer-file-name
, que actualizará el pdf en la otra ventana.Respuestas:
ACTUALIZAR
A partir de ESS 19.04, las bibliotecas
ess-noweb
yess-swv
son obsoletas:En consecuencia, mi respuesta original (a continuación) ya no se aplica. Polymode proporciona las características que estas bibliotecas solían proporcionar, y la configuración es más simple. Para conseguir un apoyo mínimo, todo lo que necesita es instalar el
ess
,polymode
ypoly-R
los paquetes (de Melpa, o de origen si así es como se rollo).¡Eso es! Ahora, si abre un
Rnw
archivo, debería ver laPM-Rnw
bandera en la línea de modo, y habrá unPolymode
menú en la parte superior. Puede entrelazar su archivo en un.tex
archivo víaM-n w
(o el menú polimodal) y exportarlo a.pdf
través deM-n e
(o el menú). Se le solicitará un exportador la primera vez que haga esto; Acabo de elegirknitr
.NOTA: exporting (
M-n e
) ejecuta automáticamente su código, genera el pdf y lo muestra, todo de una vez. No pude obtener ese comportamiento de "un clic" con la versión anterior que se describe a continuación.Los archivos generados tendrán la palabra
-woven
y se-exported
agregarán. Si no le gusta esto, puede personalizar las opcionespolymode-weaver-output-file-format
ypolymode-exporter-output-file-format
.El proceso es similar para los archivos RMarkdown (
.Rmd
).Los detalles completos se proporcionan en el manual de polymode
Respuesta original (obsoleta después de ESS 19.04)
Se deben establecer tres variables:
ess-swv-pdflatex-commands
, en el grupo de personalizacióness-sweave
debe tener "pdflatex" como primer comando. es decir, debería verse algo así como:("pdflatex" "texi2pdf" "make")
ess-swv-processor
, en el grupo de personalizacióness-R
, debe ser el valor"knitr"
ess-pdf-viewer-pref
en el grupo de personalizacióness
para"emacsclient"
. Esto supone que está ejecutando el servidor emacs o que emacs se está ejecutando en modo --daemon. También debe usar herramientas pdf si es posible, ya que es mucho mejor que el visor de pdf Emacs incorporado.Utilizo un enlace para agregar dos combinaciones de teclas para llamar a BibTeX y texi2pdf:
Una vez hecho esto
M-n s
,M-n b
tejerá su documento, lo archivará yM-n P
lo procesará con pdflatex.Tenga en cuenta que no hay una manera simple de que Emacs sepa cuándo se completa el tejido, por lo que no puede configurarlo para tejer y látex en un solo paso; debe activar manualmente pdflatex después de haber visto que el tejido ha terminado.
Dados los múltiples pasos aquí: Rnw -> Latex -> PDF, no creo que pueda hacer que Synctex mantenga sus archivos PDF y Rnw para desplazarse juntos, pero me encantaría que me demuestren que están equivocados.
En cuanto a la disposición de las ventanas, nunca puedo hacer que se queden donde las quiero. Entonces, para compensar, me he convertido en un experto en barajar ventanas y buffers cuando los necesito;)
Yihui publicó un video corto en el sitio de knitr que demuestra algo de esto.
fuente
Esta es una solución todo en uno. Será crear y mostrar un PDF a partir de un Rnw .
Específicamente:
El procedimiento intenta salir con mensajes informativos si falla uno de los pasos anteriores.
Se abrirá una instancia R, si es necesario, o la actual se usa para mostrar el proceso de tejido.
La salida de LaTeX se envía al búfer de "salida de TeX", que también aparece en caso de error de compilación.
Uso
Meta- x
knit-me
para crear y ver el PDF.Meta- x
knit-me-clear
para eliminar archivos intermedios de LaTeX yknit-me
.La bibliografía requiere el paquete "biblatex", es decir:
El nombre del motor bib (p
bibtex
. Ej .biber
) Se obtiene analizando labackend
palabra clave.\addbibresource
El comando se analiza para obtener el archivo de bibliografía: sifoo.bib
es más reciente que el archivo TeX, se ejecuta el motor bib. En este sentido, solo el primer\addbibresource
comando se tiene en cuenta si hay muchos.Personalizar
Para ver realmente el PDF, configure la ruta ejecutable del visor con:
Posiblemente use un visor como SumatraPDF , que actualiza automáticamente el PDF cuando se vuelve a compilar y no bloquea el archivo abierto evitando nuevas compilaciones.
El motor predeterminado de LaTeX es
pdflatex
(asumido en la ruta actual). Personalizar con:Por supuesto, es posible que desee vincular
knit-me
yknit-me-clear
algunas teclas convenientes.Notas
Probado en Windows MiKTeX, con
biber
ybibtex8
backends y GNU Emacs 25.1.1.Código Elisp
fuente