From d5568fc36404343df0a4655a0747ecffacfaf35c Mon Sep 17 00:00:00 2001
From: Dmitry Shachnev <mitya57@gmail.com>
Date: Wed, 15 Jun 2022 22:27:58 +0300
Subject: [PATCH] Fix #15956: error when building with Sphinx 4.5
Unfortunately it breaks building with older versions.
The only way to fix this issue for all versions is to stop monkey-patching
and forward the fix to Sphinx upstream.
---
doc/tools/coqrst/coqdomain.py | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/doc/tools/coqrst/coqdomain.py b/doc/tools/coqrst/coqdomain.py
index 468b6b648dd8..58e36b361262 100644
--- a/doc/tools/coqrst/coqdomain.py
+++ b/doc/tools/coqrst/coqdomain.py
@@ -37,7 +37,7 @@
from sphinx.util.docutils import ReferenceRole
from sphinx.util.logging import getLogger, get_node_location
from sphinx.util.nodes import set_source_info, set_role_source_info, make_refnode
-from sphinx.writers.latex import LaTeXTranslator
+from sphinx.writers.latex import CR, LaTeXTranslator
from . import coqdoc
from .repl import ansicolors
@@ -54,10 +54,13 @@ def visit_desc_signature(self, node):
for id in node['ids']:
hyper += self.hypertarget(id)
self.body.append(hyper)
+ if not self.in_desc_signature:
+ self.in_desc_signature = True
+ self.body.append(CR + r'\pysigstartsignatures')
if not node.get('is_multiline'):
self._visit_signature_line(node)
else:
- self.body.append('%\n\\pysigstartmultiline\n')
+ self.body.append(CR + r'\pysigstartmultiline')
LaTeXTranslator.visit_desc_signature = visit_desc_signature
PARSE_ERROR = """{}:{} Parse error in notation!