Citeproc: Don't detect math elements as locators.

Closes #7321.
This commit is contained in:
John MacFarlane 2021-05-27 10:49:45 -07:00
parent 834da53058
commit cbe16b2866
3 changed files with 32 additions and 1 deletions

View file

@ -5015,7 +5015,7 @@ the suffix as locator by prepending curly braces:
[@smith{ii, A, D-Z}, with a suffix]
[@smith, {pp. iv, vi-xi, (xv)-(xvii)} with suffix here]
[@smith{}, $a^2$ and following]
[@smith{}, 99 years later]
A minus sign (`-`) before the `@` will suppress mention of
the author in the citation. This can be useful when the

View file

@ -181,6 +181,7 @@ pPageUnit = roman <|> plainUnit
plainUnit = do
ts <- many1 (notFollowedBy pSpace >>
notFollowedBy pLocatorPunct >>
notFollowedBy pMath >>
anyToken)
let s = stringify ts
-- otherwise look for actual digits or -s
@ -211,6 +212,12 @@ pMatchChar msg f = satisfyTok f' <?> msg
pSpace :: LocatorParser Inline
pSpace = satisfyTok (\t -> isSpacey t || t == Str "\160") <?> "space"
pMath :: LocatorParser Inline
pMath = satisfyTok isMath
where
isMath (Math{}) = True
isMath _ = False
satisfyTok :: (Inline -> Bool) -> LocatorParser Inline
satisfyTok f = tokenPrim show (\sp _ _ -> sp) (\tok -> if f tok
then Just tok

24
test/command/7321.md Normal file
View file

@ -0,0 +1,24 @@
```
% pandoc -t plain --citeproc --wrap=none
---
references:
- id: fenner2012a
title: One-click science marketing
author:
- family: Fenner
given: Martin
container-title: Nature Materials
volume: 11
issue: 4
publisher: Nature Publishing Group
type: article-journal
issued:
year: 2012
---
[@fenner2012a, $a^2+b^2=c^2$]
^D
(Fenner 2012, a²+=c²)
Fenner, Martin. 2012. “One-Click Science Marketing.” Nature Materials 11 (4).
```