Org modu: İçinde lateks nasıl oluşturulur ~ kod ~

Bu bir catch-22 gibi gözüküyor: Kodun bir org-mode exportunda (html veya lateks pdf) oluşturulmasını istiyorum; burada snippet, bir ~ kod bloğu olarak yapılır.

> (cons 1 nil) \to (1)

aslında \ to öğesini doğru bir sağ ok olarak verir (verim). Tabii ki snippet'i inline lateks olarak yaparsam

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

Doğru şekilde oluşturulmuş sağ oku alıyorum, ama şimdi sans mono kod yazı tipinde değil. Benim kekimi almak ve yemek için ne yapabilirim?

5
Neden sadece Unicode karakterini kullanmıyorsunuz? ?
katma yazar PythonNut, kaynak

2 cevap

Aşağıdakilerden birini kullanırdım:

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

~> (cons 1 nil) → (1)~
1
katma
@JeanPierre, tahmin ettiğiniz gibi TeX giriş yöntemini kullandım, C- \ TeX RET \ to . Ayrıca başka bir yerden kopyalayıp yapıştırabilirsiniz.
katma yazar andrewb, kaynak
Ok karakterini nasıl eklediniz? (tahmin ettiğim girdi yöntemi)
katma yazar jorgepc, kaynak

Org modundan kılavuz :

Kalın ,/italik /, altı çizili , ‘= verbatim =’ sözcükleri yapabilirsiniz.   Code ~ code ~ ’ve eğer yapmanız gerekiyorsa‘ + strike-through + ’. Koddaki metin ve   Org moduna özgü sözdizimi için verbatim dizesi işlenmiyor,   ihraç edilen verbatim.

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

Ancak bu, LaTeX için bir geçici çözüm önerir: geri almak için bir dışa aktarma filtre kullanın \ 'ın \ textbackslash {} ' a çevrilmesi.

(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)

İhracat filtresi html işlemek için de genişletilebilir. İşte ilk taslak işleme sadece \ 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
katma