@@ -1811,9 +1811,10 @@ citeKey = try $ do
1811 guard $ lastStrPos /= Just pos
1811 guard $ lastStrPos /= Just pos
1812 suppress_author <- option False (char '-' >> return True)
1812 suppress_author <- option False (char '-' >> return True)
1813 char '@'
1813 char '@'
1814− first <- letter
1814+ first <- letter <|> char '_'
1815+ let regchar = satisfy (\c -> isAlphaNum c || c == '_')
1815− let internal p = try $ p >>~ lookAhead (letter <|> digit)
1816+ let internal p = try $ p >>~ lookAhead regchar
1816− rest <- many $ letter <|> digit <|> internal (oneOf ":.#$%&-_+?<>~/")
1817+ rest <- many $ regchar <|> internal (oneOf ":.#$%&-+?<>~/")
1817 let key = first:rest
1818 let key = first:rest
1818 return (suppress_author, key)
1819 return (suppress_author, key)