Bagaimana saya bisa mendapatkan preview TeX di dalam mode selain AUCTeX atau mode-org? Saya ingin melihat persamaan TeX di jabber, erc dan markdown. Jika saya pernah beralih ke Emacs untuk email, saya mungkin ingin melihat pratinjau di sana juga.
Bagaimana saya bisa mendapatkan preview TeX di dalam mode selain AUCTeX atau mode-org? Saya ingin melihat persamaan TeX di jabber, erc dan markdown. Jika saya pernah beralih ke Emacs untuk email, saya mungkin ingin melihat pratinjau di sana juga.
Jawaban:
Saya sudah mencoba menggunakan kembali AUCTeX preview-latex tetapi gagal dan menyerah.
Org-mode juga menyediakan fitur yang sama . Ternyata Weechat berhasil menggunakannya kembali untuk secara otomatis menampilkan pratinjau lateks.
Saya telah mengekstrak bagian pratinjau dari Weechat dalam file terpisah yang dapat Anda peroleh pada repo ini . Ini juga tersedia sebagai px
paket pada MELPA (Saya baru saja mengirimkannya).
Ada 4 titik masuk yang bisa disebut secara interaktif:
px-preview
: render semua fragmen lateks dalam buffer saat ini.px-preview-region
: membuat fragmen di wilayah tersebut.px-remove
: hapus semua pratinjau dari buffer saat ini (pulihkan teks).px-toggle
: beralih tampilan pratinjau di buffer saat ini.Selama pratinjau mode-org berfungsi, yang ini harus.
Karena kode ini masih sangat kecil saya akan memasukkannya di bawah, tetapi silakan instal paket atau gunakan repo.
;;; px.el --- preview inline latex -*- lexical-binding: t -*-
;; Most of this code comes from weechat-latex.el which in turn uses
;; org-mode previewer.
;; Copyright (C) 2014 Aurélien Aptel <aurelien.aptel@gmail.com>
;; Copyright (C) 2013 Rüdiger Sonderfeld <ruediger@c-plusplus.de>
;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.
;; This program is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
(require 'org)
(defvar px-temp-file-prefix "px-"
"Prefix for temporary files.")
(defvar px-temp-directory-prefix "px-"
"Prefix for temporary directory.")
(defvar px-image-program org-latex-create-formula-image-program
"Program to convert LaTeX fragments.
See `org-latex-create-formula-image-program'")
(defvar px-temp-dir nil
"The temporary directory used for preview images.")
(defun px--create-preview (at)
"Wrapper for `org-format-latex'.
The parameter AT should be nil or in (TYPE . POINT) format. With TYPE being a
string showing the matched LaTeX statement (e.g., ``$'') and POINT being the
POINT to replace. If AT is nil replace statements everywhere."
(org-format-latex px-temp-file-prefix
px-temp-dir
'overlays
"Creating images...%s"
at 'forbuffer
px-image-program))
(defun px--set-temp-dir ()
"Set `px-temp-dir' unless it is already set."
(unless px-temp-dir
(setq px-temp-dir
(make-temp-file px-temp-directory-prefix
'directory))))
(defun px-preview ()
"Preview LaTeX fragments."
(interactive)
(save-excursion
(let ((inhibit-read-only t))
(px--set-temp-dir)
(org-remove-latex-fragment-image-overlays)
(px--create-preview nil))))
(defun px-preview-region (beg end)
"Preview LaTeX fragments in region."
(interactive "r")
(let* ((math-regex (assoc "$" org-latex-regexps))
(regex (nth 1 math-regex))
(n (nth 2 math-regex))
matches)
(save-excursion
(goto-char beg)
(while (re-search-forward regex end t)
(setq matches (cons (cons "$" (match-beginning n)) matches)))
(let ((inhibit-read-only t))
(px--set-temp-dir)
(dolist (i matches)
(px--create-preview i))))))
(defun px-remove ()
"Remove LaTeX preview images."
(interactive)
(let ((inhibit-read-only t))
(org-remove-latex-fragment-image-overlays)))
(defun px-is-active? ()
"Are LaTeX Previews currently displayed?"
org-latex-fragment-image-overlays)
(defun px-toggle ()
"Toggle display of LaTeX preview."
(interactive)
(if (px-is-active?)
(px-remove)
(px-preview)))
(provide 'px)
Ada juga texfrag.el
yang berfungsi di luar kotak untuk komentar oksigen di prog-mode
.
Anda dapat menginstal texfrag.el
dari melpa-stable
via M-x package-install
RET texfrag
RET.
Jalankan M-x texfrag-mode
RETuntuk mengaktifkan pratinjau. Anda mendapatkan menu Preview dengan semua item dari paket preview AUCTeX.
Catatan, itu texfrag
juga berfungsi untuk mengedit sumber html, eww, dan mode-org.
mmm-mode
yang memungkinkan beberapa mode utama dalam buffer