Orgmodeエクスポート:コメント行の新しい行を防ぐ方法


16

現在、私のorgmode(v8.3.4)は、LaTeX(およびおそらく他の形式ですがチェックしていない)にエクスポートするときに、コメント行または連続したコメント行のブロックに新しい行を生成します。LaTeXでは新しい段落が作成されるため、これは望ましくありません。私が書くとき、私はしばしばパラグラフの真ん中の行または2つをコメントする必要がありますが、そのパラグラフを2つに分割したくありません。現在、このorgmodeの動作のため、これらのコメント行を段落の後に移動する必要があります。これは、テキストを修正するときに混乱を招く可能性があります。

以下は最小限の例です。orgmodeソースは次のとおりです。

First sentence.
# Commented sentence.
Last sentence.

これは、orgmodeによってLaTeXにエクスポートされます(プリアンブルを省略):

\begin{document}
\tableofcontents

First sentence.

Last sentence.
\end{document}

最初の文と最後の文の間には空の行があり、1つではなく2つの段落になります。

orgmodeのこの動作を停止する方法はありますか?コメント行、またはコメント行のブロックは、改行ではなく、0バイト/文字にエクスポートする必要があります。これは、コメントを処理するときのLaTeXの動作です。


3
これは組織モードのバグだと思います。これはorg-modeメーリングリストで議論する価値があるかもしれません。
ph0t0nix

1
主要な組織モード開発者の1人であるNicolas Goaziouが確認したように、この動作はバグではなく予期されています。
カウシャルモディ

上記のソリューションは両方とも機能します# commentsが、残念ながら#+ BEGIN_COMMENTコメント#+ END_COMMENTには機能しません。EDIT(地獄は、ええ、あります):両方のため@ジョンが提供する回答に基づいて、次のような作品# commentsとのための#+BEGIN_COMMENTブロック:(defunを削除-ORG-コメント(バックエンド)(リバース(にコメントするループ(org- element-map(org-element-parse-buffer) 'comment' identity))do(setf(buffer-substring(org-element-property:begin comment)
-user2016854

回答:


4

このようなものを試してください。このコードブロックをドキュメントに入れて実行します。LaTeXはバッファOrg LATEX Exportにあります。

* 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

ジョンの答えに基づいてorg-element-extract-element、and を使用する代替関数を次に示します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は特に明白ではないが、それは強力です-あなたは自分自身でそれを少し探検しなければなりません。:)もちろん、John'sは、ツリーを文字列に再解釈するのではなく、バッファを変更するだけなので、大きなドキュメントの場合はおそらく高速です。

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