Дословно, если вы на самом деле имеете в виду использовать некоторую разметку в экспортированном 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;
или, если добавление пробелов до или после звездочки является опцией, это тоже будет работать.