8

Emacs を AUCTeX と組み合わせて使用​​し、$. 自動充填 (例えば with M-q) を行うと、Emacs はこれらのインライン数学環境を読み取りの流暢さを妨げる位置 (例えば、下付き文字など) で壊すことがよくあります。

$…$環境全体を新しい行に入れることを好むようにEmacsに指示する方法はありますか? より具体的には、数学の中断が発生した場合、環境全体を分割してはならない新しい行に移動する必要があります。

例:

Lorem ipsum dolor sit amet, consectetur adipisici elit, sed $a^2 + b^2 = c^2$ eiusmod tempor incidunt ut labore et dolore magna aliqua. Ut enim ad minim veniam.

結果として

Lorem ipsum dolor sit amet, consectetur adipisici elit, sed
$a^2 + b^2 = c^2$ eiusmod tempor incidunt ut labore et dolore magna
aliqua. Ut enim ad minim veniam.
4

2 に答える 2

5

試す:

(add-hook 'LaTeX-mode-hook
          (lambda ()
            (add-to-list 'fill-nobreak-predicate 'texmathp)))

に配置して、.emacsemacs を再起動します。

于 2013-06-12T14:33:29.423 に答える
1

次のようなことができます:

(add-hook 'LaTeX-mode-hook
          (lambda ()
            (add-hook 'fill-nobreak-predicate 'my-latex-fill-nobreak)))

次に、短い数学環境内にいる場合、非 nil を返す関数my-latex-fill-nobreakを定義します。たとえば、次のようになります。

(defun my-latex-fill-nobreak ()
  (save-excursion
    (when (search-backward "$" (- (point) 20) t)
      ;; We found a nearby $.  Now let's see if it's an opening $
      ;; rather than a closing one.  Using font-lock properties is
      ;; a hack, but it might be good enough.  Apparently (texmathp)
      ;; could be a better choice.
      (eq (get-text-property (point) 'face) 'font-latex-math-face))))
于 2013-06-11T15:40:43.213 に答える