summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlbert Krewinkel <albert@zeitkraut.de>2023-05-04 11:30:27 +0200
committerAlbert Krewinkel <albert@zeitkraut.de>2023-05-04 11:36:10 +0200
commit05a23af76d30effa7e40e0346479fb57ed4804d3 (patch)
treed867990d473c9e29fb785f9942fd9a41feb12690
parent52196617c819eb07eb1e1a531e2e2f1eb885127e (diff)
LaTeX reader: ignore args to column type in `\multicolumn`.
The `\multicolumn` command takes the column type as the second argument. Types like `p` take an additional argument, which is now ignored and no longer causes the table parser to fail. Fixes: #8789
-rw-r--r--src/Text/Pandoc/Readers/LaTeX/Table.hs2
-rw-r--r--test/command/8789.md42
2 files changed, 43 insertions, 1 deletions
diff --git a/src/Text/Pandoc/Readers/LaTeX/Table.hs b/src/Text/Pandoc/Readers/LaTeX/Table.hs
index def516d6b..e6e3fc436 100644
--- a/src/Text/Pandoc/Readers/LaTeX/Table.hs
+++ b/src/Text/Pandoc/Readers/LaTeX/Table.hs
@@ -189,7 +189,7 @@ cellAlignment :: PandocMonad m => LP m Alignment
cellAlignment = skipMany (symbol '|') *> alignment <* skipMany (symbol '|')
where
alignment = do
- c <- untoken <$> singleChar
+ c <- untoken <$> singleChar <* optional braced -- ignore args
return $ case c of
"l" -> AlignLeft
"r" -> AlignRight
diff --git a/test/command/8789.md b/test/command/8789.md
new file mode 100644
index 000000000..6f6daf94f
--- /dev/null
+++ b/test/command/8789.md
@@ -0,0 +1,42 @@
+# `\multicolumn` with column-type `p`
+
+```
+% pandoc --from=latex --to=html
+\begin{tabular}{rrll}
+ \toprule
+ \textbf{First} & \textbf{Second} & \textbf{Third} & \textbf{Fourth} \\ \toprule
+ 160 & 1 & test & test \\\midrule
+ 160 & 2 & \multicolumn{2}{p{12cm}}{\textit{This is a test:}
+ \begin{equation*}
+ a^2+b^2 = c^2
+ \end{equation*}
+ }\\
+\bottomrule
+\end{tabular}
+^D
+<table>
+<thead>
+<tr class="header">
+<th style="text-align: right;"><strong>First</strong></th>
+<th style="text-align: right;"><strong>Second</strong></th>
+<th style="text-align: left;"><strong>Third</strong></th>
+<th style="text-align: left;"><strong>Fourth</strong></th>
+</tr>
+</thead>
+<tbody>
+<tr class="odd">
+<td style="text-align: right;">160</td>
+<td style="text-align: right;">1</td>
+<td style="text-align: left;">test</td>
+<td style="text-align: left;">test</td>
+</tr>
+<tr class="even">
+<td style="text-align: right;">160</td>
+<td style="text-align: right;">2</td>
+<td colspan="2" style="text-align: left;"><em>This is a test:</em> <span
+class="math display"><em>a</em><sup>2</sup> + <em>b</em><sup>2</sup> = <em>c</em><sup>2</sup></span></td>
+</tr>
+</tbody>
+</table>
+
+```