Minor cleanups in LaTeX reader.

This commit is contained in:
John MacFarlane 2017-02-27 00:40:33 +01:00
parent 99b39ffc17
commit 4fb9976a9a

View file

@ -445,22 +445,22 @@ inlineCommand :: PandocMonad m => LP m Inlines
inlineCommand = try $ do inlineCommand = try $ do
(name, raw') <- withRaw anyControlSeq (name, raw') <- withRaw anyControlSeq
guard $ name /= "begin" && name /= "end" guard $ name /= "begin" && name /= "end"
exts <- getOption readerExtensions
star <- option "" (string "*") star <- option "" (string "*")
let name' = name ++ star let name' = name ++ star
let raw = do let raw = do
guard $ not (isBlockCommand name)
rawargs <- withRaw rawargs <- withRaw
(skipangles *> skipopts *> option "" dimenarg *> many braced) (skipangles *> skipopts *> option "" dimenarg *> many braced)
let rawcommand = raw' ++ star ++ snd rawargs let rawcommand = raw' ++ star ++ snd rawargs
transformed <- applyMacros' rawcommand transformed <- applyMacros' rawcommand
exts <- getOption readerExtensions
if transformed /= rawcommand if transformed /= rawcommand
then parseFromString inlines transformed then parseFromString inlines transformed
else if extensionEnabled Ext_raw_tex exts else if extensionEnabled Ext_raw_tex exts
then return $ rawInline "latex" rawcommand then return $ rawInline "latex" rawcommand
else ignore rawcommand else ignore rawcommand
(lookupListDefault mzero [name',name] inlineCommands <* (lookupListDefault raw [name',name] inlineCommands <*
optional (try (string "{}"))) optional (try (string "{}")))
<|> (guard (not (isBlockCommand name)) >> raw)
unlessParseRaw :: PandocMonad m => LP m () unlessParseRaw :: PandocMonad m => LP m ()
unlessParseRaw = getOption readerExtensions >>= unlessParseRaw = getOption readerExtensions >>=
@ -508,7 +508,6 @@ inlineCommands = M.fromList $
, ("sim", lit "~") , ("sim", lit "~")
, ("label", unlessParseRaw >> (inBrackets <$> tok)) , ("label", unlessParseRaw >> (inBrackets <$> tok))
, ("ref", unlessParseRaw >> (inBrackets <$> tok)) , ("ref", unlessParseRaw >> (inBrackets <$> tok))
, ("noindent", unlessParseRaw >> ignore "noindent")
, ("textgreek", tok) , ("textgreek", tok)
, ("sep", lit ",") , ("sep", lit ",")
, ("cref", unlessParseRaw >> (inBrackets <$> tok)) -- from cleveref.sty , ("cref", unlessParseRaw >> (inBrackets <$> tok)) -- from cleveref.sty