Implement override advice toggling of TeX-brace-count-line
This commit is contained in:
parent
3a17276629
commit
5245248921
127
README.org
127
README.org
@ -590,9 +590,14 @@ defined in this Org file.
|
||||
(with-eval-after-load 'shortdoc
|
||||
;; Ensure defining the functions before documenting them.
|
||||
(define-short-documentation-group init
|
||||
"Advice"
|
||||
(toggle-advice :no-manual t)
|
||||
"Face"
|
||||
(invert-default-face :no-manual t)
|
||||
(set-default-face-height :no-manual t)
|
||||
"LaTeX"
|
||||
(TeX-brace-count-line-override :no-manual t)
|
||||
(toggle-TeX-brace-count-line-override :no-manual t)
|
||||
"Org"
|
||||
(by-backend :no-manual t)
|
||||
(by-backend-kbd-org-macro :no-manual t)
|
||||
@ -1226,7 +1231,10 @@ Loading =tex.el= immediately instead of lazily ensures proper initialization of
|
||||
elisp library file has no autoload cookie. Without prior loading of =tex.el=,
|
||||
Emacs will complain that ~TeX-master~ is no safe local variable in case it reads
|
||||
a LaTeX file that sets ~TeX-master~. Listing [[lst:require-auctex]] initializes
|
||||
[[https://en.wikipedia.org/wiki/AUCTeX][AUCTeX]] properly for LuaTeX or LuaLaTeX.
|
||||
[[https://en.wikipedia.org/wiki/AUCTeX][AUCTeX]] properly for LuaTeX or LuaLaTeX. Finally, out of the box, [[https://en.wikipedia.org/wiki/AUCTeX][AUCTeX]] does
|
||||
not indent text between square brackets. The code in listing [[lst:configure-auctex]]
|
||||
corrects this by advising to override ~TeX-brace-count-line~ with
|
||||
~TeX-brace-count-line-advice~.
|
||||
|
||||
#+caption[Require =AUCTeX=]:
|
||||
#+caption: Require =AUCTeX=.
|
||||
@ -1238,61 +1246,19 @@ a LaTeX file that sets ~TeX-master~. Listing [[lst:require-auctex]] initializes
|
||||
'(TeX-auto-save t)
|
||||
'(TeX-engine 'luatex)
|
||||
'(TeX-install-font-lock #'font-latex-setup)
|
||||
'(TeX-parse-self t)))
|
||||
#+end_src
|
||||
|
||||
Listing [[lst:configure-bibtex]] configures the Emacs =bibtex= library to use the
|
||||
LaTeX =BiBTeX= dialect for backwards compatibility.
|
||||
|
||||
#+caption[Configure =bibtex=]:
|
||||
#+caption: Configure =bibtex=.
|
||||
#+name: lst:configure-bibtex
|
||||
#+begin_src emacs-lisp
|
||||
(with-eval-after-load 'bibtex
|
||||
(custom-set-variables '(bibtex-dialect 'BibTeX)))
|
||||
#+end_src
|
||||
|
||||
Listing [[lst:configure-font-latex]] disables font scaling of section titles.
|
||||
|
||||
#+caption[Configure =font-latex=]:
|
||||
#+caption: Configure =font-latex=.
|
||||
#+name: lst:configure-font-latex
|
||||
#+begin_src emacs-lisp
|
||||
(with-eval-after-load 'font-latex
|
||||
(custom-set-variables
|
||||
'(font-latex-fontify-sectioning 1.0)))
|
||||
#+end_src
|
||||
|
||||
Listing [[lst:configure-latex]] configures =latex= for a full featured
|
||||
=LaTeX-section-command=. Finally, out of the box, [[https://en.wikipedia.org/wiki/AUCTeX][AUCTeX]] does not indent text
|
||||
between square brackets. The code in listing [[lst:configure-tex]] corrects this by
|
||||
advising to override ~TeX-brace-count-line~ with ~my-TeX-brace-count-line~.
|
||||
|
||||
#+caption[Configure =latex=]:
|
||||
#+caption: Configure =latex=.
|
||||
#+name: lst:configure-latex
|
||||
#+begin_src emacs-lisp
|
||||
(with-eval-after-load 'latex
|
||||
(custom-set-variables
|
||||
'(LaTeX-section-hook '(LaTeX-section-heading
|
||||
LaTeX-section-title
|
||||
LaTeX-section-toc
|
||||
LaTeX-section-section
|
||||
LaTeX-section-label))))
|
||||
#+end_src
|
||||
|
||||
#+caption[Configure =TeX=]:
|
||||
#+caption: Configure =TeX=.
|
||||
#+name: lst:configure-tex
|
||||
#+begin_src emacs-lisp
|
||||
(with-eval-after-load 'tex
|
||||
(custom-set-variables
|
||||
'(TeX-parse-self t)
|
||||
;; Disable `TeX-electric-math' to prevent collisions with `smartparens'.
|
||||
'(TeX-electric-math nil))
|
||||
'(TeX-electric-math nil)))
|
||||
#+end_src
|
||||
|
||||
;; https://emacs.stackexchange.com/questions/17396/
|
||||
;; indentation-in-square-brackets
|
||||
(defun my-TeX-brace-count-line ()
|
||||
#+caption[Configure =AUCTeX=]:
|
||||
#+caption: Configure =AUCTeX=.
|
||||
#+name: lst:configure-auctex
|
||||
#+begin_src emacs-lisp
|
||||
(when (require 'tex nil 'noerror)
|
||||
;; https://emacs.stackexchange.com/a/35507 answers:
|
||||
;; How to indent between square brackets?
|
||||
(defun TeX-brace-count-line-override ()
|
||||
"Count number of open/closed braces."
|
||||
(save-excursion
|
||||
(let ((count 0) (limit (line-end-position)) char)
|
||||
@ -1314,7 +1280,58 @@ advising to override ~TeX-brace-count-line~ with ~my-TeX-brace-count-line~.
|
||||
(forward-char) t))))))
|
||||
count)))
|
||||
|
||||
(advice-add 'TeX-brace-count-line :override #'my-TeX-brace-count-line))
|
||||
(defun toggle-advice (symbol where function &optional props)
|
||||
"Toggle between states after `advice-remove' and `advice-add'."
|
||||
(let ((how "%s `%s' advice `%s' %s `%s'"))
|
||||
(if (advice-member-p function symbol)
|
||||
(progn
|
||||
(message how "Removal of" where function "from" symbol)
|
||||
(advice-remove symbol function))
|
||||
(message how "Addition of" where function "to" symbol)
|
||||
(advice-add symbol where function props))))
|
||||
|
||||
(defun toggle-TeX-brace-count-line-override ()
|
||||
"Toggle `TeX-brace-count-line-override' advice."
|
||||
(interactive)
|
||||
(toggle-advice #'TeX-brace-count-line-advice :override 'TeX-brace-count-line))
|
||||
|
||||
(toggle-TeX-brace-count-line-override))
|
||||
#+end_src
|
||||
|
||||
Listing [[lst:configure-bibtex]] configures the Emacs =bibtex= library to use the
|
||||
LaTeX =BiBTeX= dialect for backwards compatibility. Listing
|
||||
[[lst:configure-font-latex]] disables font scaling of section titles. Listing
|
||||
[[lst:configure-latex]] configures =latex= for a full featured
|
||||
=LaTeX-section-command=.
|
||||
|
||||
#+caption[Configure =bibtex=]:
|
||||
#+caption: Configure =bibtex=.
|
||||
#+name: lst:configure-bibtex
|
||||
#+begin_src emacs-lisp
|
||||
(with-eval-after-load 'bibtex
|
||||
(custom-set-variables '(bibtex-dialect 'BibTeX)))
|
||||
#+end_src
|
||||
|
||||
#+caption[Configure =font-latex=]:
|
||||
#+caption: Configure =font-latex=.
|
||||
#+name: lst:configure-font-latex
|
||||
#+begin_src emacs-lisp
|
||||
(with-eval-after-load 'font-latex
|
||||
(custom-set-variables
|
||||
'(font-latex-fontify-sectioning 1.0)))
|
||||
#+end_src
|
||||
|
||||
#+caption[Configure =latex=]:
|
||||
#+caption: Configure =latex=.
|
||||
#+name: lst:configure-latex
|
||||
#+begin_src emacs-lisp
|
||||
(with-eval-after-load 'latex
|
||||
(custom-set-variables
|
||||
'(LaTeX-section-hook '(LaTeX-section-heading
|
||||
LaTeX-section-title
|
||||
LaTeX-section-toc
|
||||
LaTeX-section-section
|
||||
LaTeX-section-label))))
|
||||
#+end_src
|
||||
|
||||
*** [[https://gitlab.com/matsievskiysv/math-preview/-/blob/master/README.md][Math-preview]]
|
||||
|
Loading…
Reference in New Issue
Block a user