Function: tex--prettify-symbols-compose-p

tex--prettify-symbols-compose-p is a byte-compiled function defined in tex-mode.el.gz.

Signature

(tex--prettify-symbols-compose-p START END MATCH)

Source Code

;; Defined in /usr/src/emacs/lisp/textmodes/tex-mode.el.gz
(defun tex--prettify-symbols-compose-p (start end _match)
  (if (save-excursion
        (goto-char start)
        ;; Skip composition when the control backslash at START is
        ;; itself escaped, as in constructs like \"\\\\S\".
        (not (zerop (mod (skip-chars-backward "\\\\") 2))))
      nil
    (or
     ;; If the matched symbol doesn't end in a word character, then we
     ;; simply allow composition.  The symbol is probably something like
     ;; \|, \(, etc.
     (not (eq ?w (char-syntax (char-before end))))
     ;; Else we look at what follows the match in order to decide.
     (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)))))))))