diff --git a/sphinx/writers/latex.py b/sphinx/writers/latex.py index e4a7bfe24..722ef6b21 100644 --- a/sphinx/writers/latex.py +++ b/sphinx/writers/latex.py @@ -1691,7 +1691,7 @@ class LaTeXTranslator(nodes.NodeVisitor): ref = '\\ref{%s}' % self.idescape(id) title = node.get('title', '%s') title = text_type(title).translate(tex_escape_map).replace('\\%s', '%s') - hyperref = '\\hyperref[%s]{%s}' % (self.idescape(id), title % ref) + hyperref = '\\hyperref[%s]{%s}' % (self.idescape(id), escape_abbr(title) % ref) self.body.append(hyperref) raise nodes.SkipNode diff --git a/tests/test_build_latex.py b/tests/test_build_latex.py index 375ee8be2..5614315e7 100644 --- a/tests/test_build_latex.py +++ b/tests/test_build_latex.py @@ -180,7 +180,7 @@ def test_numref(app, status, warning): assert '\\addto\\captionsenglish{\\renewcommand{\\figurename}{Fig.\\@ }}' in result assert '\\addto\\captionsenglish{\\renewcommand{\\tablename}{Table }}' in result assert '\\SetupFloatingEnvironment{literal-block}{name=Listing }' in result - assert '\\hyperref[index:fig1]{Fig. \\ref{index:fig1}}' in result + assert '\\hyperref[index:fig1]{Fig.\\@ \\ref{index:fig1}}' in result assert '\\hyperref[baz:fig22]{Figure\\ref{baz:fig22}}' in result assert '\\hyperref[index:table-1]{Table \\ref{index:table-1}}' in result assert '\\hyperref[baz:table22]{Table:\\ref{baz:table22}}' in result @@ -232,7 +232,7 @@ def test_numref_with_prefix2(app, status, warning): assert '\\addto\\captionsenglish{\\renewcommand{\\tablename}{Tab\\_}}' in result assert '\\def\\fnum@table{\\tablename\\thetable:}' in result assert '\\SetupFloatingEnvironment{literal-block}{name=Code-}' in result - assert '\\hyperref[index:fig1]{Figure:\\ref{index:fig1}.}' in result + assert '\\hyperref[index:fig1]{Figure:\\ref{index:fig1}.\\@}' in result assert '\\hyperref[baz:fig22]{Figure\\ref{baz:fig22}}' in result assert '\\hyperref[index:table-1]{Tab\\_\\ref{index:table-1}:}' in result assert '\\hyperref[baz:table22]{Table:\\ref{baz:table22}}' in result