From 7d2f674ff20778fdeb72f33635213700c2b72aaa Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sun, 16 Nov 2008 17:35:22 +0100 Subject: [PATCH] Support table captions in LaTeX output. --- CHANGES | 2 ++ sphinx/latexwriter.py | 13 +++++++++++-- sphinx/texinputs/sphinx.sty | 1 + 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/CHANGES b/CHANGES index c236960a6a..9888e44ffd 100644 --- a/CHANGES +++ b/CHANGES @@ -159,6 +159,8 @@ New features added Bugs fixed ---------- +* Support table captions in LaTeX output. + * Work around a bug in Jinja that caused "" to be emitted in HTML output. diff --git a/sphinx/latexwriter.py b/sphinx/latexwriter.py index 7bc8375b7a..375627f4f4 100644 --- a/sphinx/latexwriter.py +++ b/sphinx/latexwriter.py @@ -102,6 +102,7 @@ class Table(object): self.colspec = None self.had_head = False self.has_verbatim = False + self.caption = None class Desc(object): @@ -357,9 +358,12 @@ class LaTeXTranslator(nodes.NodeVisitor): elif isinstance(parent, nodes.Admonition): self.body.append('{') self.context.append('}\n') + elif isinstance(parent, nodes.table): + self.table.caption = self.encode(node.astext()) + raise nodes.SkipNode else: - self.builder.warn('encountered title node not in section, topic, admonition' - ' or sidebar') + self.builder.warn('encountered title node not in section, topic, ' + 'table, admonition or sidebar') self.body.append('\\textbf{') self.context.append('}\n') self.in_title = 1 @@ -544,6 +548,9 @@ class LaTeXTranslator(nodes.NodeVisitor): self.body = self.tablebody def depart_table(self, node): self.body = self._body + if self.table.caption is not None: + self.body.append('\n\\begin{threeparttable}\n' + '\\caption{%s}\n' % self.table.caption) if self.table.has_verbatim: self.body.append('\n\\begin{tabular}') else: @@ -562,6 +569,8 @@ class LaTeXTranslator(nodes.NodeVisitor): self.body.append('\\end{tabular}\n\n') else: self.body.append('\\end{tabulary}\n\n') + if self.table.caption is not None: + self.body.append('\\end{threeparttable}\n\n') self.table = None self.tablebody = None diff --git a/sphinx/texinputs/sphinx.sty b/sphinx/texinputs/sphinx.sty index c0ea9d6eb3..e5ed4d79bb 100644 --- a/sphinx/texinputs/sphinx.sty +++ b/sphinx/texinputs/sphinx.sty @@ -18,6 +18,7 @@ \RequirePackage{framed} \RequirePackage{color} \RequirePackage{fancyvrb} +\RequirePackage{threeparttable} % Redefine these colors to your liking in the preamble. \definecolor{TitleColor}{rgb}{0.126,0.263,0.361}