Neue Zeile im Titel eines im Organisationsmodus exportierten HTML-Dokuments

26

Ich benutze den org-mode um Sachen zu dokumentieren und exportiere sie normalerweise als pdf (via Latex) und html.

Befinden sich die \\Zeichen am Ende einer Zeile, wird beim Exportieren in PDF und HTML ein Zeilenumbruch erzwungen.

Ich würde aber gerne wissen, wie man beim Exportieren nach HTML ein Zeilenumbruchzeichen zwischen den Zeilen erzwingt . Es wäre hilfreich, diese Lösung zu haben, damit ich auch in HTML-Exporten mehrzeilige Titel haben kann.

Beispiel:

#+TITLE: First Line of Title \\ Second Line of Title

Die obigen Exporte in 2 Zeilen im PDF-Export, aber die \\Zeichen werden im HTML-Export beibehalten (da sie nicht am Ende der Zeile stehen).

Wie kann ich den Titel so formatieren, dass mehrzeilige Titel in beiden Formaten problemlos exportiert werden?

Kaushal Modi
quelle

Antworten:

36

Der Org-Modus 8 akzeptiert solche LaTeX-Zeichen nicht mehr. Die richtige Vorgehensweise besteht darin, Export-Snippets in den Titel einzubetten:

#+TITLE: Foo @@latex:\\@@ Bar

Ich gehe daher davon aus, dass der Code folgendermaßen aussehen muss, wenn Sie Zeilenumbrüche sowohl in LaTeX als auch in HTML exportieren möchten:

#+TITLE: Foo @@latex:\\@@ @@html:<br>@@ Bar

Quelle: https://lists.gnu.org/archive/html/emacs-orgmode/2014-09/msg00466.html

Wenn solche Zeilenumbrüche an mehreren Stellen im Dokument eingefügt werden müssen, ist es besser , diese ausführliche @@latex:\\@@ @@html:<br>@@Zeichenfolge durch einen Organisationsmodus zu ersetzen MACRO.

Eine MACRO-Definition wie unten kann am Anfang des Dokuments oder in einer allgemeinen "org config" -Datei platziert werden, die in Ihren Organisationsdokumenten enthalten ist:

#+MACRO: NEWLINE @@latex:\\@@ @@html:<br>@@

Das MAKRO kann dann zum Formatieren des Titels wie folgt verwendet werden:

#+TITLE: Foo {{{NEWLINE}}} Bar

Die Vorteile des MACRO-Ansatzes sind:

  • Das Dokument im Organisationsmodus ist leichter zu lesen
  • Wenn die Definition {{{NEWLINE}}}geändert werden muss, um ein neues Exportformat zu unterstützen, muss diese Änderung nur an einer Stelle vorgenommen werden.

Beispiel:

#+MACRO: NEWLINE @@latex:\\@@ @@html:<br>@@ @@ascii:|@@

HINWEIS: Beim @@ascii:|@@ASCII-Export wird kein Zeilenumbruch eingefügt. es wird einfach das Pipe - Zeichen platzieren , |wo immer {{{NEWLINE}}}in der org doc verwendet wurde.

Schließlich kann das #+SUBTITLESchlüsselwort auch helfen.

mankoff
quelle
Eine verwandte Frage: Würdest du wissen, wie man einen Zeilenvorschub für ASCII-Exporte vermittelt? @@ascii:\n@@funktioniert nicht
Kaushal Modi
Scheint nicht zu funktionieren. Ich würde vermuten, dass eine Funktionsanforderung erforderlich ist, um dies zu implementieren.
Mankoff
1
Du meinst, die Zeilenumbrüche in ASCII funktionieren nicht, richtig? Ansonsten funktioniert Ihre Lösung für HTML- und PDF-Exporte. Wenn Newlines für ASCII unterstützt werden, muss ich nur das NEWLINE-Makro aktualisieren.
Kaushal Modi
3

Ich bin mir nicht ganz sicher, ob es keine unerwünschten Nebenwirkungen geben würde, aber die folgenden könnten funktionieren

(push (cons "\\\\\\\\" "<br />") org-html-special-string-regexps)

Ein bisschen Glück, dass die Liste der speziellen String-Erweiterungen im HTML-Exporter erweiterbar ist, weil sie nicht im LaTeX-Exporter ist ...

Sigma
quelle