Uwe Brauer <o...@mat.ucm.es> writes: > Hi all > > I am using now emacs 29 master and enjoy Lars emoji insert menu. > > So I thought why not adding emoji to the pretty-symbol list. > But this symbol seems to cause problems: ☹️. > > Please consider this piece of code > > (defun tex--prettify-symbols-compose-p (_start end _match) ; not necessary > (or (not (eq ?w (char-syntax (char-before end)))) > (let* ((after-char (char-after end)) > (after-syntax (char-syntax after-char))) > (not (or > ;; Don't compose \alpha@foo. > (eq after-char ?@) > ;; The \alpha in \alpha2 or \alpha-\beta may be composed but > ;; of course \alphax may not. > (and (eq after-syntax ?w) > (not (memq after-char > '(?0 ?1 ?2 ?3 ?4 ?5 ?6 ?7 ?8 ?9 ?+ ?- ?' ?\")))) > ;; Don't compose inside verbatim blocks. > (eq 2 (nth 7 (syntax-ppss)))))))) > > (dolist (el '( > ;; doble stack > ("\\smiley" . ?🙂); works > ("\\frowie" . ?☹️); gives error > ("\\varrho" . ?ϱ))) > (add-to-list 'tex--prettify-symbols-alist el))
For one thing, it would have to be called "\\frownie" rather than "\\frowie". For another, you add an unrelated character after the frownie (the ?☹) that Emacs identifies as position: 1115 of 1246 (89%), column: 30 character: ️ (displayed as ️) (codepoint 65039, #o177017, #xfe0f) charset: unicode (Unicode (ISO10646)) code point in charset: 0xFE0F syntax: w which means: word category: ^:Combining to input: type "C-x 8 RET fe0f" or "C-x 8 RET VARIATION SELECTOR-16" buffer code: #xEF #xB8 #x8F file code: #xEF #xB8 #x8F (encoded by coding system raw-text-unix) display: by this font (glyph code) ftcrhb:-PfEd-Unifont-normal-normal-normal-*-15-*-*-*-d-0-iso10646-1 (#xDD12) Character code properties: customize what to show name: VARIATION SELECTOR-16 general-category: Mn (Mark, Nonspacing) decomposition: (65039) ('️') and that has no place in Elisp syntax when encountered on its own. If you cannot get your input method to refrain from that insertion, instead of ?☹ you could just write 9785 . -- David Kastrup