1
0
Fork 0

fix(emacs): simplify insert-frac command

Signed-off-by: Lucas Sta Maria <lucas@priime.dev>
This commit is contained in:
Lucas Sta Maria 2024-02-26 15:45:27 -05:00
parent fb55a718f2
commit ffb1e9dc45
No known key found for this signature in database
GPG key ID: F07FB16A826E3B47

View file

@ -25,6 +25,15 @@
(insert "\\(\\)") (insert "\\(\\)")
(backward-char 2))))) (backward-char 2)))))
(defun latex-absorbable-p ()
"Determine if the character before the cursor can be absorbed."
(backward-char)
(defconst bc (char-after))
(defconst bcs (char-to-string bc))
(forward-char)
(not (or (string-blank-p bcs)
(memq bc '(?\ ?( ?) ?{ ?} ?[ ?])))))
(defun insert-frac () (defun insert-frac ()
"Insert a fraction in math mode." "Insert a fraction in math mode."
(interactive) (interactive)
@ -33,17 +42,15 @@
(defconst bc (char-after)) (defconst bc (char-after))
(defconst bcs (char-to-string bc)) (defconst bcs (char-to-string bc))
(forward-char) (forward-char)
(cond ((or (string-blank-p bcs) (if (not (latex-absorbable-p))
(memq bc '(?\ ?( ?) ?{ ?} ?[ ?]))) (LaTeX-math-frac (not (texmathp)))
(LaTeX-math-frac (not (texmathp)))) (push-mark)
(t (backward-word)
(push-mark) (defconst content (buffer-substring (point) (mark)))
(backward-word) (delete-region (point) (mark))
(defconst content (buffer-substring (point) (mark))) (pop-mark)
(delete-region (point) (mark)) (insert "\\frac{" content "}{}")
(pop-mark) (backward-char)))
(insert "\\frac{" content "}{}")
(backward-char))))
(defun configure-latex () (defun configure-latex ()
"Configure my custom LaTex environment." "Configure my custom LaTex environment."