Nuova riga nel titolo di un documento html esportato in modalità organizzazione


26

Uso la modalità org per documentare cose e di solito le esporto in pdf (via latex) e html.

Se i \\caratteri si trovano alla fine di una riga, forza un carattere di nuova riga durante l'esportazione in pdf e html.

Ma vorrei sapere come forzare un carattere di nuova riga tra una riga durante l'esportazione in HTML. Sarebbe utile avere questa soluzione in modo che io possa avere titoli multilinea anche nelle esportazioni HTML.

Esempio:

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

Quanto sopra viene esportato in 2 righe nell'esportazione in pdf ma i \\caratteri vengono mantenuti nell'esportazione in html (poiché non si trovano alla fine della riga).

Come posso formattare il titolo in modo che i titoli a più righe vengano esportati correttamente in entrambi i formati?

Risposte:


36

La modalità Org 8 non accetta più caratteri LaTeX del genere. Il modo corretto per farlo è incorporare snippet di esportazione nel titolo:

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

Suppongo quindi che se si desidera esportare nuove righe sia in LaTeX che in HTML, il codice potrebbe essere simile al seguente:

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

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

Se è necessario aggiungere tali caratteri di nuova riga in più punti del documento, la sostituzione di questa @@latex:\\@@ @@html:<br>@@stringa dettagliata con una modalità org MACROsarebbe più adatta.

Una definizione MACRO come di seguito può essere posizionata nella parte superiore del documento o in un file "org config" comune incluso nei documenti dell'organizzazione:

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

Il MACRO può quindi essere utilizzato per formattare il titolo come di seguito:

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

I vantaggi dell'utilizzo dell'approccio MACRO sono:

  • Il documento in modalità organizzazione è più facile da leggere
  • Se sorge la necessità di modificare la definizione {{{NEWLINE}}}per supportare un nuovo formato di esportazione, tale modifica deve essere effettuata in un solo punto.

Esempio:

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

NOTA: @@ascii:|@@non inserire una nuova riga nelle esportazioni ASCII; posizionerà semplicemente il carattere pipe |ovunque sia {{{NEWLINE}}}stato usato nel documento dell'organizzazione.

Infine, la #+SUBTITLEparola chiave può anche aiutare.


Una domanda correlata: sapresti comunicare una nuova linea per le esportazioni ASCII? @@ascii:\n@@non funziona
Kaushal Modi,

Non sembra funzionare. Immagino che sia necessaria una richiesta di funzionalità per implementarlo.
mankoff,

1
Vuoi dire che le nuove righe in ascii non funzionano, giusto? Altrimenti la tua soluzione funziona per le esportazioni html e pdf. Quando sono supportate le nuove righe per ascii, devo semplicemente aggiornare la macro NEWLINE.
Kaushal Modi,

3

Non sono del tutto sicuro che non ci sarebbero effetti collaterali indesiderati, ma i seguenti potrebbero funzionare

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

Fortunatamente che l'elenco di espansioni di stringhe speciali è estensibile nell'esportatore HTML, perché non è nell'esportatore LaTeX ...

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.