9

Org-modeを使用してビーマープレゼンテーションを作成する場合、エクスポートされた見出しが表示されず、その内容のみが表示されるように見出しのプロパティを設定できます。たとえば、次の

#+title: Test

#+options: toc:nil
#+latex_class: beamer
#+startup: beamer

#+BEAMER_FRAME_LEVEL: 2

* Ignored heading                                           :B_ignoreheading:
:PROPERTIES:
:BEAMER_env: ignoreheading
:END:
Text

「テキスト」のみで見出しのないフレームになります。この種の機能は、ビーマー以外のドキュメントで利用できますか?つまり、見出しをエクスポートせず、その内容のみをエクスポートするようにOrg-modeに指示することは可能ですか?たとえば、Org-modeで次のエクスポートを行うことは可能でしょうか?

#+title: Test

* Ignored heading
Text

見出し「無視された見出し」をエクスポートせずに「テキスト」のみをエクスポートしますか?

エクスポートする場合

#+title: Test

* 
Text

(後のスペースに注意してください*)LaTeXに次のように表示されます(関連する部分のみを含めました)。

\section{}

Text

しかし、これは私が望むものではありません。エクスポートで見出しを完全に無視して、次のようにします(ここでも関連する部分のみを含めます)。

Text
4

3 に答える 3

9

あなたが求めているものに対するデフォルトのサポートはありません。ただし、前処理フックを使用して同様の出力を取得できます。LaTeXエクスポートの例を次に示します。

;; backend aware export preprocess hook
(defun sa-org-export-preprocess-hook ()
  "My backend aware export preprocess hook."
  (save-excursion
    (when (eq org-export-current-backend 'latex)
      ;; ignoreheading tag for bibliographies and appendices
      (let* ((tag "ignoreheading"))
        (org-map-entries (lambda ()
                           (delete-region (point-at-bol) (point-at-eol)))
                         (concat ":" tag ":"))))))

(add-hook 'org-export-preprocess-hook 'sa-org-export-preprocess-hook)

これは私のorg-mode設定からの抜粋です。オリジナルはgithubで見ることができます 。上記のコードはignoreheading、たとえばでタグ付けされた見出しを無視します。

* Heading 1
* Heading 2                           :ignoreheading:
+ Some text
+ an item

次のようにエクスポートされます:

\section{Heading 1}
\label{sec-1}

\begin{itemize}
\item Some text
\item an item
\end{itemize}

警告:このソリューションには既知の問題があります。最初の見出しでこれを試してみると、機能しません。なぜそうなのかわかりません。いつか調査する時間があればいいのですが。

警告の回避策:上記の制限は、組織ファイルのヘッダーの後に次のような行を使用することで、LaTeXエクスポートで回避できます。

\include{preamble.tex}

preamble.texファイルには、要約や謝辞などのセクションを含めることができます。ただし、これにより、組織ファイルがエクスポートバックエンドに非常に密接に関連付けられることに注意してください。たとえば、同じ組織ファイルをHTMLにエクスポートするのは簡単ではありません。

注:新しいエクスポートフレームワーク(Org 8.0以降)を使用した同様のセットアップでは、以下を使用します。

(defun sa-ignore-headline (contents backend info)
  "Ignore headlines with tag `ignoreheading'."
  (when (and (org-export-derived-backend-p backend 'latex 'html 'ascii)
          (string-match "\\`.*ignoreheading.*\n"
                (downcase contents)))
    (replace-match "" nil nil contents)))

(add-to-list 'org-export-filter-headline-functions 'sa-ignore-headline)
于 2012-04-24T20:07:59.077 に答える
4

これで、を使用してこれを簡単に行うことができますox-extrainitファイルに以下を追加します。

(require 'ox-extra)
(ox-extras-activate '(ignore-headlines))

その後、タグ付きの見出しはignore無視されますが、コンテンツは引き続きエクスポートされます。

于 2017-02-09T02:41:48.620 に答える
3

DebianJessieでEmacs24.4.1とOrg-mode8.2.10の簡単な解決策を見つけました。これは、処理前にタグ付きの見出しを削除するため、テキストだけでなく構造ノードも削除します。

;; ignore_heading tag in Org mode, based on the manual and func docs
(defun ignored-headlines-removal (backend)
  "Remove all headlines with tag ignore_heading in the current buffer.
     BACKEND is the export back-end being used, as a symbol."
  (org-map-entries
   (lambda () (delete-region (point) (progn (forward-line) (point))))
   "ignore_heading"))

(add-hook 'org-export-before-parsing-hook 'ignored-headlines-removal)

エクスポートバックエンド固有にする必要がないため、エクスポートバックエンド固有にしませんでした。また、このignore_headingタグを使用してignoreheading、beamerエクスポートのタグがその機能を保持していることを確認しました。

これが私がそれを発見した方法です:

  1. 組織マニュアルの高度な構成セクションにあるフックのドキュメントを確認しました。ignore_headingこれには、ほとんど必要なものであるすべての見出しを無視するフックの例が含まれていますが、タグ付きの見出しのみを削除する方法を見つける必要がありました。
  2. 関数のドキュメントをorg-map-entries(Emacsと入力C-h f org-map-entries RETして)調べたところ、オプションの2番目の引数MATCHは、タグにも一致するアジェンダスタイルの一致文字列であることがわかりました。

この経験から、Emacsは本当に拡張可能な自己文書化エディターであることがわかりました。RTFM FTW!

于 2015-04-12T10:35:59.363 に答える