Tampilkan rumus matematika di emacs saat coding

8

Mungkinkah emacs memperlihatkan formula nyata di editor jika ditulis dalam Lateks atau serupa? Saya bertanya karena akan jauh lebih mudah dibaca jika Anda membuat kode (di katakanlah python atau C ++) dan komentar berisi rumus nyata, bukan sesuatu seperti ini

// Calculate average for $\mu_1 = \frac{1}{n} ~ \sum_{1=i}^n ~ x_i$

Apakah ada plugin yang mengkompilasi kode Lateks dalam komentar ke gambar dan menampilkannya di editor?

Miguellissimo
sumber

Jawaban:

3

Iya. Lihat pretty-symbolspaket. Ini bisa terlihat seperti ini, misalnya, ketika mengkode Python, atau bahasa lain:

masukkan deskripsi gambar di sini

mankoff
sumber
2

TeXfrag texfrag menunjukkan formula- oksigen yang dianut oleh\f[display formula\f]atau\f$embedded formula\f$sebagai gambar.

Ekspresi reguler dan juga fungsi untuk parsing formula dapat disesuaikan.

TeXfrag bekerja dengan:

  1. menyalin formula dari buffer kode sumber ke buffer LaTeX (tersembunyi)
  2. menjalankan preview-document di sana dan
  3. memindahkan overlay ke buffer kode sumber.

Menu konteks previewkerja untuk gambar dalam buffer kode sumber. Ada juga menu mode minor yang memungkinkan Anda untuk menghasilkan gambar untuk buffer penuh atau hanya gambar di sekitar titik.

Contoh: Buffer atas memperlihatkan bagian komentar doxygen dalam file-c dengan gambar overlay untuk fragmen persamaan, buffer bawah menunjukkan bagian yang sama dengan overlay yang dihapus.

tangkapan layar emacs dengan rumus yang diberikan dalam komentar doxygen

EDIT: Catatan yang TeXfragtelah diubah namanya texfraguntuk memenuhi persyaratan melpa. texfragtelah ditinjau dan diterima oleh melpa. Jika Anda memiliki melpadi package-archivesAnda dapat menginstal texfragvia package-install.

Tobias
sumber
1

Sepertinya saya bahwa gambar aktual akan lebih banyak masalah daripada nilainya c++-modeatau python-mode. Ini bisa berfungsi org-mode, yang memiliki mekanisme untuk menyimpan gambar dan menyegarkannya. Bahkan kemudian, itu canggung untuk menggulir jika gambar memiliki tinggi yang besar.

Tetapi Anda masih bisa mengklasifikasikan bit jika Anda mau. Sebagai contoh, inilah pengaturan saya untuk tag pengunci font-penguncian dalam C ++:

(defface font-lock-doxygen-face
    '((nil (:foreground "SaddleBrown" :background "#f7f7f7")))
  "Special face to highlight doxygen tags such as <tt>...</tt>
and <code>...</code>."
  :group 'font-lock-highlighting-faces)

(font-lock-add-keywords
 'c++-mode
 '(("\\(<\\(?:code\\|tt\\)>\"?\\)\\([^<]*?\\)\\(\"?</\\(?:code\\|tt\\)>\\)"
    (0 (prog1 ()
         (let* ((expr (match-string-no-properties 2))
                (expr-len (length expr)))
           (if (eq 1 expr-len)
               (compose-region (match-beginning 0)
                               (match-end 0)
                               (aref expr 0))
             (compose-region (match-beginning 1)
                             (1+ (match-end 1))
                             (aref expr 0))
             (compose-region (1- (match-beginning 3))
                             (match-end 3)
                             (aref expr (1- expr-len)))))))
    (0 'font-lock-doxygen-face t))))

Ini akan menggantikan <tt>foo</tt>dan <code>bar</code>dengan simbol berwarna.

abo-abo
sumber
0

Pilihan lain untuk dipertimbangkan adalah latex-math-previewpaket. Ini memungkinkan seseorang untuk melihat "formula nyata dalam editor" di buffer terpisah (atau untuk menyimpan gambar formula ke file). Cukup panggil latex-math-preview-expressionsaat intinya ada pada ekspresi.

dat
sumber