aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn MacFarlane <jgm@berkeley.edu>2021-05-11 07:52:05 -0600
committerJohn MacFarlane <jgm@berkeley.edu>2021-05-11 07:52:05 -0600
commit2bd5d0cafbe67fa723f49fd2d35d913594fdb935 (patch)
tree12c0bf80f9833e3295d5723e450371d28b2cb613
parentff7176de80726a5db4c4bc4c5a3296b2bcdab192 (diff)
downloadpandoc-2bd5d0cafbe67fa723f49fd2d35d913594fdb935.tar.gz
LaTeX writer: better handling of line breaks in simple tables.
Now we also handle the case where they're embedded in other elements, e.g. spans. Closes #7272.
-rw-r--r--src/Text/Pandoc/Writers/LaTeX/Table.hs4
-rw-r--r--test/command/7272.md24
2 files changed, 25 insertions, 3 deletions
diff --git a/src/Text/Pandoc/Writers/LaTeX/Table.hs b/src/Text/Pandoc/Writers/LaTeX/Table.hs
index 6f8386937..16f63314b 100644
--- a/src/Text/Pandoc/Writers/LaTeX/Table.hs
+++ b/src/Text/Pandoc/Writers/LaTeX/Table.hs
@@ -219,9 +219,7 @@ footRows (Ann.TableFoot _attr rows) = map headerRowCells rows
-- we need to go to some lengths to get line breaks working:
-- as LineBreak bs = \vtop{\hbox{\strut as}\hbox{\strut bs}}.
fixLineBreaks :: Block -> Block
-fixLineBreaks (Para ils) = Para $ fixLineBreaks' ils
-fixLineBreaks (Plain ils) = Plain $ fixLineBreaks' ils
-fixLineBreaks x = x
+fixLineBreaks = walk fixLineBreaks'
fixLineBreaks' :: [Inline] -> [Inline]
fixLineBreaks' ils = case splitBy (== LineBreak) ils of
diff --git a/test/command/7272.md b/test/command/7272.md
new file mode 100644
index 000000000..d3a3b2137
--- /dev/null
+++ b/test/command/7272.md
@@ -0,0 +1,24 @@
+```
+% pandoc -t latex -f html
+<table>
+ <tbody>
+ <tr>
+ <td>
+ <span>
+ text
+ <br />
+ text2
+ </span>
+ </td>
+ </tr>
+ </tbody>
+</table>
+^D
+\begin{longtable}[]{@{}
+ >{\raggedright\arraybackslash}p{(\columnwidth - 0\tabcolsep) * \real{1.00}}@{}}
+\toprule
+\endhead
+{\vtop{\hbox{\strut text}\hbox{\strut text2 }}} \\
+\bottomrule
+\end{longtable}
+```