Skip to content

Commit

Permalink
added longtable feature as suggested jterrace#22
Browse files Browse the repository at this point in the history
  • Loading branch information
pellekrogholt committed Nov 19, 2013
1 parent 68736b0 commit 79a9d9b
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 9 deletions.
2 changes: 1 addition & 1 deletion ch-figs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -326,7 +326,7 @@ multiple pages as done in Table |nbsp| :num:`fig-big-table-vertical`?
:caption: A big table vertical
:alt: A big table vertical
:spec: >{\raggedright\arraybackslash}p{0.15\linewidth} p{0.17\linewidth} p{0.17\linewidth} p{0.17\linewidth} p{0.17\linewidth} p{0.17\linewidth}
:nofig:
:longtable:

+------------------+------------------+----------+----------+------------------+------------------+
|Cell 1 |Cell 2 |Cell 3 |Cell 4 |Cell 5 |Cell 6 |
Expand Down
23 changes: 15 additions & 8 deletions extensions/figtable.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,16 @@ def depart_figtable_node(self, node):
def visit_figtable_tex(self, node):
if node['nofig']:
self.body.append('\n\n\\begin{table}\n\\capstart\n\\begin{center}\n')
elif node['longtable']:
self.body.append('\n\n\\begin{longtable}\n\\capstart\n\\begin{center}\n')
else:
self.body.append('\n\n\\begin{figure}[tbp]\n\\capstart\n\\begin{center}\n')

def depart_figtable_tex(self, node):
if node['nofig']:
self.body.append('\n\\end{center}\n\\end{table}\n')
elif node['longtable']:
self.body.append('\n\\end{center}\n\\end{longtable}\n')
else:
self.body.append('\n\\end{center}\n\\end{figure}\n')

Expand All @@ -37,7 +41,7 @@ def depart_figtable_html(self, node):
self.body.append('</center></div>')

class FigTableDirective(Directive):

has_content = True
optional_arguments = 5
final_argument_whitespace = True
Expand All @@ -46,38 +50,41 @@ class FigTableDirective(Directive):
'spec': directives.unchanged,
'caption': directives.unchanged,
'alt': directives.unchanged,
'nofig': directives.flag}
'nofig': directives.flag,
'longtable': directives.flag}

def run(self):
label = self.options.get('label', None)
spec = self.options.get('spec', None)
caption = self.options.get('caption', None)
alt = self.options.get('alt', None)
nofig = 'nofig' in self.options

longtable = 'longtable' in self.options

figtable_node = figtable('', ids=[label] if label is not None else [])
figtable_node['nofig'] = nofig

figtable_node['longtable'] = longtable

if spec is not None:
table_spec_node = addnodes.tabular_col_spec()
table_spec_node['spec'] = spec
figtable_node.append(table_spec_node)

node = nodes.Element()
self.state.nested_parse(self.content, self.content_offset, node)
tablenode = node[0]
if alt is not None:
tablenode['alt'] = alt
figtable_node.append(tablenode)

if caption is not None:
caption_node = nodes.caption('', '', nodes.Text(caption))
figtable_node.append(caption_node)

if label is not None:
targetnode = nodes.target('', '', ids=[label])
figtable_node.append(targetnode)

return [figtable_node]

def setup(app):
Expand Down

0 comments on commit 79a9d9b

Please sign in to comment.