aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJose Luis Duran <jlduran@users.noreply.github.com>2014-08-29 13:54:08 +0000
committerJose Luis Duran <jlduran@users.noreply.github.com>2014-08-29 13:54:08 +0000
commit4c684561ee0665b014e887ae559b7020e4e9f2d3 (patch)
tree899c1059f79c782f2f8290f12a5d9a321e364009
parentf1d330b7b5eba55562fdfc6059619cee695bd1e8 (diff)
downloadpandoc-4c684561ee0665b014e887ae559b7020e4e9f2d3.tar.gz
LaTeX writer: Add `\strut` to fix multiline tables
See: http://tex.stackexchange.com/questions/34971
-rw-r--r--src/Text/Pandoc/Writers/LaTeX.hs3
-rw-r--r--tests/tables.latex90
2 files changed, 47 insertions, 46 deletions
diff --git a/src/Text/Pandoc/Writers/LaTeX.hs b/src/Text/Pandoc/Writers/LaTeX.hs
index 6c17401d0..b2db7377d 100644
--- a/src/Text/Pandoc/Writers/LaTeX.hs
+++ b/src/Text/Pandoc/Writers/LaTeX.hs
@@ -556,7 +556,8 @@ tableCellToLaTeX header (width, align, blocks) = do
AlignDefault -> "\\raggedright"
return $ ("\\begin{minipage}" <> valign <>
braces (text (printf "%.2f\\columnwidth" width)) <>
- (halign <> cr <> cellContents <> cr) <> "\\end{minipage}")
+ (halign <> "\\strut" <> cr <> cellContents <> cr) <>
+ "\\strut\\end{minipage}")
$$ case notes of
[] -> empty
ns -> (case length ns of
diff --git a/tests/tables.latex b/tests/tables.latex
index 1349960a3..850629499 100644
--- a/tests/tables.latex
+++ b/tests/tables.latex
@@ -52,47 +52,47 @@ Multiline table with caption:
\begin{longtable}[c]{@{}clrl@{}}
\caption{Here's the caption. It may span multiple lines.}\tabularnewline
\toprule
-\begin{minipage}[b]{0.13\columnwidth}\centering
+\begin{minipage}[b]{0.13\columnwidth}\centering\strut
Centered Header
-\end{minipage} & \begin{minipage}[b]{0.12\columnwidth}\raggedright
+\strut\end{minipage} & \begin{minipage}[b]{0.12\columnwidth}\raggedright\strut
Left Aligned
-\end{minipage} & \begin{minipage}[b]{0.14\columnwidth}\raggedleft
+\strut\end{minipage} & \begin{minipage}[b]{0.14\columnwidth}\raggedleft\strut
Right Aligned
-\end{minipage} & \begin{minipage}[b]{0.30\columnwidth}\raggedright
+\strut\end{minipage} & \begin{minipage}[b]{0.30\columnwidth}\raggedright\strut
Default aligned
-\end{minipage}\tabularnewline
+\strut\end{minipage}\tabularnewline
\midrule
\endfirsthead
\toprule
-\begin{minipage}[b]{0.13\columnwidth}\centering
+\begin{minipage}[b]{0.13\columnwidth}\centering\strut
Centered Header
-\end{minipage} & \begin{minipage}[b]{0.12\columnwidth}\raggedright
+\strut\end{minipage} & \begin{minipage}[b]{0.12\columnwidth}\raggedright\strut
Left Aligned
-\end{minipage} & \begin{minipage}[b]{0.14\columnwidth}\raggedleft
+\strut\end{minipage} & \begin{minipage}[b]{0.14\columnwidth}\raggedleft\strut
Right Aligned
-\end{minipage} & \begin{minipage}[b]{0.30\columnwidth}\raggedright
+\strut\end{minipage} & \begin{minipage}[b]{0.30\columnwidth}\raggedright\strut
Default aligned
-\end{minipage}\tabularnewline
+\strut\end{minipage}\tabularnewline
\midrule
\endhead
-\begin{minipage}[t]{0.13\columnwidth}\centering
+\begin{minipage}[t]{0.13\columnwidth}\centering\strut
First
-\end{minipage} & \begin{minipage}[t]{0.12\columnwidth}\raggedright
+\strut\end{minipage} & \begin{minipage}[t]{0.12\columnwidth}\raggedright\strut
row
-\end{minipage} & \begin{minipage}[t]{0.14\columnwidth}\raggedleft
+\strut\end{minipage} & \begin{minipage}[t]{0.14\columnwidth}\raggedleft\strut
12.0
-\end{minipage} & \begin{minipage}[t]{0.30\columnwidth}\raggedright
+\strut\end{minipage} & \begin{minipage}[t]{0.30\columnwidth}\raggedright\strut
Example of a row that spans multiple lines.
-\end{minipage}\tabularnewline
-\begin{minipage}[t]{0.13\columnwidth}\centering
+\strut\end{minipage}\tabularnewline
+\begin{minipage}[t]{0.13\columnwidth}\centering\strut
Second
-\end{minipage} & \begin{minipage}[t]{0.12\columnwidth}\raggedright
+\strut\end{minipage} & \begin{minipage}[t]{0.12\columnwidth}\raggedright\strut
row
-\end{minipage} & \begin{minipage}[t]{0.14\columnwidth}\raggedleft
+\strut\end{minipage} & \begin{minipage}[t]{0.14\columnwidth}\raggedleft\strut
5.0
-\end{minipage} & \begin{minipage}[t]{0.30\columnwidth}\raggedright
+\strut\end{minipage} & \begin{minipage}[t]{0.30\columnwidth}\raggedright\strut
Here's another one. Note the blank line between rows.
-\end{minipage}\tabularnewline
+\strut\end{minipage}\tabularnewline
\bottomrule
\end{longtable}
@@ -100,35 +100,35 @@ Multiline table without caption:
\begin{longtable}[c]{@{}clrl@{}}
\toprule
-\begin{minipage}[b]{0.13\columnwidth}\centering
+\begin{minipage}[b]{0.13\columnwidth}\centering\strut
Centered Header
-\end{minipage} & \begin{minipage}[b]{0.12\columnwidth}\raggedright
+\strut\end{minipage} & \begin{minipage}[b]{0.12\columnwidth}\raggedright\strut
Left Aligned
-\end{minipage} & \begin{minipage}[b]{0.14\columnwidth}\raggedleft
+\strut\end{minipage} & \begin{minipage}[b]{0.14\columnwidth}\raggedleft\strut
Right Aligned
-\end{minipage} & \begin{minipage}[b]{0.30\columnwidth}\raggedright
+\strut\end{minipage} & \begin{minipage}[b]{0.30\columnwidth}\raggedright\strut
Default aligned
-\end{minipage}\tabularnewline
+\strut\end{minipage}\tabularnewline
\midrule
\endhead
-\begin{minipage}[t]{0.13\columnwidth}\centering
+\begin{minipage}[t]{0.13\columnwidth}\centering\strut
First
-\end{minipage} & \begin{minipage}[t]{0.12\columnwidth}\raggedright
+\strut\end{minipage} & \begin{minipage}[t]{0.12\columnwidth}\raggedright\strut
row
-\end{minipage} & \begin{minipage}[t]{0.14\columnwidth}\raggedleft
+\strut\end{minipage} & \begin{minipage}[t]{0.14\columnwidth}\raggedleft\strut
12.0
-\end{minipage} & \begin{minipage}[t]{0.30\columnwidth}\raggedright
+\strut\end{minipage} & \begin{minipage}[t]{0.30\columnwidth}\raggedright\strut
Example of a row that spans multiple lines.
-\end{minipage}\tabularnewline
-\begin{minipage}[t]{0.13\columnwidth}\centering
+\strut\end{minipage}\tabularnewline
+\begin{minipage}[t]{0.13\columnwidth}\centering\strut
Second
-\end{minipage} & \begin{minipage}[t]{0.12\columnwidth}\raggedright
+\strut\end{minipage} & \begin{minipage}[t]{0.12\columnwidth}\raggedright\strut
row
-\end{minipage} & \begin{minipage}[t]{0.14\columnwidth}\raggedleft
+\strut\end{minipage} & \begin{minipage}[t]{0.14\columnwidth}\raggedleft\strut
5.0
-\end{minipage} & \begin{minipage}[t]{0.30\columnwidth}\raggedright
+\strut\end{minipage} & \begin{minipage}[t]{0.30\columnwidth}\raggedright\strut
Here's another one. Note the blank line between rows.
-\end{minipage}\tabularnewline
+\strut\end{minipage}\tabularnewline
\bottomrule
\end{longtable}
@@ -146,23 +146,23 @@ Multiline table without column headers:
\begin{longtable}[c]{@{}clrl@{}}
\toprule
-\begin{minipage}[t]{0.13\columnwidth}\centering
+\begin{minipage}[t]{0.13\columnwidth}\centering\strut
First
-\end{minipage} & \begin{minipage}[t]{0.12\columnwidth}\raggedright
+\strut\end{minipage} & \begin{minipage}[t]{0.12\columnwidth}\raggedright\strut
row
-\end{minipage} & \begin{minipage}[t]{0.14\columnwidth}\raggedleft
+\strut\end{minipage} & \begin{minipage}[t]{0.14\columnwidth}\raggedleft\strut
12.0
-\end{minipage} & \begin{minipage}[t]{0.30\columnwidth}\raggedright
+\strut\end{minipage} & \begin{minipage}[t]{0.30\columnwidth}\raggedright\strut
Example of a row that spans multiple lines.
-\end{minipage}\tabularnewline
-\begin{minipage}[t]{0.13\columnwidth}\centering
+\strut\end{minipage}\tabularnewline
+\begin{minipage}[t]{0.13\columnwidth}\centering\strut
Second
-\end{minipage} & \begin{minipage}[t]{0.12\columnwidth}\raggedright
+\strut\end{minipage} & \begin{minipage}[t]{0.12\columnwidth}\raggedright\strut
row
-\end{minipage} & \begin{minipage}[t]{0.14\columnwidth}\raggedleft
+\strut\end{minipage} & \begin{minipage}[t]{0.14\columnwidth}\raggedleft\strut
5.0
-\end{minipage} & \begin{minipage}[t]{0.30\columnwidth}\raggedright
+\strut\end{minipage} & \begin{minipage}[t]{0.30\columnwidth}\raggedright\strut
Here's another one. Note the blank line between rows.
-\end{minipage}\tabularnewline
+\strut\end{minipage}\tabularnewline
\bottomrule
\end{longtable}