diff options
author | John MacFarlane <jgm@berkeley.edu> | 2017-07-21 09:28:11 +0200 |
---|---|---|
committer | John MacFarlane <jgm@berkeley.edu> | 2017-07-21 09:28:36 +0200 |
commit | 7191fe1f29f2f8b45f9be7e0f8bc9ed889e431d2 (patch) | |
tree | 59fbaf540b501c2505950ffa2d4c6b5107f86dae | |
parent | 992943d98e14cc2dd249d6279c8c930dddc5547d (diff) | |
download | pandoc-7191fe1f29f2f8b45f9be7e0f8bc9ed889e431d2.tar.gz |
LaTeX reader: handle optional args in raw `\titleformat`.
Closes #3804.
-rw-r--r-- | src/Text/Pandoc/Readers/LaTeX.hs | 23 | ||||
-rw-r--r-- | test/command/3804.md | 6 |
2 files changed, 21 insertions, 8 deletions
diff --git a/src/Text/Pandoc/Readers/LaTeX.hs b/src/Text/Pandoc/Readers/LaTeX.hs index ab3994770..58a48c655 100644 --- a/src/Text/Pandoc/Readers/LaTeX.hs +++ b/src/Text/Pandoc/Readers/LaTeX.hs @@ -1362,14 +1362,20 @@ rawInlineOr name' fallback = do getRawCommand :: PandocMonad m => Text -> LP m String getRawCommand txt = do - (_, rawargs) <- withRaw - ((if txt == "\\write" - then () <$ satisfyTok isWordTok -- digits - else return ()) *> - skipangles *> - skipopts *> - option "" (try (optional sp *> dimenarg)) *> - many braced) + (_, rawargs) <- withRaw $ + case txt of + "\\write" -> do + void $ satisfyTok isWordTok -- digits + void braced + "\\titleformat" -> do + void braced + skipopts + void $ count 4 braced + _ -> do + skipangles + skipopts + option "" (try (optional sp *> dimenarg)) + void $ many braced return $ T.unpack (txt <> untokenize rawargs) isBlockCommand :: Text -> Bool @@ -1397,6 +1403,7 @@ treatAsBlock = Set.fromList , "newpage" , "clearpage" , "pagebreak" + , "titleformat" ] isInlineCommand :: Text -> Bool diff --git a/test/command/3804.md b/test/command/3804.md new file mode 100644 index 000000000..c13c2ef42 --- /dev/null +++ b/test/command/3804.md @@ -0,0 +1,6 @@ +``` +% pandoc -t native +\titleformat{\chapter}[display]{\normalfont\large\bfseries}{第\thechapter{}章}{20pt}{\Huge} +^D +[RawBlock (Format "latex") "\\titleformat{\\chapter}[display]{\\normalfont\\large\\bfseries}{\31532\\thechapter{}\31456}{20pt}{\\Huge}"] +``` |