LaTeX reader: allow non-empty colsep in tables

The `tabular` environment allows non-empty column separators
with the "@{...}" syntax. Previously, pandoc would fail to
parse tables if a non-empty colsep was present. With this
commit, these separators are still ignored, but the table gets
parsed. A test case is included.
This commit is contained in:
Mathias Schenner 2015-03-08 15:47:39 +01:00
parent 1e3ef0e36f
commit 12bf0ff3e5
2 changed files with 6 additions and 1 deletions

View file

@ -1275,7 +1275,7 @@ complexNatbibCitation mode = try $ do
parseAligns :: LP [Alignment]
parseAligns = try $ do
char '{'
let maybeBar = skipMany $ sp <|> () <$ char '|' <|> () <$ try (string "@{}")
let maybeBar = skipMany $ sp <|> () <$ char '|' <|> () <$ (char '@' >> braced)
maybeBar
let cAlign = AlignCenter <$ char 'c'
let lAlign = AlignLeft <$ char 'l'

View file

@ -91,6 +91,11 @@ tests = [ testGroup "basic"
, "Table with empty column separators" =:
"\\begin{tabular}{@{}r@{}l}One & Two\\\\ \\end{tabular}" =?>
simpleTable' [AlignRight,AlignLeft] [[plain "One", plain "Two"]]
, "Table with custom column separators" =:
unlines [ "\\begin{tabular}{@{($\\to$)}r@{\\hspace{2cm}}l}"
, "One&Two\\\\"
, "\\end{tabular}" ] =?>
simpleTable' [AlignRight,AlignLeft] [[plain "One", plain "Two"]]
, "Table with vertical alignment argument" =:
"\\begin{tabular}[t]{r|r}One & Two\\\\ \\end{tabular}" =?>
simpleTable' [AlignRight,AlignRight] [[plain "One", plain "Two"]]