aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn MacFarlane <jgm@berkeley.edu>2017-06-01 12:08:28 +0200
committerJohn MacFarlane <jgm@berkeley.edu>2017-06-01 12:08:28 +0200
commit9396f1fb6766cc4b08fb7b7c97ef2c02e9f0f700 (patch)
tree82486016ca569221513184e11a7f9f024090652a
parentaf6e8414c7d39d80831720d35a6d0d5f6e09bbd5 (diff)
downloadpandoc-9396f1fb6766cc4b08fb7b7c97ef2c02e9f0f700.tar.gz
LaTeX reader: handle some width specifiers on table columns.
Currently we only handle the form `0.9\linewidth`. Anything else would have to be converted to a percentage, using some kind arbitrary assumptions about line widths. See #3709.
-rw-r--r--src/Text/Pandoc/Readers/LaTeX.hs16
-rw-r--r--test/command/tabularx.md4
2 files changed, 15 insertions, 5 deletions
diff --git a/src/Text/Pandoc/Readers/LaTeX.hs b/src/Text/Pandoc/Readers/LaTeX.hs
index a69c17ebc..b65ae15ad 100644
--- a/src/Text/Pandoc/Readers/LaTeX.hs
+++ b/src/Text/Pandoc/Readers/LaTeX.hs
@@ -1451,14 +1451,24 @@ parseAligns = try $ do
<|> xAlign <|> mAlign <|> bAlign
let alignPrefix = char '>' >> braced
let alignSuffix = char '<' >> braced
+ let colWidth = try $ do
+ char '{'
+ ds <- many1 (oneOf "0123456789.")
+ spaces
+ string "\\linewidth"
+ char '}'
+ case safeRead ds of
+ Just w -> return w
+ Nothing -> return 0.0
let alignSpec = do
spaces
pref <- option "" alignPrefix
spaces
al <- alignChar
- let parseWidth :: String -> Double
- parseWidth _ = 0.00 -- TODO actually parse the width
- width <- parseWidth <$> option "" braced
+ width <- colWidth <|> option 0.0 (do s <- braced
+ pos <- getPosition
+ report $ SkippedContent s pos
+ return 0.0)
spaces
suff <- option "" alignSuffix
return (al, width, (pref, suff))
diff --git a/test/command/tabularx.md b/test/command/tabularx.md
index 9e6069542..bf7670e9c 100644
--- a/test/command/tabularx.md
+++ b/test/command/tabularx.md
@@ -57,7 +57,7 @@
\hline
\end{tabularx}
^D
-[Table [] [AlignLeft,AlignCenter,AlignLeft] [0.0,0.0,0.0]
+[Table [] [AlignLeft,AlignCenter,AlignLeft] [0.0,0.0,0.25]
[[Plain [Str "Column",Space,Str "Heading",Space,Str "1"]]
,[Plain [Str "Column",Space,Str "Heading",Space,Str "2"]]
,[Plain [Str "Column",Space,Str "Heading",Space,Str "3"]]]
@@ -94,7 +94,7 @@
\hline
\end{tabularx}
^D
-[Table [] [AlignLeft,AlignCenter,AlignLeft] [0.0,0.0,0.0]
+[Table [] [AlignLeft,AlignCenter,AlignLeft] [0.25,0.0,0.25]
[[Plain [Str "Column",Space,Str "Heading",Space,Str "1"]]
,[Plain [Str "Column",Space,Str "Heading",Space,Str "2"]]
,[Plain [Str "Column",Space,Str "Heading",Space,Str "3"]]]