From 8eed5b90d09a4a0c2592c92215fa96c69cf35234 Mon Sep 17 00:00:00 2001 From: John MacFarlane <jgm@berkeley.edu> Date: Mon, 21 Jun 2021 23:31:27 -0700 Subject: [PATCH] LaTeX writer: add strut at end of minipage if it contains... line breaks. Without them, the last line is shorter than it should be, at least in some cases. --- src/Text/Pandoc/Writers/LaTeX/Table.hs | 7 +++++-- test/command/7272.md | 2 +- test/tables/nordics.latex | 8 ++++---- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/Text/Pandoc/Writers/LaTeX/Table.hs b/src/Text/Pandoc/Writers/LaTeX/Table.hs index abdc26649..27a8a0257 100644 --- a/src/Text/Pandoc/Writers/LaTeX/Table.hs +++ b/src/Text/Pandoc/Writers/LaTeX/Table.hs @@ -264,10 +264,11 @@ cellToLaTeX blockListToLaTeX celltype annotatedCell = do _ -> False let hasLineBreak LineBreak = Any True hasLineBreak _ = Any False + let hasLineBreaks = getAny $ query hasLineBreak blocks result <- if not hasWidths || (celltype /= HeaderCell && all isPlainOrPara blocks - && not (getAny (query hasLineBreak blocks))) + && not hasLineBreaks) then blockListToLaTeX $ walk fixLineBreaks $ walk displayMathToInline blocks else do @@ -280,7 +281,9 @@ cellToLaTeX blockListToLaTeX celltype annotatedCell = do let halign = literal $ alignCommand align return $ "\\begin{minipage}" <> valign <> braces "\\linewidth" <> halign <> cr <> - cellContents <> cr <> + cellContents <> + (if hasLineBreaks then "\\strut" else mempty) + <> cr <> "\\end{minipage}" modify $ \st -> st{ stExternalNotes = externalNotes } when (rowspan /= RowSpan 1) $ diff --git a/test/command/7272.md b/test/command/7272.md index 3b9064c9c..d27b25143 100644 --- a/test/command/7272.md +++ b/test/command/7272.md @@ -20,7 +20,7 @@ \endhead \begin{minipage}[t]{\linewidth}\raggedright { text\\ -text2 } +text2 }\strut \end{minipage} \\ \bottomrule \end{longtable} diff --git a/test/tables/nordics.latex b/test/tables/nordics.latex index 1dcac7319..6f17a163e 100644 --- a/test/tables/nordics.latex +++ b/test/tables/nordics.latex @@ -11,10 +11,10 @@ Name Capital \end{minipage} & \begin{minipage}[b]{\linewidth}\centering Population\\ -(in 2018) +(in 2018)\strut \end{minipage} & \begin{minipage}[b]{\linewidth}\centering Area\\ -(in km\textsuperscript{2}) +(in km\textsuperscript{2})\strut \end{minipage} \\ \midrule \endfirsthead @@ -25,10 +25,10 @@ Name Capital \end{minipage} & \begin{minipage}[b]{\linewidth}\centering Population\\ -(in 2018) +(in 2018)\strut \end{minipage} & \begin{minipage}[b]{\linewidth}\centering Area\\ -(in km\textsuperscript{2}) +(in km\textsuperscript{2})\strut \end{minipage} \\ \midrule \endhead