Ich entwerfe Dokumente im Organisationsmodus und exportiere sie nach Bedarf nach LaTeX, HTML usw. Ich verwende das Tag häufig, :no_export:
wenn ein bestimmter Teilbaum nicht in der Ausgabe angezeigt werden soll.
Was ich will , auch will , ist für den Export ist vollständig bestimmte Teilstruktur ignorieren Schriften , aber nicht dann ignorieren Inhalt des Unterbaums unter dieser Überschrift. Mit anderen Worten, bestimmte Teilbäume sollten exportiert werden, als ob ihr Inhalt nur eine Fortsetzung des übergeordneten Baums wäre, anstatt einen eigenen Teilbaum zu haben.
Ich stelle mir idealerweise ein Etikett wie vor :no_title:
. Ich möchte, dass mein Organigramm mehr oder weniger so aussieht, wie ich es gewohnt bin. Aber ich würde andere Ansätze mit ähnlichen Ergebnissen in Betracht ziehen.
Zur Veranschaulichung sehen Sie hier eine MWE eines Dokuments, das im Organisationsmodus erstellt wurde.
* Chapter 1
** Section 1
*** Paragraph 1 :no_title:
First paragraph of text in the section.
*** Paragraph 2 :no_title:
Second paragraph of text in the section.
* Chapter 2
** Section 1
*** Subsection 1
**** Paragraph 1 :no_title:
First paragraph of text in the subsection.
**** Paragraph 2 :no_title:
Second paragraph of text in the subsection
Wenn ich das aktuell exportiere, erhalte ich so etwas:
1 Kapitel 1
1.1 Abschnitt 1
1.1.1 Absatz 1: no_title:
Erster Absatz des Textes im Abschnitt.
1.1.2 Absatz 2: no_title:
Zweiter Absatz des Textes im Abschnitt.
2 Kapitel 2
2.1 Abschnitt 1
2.1.1 Unterabschnitt 1
◊ 2.1.1.1 Absatz 1: no_title:
Erster Absatz des Textes im Unterabschnitt.
Aber was ich will, ist eher so:
1 Kapitel 1
1.1 Abschnitt 1
Erster Absatz des Textes im Abschnitt.
Zweiter Absatz des Textes im Abschnitt.
2 Kapitel 2
2.1 Abschnitt 1
2.1.1 Unterabschnitt 1
Erster Absatz des Textes im Unterabschnitt.
quelle
contrib/lisp
Ordner - siehe orgmode.org/cgit.cgi/org-mode.git/tree/contrib/lisp/ox-extra.el - in Ihrer emacs-Konfigurationsdatei müssen Sie möglicherweise eine Zeile wie hinzufügen(add-to-list 'load-path "/path/to/contrib/lisp")
.Ja , das ist durchaus möglich. Fügen Sie der Init-Datei den folgenden Code hinzu:
Danksagung
Diese Frage wurde bereits bei StackOverflow gestellt (mit einem anderen Fokus und einer anderen Formulierung, weshalb Sie sie wahrscheinlich nicht finden konnten, als Sie das Internet durchsucht haben, bevor Sie hier gepostet haben). Der obige Code ist eine vereinfachte Version des Codes in der akzeptierten Antwort . Es funktioniert für den in 8.0 eingeführten neuen Exporter
org-mode
und ist Back-End-unabhängig .Aktualisieren
Wie in den Kommentaren erläutert, wird durch den obigen Code der Inhalt von mit Tags versehenen Einträgen ausgeblendet
:no_title:
, wenn vor ihnen ein mit Tags versehener Eintrag angezeigt wird, der aus dem exportierten Dokument ausgeschlossen werden soll. Wenn Sie beispielsweise das folgende Dokument exportieren, wird ein Dokument mit einem Titel und einem Inhaltsverzeichnis, jedoch ohne Inhalt erstellt:Der Grund dafür ist , dass die
org-mode
entfernt die Schlagzeile mit dem Stichwort ,:no_title:
bevor es den entfernt Eintrag , deren Überschrift ist getaggt mit:no_export:
. Wenn es darum geht, denno_export
Eintrag zu entfernen , wird der Inhalt desno_title
Eintrags als zum vorhergehendenno_export
Eintrag gehörig behandelt . Dies macht durchaus Sinn, da es kein Strukturelement (Überschrift) mehr gibt, das den Inhalt der Originaleinträge trennt.Um dieses Problem zu lösen, können wir die Verantwortung für das Entfernen von
no_export
Einträgen an übertragenorg-remove-headlines
. Auf diese Weise stellen wir sicher, dass alleno_export
Einträge gelöscht sind, bevor die Überschriften aus denno_title
Einträgen entfernt werden:quelle
no_export
einem Tag direkt vor einer mit einem Tag versehenen Überschrift stehtno_title
, wird auch der Inhalt der zweiten Überschrift nicht exportiert.no_export
und dieno_title
Überschriften Geschwister (dh haben sie die gleiche Anzahl führender Sterne)? Wenn nicht, welche der beiden Überschriften hat mehr Sterne?org-remove-headlines
ist nur eine Funktion; es hilft dir nicht viel, wenn es nie von irgendwo angerufen wird. Ja, Sie müssen die Zeile noch auswerten(add-hook 'org-export-before-processing-hook #'org-remove-headlines)
, um das richtige Verhalten zu ermöglichen. Ich hätte das in den Änderungen meiner ursprünglichen Antwort wahrscheinlich explizit erwähnen sollen. Zu den Warnungen, die Sie sehen: Ich verstehe keine mit Vanille-Emacs 24.4 und Version 8.2.10 des Org-Modus. Um die von Ihnen erwähnte Warnung zu beseitigen, können Sie versuchen, sie(require 'org-agenda)
vor der Auswertung deradd-hook
Zeile zu überprüfen .