Estou compilando meus arquivos LaTeX a partir do terminal e fica um pouco chato ir sempre ao terminal e usar:
xelatex "file-path"
Existe uma maneira de fazer isso dentro do Vim?
Responder1
Se você leva o casal vim
+ a sério latex
, minha opção preferida é usar o casal latexxmk
+ LaTeXBox.
latexmk
é independente do editor, na verdade --- é um script que monitora os arquivos necessários para compilar um documento latex e reexecuta a compilação quando necessário. A configuração é um pouco complexa, mas é uma ferramenta muito útil. Por exemplo, minha configuração xelatex
é ter um latexmkrc
arquivo (no mesmo diretório) 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";
agora você pode executar latexmk file-name
(a partir do mesmo diretório!) e terá compilação automática em segundo plano toda vez que modificar o arquivo (ou qualquer arquivo dependente --- como um desenho ou uma bibliografia). Basta salvar o arquivo e ver a visualização ser atualizada automaticamente.
latexmk
está nouniversorepositório, então se você tiver isso habilitado, você pode simplesmente instalá-lo por sudo apt-get install latexmk
.
LaTeX-BoXé um plugin vim
que simplifica a edição dos arquivos LaTeX e utiliza latexmk
para compilar. Instale-o seguindo as instruções na página vinculada e adicione-o ao seu .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
(mude ao seu gosto). Agora você inicia a compilação em segundo plano vim
com o comando \ll
.
Responder2
Tente algo como:
command C !xelatex %
na tua ~/.vimrc
.
Então você pode fazer:
:C
no vim para compilar o arquivo.
Você pode realizar operações mais complexas usando funções:
function WriteCompileTex()
write
:! xelatex %
endfunction
command WC :call WriteCompileTex()
Observe que os comandos e funções definidos pelo usuário devem começar com letra maiúscula.
Você também pode fazer:
au BufWritePost *.tex ! xelatex %
Isso executará este comando sempre que um .tex
arquivo for gravado, para que você possa simplesmente fazer isso :w
, e seu arquivo Tex será compilado após salvar.