summaryrefslogtreecommitdiff
path: root/src/Text/Pandoc/Readers
diff options
context:
space:
mode:
Diffstat (limited to 'src/Text/Pandoc/Readers')
-rw-r--r--src/Text/Pandoc/Readers/LaTeX.hs16
1 files changed, 13 insertions, 3 deletions
diff --git a/src/Text/Pandoc/Readers/LaTeX.hs b/src/Text/Pandoc/Readers/LaTeX.hs
index 708980f1d..28c8fd736 100644
--- a/src/Text/Pandoc/Readers/LaTeX.hs
+++ b/src/Text/Pandoc/Readers/LaTeX.hs
@@ -2406,8 +2406,7 @@ parseAligns = try $ do
case safeRead ds of
Just w -> return w
Nothing -> return 0.0
- let alignSpec = try $ do
- spaces
+ let alignSpec = do
pref <- option [] alignPrefix
spaces
al <- alignChar
@@ -2418,10 +2417,21 @@ parseAligns = try $ do
spaces
suff <- option [] alignSuffix
return (al, width, (pref, suff))
+ let starAlign = do -- *{2}{r} == rr, we just expand like a macro
+ symbol '*'
+ spaces
+ ds <- trim . toksToString <$> braced
+ spaces
+ spec <- braced
+ case safeRead ds of
+ Just n -> do
+ getInput >>= setInput . (mconcat (replicate n spec) ++)
+ Nothing -> fail $ "Could not parse " ++ ds ++ " as number"
bgroup
spaces
maybeBar
- aligns' <- many (alignSpec <* maybeBar)
+ aligns' <- many $ try $ spaces >> optional starAlign >>
+ (alignSpec <* maybeBar)
spaces
egroup
spaces