Nouvelle ligne dans le titre d'un document html exporté en mode organisation


26

J'utilise le mode org pour documenter des trucs et les exporte généralement au format pdf (via latex) et html.

Si les \\caractères sont à la fin d'une ligne, cela force un caractère de nouvelle ligne lors de l'exportation à la fois en pdf et en html.

Mais je voudrais savoir comment forcer un caractère de nouvelle ligne entre une ligne lors de l'exportation en html. Il serait utile d'avoir cette solution pour que je puisse aussi avoir des titres multi-lignes dans les exportations html.

Exemple:

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

Ce qui précède exporte vers 2 lignes dans l'export pdf mais les \\caractères sont conservés dans l'export html (car ils ne sont pas à la fin de la ligne).

Comment puis-je formater le titre afin que les titres multi-lignes s'exportent correctement dans les deux formats?

Réponses:


36

Le mode Org 8 n'accepte plus les caractères LaTeX comme ça. La façon correcte de le faire est d'incorporer des extraits d'exportation dans le titre:

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

Je suppose donc que si vous souhaitez exporter des sauts de ligne à la fois en LaTeX et en HTML, le code devra peut-être ressembler à ceci:

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

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

Si de tels caractères de nouvelle ligne doivent être ajoutés à plusieurs endroits dans le document, remplacer cette @@latex:\\@@ @@html:<br>@@chaîne verbeuse par un mode org MACROserait mieux adapté.

Une définition MACRO comme ci-dessous peut être placée en haut du document ou dans un fichier "org config" commun qui est inclus dans vos documents d'organisation:

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

La MACRO peut ensuite être utilisée pour formater le titre comme ci-dessous:

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

Les avantages de l'utilisation de l'approche MACRO sont les suivants:

  • Le document en mode org est plus facile à lire
  • Si le besoin se fait sentir de changer la définition de {{{NEWLINE}}}pour prendre en charge un nouveau format d'exportation, alors ce changement doit être fait à un seul endroit.

Exemple:

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

REMARQUE: @@ascii:|@@n'insérera pas de nouvelle ligne dans les exportations ascii; il placera simplement le caractère pipe |là où il a {{{NEWLINE}}}été utilisé dans l'org doc.

Enfin, le #+SUBTITLEmot-clé peut également aider.


Une question connexe: sauriez-vous comment transmettre une nouvelle ligne pour les exportations ascii? @@ascii:\n@@ne fonctionne pas.
Kaushal Modi

Ne semble pas fonctionner. Je suppose qu'une demande de fonctionnalité est nécessaire pour que cela soit implémenté.
mankoff

1
Vous voulez dire que les sauts de ligne dans ascii ne fonctionnent pas, correct? Sinon, votre solution fonctionne pour les exportations html et pdf. Lorsque les sauts de ligne pour ascii sont pris en charge, je dois simplement mettre à jour la macro NEWLINE.
Kaushal Modi du

3

Je ne suis pas tout à fait sûr qu'il n'y aurait pas d'effets secondaires indésirables, mais ce qui suit pourrait fonctionner

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

Heureusement que la liste des extensions de chaînes spéciales est extensible dans l'exportateur HTML, car ce n'est pas dans l'exportateur LaTeX ...

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.