Dọn dẹp tập tin trung gian xuất khẩu chế độ org


7

Tôi sử dụng chế độ org để xuất PDF. Nó thực hiện thông qua LaTeX; khỏe.

Vì vậy, tôi nhận được tệp .pdf .tex .

Chỉ có PDF là thú vị đối với tôi. Bất kỳ cài đặt / cách nào mà chế độ org tự dọn sạch các tệp .tex (hoặc lưu trữ nó trong một thư mục tạm thời)?

Câu trả lời:


6

Bạn chỉ có thể tùy chỉnh biến org-latex-logfiles-extensionsđể cho phép org xóa các tệp phụ trợ đó sau khi xuất tự động. I E

(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")))

Thêm phần mở rộng mà bạn muốn xóa vào biến.


dẫn tốt! Giải pháp cuối cùng của tôi là:(add-hook 'org-mode-hook (lambda ()(add-to-list 'org-latex-logfiles-extensions "tex")))
Jocelyn delalande

Tôi không nghĩ bạn cần thêm cái này vào hook mode. Biến này chỉ nên hoạt động ở chế độ org.
Leu_Grady

@ leu-grady: điều là nếu tôi sử dụng add-to-list, var phải tồn tại trước, đó chỉ là trường hợp sau khi chế độ org đã được khởi tạo.
Jocelyn delalande

@Jocelyndelalande bạn nói đúng. Nhưng có lẽ bạn có thể thử eval-after-load.
Leu_Grady

Bạn cũng cần đảm bảo rằng org-latex-remove-logfilesnó không phải là con số không: ttheo mặc định, nhưng nếu các tệp không bị xóa, giá trị của nó có thể đã bị thay đổi. Ngoài ra, điều này chỉ làm sạch các tập tin khác nhau mà latex tạo ra. Nó không làm sạch, ví dụ như các thư mục con mà chính org (hoặc emacs) có thể tạo ra.
NickD

2

Đây là một câu hỏi đơn giản nhưng không có câu trả lời đơn giản như vậy. Các tập tin tạm thời được sử dụng nhiều lần trong quá trình sản xuất đầu ra pdf. Cả AocateeX và ORG đều không biết khi nào an toàn để xóa chúng. Do đó, chúng được để lại ở đó để xóa thủ công sau khi xác định nếu chúng không còn cần thiết.

Dưới đây là một vài cách để tăng tốc quá trình xóa thủ công. Một lệnh shell đơn giản sẽ thực hiện công việc mà không cần quá nhiều phiền phức (thêm các phần mở rộng khác nếu cần):

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

Sử dụng latexmk (thay vì pdflatex) để tạo pdf của bạn để bạn có thể sử dụng -ctùy chọn để xóa các tệp tạm thời:

latexmk -c 

và sau đó đặt dòng sau vào tệp này ~\.latexmkrcđể bao gồm tất cả các tệp tạm thời, không chỉ *.tex*.prv:

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

Bạn có thể thêm các tệp tạm thời khác (.synctex .gz .nav .vrb .snm .blg -blx .bib .bbl .run .xml) tùy theo nhu cầu của bạn. Đây là tùy chọn tùy biến nhất.

Để tránh sự phức tạp này cho các tệp org đơn giản, bạn có thể sử dụng -output-directorytùy chọn dựng sẵn của pdflatex.

pdflatex -output-directory=target <file>

Mà cũng sẽ đặt đầu ra pdf ở đó trong thư mục đích. Sau đó, bạn có thể di chuyển tệp pdf ra khỏi đó một khi bạn hài lòng, nó được tạo đúng. Tất cả các tệp có thể xóa đều nằm trong một vị trí có thể bị xóa theo định kỳ.

Tại sao không sử dụng macro để delete-filesau org-latex-compile? Bởi vì điều đó đôi khi có thể xóa các tập tin tạm thời sớm. Bạn có thể kết thúc với các liên kết bị hỏng, các mục biblio không được liên kết, các tiêu đề chương không được liên kết trong TOC và các chỉ mục chưa hoàn thành, danh sách các bảng, danh sách các hình. Xem chuỗi tài liệu chế độ org cho C-h f org-latex-compile:

Lý do tại sao đây là một danh sách là vì nó thường mất vài lần chạy 'pdflatex', có thể được trộn với một lệnh gọi đến 'bibtex'. Org không có một cơ chế thông minh để phát hiện lệnh nào trong số các lệnh này phải được chạy để có kết quả ổn định và nó cũng không thực hiện bất kỳ kiểm tra lỗi nào.


Gọn gàng, tôi chỉ thử với một ví dụ rất đơn giản, chỉ yêu cầu một tệp ".tex" duy nhất được tạo
Jules

Bạn nghĩ gì về giải pháp @ leu-grady?
Jocelyn delalande

Tôi không hiểu tại sao: việc dọn dẹp chế độ org dường như xảy ra sau khi PDF được tạo. (Xem org-latex-remove-logfilestài liệu); Làm thế nào nó vẫn có thể cần .tex ? Tôi muốn hiểu quan điểm của bạn, nhưng xin vui lòng cho tôi một ví dụ có vấn đề.
Jocelyn delalande

Đối với những người khác đọc câu trả lời này: nếu bạn nhận thấy các chỉ mục, liên kết hoặc các mục TOC bị thiếu trong pdf của bạn thì hãy sử dụng giải pháp này. Đối với các tệp org đơn giản, nó sẽ không tạo ra sự khác biệt khi các tệp tạm thời bị xóa. Nếu không, nó mang lại một cảm giác sai lầm về sự hoàn thiện. OP muốn xem một ví dụ có vấn đề, nhưng như tài liệu nói rằng không có kiểm tra lỗi. Đối với mỗi lần chạy, bạn có thể nhận thấy những điều ngẫu nhiên bị thiếu trong pdf của mình tùy thuộc vào thời điểm các tệp tạm thời bị xóa (sau lần đầu tiên, lần thứ hai hoặc lần thứ ba).
Người dùng Emacs

1

Bạn có thể đưa ra lời khuyên sau chức năng xóa tệp trung gian như thế này:

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

0

Tôi đặt org-latex-pdf-processthành một cái gì đó như:

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

Bằng cách này, tôi giữ tất cả các tệp trung gian ở một vị trí "ẩn" để tăng tốc các phần tổng hợp liên tiếp nhưng chỉ pdf được giữ ở vị trí ban đầu.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.