From 07e52ff22dc63ceb110f25e9ea40bad227bcf260 Mon Sep 17 00:00:00 2001 From: tk0miya Date: Wed, 24 Sep 2014 00:54:27 +0900 Subject: [PATCH] Fix @caption should be placed to inside of @float element in texinfo --- sphinx/writers/texinfo.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/sphinx/writers/texinfo.py b/sphinx/writers/texinfo.py index a1051eb6a..61d2e62f2 100644 --- a/sphinx/writers/texinfo.py +++ b/sphinx/writers/texinfo.py @@ -1054,9 +1054,11 @@ class TexinfoTranslator(nodes.NodeVisitor): raise nodes.SkipNode def visit_container(self, node): - pass + if node.get('literal_block'): + self.body.append('\n\n@float LiteralBlock\n') def depart_container(self, node): - pass + if node.get('literal_block'): + self.body.append('\n@end float\n\n') def visit_decoration(self, node): pass @@ -1095,13 +1097,15 @@ class TexinfoTranslator(nodes.NodeVisitor): self.body.append('\n@end float\n\n') def visit_caption(self, node): - if not isinstance(node.parent, nodes.figure): + if (isinstance(node.parent, nodes.figure) or + (isinstance(node.parent, nodes.container) and node.parent.get('literal_block'))): + self.body.append('\n@caption{') + else: self.builder.warn('caption not inside a figure.', (self.curfilestack[-1], node.line)) - return - self.body.append('\n@caption{') def depart_caption(self, node): - if isinstance(node.parent, nodes.figure): + if (isinstance(node.parent, nodes.figure) or + (isinstance(node.parent, nodes.container) and node.parent.get('literal_block'))): self.body.append('}\n') def visit_image(self, node):