mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
#1719 Add prefix to linkname of :numref: on LaTeX mode
This commit is contained in:
parent
1ee7f5a163
commit
9f06027836
@ -331,33 +331,40 @@ class LaTeXTranslator(nodes.NodeVisitor):
|
|||||||
|
|
||||||
figure = self.builder.config.numfig_format['figure'].split('%s', 1)
|
figure = self.builder.config.numfig_format['figure'].split('%s', 1)
|
||||||
if len(figure) == 1:
|
if len(figure) == 1:
|
||||||
ret.append(r'\def\fnum@figure{%s}' % figure[0])
|
ret.append('\\def\\fnum@figure{%s}\n' %
|
||||||
|
text_type(figure[0]).translate(tex_escape_map))
|
||||||
else:
|
else:
|
||||||
ret.append(r'\renewcommand{\figurename}{%s}' % figure[0])
|
ret.append('\\renewcommand{\\figurename}{%s}\n' %
|
||||||
|
text_type(figure[0]).translate(tex_escape_map))
|
||||||
if figure[1]:
|
if figure[1]:
|
||||||
ret.append(r'\makeatletter')
|
ret.append('\\makeatletter\n')
|
||||||
ret.append(r'\def\fnum@figure{\figurename\thefigure%s}' % figure[1])
|
ret.append('\\def\\fnum@figure{\\figurename\\thefigure%s}\n' %
|
||||||
ret.append(r'\makeatother')
|
text_type(figure[1]).translate(tex_escape_map))
|
||||||
|
ret.append('\\makeatother\n')
|
||||||
|
|
||||||
table = self.builder.config.numfig_format['table'].split('%s', 1)
|
table = self.builder.config.numfig_format['table'].split('%s', 1)
|
||||||
if len(table) == 1:
|
if len(table) == 1:
|
||||||
ret.append(r'\def\fnum@table{%s}' % table[0])
|
ret.append('\\def\\fnum@table{%s}\n' %
|
||||||
|
text_type(table[0]).translate(tex_escape_map))
|
||||||
else:
|
else:
|
||||||
ret.append(r'\renewcommand{\tablename}{%s}' % table[0])
|
ret.append('\\renewcommand{\\tablename}{%s}\n' %
|
||||||
|
text_type(table[0]).translate(tex_escape_map))
|
||||||
if table[1]:
|
if table[1]:
|
||||||
ret.append(r'\makeatletter')
|
ret.append('\\makeatletter\n')
|
||||||
ret.append(r'\def\fnum@table{\tablename\thetable%s}' % table[1])
|
ret.append('\\def\\fnum@table{\\tablename\\thetable%s}\n' %
|
||||||
ret.append(r'\makeatother')
|
text_type(table[1]).translate(tex_escape_map))
|
||||||
|
ret.append('\\makeatother\n')
|
||||||
|
|
||||||
code = self.builder.config.numfig_format['code-block'].split('%s', 1)
|
codeblock = self.builder.config.numfig_format['code-block'].split('%s', 1)
|
||||||
if len(code) == 1:
|
if len(codeblock) == 1:
|
||||||
pass # FIXME
|
pass # FIXME
|
||||||
else:
|
else:
|
||||||
ret.append(r'\floatname{literal-block}{%s}' % code[0])
|
ret.append('\\floatname{literal-block}{%s}\n' %
|
||||||
|
text_type(codeblock[0]).translate(tex_escape_map))
|
||||||
if table[1]:
|
if table[1]:
|
||||||
pass # FIXME
|
pass # FIXME
|
||||||
|
|
||||||
return '\n'.join(ret)
|
return ''.join(ret)
|
||||||
|
|
||||||
def generate_indices(self):
|
def generate_indices(self):
|
||||||
def generate(content, collapsed):
|
def generate(content, collapsed):
|
||||||
@ -1326,8 +1333,9 @@ class LaTeXTranslator(nodes.NodeVisitor):
|
|||||||
id = node.get('refuri', '')[1:].replace('#', ':')
|
id = node.get('refuri', '')[1:].replace('#', ':')
|
||||||
|
|
||||||
ref = '\\ref{%s}' % self.idescape(id)
|
ref = '\\ref{%s}' % self.idescape(id)
|
||||||
title = node.get('title', '#')
|
title = text_type(node.get('title', '#')).translate(tex_escape_map)
|
||||||
self.body.append(title.replace('#', ref))
|
hyperref = '\\hyperref[%s]{%s}' % (self.idescape(id), title.replace('\\#', ref))
|
||||||
|
self.body.append(hyperref)
|
||||||
|
|
||||||
raise nodes.SkipNode
|
raise nodes.SkipNode
|
||||||
|
|
||||||
|
@ -169,12 +169,12 @@ def test_numref(app, status, warning):
|
|||||||
assert '\\renewcommand{\\figurename}{Fig. }' in result
|
assert '\\renewcommand{\\figurename}{Fig. }' in result
|
||||||
assert '\\renewcommand{\\tablename}{Table }' in result
|
assert '\\renewcommand{\\tablename}{Table }' in result
|
||||||
assert '\\floatname{literal-block}{Listing }' in result
|
assert '\\floatname{literal-block}{Listing }' in result
|
||||||
assert '\\ref{index:fig1}' in result
|
assert '\\hyperref[index:fig1]{Fig. \\ref{index:fig1}}' in result
|
||||||
assert '\\ref{baz:fig22}' in result
|
assert '\\hyperref[baz:fig22]{Figure\\ref{baz:fig22}}' in result
|
||||||
assert '\\ref{index:table-1}' in result
|
assert '\\hyperref[index:table-1]{Table \\ref{index:table-1}}' in result
|
||||||
assert '\\ref{baz:table22}' in result
|
assert '\\hyperref[baz:table22]{Table:\\ref{baz:table22}}' in result
|
||||||
assert '\\ref{index:code-1}' in result
|
assert '\\hyperref[index:code-1]{Listing \\ref{index:code-1}}' in result
|
||||||
assert '\\ref{baz:code22}' in result
|
assert '\\hyperref[baz:code22]{Code-\\ref{baz:code22}}' in result
|
||||||
|
|
||||||
|
|
||||||
@with_app(buildername='latex', testroot='numfig',
|
@with_app(buildername='latex', testroot='numfig',
|
||||||
@ -189,7 +189,7 @@ def test_numref_with_prefix1(app, status, warning):
|
|||||||
print(status.getvalue())
|
print(status.getvalue())
|
||||||
print(warning.getvalue())
|
print(warning.getvalue())
|
||||||
assert '\\renewcommand{\\figurename}{Figure:}' in result
|
assert '\\renewcommand{\\figurename}{Figure:}' in result
|
||||||
assert '\\renewcommand{\\tablename}{Tab_}' in result
|
assert '\\renewcommand{\\tablename}{Tab\\_}' in result
|
||||||
assert '\\floatname{literal-block}{Code-}' in result
|
assert '\\floatname{literal-block}{Code-}' in result
|
||||||
assert '\\ref{index:fig1}' in result
|
assert '\\ref{index:fig1}' in result
|
||||||
assert '\\ref{baz:fig22}' in result
|
assert '\\ref{baz:fig22}' in result
|
||||||
@ -197,6 +197,12 @@ def test_numref_with_prefix1(app, status, warning):
|
|||||||
assert '\\ref{baz:table22}' in result
|
assert '\\ref{baz:table22}' in result
|
||||||
assert '\\ref{index:code-1}' in result
|
assert '\\ref{index:code-1}' in result
|
||||||
assert '\\ref{baz:code22}' in result
|
assert '\\ref{baz:code22}' 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
|
||||||
|
assert '\\hyperref[index:code-1]{Code-\\ref{index:code-1}}' in result
|
||||||
|
assert '\\hyperref[baz:code22]{Code-\\ref{baz:code22}}' in result
|
||||||
|
|
||||||
|
|
||||||
@with_app(buildername='latex', testroot='numfig',
|
@with_app(buildername='latex', testroot='numfig',
|
||||||
@ -212,15 +218,15 @@ def test_numref_with_prefix2(app, status, warning):
|
|||||||
print(warning.getvalue())
|
print(warning.getvalue())
|
||||||
assert '\\renewcommand{\\figurename}{Figure:}' in result
|
assert '\\renewcommand{\\figurename}{Figure:}' in result
|
||||||
assert '\\def\\fnum@figure{\\figurename\\thefigure.}' in result
|
assert '\\def\\fnum@figure{\\figurename\\thefigure.}' in result
|
||||||
assert '\\renewcommand{\\tablename}{Tab_}' in result
|
assert '\\renewcommand{\\tablename}{Tab\\_}' in result
|
||||||
assert '\\def\\fnum@table{\\tablename\\thetable:}' in result
|
assert '\\def\\fnum@table{\\tablename\\thetable:}' in result
|
||||||
assert '\\floatname{literal-block}{Code-}' in result
|
assert '\\floatname{literal-block}{Code-}' in result
|
||||||
assert '\\ref{index:fig1}' in result
|
assert '\\hyperref[index:fig1]{Figure:\\ref{index:fig1}.}' in result
|
||||||
assert '\\ref{baz:fig22}' in result
|
assert '\\hyperref[baz:fig22]{Figure\\ref{baz:fig22}}' in result
|
||||||
assert '\\ref{index:table-1}' in result
|
assert '\\hyperref[index:table-1]{Tab\\_\\ref{index:table-1}:}' in result
|
||||||
assert '\\ref{baz:table22}' in result
|
assert '\\hyperref[baz:table22]{Table:\\ref{baz:table22}}' in result
|
||||||
assert '\\ref{index:code-1}' in result
|
assert '\\hyperref[index:code-1]{Code-\\ref{index:code-1} \\textbar{} }' in result
|
||||||
assert '\\ref{baz:code22}' in result
|
assert '\\hyperref[baz:code22]{Code-\\ref{baz:code22}}' in result
|
||||||
|
|
||||||
|
|
||||||
@with_app(buildername='latex')
|
@with_app(buildername='latex')
|
||||||
|
Loading…
Reference in New Issue
Block a user