Markdown: Ensure that expanded latex macros end with space if original did.

Closes #4442.
This commit is contained in:
John MacFarlane
2019-07-19 10:32:59 -07:00
parent 50885eabde
commit 339392bf54
2 changed files with 19 additions and 1 deletions
+10 -1
View File
@@ -226,7 +226,16 @@ rawLaTeXParser retokenize parser valParser = do
Right ((val, raw), st) -> do
updateState (updateMacros (sMacros st <>))
_ <- takeP (T.length (untokenize toks'))
return (val, T.unpack (untokenize raw))
let result = untokenize raw
-- ensure we end with space if input did, see #4442
let result' =
case reverse toks' of
(Tok _ (CtrlSeq _) t : _)
| " " `T.isSuffixOf` t
, not (" " `T.isSuffixOf` result)
-> result <> " "
_ -> result
return (val, T.unpack result')
applyMacros :: (PandocMonad m, HasMacros s, HasReaderOptions s)
=> String -> ParserT String s m String
+9
View File
@@ -0,0 +1,9 @@
```
% pandoc -f markdown -t latex
\newcommand{\myFruit}{Mango\xspace}
\myFruit is the king of fruits.
^D
\newcommand{\myFruit}{Mango\xspace}
Mango\xspace is the king of fruits.
```