組織モードのエクスポート中間ファイルのクリーンアップ


7

org-modeを使用してPDFをエクスポートします。LaTeXを介してそれを行います。大丈夫。

したがって、.pdfファイル .texファイル取得します。

PDFだけが私にとって興味深いものです。org-modeが.texファイルを単独でクリーンアップする(または一時フォルダーに保存する)設定/方法はありますか?

回答:


6

変数org-latex-logfiles-extensionsをカスタマイズして、組織がエクスポート後にこれらの補助ファイルを自動的に削除できるようにすることができます。すなわち

(setq org-latex-logfiles-extensions (quote ("lof" "lot" "tex~" "aux" "idx" "log" "out" "toc" "nav" "snm" "vrb" "dvi" "fdb_latexmk" "blg" "brf" "fls" "entoc" "ps" "spl" "bbl")))

削除する拡張子を変数に追加します。


良いリード!私の最終的な解決策は以下のとおりです。(add-hook 'org-mode-hook (lambda ()(add-to-list 'org-latex-logfiles-extensions "tex")))
ジョセリンdelalande

これを組織モードのフックに追加する必要はないと思います。この変数は、org-modeでのみ機能します。
Leu_Grady 2016年

@ leu-grady:使用する場合はadd-to-list、varがあらかじめ存在している必要があります。これは、org-modeが初期化された後にのみ当てはまります。
Jocelyn delalande

@Jocelyndelalandeあなたは正しいです。しかし、おそらくeval-after-loadを試すことができます。
Leu_Grady 2016年

また、それorg-latex-remove-logfilesが非nil であることを確認する必要もありtます。これはデフォルトですが、ファイルが削除されない場合、その値が変更されている可能性があります。また、これ、latexが生成するさまざまなファイルのみをクリーンアップします。たとえば、org自体(またはemacs)が生成する可能性のあるサブディレクトリはクリーンアップされません。
NickD 2017

2

これは簡単な質問ですが、それほど単純な答えはありません。一時ファイルは、PDF出力の生成で繰り返し使用されます。AUCTeXもORGも、それらを削除しても安全かどうかはわかりません。したがって、不要になったかどうかを確認した後、手動で削除するために残されます。

手動の削除プロセスをスピードアップするいくつかの方法を次に示します。単純なシェルコマンドは、あまり手間をかけずに作業を実行します(必要に応じて他の拡張機能を追加します)。

(defun clear-latex-temp-files () (shell-command "rm -rf *.tex *.prv preview.fmt"))

pdf -cファイルを生成するには、pdflatexではなく、latexmkを使用して、一時ファイルを削除するオプションを使用できるようにします。

latexmk -c 

そして、このファイルに次の行を~\.latexmkrc挿入して、*.texand だけでなく、すべての一時ファイルをカバーします*.prv

@generated_exts = qw(aux idx ind lof lot out toc acn acr alg glg glo gls ist);

必要に応じて、他の一時ファイル(.synctex .gz .nav .vrb .snm .blg -blx .bib .bbl .run .xml)を追加できます。これは最もカスタマイズ可能なオプションです。

単純な組織ファイルのこの複雑さを回避するには-output-directory、pdflatexの組み込みオプションを使用できます。

pdflatex -output-directory=target <file>

これにより、pdf出力がターゲットディレクトリに配置されます。適切に生成されたことを確認したら、pdfファイルをそこから移動できます。削除可能なファイルはすべて1つの場所にあり、定期的に削除できます。

delete-file後にマクロを使用しないのはなぜorg-latex-compileですか?一時ファイルが時期尚早に削除される可能性があるためです。リンク切れ、リンクされていない参考文献エントリ、目次のリンクされていない章見出し、未完成のインデックス、表のリスト、図のリストが表示されることがあります。以下については、org-modeのドキュメント文字列を参照してくださいC-h f org-latex-compile

これがリストである理由は、通常、「pdflatex」の実行が数回かかるため、「bibtex」への呼び出しと混合される可能性があるためです。Orgには、安定した結果を得るためにこれらのコマンドのどれを実行する必要があるかを検出する巧妙なメカニズムがなく、エラーチェックも行われません。


ニート、私は唯一の「.tex」ファイルを作成するために必要なことを、非常に簡単な例を挙げてみました
ジュール・

@ leu-gradyソリューションについてどう思いますか?
Jocelyn delalande

理由がわかりません。PDFが生成された後、org-modeのクリーンアップが行われているようです(org-latex-remove-logfilesドキュメントを参照)。どうすればそれでも.texが必要ですか?要点を理解したいのですが、問題のある例を教えてください。
Jocelyn delalande 2016年

他の人がこの回答を読んでいる場合:PDFのインデックス、リンク、またはTOCエントリが欠落していることに気付いた場合は、このソリューションを使用してください。単純な組織ファイルの場合、一時ファイルが削除されても違いはありません。そうでなければ、完全性の誤った感覚を与えます。OPは問題のある例を見たいと思っていますが、ドキュメントにあるように、エラーチェックはありません。実行ごとに、一時ファイルが削除された時期(最初、2番目、または3番目のパスの後)に応じて、pdfにランダムなものが欠落していることに気付く場合があります。
Emacsユーザー

1

関数の後に、次のように中間ファイルを削除するようにアドバイスできます。

(advice-add 'org-latex-compile :after #'delete-file)

0

org-latex-pdf-processは次のように設定しました:

latexmk -outdir=/tmp/latexmk -f -pdf %F; mv %f /tmp/latexmk; mv /tmp/latexmk/%b.pdf %o

この方法では、すべての中間ファイルを「隠れた」場所に保持して、後続のコンパイルを高速化しますが、元の場所に保持されるのはPDFのみです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.