Skip to content

Commit

Permalink
Latex: fix vertical spacing for cpp:function.
Browse files Browse the repository at this point in the history
As described in the issue, there is a pair of
`\pysigstartmultiline/\pysigstopmultiline` for each `desc_signature`
element and thus there is extra spacing when multiple functions
are documented.

Fixes: sphinx-doc#9924.
  • Loading branch information
marxin committed Jan 11, 2022
1 parent e1fa6c7 commit 57cd22a
Showing 1 changed file with 10 additions and 7 deletions.
17 changes: 10 additions & 7 deletions sphinx/writers/latex.py
Expand Up @@ -291,6 +291,7 @@ def __init__(self, document: nodes.document, builder: "LaTeXBuilder",
self.in_parsed_literal = 0
self.compact_list = 0
self.first_param = 0
self.in_desc_signature = False

sphinxpkgoptions = []

Expand Down Expand Up @@ -694,18 +695,17 @@ def visit_desc_signature(self, node: Element) -> None:
else:
hyper = ''
self.body.append(hyper)
if not node.get('is_multiline'):
self._visit_signature_line(node)
else:
if not self.in_desc_signature:
self.in_desc_signature = True
self.body.append('%' + CR)
self.body.append(r'\pysigstartmultiline' + CR)

if not node.get('is_multiline'):
self._visit_signature_line(node)

def depart_desc_signature(self, node: Element) -> None:
if not node.get('is_multiline'):
self._depart_signature_line(node)
else:
self.body.append('%' + CR)
self.body.append(r'\pysigstopmultiline')

def visit_desc_signature_line(self, node: Element) -> None:
self._visit_signature_line(node)
Expand All @@ -714,7 +714,10 @@ def depart_desc_signature_line(self, node: Element) -> None:
self._depart_signature_line(node)

def visit_desc_content(self, node: Element) -> None:
pass
assert self.in_desc_signature
self.body.append('%' + CR)
self.body.append(r'\pysigstopmultiline')
self.in_desc_signature = False

def depart_desc_content(self, node: Element) -> None:
pass
Expand Down

0 comments on commit 57cd22a

Please sign in to comment.