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)
|
||||
==============================
|
||||
|
||||
* #295: Fix escaping of hyperref targets in LaTeX output.
|
||||
|
||||
* #302: Fix links generated by the ``:doc:`` role for LaTeX output.
|
||||
|
||||
* #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() +
|
||||
u''.join(self.body) + FOOTER % self.elements)
|
||||
|
||||
def idescape(self, id):
|
||||
return str(unicode(id).translate(tex_escape_map))
|
||||
|
||||
def visit_document(self, node):
|
||||
self.footnotestack.append(self.collect_footnotes(node))
|
||||
self.curfilestack.append(node.get('docname', ''))
|
||||
@ -459,7 +462,7 @@ class LaTeXTranslator(nodes.NodeVisitor):
|
||||
d = self.descstack[-1]
|
||||
d.cls = d.cls.rstrip('.')
|
||||
if node.parent['desctype'] != 'describe' and node['ids']:
|
||||
hyper = '\\hypertarget{%s}{}' % node['ids'][0]
|
||||
hyper = '\\hypertarget{%s}{}' % self.idescape(node['ids'][0])
|
||||
else:
|
||||
hyper = ''
|
||||
if d.count == 0:
|
||||
@ -750,7 +753,7 @@ class LaTeXTranslator(nodes.NodeVisitor):
|
||||
def visit_term(self, node):
|
||||
ctx = '] \\leavevmode'
|
||||
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.context.append(ctx)
|
||||
def depart_term(self, node):
|
||||
|
Loading…
Reference in New Issue
Block a user