Org-рэжым: Як вынесці латекс ўнутры кода ~ ~

Гэта здаецца кетчуп 22: Я хачу зрабіць код у экспартным орг-рэжыме (HTML або PDF) латексный дзе фрагмент ніжэй зроблена як ~ Код блока

> (cons 1 nil) \to (1)

на самой справе робіць \ да як адпаведную стрэлку направа (выхады). Вядома, калі я сниппет як инлайн латекса

$> (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, крыніца

З орг ў рэжыме :

<�Р> Вы можаце зрабіць словы паўтлустым шрыфтам ,/курсіў /, падкрэслены , «= даслоўна =» і   «~ Код ~», і, калі неабходна, «+ закрэслена +». Тэкст у кодзе і   даслоўна радок не апрацоўваюцца для рэжыму арганнай канкрэтнага сінтаксісу, гэта   экспартуецца даслоўна.

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, а таксама. Вось першы праект апрацоўкі толькі \ да :

(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
дададзена