mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
#295: Fix escaping of hyperref targets in LaTeX output.
This commit is contained in:
parent
a5f1df6946
commit
4c47d2d8e2
2
CHANGES
2
CHANGES
@ -1,6 +1,8 @@
|
|||||||
Release 0.6.4 (in development)
|
Release 0.6.4 (in development)
|
||||||
==============================
|
==============================
|
||||||
|
|
||||||
|
* #295: Fix escaping of hyperref targets in LaTeX output.
|
||||||
|
|
||||||
* #302: Fix links generated by the ``:doc:`` role for LaTeX output.
|
* #302: Fix links generated by the ``:doc:`` role for LaTeX output.
|
||||||
|
|
||||||
* #286: collect todo nodes after the whole document has been read;
|
* #286: collect todo nodes after the whole document has been read;
|
||||||
|
@ -246,6 +246,9 @@ class LaTeXTranslator(nodes.NodeVisitor):
|
|||||||
return (HEADER % self.elements + self.highlighter.get_stylesheet() +
|
return (HEADER % self.elements + self.highlighter.get_stylesheet() +
|
||||||
u''.join(self.body) + FOOTER % self.elements)
|
u''.join(self.body) + FOOTER % self.elements)
|
||||||
|
|
||||||
|
def idescape(self, id):
|
||||||
|
return str(unicode(id).translate(tex_escape_map))
|
||||||
|
|
||||||
def visit_document(self, node):
|
def visit_document(self, node):
|
||||||
self.footnotestack.append(self.collect_footnotes(node))
|
self.footnotestack.append(self.collect_footnotes(node))
|
||||||
self.curfilestack.append(node.get('docname', ''))
|
self.curfilestack.append(node.get('docname', ''))
|
||||||
@ -459,7 +462,7 @@ class LaTeXTranslator(nodes.NodeVisitor):
|
|||||||
d = self.descstack[-1]
|
d = self.descstack[-1]
|
||||||
d.cls = d.cls.rstrip('.')
|
d.cls = d.cls.rstrip('.')
|
||||||
if node.parent['desctype'] != 'describe' and node['ids']:
|
if node.parent['desctype'] != 'describe' and node['ids']:
|
||||||
hyper = '\\hypertarget{%s}{}' % node['ids'][0]
|
hyper = '\\hypertarget{%s}{}' % self.idescape(node['ids'][0])
|
||||||
else:
|
else:
|
||||||
hyper = ''
|
hyper = ''
|
||||||
if d.count == 0:
|
if d.count == 0:
|
||||||
@ -750,7 +753,7 @@ class LaTeXTranslator(nodes.NodeVisitor):
|
|||||||
def visit_term(self, node):
|
def visit_term(self, node):
|
||||||
ctx = '] \\leavevmode'
|
ctx = '] \\leavevmode'
|
||||||
if node.has_key('ids') and node['ids']:
|
if node.has_key('ids') and node['ids']:
|
||||||
ctx += '\\hypertarget{%s}{}' % node['ids'][0]
|
ctx += '\\hypertarget{%s}{}' % self.idescape(node['ids'][0])
|
||||||
self.body.append('\\item[')
|
self.body.append('\\item[')
|
||||||
self.context.append(ctx)
|
self.context.append(ctx)
|
||||||
def depart_term(self, node):
|
def depart_term(self, node):
|
||||||
|
Loading…
Reference in New Issue
Block a user