4

Emacsの私のお気に入りの機能の1つは、preview-latexパッケージです。これは、LaTeXドキュメントのLaTeX方程式をインライングラフィックとしてレンダリングします。このような:

プレビュー-ラテックススクリーンショット

Pythonコメントと関数docstrings用のEmacsで同様の機能が欲しいのですが。私のdocstringにはたくさんの数学が含まれています:

def proj_levenberg(x,y,wsqrt,A):
    """
    Finds a homography between two sets of 2d points.

    Specifically, approximately minimize the weighted image plane
    error

       min_A  sum_{X,y,w}  w  ||(A_12 x_) /  (A_3 x_)  -  y||^2

    where x_=[x;1], A_12 are the first two rows of A and A_3 is the
    third row of A.
    ...

これらをLaTexで記述して、コードを参照するときに、レンダリングされたdocstringとコメントを確認できるようにしたいと思います。

これを行う方法はありますか、それともプレビューラテックスで外科手術を行う必要がありますか?

4

2 に答える 2

5

コードサンプルを少し変更して、emacsがその一部をラテックスフラグメントで置き換える必要があることを理解できるようにしました。

def proj_levenberg(x,y,wsqrt,A):
    """
    Finds a homography between two sets of 2d points.

    Specifically, approximately minimize the weighted image plane
    error

       \(min_A  sum_{X,y,w}  w  ||(A_12 x_) /  (A_3 x_1)  -  y||^2\)

    where \(x_1\)=[x;1], \(A_{12}\) are the first two rows of A and \(A_3\) is the
    third row of A.
    """

ソース\(との間でラテックスフラグメントをラップしたことに注意してください\)

組織モードをインストールする必要があります。Orgはデフォルトでemacsにインストールされていますが、emacsパッケージマネージャーを使用して最新のorgモード(バージョン8.0以降)をインストールしています。

ラテックスフラグメントをプレビューするためのemacsセットアップには次のものがあります。

;; Previewing latex fragments in org mode
(setq org-latex-create-formula-image-program 'imagemagick) ;; Recommended to use imagemagick

(load "auctex.el" nil t t)
(load "preview-latex.el" nil t t)
(setq LaTeX-command "latex -shell-escape")

emacsの組織モード設定

emacs用の私のラテックスセットアップ

私がそうするとき、このセットアップで、私M-x org-preview-latex-fragmentは以下を得る。プレビューを削除するM-x org-ctrl-c-ctrl-c には、メジャーモードを使用する必要がないことに注意してくださいorg-modeこの関数は、バッファーがPythonモードで、ファイルがtemp.pyの場合でも機能しました。

問題は、そのファイルを再度開くたびにこの関数を実行する必要があるということです。emacsは各ファイルのプレビュー状態を保存しません。

ラテックスフラグメントプレビュー

于 2014-06-11T14:49:44.660 に答える
1

IIUC、preview-latexには、「STARTとENDの間のテキストをLaTeX式としてレンダリングする」と言うために呼び出すことができる関数があります。David Kastrupに尋ねると、彼はその関数が何であるかを教えてくれます。したがって、あとは、この方法でレンダリングするコードの部分を検出する必要があります。

于 2012-11-14T13:55:14.837 に答える