LaTeX writer: Put table captions above tables.

The standard seems to be captions above tables.  (See
http://tex.stackexchange.com/questions/3243/why-should-a-table-caption-be-placed-above-the-table)
This commit is contained in:
John MacFarlane 2014-07-10 13:06:41 -07:00
parent 7d6da118d3
commit 66378062b6
2 changed files with 5 additions and 9 deletions

View file

@ -471,19 +471,18 @@ blockToLaTeX (Table caption aligns widths heads rows) = do
captionText <- inlineListToLaTeX caption
let capt = if isEmpty captionText
then empty
else text "\\addlinespace"
$$ text "\\caption" <> braces captionText
else text "\\caption" <> braces captionText <> "\\\\"
rows' <- mapM (tableRowToLaTeX False aligns widths) rows
let colDescriptors = text $ concat $ map toColDescriptor aligns
modify $ \s -> s{ stTable = True }
return $ "\\begin{longtable}[c]" <>
braces ("@{}" <> colDescriptors <> "@{}")
-- the @{} removes extra space at beginning and end
$$ capt
$$ "\\toprule\\addlinespace"
$$ headers
$$ vcat rows'
$$ "\\bottomrule"
$$ capt
$$ "\\end{longtable}"
toColDescriptor :: Alignment -> String

View file

@ -1,6 +1,7 @@
Simple table with caption:
\begin{longtable}[c]{@{}rlcl@{}}
\caption{Demonstration of simple table syntax.}\\
\toprule\addlinespace
Right & Left & Center & Default
\\\addlinespace
@ -12,8 +13,6 @@ Right & Left & Center & Default
1 & 1 & 1 & 1
\\\addlinespace
\bottomrule
\addlinespace
\caption{Demonstration of simple table syntax.}
\end{longtable}
Simple table without caption:
@ -35,6 +34,7 @@ Right & Left & Center & Default
Simple table indented two spaces:
\begin{longtable}[c]{@{}rlcl@{}}
\caption{Demonstration of simple table syntax.}\\
\toprule\addlinespace
Right & Left & Center & Default
\\\addlinespace
@ -46,13 +46,12 @@ Right & Left & Center & Default
1 & 1 & 1 & 1
\\\addlinespace
\bottomrule
\addlinespace
\caption{Demonstration of simple table syntax.}
\end{longtable}
Multiline table with caption:
\begin{longtable}[c]{@{}clrl@{}}
\caption{Here's the caption. It may span multiple lines.}\\
\toprule\addlinespace
\begin{minipage}[b]{0.13\columnwidth}\centering
Centered Header
@ -86,8 +85,6 @@ Here's another one. Note the blank line between rows.
\end{minipage}
\\\addlinespace
\bottomrule
\addlinespace
\caption{Here's the caption. It may span multiple lines.}
\end{longtable}
Multiline table without caption: