git.iko.soy/typeable/pandoc
on master help sign in
LaTeX reader: handle some width specifiers on table columns.
9396f1fJohn MacFarlane
src/Text/Pandoc/Readers/LaTeX.hs+13−3
@@ -1451,14 +1451,24 @@ parseAligns = try $ do
1451 <|> xAlign <|> mAlign <|> bAlign
1451 <|> xAlign <|> mAlign <|> bAlign
1452 let alignPrefix = char '>' >> braced
1452 let alignPrefix = char '>' >> braced
1453 let alignSuffix = char '<' >> braced
1453 let alignSuffix = char '<' >> braced
1454+ let colWidth = try $ do
1455+ char '{'
1456+ ds <- many1 (oneOf "0123456789.")
1457+ spaces
1458+ string "\\linewidth"
1459+ char '}'
1460+ case safeRead ds of
1461+ Just w -> return w
1462+ Nothing -> return 0.0
1454 let alignSpec = do
1463 let alignSpec = do
1455 spaces
1464 spaces
1456 pref <- option "" alignPrefix
1465 pref <- option "" alignPrefix
1457 spaces
1466 spaces
1458 al <- alignChar
1467 al <- alignChar
1459− let parseWidth :: String -> Double
1460− parseWidth _ = 0.00 -- TODO actually parse the width
1461− width <- parseWidth <$> option "" braced
1468+ width <- colWidth <|> option 0.0 (do s <- braced
1469+ pos <- getPosition
1470+ report $ SkippedContent s pos
1471+ return 0.0)
1462 spaces
1472 spaces
1463 suff <- option "" alignSuffix
1473 suff <- option "" alignSuffix
1464 return (al, width, (pref, suff))
1474 return (al, width, (pref, suff))
test/command/tabularx.md+2−2
@@ -57,7 +57,7 @@
57\hline
57\hline
58\end{tabularx}
58\end{tabularx}
59^D
59^D
60−[Table [] [AlignLeft,AlignCenter,AlignLeft] [0.0,0.0,0.0]
60+[Table [] [AlignLeft,AlignCenter,AlignLeft] [0.0,0.0,0.25]
61 [[Plain [Str "Column",Space,Str "Heading",Space,Str "1"]]
61 [[Plain [Str "Column",Space,Str "Heading",Space,Str "1"]]
62 ,[Plain [Str "Column",Space,Str "Heading",Space,Str "2"]]
62 ,[Plain [Str "Column",Space,Str "Heading",Space,Str "2"]]
63 ,[Plain [Str "Column",Space,Str "Heading",Space,Str "3"]]]
63 ,[Plain [Str "Column",Space,Str "Heading",Space,Str "3"]]]
@@ -94,7 +94,7 @@
94\hline
94\hline
95\end{tabularx}
95\end{tabularx}
96^D
96^D
97−[Table [] [AlignLeft,AlignCenter,AlignLeft] [0.0,0.0,0.0]
97+[Table [] [AlignLeft,AlignCenter,AlignLeft] [0.25,0.0,0.25]
98 [[Plain [Str "Column",Space,Str "Heading",Space,Str "1"]]
98 [[Plain [Str "Column",Space,Str "Heading",Space,Str "1"]]
99 ,[Plain [Str "Column",Space,Str "Heading",Space,Str "2"]]
99 ,[Plain [Str "Column",Space,Str "Heading",Space,Str "2"]]
100 ,[Plain [Str "Column",Space,Str "Heading",Space,Str "3"]]]
100 ,[Plain [Str "Column",Space,Str "Heading",Space,Str "3"]]]