Después de googlear breve y eficiente, he encontrado this link, y a primera vista, todo parece estar bien, pero el archivo pdf se confunde después de Sweaving ... Así que abordé este problema de otra manera: en caso de duda, vaya bash! Me he robado descaradamente la función de comprobación de errores del guión Sweep bash de Dirk disponible here. Básicamente, se trata de una solución: R CMD Sweave
es ejecutado en .Rnw archivo, por lo tanto, látex entra en juego, y pdflatex después de eso ...
Voy a publicar un script bash que hace el trabajo para mí . Debo decir que no soy un programador de bash avanzado, además ni siquiera soy programador por vocación, por lo que hay una gran posibilidad de que este guión pueda ser optimizado/escrito correctamente.Aquí va:
#!/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
continuación, guardar/copiar/mover este script en cualquiera de echo $PATH
carpetas (sigo mina en /usr/bin/
), y asegúrese de que es llamado Sweave, o elegir el nombre que desee, a continuación, poner estas líneas en sus .emacs archivo:
(global-set-key (kbd "C-c s")
(lambda()
(interactive)
(shell-command (concat "sweave " buffer-file-name))))
por supuesto, puede cambiar la combinación de teclas para satisfacer sus necesidades, y asegúrese de cambiar Sweave con el nombre del script colocado en /usr/bin/
.
Ten en cuenta que esto es no una respuesta, pero una solución. Si ha encontrado una forma de lidiar con la integración de AucTeX/ESS/Sweave, publíquelo y le daré una marca de verificación.
Antes de esta solución, tuve que hacer M-n s
para Sweave, seguido de C-c C-c
que es keybind predeterminado en AucTeX para la compilación de archivos LaTeX. El archivo producido es erróneo, así que tuve que probarlo con bash. Funciona para mí, si tienes alguna sugerencia, házmelo saber.
Saludos cordiales,
aL3xa
EDIT:
Insertada cd $FILEPATH
Gracias por la información sobre la primera. Logré hacerlo simplemente poniendo el archivo 'Sweave.sty' en'/usr/share/texmf-dist/tex/latex/Sweave', por lo que actualizo la base de datos de 'texconfig'. Entonces eso me deja con el # 2. Por cierto, vi tu script en SO, y estoy pensando en vincular un comando bash para ejecutar .Rnw como una solución 'hasta que descubra cómo hacer la parte de AucTeX. – aL3xa