การลด LATEX_HEADER ถ่วงที่ด้านบนของไฟล์ org ของฉัน


13

ฉันมักจะเขียนโน้ตในโหมด org และส่งออกไปยังลาเท็กซ์ อย่างไรก็ตามเนื่องจากเอกสารบางฉบับมีความซับซ้อนฉันจึงจำเป็นต้องรวมแพคเกจยางพาราจำนวนมากไว้ที่ด้านบนดังนี้:

#+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}...

เป็นไปได้หรือไม่ที่จะเก็บคำสั่ง latex ทั้งหมด (\ usepackage คำจำกัดความมาโคร ฯลฯ ) ไว้ในไฟล์เท็กซัสแยกต่างหากเพื่อที่ฉันจะได้รวมบรรทัดเดียวไว้ที่ด้านบนของไฟล์ org? สิ่งนี้จะลดความยุ่งเหยิงจำนวนมากและทำให้ฉันเพิ่มแพ็คเกจได้ง่ายขึ้น

คำตอบ:


14

คุณสามารถใช้ประโยชน์จาก #+SETUPFILE:

วางการตั้งค่าทั้งหมดเหล่านี้ในไฟล์ตัวอย่าง./setup/setupfile.orgจากนั้นรวมการตั้งค่าเหล่านี้ไว้ในเอกสารของคุณด้วย

#+SETUPFILE: ./setup/setupfile.org

ในแฟ้มนี้คุณยังสามารถรวม#+OPTIONS:, #+AUTHORและที่คล้ายกันในการตั้งค่าบัฟเฟอร์ สิ่งที่มีประโยชน์มากขึ้นคือถ้าคุณโหลด#+SETUPFILE:ครั้งแรกคุณสามารถแทนที่การกำหนดค่าเหล่านี้ด้วยการตั้งค่าท้องถิ่น

ดูคู่มือ orgในการส่งออก

อีกวิธีคือใช้ประโยชน์#+INCLUDE: "./setup/more-settings.org" src org(หมายเหตุ") ซึ่งรวมถึงเนื้อหาของไฟล์เป็นแหล่งที่มาขององค์กร นี้เป็นเล็ก ๆ น้อย ๆ อีกหลากหลายเช่นสามารถมีมากกว่าหนึ่ง#+INCLUDEที่มี (AFAIK) #+SETUPFILEสามารถมีได้เพียงหนึ่ง

สุดท้ายที่จะซ่อนเกะกะสายตาคุณยังสามารถใส่ทั้งหมดของการตั้งค่าท้องถิ่นเหล่านี้ในลิ้นชัก (เช่นระหว่างบรรทัดด้วย:DRAWER:และเส้นด้วย:END:) tabและก็ซ่อนพวกเขาด้วย


3
จากประสบการณ์จริงของฉันโซลูชันลิ้นชักเป็นวิธีที่สะดวกและรวดเร็วที่สุดในการทำงานกับส่วนหัว
Dieter.Wilhelm

4

โซลูชันทางเลือกคือการตรวจสอบ / ปรับแต่งตัวแปรorg-latex-packages-alist- \usepackage{...}เพิ่มมีทุกอย่างที่จำเป็นของคุณ

ตัวแปรนี้จะมีการประกาศในและใช้โดยเพื่อให้การกำหนดค่าขององค์กรของคุณต้องมีการประกาศox-latex (require 'os-latex)วิธีนี้ไม่มีบรรทัดที่จะเพิ่มในเอกสารองค์กรยกเว้นชื่อเรื่อง

สำหรับมาโครสถานที่เก็บตามปกติคือแพ็คเกจ yasnippet ถ้าคุณใช้


3

โซลูชันทางเลือกคือใช้หัวเรื่องที่ไม่ถูกเอ็กซ์พอร์ตเพื่อตัดการกำหนดค่า:

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

ข้อดีของโซลูชันนี้กับลิ้นชักคือคุณสามารถรวมการกำหนดค่าที่ซับซ้อนได้อย่างง่ายดายเช่นบล็อก LaTeX

#+BEGIN_EXPORT LATEX
...
#+END_EXPORT

ซึ่งไม่ได้อ่าน (โดยค่าเริ่มต้น) เมื่ออยู่ในลิ้นชัก

ข้อดีของโซลูชันนี้กับไฟล์การกำหนดค่า (setupfile หรือ include) คือคุณสามารถเปลี่ยนการกำหนดค่าได้ง่ายเนื่องจากมันรวมอยู่ในไฟล์ปัจจุบัน

สุดท้ายหากคุณต้องการให้หัวเรื่องนี้ยังคงปิดอยู่ตามค่าเริ่มต้นเมื่อเปิดไฟล์ org คุณสามารถใช้ไวยากรณ์ต่อไปนี้:

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

ฉันมีหนึ่ง upvote ให้ - แต่นี่เพิ่งกลายเป็นค่าเริ่มต้นใหม่ของฉัน! คำตอบทั้งหมดเหล่านี้ควรเป็นไปตามคู่มือองค์กรตามแนวทางปฏิบัติที่ดีที่สุดสำหรับการส่งออกน้ำยางข้นเนื่องจากเป็นการตั้งค่าที่เน้นเอกสารและการตั้งค่าส่วนใหญ่ใน emacs
24719

1

แทนที่จะใช้#+SETUPFILE:ตามคำตอบที่ได้รับการยอมรับหากคุณสนใจเพียงแค่เอาต์พุต LaTeX คุณสามารถเพิ่มสิ่งต่อไปนี้แทน:

#+LATEX_HEADER: \input{header.tex}

ในheader.tex(หรือสิ่งที่คุณต้องการเรียกใช้) คุณสามารถวางคำนำหน้า LaTeX ทั้งหมดของคุณโดยไม่จำเป็นต้องมี#+LATEX_HEADER:ข้อโต้แย้งมากมาย ในการเป็นเมตาดาต้าระดับสูงคุณสามารถมี#+LATEX_HEADERตัวเลือกนี้ในของคุณ#+SETUPFILEได้


แก้ไขคำตอบของฉันเพื่อตอบคำถามนี้
jdtonkin
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.