+;; This is a math-mode find and replace. It relies on the AUCTeX
+;; package for the "texmathp" function.
+;;
+;; Originally from http://stackoverflow.com/questions/19845598,
+;; and modified to mention AUCTeX if it is missing.
+
+(fset 'latex-query-replace-regexp-math
+ `(lambda (regexp to-string &optional delimited start end backward)
+ "Like `query-replace-regexp' but only searches within math environments."
+ ,(interactive-form 'query-replace-regexp)
+
+ (if (fboundp 'texmathp)
+ (let ((replace-re-search-function
+ (lambda (regexp bound noerror)
+ (catch :found
+ (while (let ((ret (re-search-forward regexp bound noerror)))
+ (when (save-match-data (texmathp)) (throw :found ret))
+ ret))))))
+ (query-replace-regexp regexp to-string delimited start end backward))
+ (error "AUCTeX and latex-mode are required for this function.")
+ )))