summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn MacFarlane <jgm@berkeley.edu>2017-02-22 21:15:25 +0100
committerJohn MacFarlane <jgm@berkeley.edu>2017-02-22 21:15:25 +0100
commitf4a452f89174828fea77614a4b6a067fc4675ba5 (patch)
tree948773b229c2eb609a8341d9fb42d59127f92bfb
parente51b32a475ac9f1633ac996121df7a6c10e05283 (diff)
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.
-rw-r--r--src/Text/Pandoc/Readers/LaTeX.hs4
-rw-r--r--test/command/1773.md6
-rw-r--r--test/latex-reader.native2
3 files changed, 9 insertions, 3 deletions
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"]]