Nova linha no título de um documento html exportado no modo organizacional

26

Eu uso o org-mode para documentar as coisas e geralmente exportá-las para pdf (via látex) e html.

Se os \\caracteres estiverem no final de uma linha, ele força um caractere de nova linha ao exportar para pdf e html.

Mas eu gostaria de saber como forçar um caractere de nova linha entre uma linha ao exportar para html. Seria útil ter essa solução para que eu também possa ter títulos de várias linhas nas exportações de html.

Exemplo:

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

O acima exporta para 2 linhas na exportação em pdf, mas os \\caracteres são mantidos na exportação em html (pois não estão no final da linha).

Como posso formatar o título para que os títulos de várias linhas sejam exportados com precisão nos dois formatos?

Kaushal Modi
fonte

Respostas:

36

O modo organizacional 8 não aceita mais caracteres LaTeX assim. A maneira correta de fazer isso é incorporar snippets de exportação no título:

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

Suponho, portanto, que se você deseja exportar novas linhas em LaTeX e HTML, o código pode ter a seguinte aparência:

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

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

Se for necessário adicionar esses caracteres de nova linha em vários locais do documento, a substituição dessa @@latex:\\@@ @@html:<br>@@sequência detalhada por um modo organizacional MACROseria mais adequada.

Uma definição MACRO como abaixo pode ser colocada na parte superior do documento ou em um arquivo "org config" comum incluído em seus documentos organizacionais:

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

O MACRO pode então ser usado para formatar o título como abaixo:

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

As vantagens de usar a abordagem MACRO são:

  • O documento no modo organizacional é mais fácil de ler
  • Se surgir a necessidade de alterar a definição de {{{NEWLINE}}}para suportar um novo formato de exportação, essa alteração precisará ser feita em apenas um local.

Exemplo:

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

NOTA: @@ascii:|@@não insere uma nova linha nas exportações ascii; ele simplesmente colocará o caractere de pipe |onde quer que tenha {{{NEWLINE}}}sido usado no documento organizacional.

Por fim, a #+SUBTITLEpalavra - chave também pode ajudar.

mankoff
fonte
Uma questão relacionada: você saberia como transmitir uma nova linha de exportação ascii? @@ascii:\n@@não funciona
Kaushal Modi
Não parece funcionar. Eu acho que uma solicitação de recurso é necessária para que isso seja implementado.
mankoff 26/09
11
Você quer dizer que as novas linhas em ascii não funcionam, correto? Caso contrário, sua solução funcionará para exportações de html e pdf. Quando novas linhas para ascii são suportadas, basta atualizar a macro NEWLINE.
Kaushal Modi
3

Não tenho certeza absoluta de que não haja efeitos colaterais indesejados, mas o seguinte pode funcionar

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

Sorte que a lista de expansões especiais de strings é extensível no exportador HTML, porque não está no exportador LaTeX ...

Sigma
fonte