ฉันจะดูตัวอย่าง TeX ภายในโหมดอื่นที่ไม่ใช่ AUCTeX หรือโหมด org ได้อย่างไร ฉันชอบที่จะเห็นสมการ TeX ใน jabber, erc และ markdown ถ้าฉันเคยเปลี่ยนมาใช้อีเมลของ Emacs ฉันก็คงจะอยากเห็นตัวอย่างที่นั่นด้วย
ฉันจะดูตัวอย่าง TeX ภายในโหมดอื่นที่ไม่ใช่ AUCTeX หรือโหมด org ได้อย่างไร ฉันชอบที่จะเห็นสมการ TeX ใน jabber, erc และ markdown ถ้าฉันเคยเปลี่ยนมาใช้อีเมลของ Emacs ฉันก็คงจะอยากเห็นตัวอย่างที่นั่นด้วย
คำตอบ:
ฉันได้ลองใช้ AUCTeX Preview-latexอีกครั้งแต่ล้มเหลวและเลิกใช้
org โหมดยังมีคุณลักษณะเดียวกัน ปรากฎว่ามีการจัดการweechatเพื่อนำมาใช้ซ้ำเพื่อแสดงตัวอย่างยางพาราโดยอัตโนมัติ
ฉันได้แยกส่วนแสดงตัวอย่างจาก weechat เป็นไฟล์แยกซึ่งคุณสามารถหาซื้อได้จากrepoนี้ นอกจากนี้ยังมีให้ในpx
แพ็คเกจของ MELPA (ฉันเพิ่งส่งมา)
มีจุดเข้าใช้งาน 4 จุดซึ่งเรียกว่าแบบโต้ตอบ:
px-preview
: แสดงชิ้นส่วนลาเท็กซ์ทั้งหมดในบัฟเฟอร์ปัจจุบันpx-preview-region
: แสดงแฟรกเมนต์ในภูมิภาคpx-remove
: ลบตัวอย่างทั้งหมดจากบัฟเฟอร์ปัจจุบัน (กู้คืนข้อความ)px-toggle
: สลับการแสดงตัวอย่างในบัฟเฟอร์ปัจจุบันตราบใดที่โปรแกรมดูตัวอย่างโหมด org ทำงานได้โหมดนี้ก็ควร
เนื่องจากรหัสยังค่อนข้างเล็กฉันจะรวมไว้ด้านล่าง แต่โปรดติดตั้งแพคเกจหรือใช้ 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)
นอกจากนี้ยังมีที่ทำงานออกจากกล่องสำหรับความคิดเห็นในtexfrag.el
Doxygenprog-mode
คุณสามารถติดตั้งtexfrag.el
จากทางmelpa-stable
M-x package-install
RET texfrag
RET
เรียกใช้M-x texfrag-mode
RETเพื่อเปิดใช้งานตัวอย่าง คุณได้รับเมนูแสดงตัวอย่างพร้อมกับรายการทั้งหมดของแพ็คเกจดูตัวอย่าง AUCTeX
โปรดทราบว่าtexfrag
ยังใช้งานได้กับการแก้ไขซอร์ส html, eww และโหมด org
mmm-mode
ว่าสามารถใช้โหมดหลักหลาย ๆ แบบในบัฟเฟอร์ได้อย่างไร