Новий рядок у заголовку експортованого html-документа в органічному режимі


26

Я використовую org-режим для документування матеріалів і зазвичай експортую його у pdf (через латекс) та html.

Якщо \\символи знаходяться в кінці рядка, це примушує символ нового рядка при експорті до pdf та html.

Але я хотів би знати, як змусити символ нового рядка між рядком при експорті до html. Було б корисно мати це рішення, щоб я міг мати багаторядкові заголовки і в експорті html.

Приклад:

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

Вищенаведений експорт у 2 рядки експорту в pdf, але \\символи зберігаються в експорті html (оскільки вони не знаходяться в кінці рядка).

Як я можу відформатувати заголовок, щоб багаторядкові заголовки добре експортували в обох форматах?

Відповіді:


36

Org-режим 8 більше не приймає подібні символи LaTeX. Правильний спосіб зробити це - вставити фрагменти експорту у заголовок:

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

Тому я припускаю, що якщо ви хочете експортувати нові рядки як у LaTeX, так і в HTML, код може мати такий вигляд:

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

Джерело: https://lists.gnu.org/archive/html/emacs-orgmode/2014-09/msg00466.html

Якщо такі символи нового рядка потрібно додати в декількох місцях у документі, краще підходить заміна цього багатослівного @@latex:\\@@ @@html:<br>@@рядка режимом org MACRO.

Визначення MACRO, як показано нижче, може бути розміщене у верхній частині документа або у загальному файлі "org config", який входить у ваші org документи:

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

Потім MACRO може використовуватися для форматування заголовка, як показано нижче:

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

Перевагами використання підходу MACRO є:

  • Документ в режимі org легше читати
  • Якщо виникає потреба змінити визначення {{{NEWLINE}}}для підтримки нового формату експорту, то цю зміну потрібно зробити лише в одному місці.

Приклад:

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

ПРИМІТКА: @@ascii:|@@не буде вставлено новий рядок у експорт ascii; він просто розмістить символ труби, |де б {{{NEWLINE}}}не використовувався в org doc.

Нарешті, #+SUBTITLEключове слово також може допомогти.


Питання, пов'язане з цим: Чи знаєте ви, як передати нову лінію для експорту ascii? @@ascii:\n@@не працює.
Каушал Моді

Не працює. Я думаю, для його реалізації потрібен запит на функцію.
mankoff

1
Ви маєте на увазі, що нові рядки в ascii не працюють, правда? Інакше ваше рішення працює для експорту html та pdf. Коли підтримуються нові рядки для ascii, я просто повинен оновити макрос NEWLINE.
Каушал Моді

3

Я не зовсім впевнений, що небажаних побічних ефектів не буде, але наступне може спрацювати

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

Нібито пощастило, що список спеціальних розширень рядків розширюється у експортера HTML, оскільки його немає у експортера LaTeX ...

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.