web-dev-qa-db-ja.com

Sublime Text + LaTeXTools:コンパイル後に生成されたファイルを自動的に削除する方法は?

私は Sublime Text Editor with LaTeXTools を使用してLaTeXで書き込みます。

を押してファイルをコンパイルします Control+B。テキストファイルにmain.texという名前を付けると、生成されるファイルは次のようになります。

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

LaTeXToolsパッケージを編集して、afterコンパイルプロセスが終了し、.aux, .bbl, .blg, .log,ファイルと.synctex.gzファイルが終了するようにする方法はありますか?削除されますか?

3
Aventinus

方法1:

Sublime Text LaTeXTools パッケージをインストールします。

デフォルトでは、Command Pallet -> LaTeXTools: Delete temporary tilesはデフォルトでCtrl-L, backspaceにマップされます。

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

LaTeXToolsパッケージも文書化されています ここ

パッケージの更新を気にせずにLaTeXToolsがクリーンアップする内容を調整するには、Preferences -> Package Settings -> LaTeXTools -> Settings -- Userを選択し、次のコードブロックを調整します。

// ------------------------------------------------------------------
// 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"
],

^b^lの両方を結び付けるにはコマンドパッケージのチェーン を使用します。 https://stackoverflow.com/a/27994582 、ビルドキーボードショートカットを変更してdelete_temp_filesを含めます。

方法2:

インストール latexmk 。とにかくこれが必要になるでしょう。LaTeXを必要な回数実行し、PDFが正しくビルドされるまで必要に応じてbiber/BibTeXを実行するからです。

次に、Sublime Text内でTools->Build Systemの下にNew Build Systemを選択し、次のように入力します。

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

latexmkがデフォルトのパスにない場合は、フルパスを指定する必要がある場合があります。上記はOSXとLinuxで動作します。 &&は、最初のコマンドが成功した場合に2番目のコマンドを実行するようにシェルに指示するbashスクリプトディレクティブです。 -cはクリーンアップを実行します。クリーンアップされるファイルは、latexmkの構成ファイルを使用して調整できます。

2
glallen

LaTeXToolsパッケージを変更することが最善のアプローチであるかどうか、特に定期的に更新される傾向があるパッケージである場合はわかりません。変更を再実装したり、時々再設計したりする必要があるかもしれません。ただし、これで完全に解決策がなくなるわけではありません。オペレーティングシステムのスクリプト機能を利用して、LaTeXToolsを呼び出し、その後クリーンアップするプロシージャを作成できる場合があります。

私自身Linuxユーザーであるため、これは次のようなbashスクリプトで実行できます。

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

もちろん、{}の間の文字列を、インターフェイス内でCtrl + Bを押したときと同じコンパイルを実行するために使用するCLIコマンド構造に置き換えます。

Windowsなどの別のオペレーティングシステムを使用している場合は、Windowsが提供するスクリプト機能を調べて、bashスクリプトで提示したものと同じ種類のアイデアを基に構築してみてください。

1
gluonman