Дослівно, якщо ви дійсно маєте на увазі використовувати деяку розмітку в експортованому LaTeX, то ви можете просто використовувати =*shrug*=
. Однак якщо ви просто хочете, щоб його експортували як *shrug*
, і ви хочете робити це постійно, я рекомендую фільтри . Якщо вам це потрібно лише для деяких примірників *shrug*
, ви повинні використовувати альтернативу, запропоновану @wvxvw. Ви можете це зробити чисто, використовуючи макроси . Деякі приклади випливають.
Фільтри
(defun my-bold (contents backend info)
(when (org-export-derived-backend-p backend 'latex)
(replace-regexp-in-string "\\`\\\\textbf{\\(.+\\)}"
"\\\\ast{}\\1\\\\ast{}" contents)))
(add-to-list 'org-export-filter-bold-functions 'my-bold)
По суті, наведений вище фільтр шукає \textbf{..}
розмітку в перекодованому рядку і замінює його \ast{}..\ast{}
, не змінюючи того, що було загорнуто всередину {..}
. Я не перевіряв регулярний вираз і рядок заміни, тому можуть бути помилки, але ви розумієте. Так само, як і для інших програм, можна включити додаткові фрагменти на зразок цього:
(when (org-export-derived-backend-p backend 'html)
(replace-regexp-in-string "<b>\\(.+\\)</b>" "\a;\\1\a;" contents))
Це ж застереження справедливо для регулярного виразу вище.
Макроси
Джерело органу:
#+macro: nobold @@latex:\ast{}$1\ast{}@@ @@html:a;$1a;@@
This text is *bold* this is nobold{{{not}}}
експорт до LaTeX як:
This text is \textbf{bold} this is \ast{}not\ast{}
і в HTML як:
This text is <b>bold</b> this is a;nota;
Звичайно, ви можете додати до макросу стільки програм, скільки бажаєте.
Редагувати: як в коментарях вказує Каушал, фрагмент експорту для латексу в цьому випадку необов’язковий. Однак я вважаю за краще використовувати їх щоразу, коли бере участь голий латекс, оскільки мені важко відслідковувати список org-entities
та конкретні правила, що стоять за ідентифікацією голого латексу у джерелі Org.
Примітка:
- приклади фільтрів не перевірені,
- Я не знаю жодної
HTML
, тому у відповідних бітах можуть бути помилки.
\ast{}shrug\ast{}
або\star{}shrug\star{}
, аналогічно, з HTML, ви можете використовувати кодування сутності:a;
або якщо додавати пробіли до або після зірочки є опцією, це також працюватиме.