Estoy compilando mis archivos LaTeX desde la terminal y se vuelve un poco molesto ir cada vez a la terminal y usar:
xelatex "file-path"
¿Hay alguna manera de hacer esto desde dentro de Vim?
Respuesta1
Si te tomas en serio la pareja vim
+ latex
, mi opción preferida es usar la pareja latexxmk
+ LaTeXBox.
latexmk
En realidad, es independiente del editor: es un script que observa los archivos necesarios para compilar un documento de látex y vuelve a ejecutar la compilación cuando sea necesario. La configuración es un poco compleja, pero es una herramienta realmente útil. Por ejemplo, mi configuración xelatex
tiene un latexmkrc
archivo (en el mismo directorio) como este:
$pdf_previewer = "start evince";
$pdf_pdf_update_method = 0;
$dvi_mode = 0;
$pdf_mode = 1;
$preview_continuous_mode = 1;
$pdflatex = "xelatex %O %S";
ahora puede ejecutar latexmk file-name
(¡desde el mismo directorio!) y tendrá una compilación automática en segundo plano cada vez que modifique el archivo (o cualquier archivo dependiente, como un dibujo o una bibliografía). Simplemente guarde el archivo y observe cómo la vista previa se actualiza automáticamente.
latexmk
está en eluniversorepositorio, así que si lo tienes habilitado, simplemente puedes instalarlo mediante sudo apt-get install latexmk
.
Caja de látexes un complemento vim
que simplifica la edición de archivos LaTeX y se utiliza latexmk
para compilar. Instálelo siguiendo las instrucciones de la página vinculada y agréguelo a su .vimrc
:
" add a <comment> vim: set spelllang=es: to change language
" LaTeX:
let g:tex_flavor='latex'
autocmd FileType tex set spell wrap linebreak
let g:LatexBox_latexmk_async=1
let g:LatexBox_latexmk_preview_continuously=1
let g:LatexBox_quickfix=2
let g:LaTeXBox_output_type='' "Let latexmkrc choose the type
(cambia a tu gusto). Ahora comienza la compilación en segundo plano vim
con el comando \ll
.
Respuesta2
Pruebe algo como:
command C !xelatex %
en tus ~/.vimrc
.
Entonces puedes hacer:
:C
en vim para compilar el archivo.
Puedes realizar operaciones más complejas usando funciones:
function WriteCompileTex()
write
:! xelatex %
endfunction
command WC :call WriteCompileTex()
Tenga en cuenta que los comandos y funciones definidos por el usuario deben comenzar con una letra mayúscula.
También puedes hacer:
au BufWritePost *.tex ! xelatex %
Esto ejecutará este comando cada vez que .tex
se escriba un archivo, de modo que usted pueda simplemente hacerlo :w
y su archivo Tex se compilará después de guardarlo.