diff --git a/sphinx/writers/latex.py b/sphinx/writers/latex.py index 291bedbab..88bf1073f 100644 --- a/sphinx/writers/latex.py +++ b/sphinx/writers/latex.py @@ -1182,7 +1182,8 @@ class LaTeXTranslator(nodes.NodeVisitor): options = '' if include_graphics_options: options = '[%s]' % ','.join(include_graphics_options) - self.body.append('\\includegraphics%s{%s}' % (options, uri)) + base, ext = path.splitext(uri) + self.body.append('\\includegraphics%s{{%s}%s}' % (options, base, ext)) self.body.extend(post) def depart_image(self, node): diff --git a/tests/root/images.txt b/tests/root/images.txt index bd64d573a..e78f8be3c 100644 --- a/tests/root/images.txt +++ b/tests/root/images.txt @@ -26,3 +26,6 @@ Sphinx image handling .. an SVG image (for HTML at least) .. image:: svgimg.* + +.. an image with more than 1 dot in its file name +.. image:: img.foo.png diff --git a/tests/root/img.foo.png b/tests/root/img.foo.png new file mode 100644 index 000000000..4c8f89929 Binary files /dev/null and b/tests/root/img.foo.png differ diff --git a/tests/test_environment.py b/tests/test_environment.py index 1e639aeb6..580a4992d 100644 --- a/tests/test_environment.py +++ b/tests/test_environment.py @@ -63,9 +63,10 @@ def test_images(): image_uri_message = remove_unicode_literals(image_uri_message) assert image_uri_message in app._warning.content[-1] assert set(htmlbuilder.images.keys()) == \ - set(['subdir/img.png', 'img.png', 'subdir/simg.png', 'svgimg.svg']) + set(['subdir/img.png', 'img.png', 'subdir/simg.png', 'svgimg.svg', + 'img.foo.png']) assert set(htmlbuilder.images.values()) == \ - set(['img.png', 'img1.png', 'simg.png', 'svgimg.svg']) + set(['img.png', 'img1.png', 'simg.png', 'svgimg.svg', 'img.foo.png']) app._warning.reset() latexbuilder = LaTeXBuilder(app) @@ -73,9 +74,10 @@ def test_images(): assert image_uri_message in app._warning.content[-1] assert set(latexbuilder.images.keys()) == \ set(['subdir/img.png', 'subdir/simg.png', 'img.png', 'img.pdf', - 'svgimg.pdf']) + 'svgimg.pdf', 'img.foo.png']) assert set(latexbuilder.images.values()) == \ - set(['img.pdf', 'img.png', 'img1.png', 'simg.png', 'svgimg.pdf']) + set(['img.pdf', 'img.png', 'img1.png', 'simg.png', + 'svgimg.pdf', 'img.foo.png']) def test_second_update():