Nowa linia w tytule wyeksportowanego dokumentu HTML w trybie organizacji

26

Używam trybu org do dokumentowania rzeczy i zwykle eksportuję je do pdf (przez lateks) i HTML.

Jeśli \\znaki znajdują się na końcu linii, wymusza znak nowej linii podczas eksportowania zarówno do pliku pdf, jak i HTML.

Chciałbym jednak wiedzieć, jak wymusić znak nowej linii pomiędzy wierszami podczas eksportowania do HTML. Przydałoby się mieć to rozwiązanie, dzięki czemu mogę mieć także wiele wierszy w eksporcie HTML.

Przykład:

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

Powyższe eksportuje do 2 wierszy w eksporcie pdf, ale \\znaki są zachowywane w eksporcie HTML (ponieważ nie znajdują się na końcu linii).

Jak sformatować tytuł, aby tytuły wieloliniowe dobrze eksportowały się w obu formatach?

Kaushal Modi
źródło

Odpowiedzi:

36

Tryb Org 8 nie akceptuje już takich znaków LaTeX. Właściwy sposób to osadzić w tytule fragmenty eksportu:

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

Zakładam zatem, że jeśli chcesz eksportować nowe wiersze zarówno w LaTeX, jak i HTML, kod może wyglądać tak:

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

Źródło: https://lists.gnu.org/archive/html/emacs-orgmode/2014-09/msg00466.html

Jeśli takie znaki nowego wiersza muszą być dodane w wielu miejscach w dokumencie, lepiej byłoby zastąpić ten pełny @@latex:\\@@ @@html:<br>@@ciąg trybem org MACRO.

Definicja MAKRO, taka jak poniżej, może być umieszczona u góry dokumentu lub we wspólnym pliku „konfiguracji organizacji”, który jest zawarty w dokumentach organizacji:

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

MAKRO można następnie użyć do sformatowania tytułu, jak poniżej:

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

Zalety stosowania metody MAKRO to:

  • Dokument w trybie org jest łatwiejszy do odczytania
  • Jeśli zajdzie potrzeba zmiany definicji {{{NEWLINE}}}obsługi nowego formatu eksportu, zmiany należy dokonać tylko w jednym miejscu.

Przykład:

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

UWAGA: @@ascii:|@@nie wstawi nowego wiersza w eksporcie ascii; po prostu umieści znak potoku w |dowolnym miejscu {{{NEWLINE}}}w dokumencie organizacji.

Wreszcie #+SUBTITLEsłowo kluczowe może również pomóc.

mankoff
źródło
Powiązane pytanie: czy wiesz, jak przekazać nowy wiersz eksportu ascii? @@ascii:\n@@nie działa
Kaushal Modi,
Nie wydaje się działać. Wydaje mi się, że potrzebne jest żądanie funkcji, aby to zaimplementować.
mankoff
1
Masz na myśli, że nowe wiersze w ascii nie działają, prawda? W przeciwnym razie Twoje rozwiązanie działa w przypadku eksportu HTML i PDF. Kiedy obsługiwane są nowe linie dla ascii, po prostu muszę zaktualizować makro NEWLINE.
Kaushal Modi
3

Nie jestem do końca pewien, czy nie wystąpią żadne niepożądane skutki uboczne, ale poniższe działania mogą działać

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

Trochę szczęścia, że ​​lista specjalnych rozszerzeń ciągów jest rozszerzalna w eksporterze HTML, ponieważ nie ma go w eksporterze LaTeX ...

Sigma
źródło