@@ -482,9 +482,12 @@ inlineCommand = try $ do
482 (lookupListDefault raw [name',name] inlineCommands <*
482 (lookupListDefault raw [name',name] inlineCommands <*
483 optional (try (string "{}")))
483 optional (try (string "{}")))
485−unlessParseRaw :: PandocMonad m => LP m ()
485+rawInlineOr :: PandocMonad m => String -> LP m Inlines -> LP m Inlines
486+rawInlineOr name' fallback = do
486−unlessParseRaw = getOption readerExtensions >>=
487+ parseRaw <- extensionEnabled Ext_raw_tex <$> getOption readerExtensions
487− guard . not . extensionEnabled Ext_raw_tex
488+ if parseRaw
489+ then rawInline "latex" <$> getRawCommand name'
489isBlockCommand :: String -> Bool
492isBlockCommand :: String -> Bool
490isBlockCommand s = s `M.member` (blockCommands :: M.Map String (LP PandocPure Blocks))
493isBlockCommand s = s `M.member` (blockCommands :: M.Map String (LP PandocPure Blocks))
@@ -532,11 +535,11 @@ inlineCommands = M.fromList $
532 , ("dots", lit "…")
535 , ("dots", lit "…")
533 , ("mdots", lit "…")
536 , ("mdots", lit "…")
534 , ("sim", lit "~")
537 , ("sim", lit "~")
535− , ("label", unlessParseRaw >> (inBrackets <$> tok))
538+ , ("label", rawInlineOr "label" (inBrackets <$> tok))
536− , ("ref", unlessParseRaw >> (inBrackets <$> tok))
539+ , ("ref", rawInlineOr "ref" (inBrackets <$> tok))
537 , ("textgreek", tok)
540 , ("textgreek", tok)
538 , ("sep", lit ",")
541 , ("sep", lit ",")
539− , ("cref", unlessParseRaw >> (inBrackets <$> tok)) -- from cleveref.sty
542+ , ("cref", rawInlineOr "cref" (inBrackets <$> tok)) -- from cleveref.sty
540 , ("(", mathInline $ manyTill anyChar (try $ string "\\)"))
543 , ("(", mathInline $ manyTill anyChar (try $ string "\\)"))
541 , ("[", mathDisplay $ manyTill anyChar (try $ string "\\]"))
544 , ("[", mathDisplay $ manyTill anyChar (try $ string "\\]"))
542 , ("ensuremath", mathInline braced)
545 , ("ensuremath", mathInline braced)