Org-mode: як зробити латекс всередині ~ коду ~

Це здається зловмисником 22: я хочу зробити код у експорті org-mode (html або latex pdf), де фрагмент нижче виконано як блок коду ~

> (cons 1 nil) \to (1)

насправді надає \ to як правильну стрілку праворуч (yields). Звичайно, якщо я роблю фрагмент як вбудований латекс

$> (cons 1 nil) \to (1)$

Я отримую стрілку з правильним відображенням, але зараз вона відсутня у шрифті без моно коду. Що я можу зробити, щоб мій торт і їсти теж?

5
Чому б не використовувати символ Unicode? ?
додано Автор PythonNut, джерело

2 Відповіді

Я хотів би скористатися одним із таких способів:

~> (cons 1 nil)~ \to ~(1)~

~> (cons 1 nil) → (1)~
1
додано
@JeanPierre, як ви здогадалися, я використовував метод введення TeX, C- \ TeX RET \ . Ви також можете копіювати та вставляти з інших місць.
додано Автор andrewb, джерело
Не могли б ви пояснити, як ви вставляєте символ стрілки? (спосіб введення, я думаю)
додано Автор jorgepc, джерело

Від інструкції в режимі org:

Ви можете створювати слова напівжирним ,/italic /, підкреслено , '= verbatim =' і   '~ Code ~', і, якщо потрібно, '+ streike-through +'. Текст у коді та   verbatim рядок не обробляється для конкретного синтаксису режиму Org, він є   експортується дослівно.

Indeed ~> (cons 1 nil) \to (1)~ is exported as LaTeX \texttt{> (cons 1 nil) \textbackslash{}to (1)}.

Але це передбачає обхідний шлях для LaTeX: використовувати фільтр для скасування перетворення \ в \ textbackslash {} .

(defun my-latex-filter-allow-latex-in-code (text backend info)
  "Undo backslash escaping"
  (when (org-export-derived-backend-p backend 'latex)
    (replace-regexp-in-string "textbackslash{}" "" text)))

(add-to-list 'org-export-filter-code-functions
         #'my-latex-filter-allow-latex-in-code)

Фільтр експорту можна продовжити для роботи з html. Ось перший текст обробки лише \ to :

(defun my-filter-allow-latex-in-code (text backend info)
  "Allow LaTeX symbols in code"
  (cond 
   ((org-export-derived-backend-p backend 'latex)
    (replace-regexp-in-string "textbackslash{}" "" text))
   ((org-export-derived-backend-p backend 'html)
    ;; either extend this or find the html export function doing these conversions
    (replace-regexp-in-string "\\\\to" "→" text))))

(add-to-list 'org-export-filter-code-functions
         #'my-filter-allow-latex-in-code)
0
додано