Orgmode dışa aktarma: yorum satırları için yeni bir satır nasıl önlenir


16

Şu anda benim orgmode (v8.3.4), LaTeX'e (ve belki de diğer formatları dışa aktarırken), bir yorum satırı veya ardışık yorum satırları bloğu için yeni bir satır oluşturur. Bu istenmeyen bir durumdur çünkü LaTeX'te bu yeni bir paragraf yaratacaktır. Yazarken, genellikle bir paragrafın ortasına bir veya iki satır yorum yapmam gerekiyor, ancak bu paragrafı ikiye bölmek istemiyorum. Şu anda, bu orgmode davranışı nedeniyle, bu yorumlu satırları paragraftan sonra taşımam gerekiyor, bu da metni revize ettiğimde kafa karıştırıcı olabilir.

Aşağıda minimal bir örnek var. Orgmode kaynağı:

First sentence.
# Commented sentence.
Last sentence.

orgmode tarafından LaTeX'e (başlangıç ​​ekini atlayarak) ihraç edilir:

\begin{document}
\tableofcontents

First sentence.

Last sentence.
\end{document}

İlk ve son cümleler arasında boş bir satır vardır; bu satır, bir paragraf yerine iki paragrafla sonuçlanır.

Bu orgmode davranışını durdurmanın bir yolu var mı? Bir açıklama satırı veya bir açıklama satırı bloğu, yeni bir satıra bile değil 0 bayt / karaktere aktarılmalıdır. Yorumlar işlenirken LaTeX'in davranışı budur.


3
Sanırım bu org modunda bir hata. Bunu kuruluş modu posta listesinde tartışmaya değer olabilir .
ph0t0nix

1
Ana kuruluş modu geliştiricilerinden biri olarak Nicolas Goaziou doğruladı, bu davranış bir hata değil, bekleniyor .
Kaushal Modi

yukarıdaki çözümlerin ikisi de işe yarıyor # comments, ama ne yazık ki hiçbiri # + için çalışmıyor BEGIN_COMMENT yorumlar # + END_COMMENT blok yorumun bulunduğu yerde LaTeX dışa aktarımına yeni bir satır ekleniyor ... Bunu düzeltmenin kolay bir yolu var mı? EDIT (cehennem-evet, var): @John tarafından verilen cevaba dayanarak, hem bloklar için hem # commentsde #+BEGIN_COMMENTbloklar için aşağıdakiler çalışır : (defun delete-org-comments (arka uç) (yorum için döngü (ters (org- element-map (org-element-parse-buffer) 'comment' kimliği)) do (setf (buffer-
subring

Yanıtlar:


4

Böyle bir şey deneyin. Bu kod bloğunu belgenize koyun ve çalıştırın. LaTeX, bir tampon Org LATEX Export'ta olacaktır .

* build :noexport:
#+BEGIN_SRC emacs-lisp
(defun delete-org-comments (backend)
  (loop for comment in (reverse (org-element-map (org-element-parse-buffer)
                    'comment 'identity))
    do
    (setf (buffer-substring (org-element-property :begin comment)
                (org-element-property :end comment))
          "")))

(let ((org-export-before-processing-hook '(delete-org-comments)))
  (switch-to-buffer (org-latex-export-as-latex)))
#+END_SRC

0

John'un cevap üzerine kurulan burada alternatif bir fonksiyon olduğunu kullanımları org-element-extract-elementve org-element-interpret-data:

(defun delete-org-comments (backend)
  (let ((tree (org-element-parse-buffer)))
    (org-element-map tree 'comment #'org-element-extract-element)
    (erase-buffer)
    (insert (org-element-interpret-data tree))))

org-elementAPI özellikle açık değildir, ama güçlü - sadece kendi başınıza bunu biraz araştırmak gerekiyor. :) Tabii ki, John's büyük belgeler için muhtemelen daha hızlıdır, çünkü sadece ağacı bir dizeye yeniden yorumlamak yerine tamponu değiştirir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.