Sublime Text + LaTeXTools: Como excluir automaticamente arquivos gerados após a compilação?

3

Eu uso o Sublime Text Editor 3 com o LaTeXTools para escrever no LaTeX.

Eu compilo arquivos pressionando Control+ B. Se eu nomear meu arquivo de texto como main.tex, os arquivos gerados serão:

 - main.aux
 - main.bbl
 - main.blg
 - main.log
 - main.pdf
 - main.synctex.gz

Existe uma maneira de editar o pacote LaTeXTools para que, após o processo de compilação, os arquivos .aux, .bbl, .blg, .log,e .synctex.gzsejam excluídos?

Aventinus
fonte
Não tenho certeza de como você faria isso com sua cadeia de ferramentas, mas lembre-se de que isso prolongará o tempo necessário para compilar, pois os arquivos auxiliares etc. contêm informações intermediárias. Com documentos maiores, isso será perceptível. Uma opção fácil pode ser criar um arquivo em lotes que permita uma limpeza "fácil" sob demanda.
Seth
Qual sistema operacional e distribuição LaTeX você está usando?
Hugh

Respostas:

2

Método 1:

Instale o pacote Sublime Text LaTeXTools .

Por padrão, o Command Pallet -> LaTeXTools: Delete temporary tilesé mapeado para Ctrl-L, backspacepor padrão:

// super+l,backspace to remove temporary files
{ "keys": ["super+l", "backspace"],
  "context":  [{"key": "selector", "operator": "equal", 
                  "operand": "text.tex.latex"}],
  "command": "delete_temp_files"},

O pacote LaTeXTools também está documentado aqui .

Para ajustar o que o LaTeXTools limpa sem se preocupar com atualizações de pacotes, escolha Preferences -> Package Settings -> LaTeXTools -> Settings -- Usere ajuste o seguinte bloco de código:

// ------------------------------------------------------------------
// Temporary file settings
// ------------------------------------------------------------------
// Ends of the names of temporary files to be deleted
"temp_files_exts": [
    ".blg",".bbl",".aux",".log",".brf",".nlo",".out",".dvi",".ps",
    ".lof",".toc",".fls",".fdb_latexmk",".pdfsync",".synctex.gz",
    ".ind",".ilg",".idx"
],
// Folders that are not traversed when deleting temp files
"temp_files_ignored_folders": [
    ".git", ".svn", ".hg"
],

Para amarrar ambos ^be ^ljuntos : usar a Cadeia de comando do pacote como descrito por https://stackoverflow.com/a/27994582 , e modificar o atalho de teclado compilação para incluir delete_temp_files.

Método 2:

Instale o latexmk . Você vai querer isso de qualquer maneira, já que executa o LaTeX o número necessário de vezes e executa o biber / BibTeX conforme necessário até que ele crie o pdf corretamente.

Em Sublime TextSob, Tools->Build Systemescolha New Build Systeme insira o seguinte:

{
    "shell_cmd": "latexmk -pdf \"$file\" && latexmk -c",
    "selector": "text.tex.latex"
}

Se latexmknão estiver no caminho padrão, pode ser necessário especificar o caminho completo. O acima irá funcionar no OSX e Linux. A &&é uma diretiva de script bash que diz ao shell para executar o segundo comando se o primeiro comando tiver êxito. O -cexecuta a limpeza. Quais arquivos são limpos podem ser ajustados através do arquivo de configuração latexmk.

sombrio
fonte
1

Não sei se modificar o pacote do LaTeXTools é a melhor abordagem, especialmente se for um pacote propenso a atualizações regulares. Você pode ter que reimplementar suas modificações ou até re-projetá-las de tempos em tempos. No entanto, isso não deixa você completamente sem uma solução. Você pode confiar nas habilidades de script do seu sistema operacional para criar um procedimento que chame o LaTeXTools e depois limpe depois.

Sendo um usuário do Linux, isso poderia ser feito em um script bash como o seguinte:

#!/bin/bash
    PROJECTNAME=$1
    {COMMAND_LINE_EQUIVALENT_OF_YOUR_CONTROL_B_COMMAND}
    rm $1.aux $1.bbl $1.blg $1.log $1.synctex.gz

Obviamente, você substituiria a string entre os {} s por qualquer estrutura de comando da CLI que usaria para realizar a mesma compilação que você faz quando pressiona Ctrl + B em sua interface.

Se você estiver usando um sistema operacional diferente, como o Windows, convém verificar quais recursos de script o Windows oferece e tentar criar o mesmo tipo de idéia que eu apresentei no script bash.

Gluonman
fonte