Nueva línea en el título de un documento html exportado en modo org.

26

Uso el modo org para documentar cosas y generalmente lo exporto a pdf (a través de latex) y html.

Si los \\caracteres están al final de una línea, fuerza un carácter de nueva línea al exportar a pdf y html.

Pero me gustaría saber cómo forzar un carácter de nueva línea entre una línea al exportar a html. Sería útil tener esta solución para poder tener también títulos de varias líneas en las exportaciones HTML.

Ejemplo:

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

Lo anterior se exporta a 2 líneas en la exportación de pdf, pero los \\caracteres se conservan en la exportación html (ya que no están al final de la línea).

¿Cómo puedo formatear el título para que los títulos de varias líneas se exporten bien en ambos formatos?

Kaushal Modi
fuente

Respuestas:

36

El modo Org 8 ya no acepta caracteres LaTeX como ese. La forma correcta de hacerlo es insertar fragmentos de exportación en el título:

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

Por lo tanto, supongo que si desea exportar nuevas líneas tanto en LaTeX como en HTML, el código podría tener este aspecto:

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

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

Si es necesario agregar tales caracteres de nueva línea en varios lugares del documento, sería mejor reemplazar esta @@latex:\\@@ @@html:<br>@@cadena detallada con un modo de organización MACRO.

Una definición MACRO como la siguiente se puede colocar en la parte superior del documento o en un archivo común de "configuración de la organización" que se incluye en sus documentos de la organización:

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

El MACRO se puede usar para formatear el título de la siguiente manera:

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

Las ventajas de utilizar el enfoque MACRO son:

  • El documento del modo org es más fácil de leer.
  • Si surge la necesidad de cambiar la definición de {{{NEWLINE}}}para admitir un nuevo formato de exportación, entonces ese cambio debe hacerse en un solo lugar.

Ejemplo:

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

NOTA: @@ascii:|@@no insertará una nueva línea en exportaciones ASCII; simplemente colocará el carácter de la tubería |donde {{{NEWLINE}}}se haya utilizado en el documento de la organización

Finalmente, la #+SUBTITLEpalabra clave también puede ayudar.

mankoff
fuente
Una pregunta relacionada: ¿Sabría cómo transmitir una nueva línea para exportaciones ASCII? @@ascii:\n@@no funciona
Kaushal Modi
No parece funcionar Supongo que se necesita una solicitud de función para implementar esto.
mankoff
1
¿Quieres decir que las nuevas líneas en ASCII no funcionan, correcto? De lo contrario, su solución funciona para exportaciones html y pdf. Cuando se admiten nuevas líneas para ascii, simplemente tengo que actualizar la macro NEWLINE.
Kaushal Modi
3

No estoy completamente seguro de que no haya efectos secundarios no deseados, pero lo siguiente podría funcionar

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

Es una suerte que la lista de expansiones de cadenas especiales sea extensible en el exportador HTML, porque no está en el exportador LaTeX ...

Sigma
fuente