5

Q: how can I test if point is inside LaTeX ``quotes,'' and how can I get the bounds of that quote?

LaTeX quotation marks are kooky, typesetting ``text inside a double-quote'' and `text inside a single-quote' for the standard "text inside a double-quote" and 'text inside a single-quote'.

I'd like to detect if point is inside such a quote (either single or double) and, ideally, return the bounds of the quoted passage. However, syntax-ppss does not appear to recognize such passages as strings (re: elements 3 and 8 in the returned list; see parse-partial-sexp for details).

Is there a predicate function baked-in to AUCTeX to do so? Many of their functions also have curious naming conventions, so I may have missed it. If no such function already exists, what alternatives would work?

1
  • Similar to the answer of @abo-abo if you evaluate (font-latex-faces-present-p '(font-latex-string-face)) inside a double quotation, you get true, otherwise false.
    – Name
    Feb 13, 2015 at 0:21

1 Answer 1

3

You need this:

(defun latex-quote-bnd ()
  (save-excursion
    (beginning-of-line)
    (when (font-latex-match-quotation
           (line-end-position))
      (cons
       (match-beginning 0)
       (match-end 0)))))

I found font-latex-match-quotation simply by following describe-face.

5
  • 1
    Thanks for the find. So far, though, it's a partial solution: it doesn't work for `single quotes', and it doesn't work for multi-line passages when point is not on the line with the opening ``.
    – Dan
    Feb 12, 2015 at 16:48
  • In addition font-locking is lazy, in the sense that a not already visited region has no font face, so looking at it is pretty useless in that case.
    – giordano
    Feb 12, 2015 at 23:17
  • 1
    It'd be more robust to just search for the quotes around point, and check that they're valid.
    – Malabarba
    Feb 13, 2015 at 1:35
  • @Malabarba, I didn't even know about those type of quotes in LaTeX. Hence, just providing a proof-of-concept as a starting point, not trying to solve the whole thing.
    – abo-abo
    Feb 13, 2015 at 8:44
  • @abo-abo Sure. Just trying to help. ;-)
    – Malabarba
    Feb 13, 2015 at 8:47

This site is temporarily in read-only mode and not accepting new answers.

Not the answer you're looking for? Browse other questions tagged .