From f4a452f89174828fea77614a4b6a067fc4675ba5 Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Wed, 22 Feb 2017 21:15:25 +0100 Subject: When parsing raw LaTeX commands, include trailing space. Otherwise things like `\noindent foo` break and turn into `\noindentfoo`. Affects `-f latex+raw_tex` and `-f markdown` (and other formats that allow `raw_tex`). Closes #1773. --- src/Text/Pandoc/Readers/LaTeX.hs | 4 ++-- test/command/1773.md | 6 ++++++ test/latex-reader.native | 2 +- 3 files changed, 9 insertions(+), 3 deletions(-) create mode 100644 test/command/1773.md diff --git a/src/Text/Pandoc/Readers/LaTeX.hs b/src/Text/Pandoc/Readers/LaTeX.hs index 9f9a79535..fbbdc1873 100644 --- a/src/Text/Pandoc/Readers/LaTeX.hs +++ b/src/Text/Pandoc/Readers/LaTeX.hs @@ -435,7 +435,7 @@ section (ident, classes, kvs) lvl = do inlineCommand :: PandocMonad m => LP m Inlines inlineCommand = try $ do - name <- anyControlSeq + (name, raw') <- withRaw anyControlSeq guard $ name /= "begin" && name /= "end" guard $ not $ isBlockCommand name exts <- getOption readerExtensions @@ -444,7 +444,7 @@ inlineCommand = try $ do let raw = do rawargs <- withRaw (skipangles *> skipopts *> option "" dimenarg *> many braced) - let rawcommand = '\\' : name ++ star ++ snd rawargs + let rawcommand = raw' ++ star ++ snd rawargs transformed <- applyMacros' rawcommand if transformed /= rawcommand then parseFromString inlines transformed diff --git a/test/command/1773.md b/test/command/1773.md new file mode 100644 index 000000000..b93267287 --- /dev/null +++ b/test/command/1773.md @@ -0,0 +1,6 @@ +``` +% pandoc -f latex+raw_tex -t native +\noindent hi +^D +[Para [RawInline (Format "latex") "\\noindent ",Str "hi"]] +``` diff --git a/test/latex-reader.native b/test/latex-reader.native index d1ff4c0a4..f37f1b2ca 100644 --- a/test/latex-reader.native +++ b/test/latex-reader.native @@ -261,7 +261,7 @@ Pandoc (Meta {unMeta = fromList [("author",MetaList [MetaInlines [Str "John",Spa ,Header 1 ("latex",[],[]) [Str "LaTeX"] ,BulletList [[Para [Cite [Citation {citationId = "smith.1899", citationPrefix = [], citationSuffix = [Str "22-23"], citationMode = NormalCitation, citationNoteNum = 0, citationHash = 0}] [RawInline (Format "latex") "\\cite[22-23]{smith.1899}"]]] - ,[Para [RawInline (Format "latex") "\\doublespacing"]] + ,[Para [RawInline (Format "latex") "\\doublespacing\n"]] ,[Para [Math InlineMath "2+2=4"]] ,[Para [Math InlineMath "x \\in y"]] ,[Para [Math InlineMath "\\alpha \\wedge \\omega"]] -- cgit v1.2.3