Package: emacs;
Reported by: Patrick <patrick <at> math.utah.edu>
Date: Sat, 7 Jul 2018 00:09:02 UTC
Severity: normal
Merged with 40865
Found in versions 24.5, 26.3
To reply to this bug, email your comments to 32076 AT debbugs.gnu.org.
Toggle the display of automated, internal messages from the tracker.
View this report as an mbox folder, status mbox, maintainer mbox
bug-gnu-emacs <at> gnu.org
:bug#32076
; Package emacs
.
(Sat, 07 Jul 2018 00:09:02 GMT) Full text and rfc822 format available.Patrick <patrick <at> math.utah.edu>
:bug-gnu-emacs <at> gnu.org
.
(Sat, 07 Jul 2018 00:09:02 GMT) Full text and rfc822 format available.Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Patrick <patrick <at> math.utah.edu> To: bug-gnu-emacs <at> gnu.org Subject: 24.5; Electric behavior of dollar sign using AUCTeX Date: Fri, 06 Jul 2018 16:56:07 -0600
See the following StackExchange question: <a href="https://emacs.stackexchange.com/questions/42278/electric-behavior-of-dollar-sign-using-auctex">https://emacs.stackexchange.com/questions/42278/electric-behavior-of-dollar-sign-using-auctex</a> Reporting as suggested by Joao Tavora. In GNU Emacs 24.5.1 (x86_64-unknown-linux-gnu, GTK+ Version 2.24.22) of 2015-09-18 on grousecreek.math.utah.edu Windowing system distributor `The X.Org Foundation', version 11.0.11905000 System Description: CentOS Linux release 7.5.1804 (Core) Configured using: `configure --with-x-toolkit=gtk2 --with-xaw3d --without-gif 'CFLAGS=-m64 -I${prefix}/include' 'CPPFLAGS=-m64 -I${prefix}/include' 'LDFLAGS=-L${libdir} -Wl,-rpath,${libdir}'' Important settings: value of $LANG: en_US.UTF-8 value of $XMODIFIERS: @im=none locale-coding-system: utf-8-unix Major mode: LaTeX/MP Minor modes in effect: text-scale-mode: t LaTeX-math-mode: t TeX-PDF-mode: t electric-pair-mode: t shell-dirtrack-mode: t tooltip-mode: t mouse-wheel-mode: t tool-bar-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t line-number-mode: t transient-mark-mode: t Recent messages: Loading sendmail...done Loading /usr/uumath/share/emacs/site-lisp/clsc.el (source)...done Loading /usr/uumath/share/emacs/site-lisp/mono.el (source)...done Loading isearch...done For information about GNU Emacs and the GNU system, type C-h C-a. test.tex has auto save data; consider M-x recover-this-file Source file `/u/ma/patrick/.emacs.d/elpa/auctex-12.1.1/tex.el' newer than byte-compiled file Applying style hooks...done Sorting environment...done Removing duplicates...done Load-path shadows: /u/ma/patrick/.emacs.d/elpa/auctex-12.1.1/latex hides /usr/uumath/share/emacs/site-lisp/latex /u/ma/patrick/.emacs.d/elpa/auctex-12.1.1/tex-site hides /usr/uumath/share/emacs/site-lisp/tex-site /u/ma/patrick/.emacs.d/elpa/auctex-12.1.1/lpath hides /usr/uumath/share/emacs/site-lisp/lpath /u/ma/patrick/.emacs.d/elpa/auctex-12.1.1/tex-info hides /usr/uumath/share/emacs/site-lisp/auctex/tex-info /u/ma/patrick/.emacs.d/elpa/auctex-12.1.1/latex hides /usr/uumath/share/emacs/site-lisp/auctex/latex /u/ma/patrick/.emacs.d/elpa/auctex-12.1.1/multi-prompt hides /usr/uumath/share/emacs/site-lisp/auctex/multi-prompt /u/ma/patrick/.emacs.d/elpa/auctex-12.1.1/tex hides /usr/uumath/share/emacs/site-lisp/auctex/tex /u/ma/patrick/.emacs.d/elpa/auctex-12.1.1/tex-buf hides /usr/uumath/share/emacs/site-lisp/auctex/tex-buf /usr/uumath/share/emacs/site-lisp/latexinfo hides /usr/uumath/share/emacs/site-lisp/auctex/style/latexinfo /usr/uumath/share/emacs/site-lisp/make-regexp hides /usr/uumath/share/emacs/site-lisp/ess/lisp/make-regexp /usr/uumath/share/emacs/site-lisp/tempo hides /usr/uumath/share/emacs/24.5/lisp/tempo /usr/uumath/share/emacs/site-lisp/t-mouse hides /usr/uumath/share/emacs/24.5/lisp/t-mouse /usr/uumath/share/emacs/site-lisp/format-spec hides /usr/uumath/share/emacs/24.5/lisp/format-spec /usr/uumath/share/emacs/site-lisp/ruler-mode hides /usr/uumath/share/emacs/24.5/lisp/ruler-mode /usr/uumath/share/emacs/site-lisp/reftex-ref hides /usr/uumath/share/emacs/24.5/lisp/textmodes/reftex-ref /usr/uumath/share/emacs/site-lisp/reftex-vars hides /usr/uumath/share/emacs/24.5/lisp/textmodes/reftex-vars /usr/uumath/share/emacs/site-lisp/reftex-index hides /usr/uumath/share/emacs/24.5/lisp/textmodes/reftex-index /usr/uumath/share/emacs/site-lisp/reftex-cite hides /usr/uumath/share/emacs/24.5/lisp/textmodes/reftex-cite /usr/uumath/share/emacs/site-lisp/reftex-parse hides /usr/uumath/share/emacs/24.5/lisp/textmodes/reftex-parse /usr/uumath/share/emacs/site-lisp/reftex hides /usr/uumath/share/emacs/24.5/lisp/textmodes/reftex /usr/uumath/share/emacs/site-lisp/reftex-sel hides /usr/uumath/share/emacs/24.5/lisp/textmodes/reftex-sel /usr/uumath/share/emacs/site-lisp/reftex-global hides /usr/uumath/share/emacs/24.5/lisp/textmodes/reftex-global /usr/uumath/share/emacs/site-lisp/reftex-auc hides /usr/uumath/share/emacs/24.5/lisp/textmodes/reftex-auc /usr/uumath/share/emacs/site-lisp/bibtex hides /usr/uumath/share/emacs/24.5/lisp/textmodes/bibtex /usr/uumath/share/emacs/site-lisp/reftex-dcr hides /usr/uumath/share/emacs/24.5/lisp/textmodes/reftex-dcr /usr/uumath/share/emacs/site-lisp/reftex-toc hides /usr/uumath/share/emacs/24.5/lisp/textmodes/reftex-toc /usr/uumath/share/emacs/site-lisp/cperl-mode hides /usr/uumath/share/emacs/24.5/lisp/progmodes/cperl-mode /usr/uumath/share/emacs/site-lisp/xscheme hides /usr/uumath/share/emacs/24.5/lisp/progmodes/xscheme /usr/uumath/share/emacs/site-lisp/tramp hides /usr/uumath/share/emacs/24.5/lisp/net/tramp /usr/uumath/share/emacs/site-lisp/auctex/style/slovak hides /usr/uumath/share/emacs/24.5/lisp/language/slovak /usr/uumath/share/emacs/site-lisp/auctex/style/czech hides /usr/uumath/share/emacs/24.5/lisp/language/czech /usr/uumath/share/emacs/site-lisp/calc-units hides /usr/uumath/share/emacs/24.5/lisp/calc/calc-units /usr/uumath/share/emacs/site-lisp/calc-trail hides /usr/uumath/share/emacs/24.5/lisp/calc/calc-trail /usr/uumath/share/emacs/site-lisp/calc-frac hides /usr/uumath/share/emacs/24.5/lisp/calc/calc-frac /usr/uumath/share/emacs/site-lisp/calc-incom hides /usr/uumath/share/emacs/24.5/lisp/calc/calc-incom /usr/uumath/share/emacs/site-lisp/calc-undo hides /usr/uumath/share/emacs/24.5/lisp/calc/calc-undo /usr/uumath/share/emacs/site-lisp/calc-embed hides /usr/uumath/share/emacs/24.5/lisp/calc/calc-embed /usr/uumath/share/emacs/site-lisp/calc-forms hides /usr/uumath/share/emacs/24.5/lisp/calc/calc-forms /usr/uumath/share/emacs/site-lisp/calc-math hides /usr/uumath/share/emacs/24.5/lisp/calc/calc-math /usr/uumath/share/emacs/site-lisp/calc-vec hides /usr/uumath/share/emacs/24.5/lisp/calc/calc-vec /usr/uumath/share/emacs/site-lisp/calc-alg hides /usr/uumath/share/emacs/24.5/lisp/calc/calc-alg /usr/uumath/share/emacs/site-lisp/calc-help hides /usr/uumath/share/emacs/24.5/lisp/calc/calc-help /usr/uumath/share/emacs/site-lisp/calc-ext hides /usr/uumath/share/emacs/24.5/lisp/calc/calc-ext /usr/uumath/share/emacs/site-lisp/calc-prog hides /usr/uumath/share/emacs/24.5/lisp/calc/calc-prog /usr/uumath/share/emacs/site-lisp/calc-cplx hides /usr/uumath/share/emacs/24.5/lisp/calc/calc-cplx /usr/uumath/share/emacs/site-lisp/calc-macs hides /usr/uumath/share/emacs/24.5/lisp/calc/calc-macs /usr/uumath/share/emacs/site-lisp/calc-lang hides /usr/uumath/share/emacs/24.5/lisp/calc/calc-lang /usr/uumath/share/emacs/site-lisp/calc-keypd hides /usr/uumath/share/emacs/24.5/lisp/calc/calc-keypd /usr/uumath/share/emacs/site-lisp/calc-graph hides /usr/uumath/share/emacs/24.5/lisp/calc/calc-graph /usr/uumath/share/emacs/site-lisp/calc-arith hides /usr/uumath/share/emacs/24.5/lisp/calc/calc-arith /usr/uumath/share/emacs/site-lisp/calc-rules hides /usr/uumath/share/emacs/24.5/lisp/calc/calc-rules /usr/uumath/share/emacs/site-lisp/calc-yank hides /usr/uumath/share/emacs/24.5/lisp/calc/calc-yank /usr/uumath/share/emacs/site-lisp/calc-bin hides /usr/uumath/share/emacs/24.5/lisp/calc/calc-bin /usr/uumath/share/emacs/site-lisp/calc-store hides /usr/uumath/share/emacs/24.5/lisp/calc/calc-store /usr/uumath/share/emacs/site-lisp/calc-misc hides /usr/uumath/share/emacs/24.5/lisp/calc/calc-misc /usr/uumath/share/emacs/site-lisp/calc-sel hides /usr/uumath/share/emacs/24.5/lisp/calc/calc-sel /usr/uumath/share/emacs/site-lisp/calc-comb hides /usr/uumath/share/emacs/24.5/lisp/calc/calc-comb /usr/uumath/share/emacs/site-lisp/calc-map hides /usr/uumath/share/emacs/24.5/lisp/calc/calc-map /usr/uumath/share/emacs/site-lisp/calc-poly hides /usr/uumath/share/emacs/24.5/lisp/calc/calc-poly /usr/uumath/share/emacs/site-lisp/calc hides /usr/uumath/share/emacs/24.5/lisp/calc/calc /usr/uumath/share/emacs/site-lisp/calc-mode hides /usr/uumath/share/emacs/24.5/lisp/calc/calc-mode /usr/uumath/share/emacs/site-lisp/calc-stat hides /usr/uumath/share/emacs/24.5/lisp/calc/calc-stat /usr/uumath/share/emacs/site-lisp/calc-fin hides /usr/uumath/share/emacs/24.5/lisp/calc/calc-fin /usr/uumath/share/emacs/site-lisp/calc-funcs hides /usr/uumath/share/emacs/24.5/lisp/calc/calc-funcs /usr/uumath/share/emacs/site-lisp/calc-aent hides /usr/uumath/share/emacs/24.5/lisp/calc/calc-aent /usr/uumath/share/emacs/site-lisp/calc-rewr hides /usr/uumath/share/emacs/24.5/lisp/calc/calc-rewr /usr/uumath/share/emacs/site-lisp/calc-stuff hides /usr/uumath/share/emacs/24.5/lisp/calc/calc-stuff /usr/uumath/share/emacs/site-lisp/auctex/style/swedish hides /usr/uumath/share/emacs/24.5/lisp/obsolete/swedish Features: (shadow sort gnus-util mail-extr emacsbug message idna cl-macs format-spec cl rfc822 mml mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader face-remap preview prv-emacs tex-bar tex-buf toolbar-x noutline outline font-latex byte-opt bytecomp byte-compile cl-extra cconv latex easy-mmode tex-ispell tex-style tex dbus xml crm advice tex-mode compile latexenc info easymenu tex-site package epg-config pcase gv edmacro kmacro cl-loaddefs cl-lib elec-pair clsc sendmail dabbrev shell pcomplete comint ansi-color ring rmail rfc2047 rfc2045 ietf-drums mm-util help-fns mail-prsvr mail-utils time-date tooltip electric uniquify ediff-hook vc-hooks lisp-float-type mwheel x-win x-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list newcomment lisp-mode prog-mode register page menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core frame cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer nadvice loaddefs button faces cus-face macroexp files text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote make-network-process dbusbind gfilenotify dynamic-setting system-font-setting font-render-setting move-toolbar gtk x-toolkit x multi-tty emacs) Memory information: ((conses 16 169984 6039) (symbols 48 25836 0) (miscs 40 41 131) (strings 32 35829 4905) (string-bytes 1 1000492) (vectors 16 18029) (vector-slots 8 484696 4968) (floats 8 119 346) (intervals 56 459 4) (buffers 960 12) (heap 1024 41117 1332))
bug-gnu-emacs <at> gnu.org
:bug#32076
; Package emacs
.
(Sun, 08 Jul 2018 14:38:04 GMT) Full text and rfc822 format available.Message #8 received at 32076 <at> debbugs.gnu.org (full text, mbox):
From: João Távora <joaotavora <at> gmail.com> To: Patrick <patrick <at> math.utah.edu> Cc: 32076 <at> debbugs.gnu.org Subject: Re: bug#32076: 24.5; Electric behavior of dollar sign using AUCTeX Date: Sun, 08 Jul 2018 15:37:01 +0100
Patrick <patrick <at> math.utah.edu> writes: > See the following StackExchange question: <a > href="https://emacs.stackexchange.com/questions/42278/electric-behavior-of-dollar-sign-using-auctex">https://emacs.stackexchange.com/questions/42278/electric-behavior-of-dollar-sign-using-auctex</a> > Reporting as suggested by Joao Tavora. Thanks Patrick, In general we want the bug descriptions Emacs bug tracker to be as self-contained as possible. So here's the simple way to reproduce this: emacs -Q M-x tex-mode M-x electric-pair-mode type $, two dollars correctly appear and point is in the middle type something type $, again. Two dollars appear again instead of skipping over the dollar. The reason for this is that `electric-pair-skip-if-helps-balance' doesn't recognize the $ (paired-delimiter) syntax. It's easy to open a door for this in elec-pair.el (see attached partial patch), but Emacs' built-in tex-mode doesn't have anything to plug into the new electric-pair-between-paired-delimiters-function var (or does it?) AUCTeX, on the other hand, has `texmathp' which seems to do nicely. Should we lift this function into Emacs, or use some other, perhaps more generic, technique of discovering wether point is between two $$? João diff --git a/lisp/elec-pair.el b/lisp/elec-pair.el index 7df7098295..3040a5be6d 100644 --- a/lisp/elec-pair.el +++ b/lisp/elec-pair.el @@ -428,6 +428,9 @@ electric-pair-inhibit-if-helps-balance (electric-pair--unbalanced-strings-p char)))) (insert-char char))))) +(defvar electric-pair-between-paired-delimiters-function #'ignore + "Function returning non-nil if point between paired delimiters.") + (defun electric-pair-skip-if-helps-balance (char) "Return non-nil if skipping CHAR would benefit parentheses' balance. @@ -451,7 +454,9 @@ electric-pair-skip-if-helps-balance ((car innermost) (not (eq (cdr outermost) pair))))))) ((eq syntax ?\") - (electric-pair--inside-string-p char)))) + (electric-pair--inside-string-p char)) + ((eq syntax ?\$) + (funcall electric-pair-between-paired-delimiters-function)))) (insert-char char))))) (defun electric-pair-default-skip-self (char)
bug-gnu-emacs <at> gnu.org
:bug#32076
; Package emacs
.
(Tue, 10 Jul 2018 05:47:01 GMT) Full text and rfc822 format available.Message #11 received at 32076 <at> debbugs.gnu.org (full text, mbox):
From: Patrick Graf <pgraf39 <at> gmail.com> To: João Távora <joaotavora <at> gmail.com>, 32076 <at> debbugs.gnu.org Subject: Re: bug#32076: 24.5; Electric behavior of dollar sign using AUCTeX Date: Tue, 10 Jul 2018 07:32:34 +0200
[Message part 1 (text/plain, inline)]
Hi João, sorry for not being self-contained. This was my first GNU bug report ;-) Concerning the fix, I tried texmathp today and indeed it works fine. I have in mind something like the following snippet (to be run whenever $ is hit): (interactive) (if (texmathp) (if (looking-at-p "[$]") (forward-char 1) (insert "$")) (insert "$$") (backward-char 1))) This also takes care of the issue that when I delete the closing $ by hitting backspace and then type $ again, a new pair used to be inserted. A minor drawback is that this only works for $...$ specifically and it requires AUCTeX, which not everybody may be using. But $...$ is good enough for me and if I understand you correctly, one could include texmathp.el in the Emacs source. Cheers, Patrick
[Message part 2 (text/html, inline)]
Lars Ingebrigtsen <larsi <at> gnus.org>
to control <at> debbugs.gnu.org
.
(Thu, 24 Jun 2021 16:35:02 GMT) Full text and rfc822 format available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.