git.iko.soy/typeable/pandoc
on master help sign in
Properly gobble spaces after \\.

Closes #2007.

commit3b962a52776b29ddb16bcc690e9d70e78bba6baa authorJohn MacFarlane <jgm@berkeley.edu> dateSat 14 Mar 2015, 23:12 (12 years ago) parent348b383
1 file changed+12−10
src/Text/Pandoc/Readers/LaTeX.hs+12−10
src/Text/Pandoc/Readers/LaTeX.hs+12−10
@@ -343,7 +343,7 @@ setCaption :: LP Blocks
343343setCaption = do
344344 ils <- tok
345345 mblabel <- option Nothing $
346− try $ spaces >> controlSeq "label" >> (Just <$> tok)
346+ try $ spaces' >> controlSeq "label" >> (Just <$> tok)
347347 let ils' = case mblabel of
348348 Just lab -> ils <> spanWith
349349 ("",[],[("data-label", stringify lab)]) mempty
@@ -371,7 +371,7 @@ section (ident, classes, kvs) lvl = do
371371 let lvl' = if hasChapters then lvl + 1 else lvl
372372 skipopts
373373 contents <- grouped inline
374− lab <- option ident $ try (spaces >> controlSeq "label" >> spaces >> braced)
374+ lab <- option ident $ try (spaces' >> controlSeq "label" >> spaces' >> braced)
375375 attr' <- registerHeader (lab, classes, kvs) contents
376376 return $ headerWith attr' lvl' contents
377377
@@ -497,7 +497,7 @@ inlineCommands = M.fromList $
497497 , ("v", option (str "v") $ try $ tok >>= accent hacek)
498498 , ("u", option (str "u") $ try $ tok >>= accent breve)
499499 , ("i", lit "i")
500− , ("\\", linebreak <$ (optional (bracketed inline) *> optional sp))
500+ , ("\\", linebreak <$ (optional (bracketed inline) *> spaces'))
501501 , (",", pure mempty)
502502 , ("@", pure mempty)
503503 , (" ", lit "\160")
@@ -1291,13 +1291,13 @@ parseAligns = try $ do
12911291 return aligns'
12921292
12931293hline :: LP ()
1294−hline = () <$ (try $ spaces >> controlSeq "hline")
1294+hline = () <$ (try $ spaces' *> controlSeq "hline" <* spaces')
12951295
12961296lbreak :: LP ()
1297−lbreak = () <$ (try $ spaces *> controlSeq "\\")
1297+lbreak = () <$ (try $ spaces' *> controlSeq "\\" <* spaces')
12981298
12991299amp :: LP ()
1300−amp = () <$ (try $ spaces *> char '&')
1300+amp = () <$ (try $ spaces' *> char '&')
13011301
13021302parseTableRow :: Int -- ^ number of columns
13031303 -> LP [Blocks]
@@ -1310,20 +1310,22 @@ parseTableRow cols = try $ do
13101310 guard $ cells' /= [mempty]
13111311 -- note: a & b in a three-column table leaves an empty 3rd cell:
13121312 let cells'' = cells' ++ replicate (cols - numcells) mempty
1313− spaces
1313+ spaces'
13141314 return cells''
13151315
1316+spaces' :: LP ()
1317+spaces' = spaces *> skipMany (comment *> spaces)
1318+
13161319simpTable :: Bool -> LP Blocks
13171320simpTable hasWidthParameter = try $ do
1318− when hasWidthParameter $ () <$ (spaces >> tok)
1321+ when hasWidthParameter $ () <$ (spaces' >> tok)
13191322 skipopts
13201323 aligns <- parseAligns
13211324 let cols = length aligns
13221325 optional hline
13231326 header' <- option [] $ try (parseTableRow cols <* lbreak <* hline)
13241327 rows <- sepEndBy (parseTableRow cols) (lbreak <* optional hline)
1325− spaces
1326− skipMany (comment *> spaces)
1328+ spaces'
13271329 let header'' = if null header'
13281330 then replicate cols mempty
13291331 else header'