Làm cách nào tôi có thể xem trước công thức TeX nội tuyến trong các chế độ tùy ý?


14

Làm cách nào tôi có thể nhận được các bản xem trước TeX bên trong các chế độ khác ngoài AocateeX hoặc chế độ org? Tôi rất thích xem các phương trình TeX trong jabber, erc và markdown. Nếu tôi từng chuyển sang Emacs cho email, có lẽ tôi cũng muốn xem các bản xem trước ở đó.


1
Tôi chưa thử điều này, nhưng bạn có thể muốn xem xét mmm-modecho phép nhiều chế độ chính trong một bộ đệm
Vamsi

Câu trả lời:


10

Tôi đã cố gắng sử dụng lại AocateeX preview-latex nhưng không thành công và đã bỏ cuộc.

Chế độ Org cũng cung cấp tính năng tương tự . Hóa ra weechat quản lý để sử dụng lại nó để tự động hiển thị xem trước latex.

Tôi đã trích xuất phần xem trước từ weechat trong một tệp riêng biệt mà bạn có thể nhận được trên repo này . Nó cũng có sẵn dưới dạng pxgói trên MELPA (Tôi vừa gửi nó).

Có 4 điểm vào có thể được gọi là tương tác:

  • px-preview: kết xuất tất cả các đoạn latex trong bộ đệm hiện tại.
  • px-preview-region: kết xuất các đoạn trong khu vực.
  • px-remove: xóa tất cả các bản xem trước khỏi bộ đệm hiện tại (khôi phục văn bản).
  • px-toggle: chuyển đổi hiển thị các bản xem trước trong bộ đệm hiện tại.

Miễn là trình xem trước chế độ org hoạt động, cái này nên.

Vì mã vẫn còn khá nhỏ nên tôi sẽ bao gồm nó bên dưới, nhưng vui lòng cài đặt gói hoặc sử dụng 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)

0

Ngoài ra còn texfrag.elcó các công trình ra khỏi hộp cho ý kiến ​​doxygen trong prog-mode.

Bạn có thể cài đặt texfrag.eltừ melpa-stablethông qua M-x package-install RET texfrag RET.

Chạy M-x texfrag-mode RETđể kích hoạt xem trước. Bạn nhận được menu Xem trước với tất cả các mục của gói xem trước AocateeX.

Lưu ý, điều đó texfragcũng hoạt động để chỉnh sửa nguồn html, eww và chế độ org.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.