Giảm sự lộn xộn LATEX_HEADER ở đầu các tệp org của tôi


12

Tôi thường viết ghi chú trong chế độ org và xuất chúng sang latex. Tuy nhiên, vì một số tài liệu phức tạp nên tôi cần bao gồm nhiều gói latex ở đầu như vậy:

#+LATEX_HEADER: \usepackage[margin=1.15in]{geometry}
#+LATEX_HEADER: \usepackage{parskip}
#+LATEX_HEADER_EXTRA: \usepackage{graphicx}
#+LATEX_HEADER_EXTRA: \usepackage{mdframed}
#+LATEX_HEADER_EXTRA: \usepackage{needspace}
#+LATEX_HEADER_EXTRA: \usepackage{hyperref}         
#+LATEX_HEADER_EXTRA: \usepackage{titling}
#+LATEX_HEADER_EXTRA: \usepackage{enumitem}
#+LATEX_HEADER_EXTRA: \usepackage{etoolbox}                             
#+LATEX_HEADER_EXTRA: \usepackage{color}                             
#+LATEX_HEADER_EXTRA: \usepackage{underscore}...

Có thể lưu trữ tất cả các lệnh tiêu đề latex (\ usepackage, macro định nghĩa, v.v.) trong một tệp tex riêng để tôi có thể chỉ có một dòng duy nhất bao gồm ở đầu tệp org không? Điều này sẽ làm giảm rất nhiều sự lộn xộn và giúp tôi dễ dàng thêm các gói.

Câu trả lời:


13

Bạn có thể sử dụng một #+SETUPFILE:

Đặt tất cả các cài đặt này vào một tệp, ví dụ ./setup/setupfile.org, sau đó đưa chúng vào tài liệu của bạn với

#+SETUPFILE: ./setup/setupfile.org

Trong tập tin này, bạn cũng có thể bao gồm #+OPTIONS:, #+AUTHORvà tương tự như các thiết lập trong bộ đệm. Điều thậm chí còn hữu ích hơn, là nếu bạn tải phần #+SETUPFILE:đầu tiên, thì bạn có thể ghi đè một số cấu hình này bằng cài đặt cục bộ.

Xem thêm hướng dẫn org về xuất khẩu.

Một giải pháp khác là sử dụng #+INCLUDE: "./setup/more-settings.org" src org(lưu ý ") chỉ đơn giản bao gồm nội dung tệp dưới dạng nguồn org. Điều này linh hoạt hơn một chút, vì có thể có nhiều hơn một #+INCLUDEnơi mà ở đó (afaik) chỉ có thể là một #+SETUPFILE.

Cuối cùng, để ẩn sự lộn xộn một cách trực quan, bạn cũng có thể đặt tất cả các cài đặt cục bộ này vào một ngăn kéo (nghĩa là, giữa một dòng với :DRAWER:và một dòng với :END:), và chỉ cần ẩn chúng với tab.


3
Theo kinh nghiệm thực tế của tôi, giải pháp ngăn kéo là cách làm việc thuận tiện nhất và nhanh nhất với các tiêu đề.
Dieter.Wilmus

4

Một giải pháp thay thế là kiểm tra / tùy chỉnh biến org-latex-packages-alist- thêm vào đó tất cả những gì bạn cần \usepackage{...}.

Biến này được khai báo và sử dụng bởi ox-latex, vì vậy cấu hình org của bạn phải có khai báo (require 'os-latex). Bằng cách này, không có dòng nào để thêm vào tài liệu org, ngoại trừ tiêu đề.

Đối với các macro, một nơi thông thường để lưu trữ là gói yasnippet, nếu bạn sử dụng nó.


2

Một giải pháp thay thế là sử dụng một tiêu đề không xuất để bọc cấu hình:

* Configuration :ignoreheading:
#+AUTHOR:   
#+STARTUP: showall
...

Ưu điểm của giải pháp này so với các ngăn kéo là bạn có thể dễ dàng bao gồm cấu hình tinh vi, chẳng hạn như các khối LaTeX

#+BEGIN_EXPORT LATEX
...
#+END_EXPORT

mà không được đọc (theo mặc định) khi trong ngăn kéo.

Ưu điểm của giải pháp này so với các tệp cấu hình (setupfile hoặc bao gồm) là bạn có thể dễ dàng thay đổi cấu hình vì nó được bao gồm trong tệp hiện tại.

Cuối cùng, nếu bạn muốn tiêu đề này vẫn được đóng theo mặc định khi mở tệp org, bạn có thể sử dụng cú pháp sau:

* Configuration :ignoreheading:
  :PROPERTIES:
  :VISIBILITY: folded
  :END:

Tôi chỉ có một upvote để cho - nhưng điều này đã trở thành mặc định mới của tôi! Tất cả các câu trả lời này nên được đưa vào hướng dẫn sử dụng theo hướng dẫn thực hành tốt nhất được đề xuất cho xuất khẩu latex, như một thiết lập tập trung vào tài liệu so với việc đặt hầu hết các thiết lập trong cấu hình emacs.
glallen

1

Thay vì sử dụng #+SETUPFILE:theo câu trả lời được chấp nhận, nếu bạn chỉ quan tâm đến đầu ra LaTeX, thì bạn có thể thêm vào như sau:

#+LATEX_HEADER: \input{header.tex}

Trong header.tex(hoặc bất cứ điều gì bạn muốn gọi nó), sau đó bạn có thể đặt tất cả lời mở đầu LaTeX của mình mà không cần cả đống #+LATEX_HEADER:đối số. Để trở thành siêu meta, bạn cũng có thể có #+LATEX_HEADERtùy chọn này trong #+SETUPFILE.


Chỉnh sửa câu trả lời của tôi để trả lời câu hỏi này.
jdtonkin
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.