all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* bug#32076: 24.5; Electric behavior of dollar sign using AUCTeX
@ 2018-07-06 22:56 Patrick
  2018-07-08 14:37 ` João Távora
  0 siblings, 1 reply; 3+ messages in thread
From: Patrick @ 2018-07-06 22:56 UTC (permalink / raw)
  To: 32076


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))





^ permalink raw reply	[flat|nested] 3+ messages in thread

* bug#32076: 24.5; Electric behavior of dollar sign using AUCTeX
  2018-07-06 22:56 bug#32076: 24.5; Electric behavior of dollar sign using AUCTeX Patrick
@ 2018-07-08 14:37 ` João Távora
  2018-07-10  5:32   ` Patrick Graf
  0 siblings, 1 reply; 3+ messages in thread
From: João Távora @ 2018-07-08 14:37 UTC (permalink / raw)
  To: Patrick; +Cc: 32076

Patrick <patrick@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)






^ permalink raw reply related	[flat|nested] 3+ messages in thread

* bug#32076: 24.5; Electric behavior of dollar sign using AUCTeX
  2018-07-08 14:37 ` João Távora
@ 2018-07-10  5:32   ` Patrick Graf
  0 siblings, 0 replies; 3+ messages in thread
From: Patrick Graf @ 2018-07-10  5:32 UTC (permalink / raw)
  To: João Távora, 32076

[-- Attachment #1: Type: text/plain, Size: 804 bytes --]

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

[-- Attachment #2: Type: text/html, Size: 991 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2018-07-10  5:32 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-07-06 22:56 bug#32076: 24.5; Electric behavior of dollar sign using AUCTeX Patrick
2018-07-08 14:37 ` João Távora
2018-07-10  5:32   ` Patrick Graf

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.