diff --git a/CHANGES b/CHANGES index 28e89863f..b61fdd58b 100644 --- a/CHANGES +++ b/CHANGES @@ -16,6 +16,7 @@ Deprecated Features added -------------- +* #9103: LaTeX: imgconverter: conversion runs even if not needed * #9023: More CSS classes on domain descriptions, see :ref:`nodes` for details. Bugs fixed diff --git a/sphinx/transforms/post_transforms/images.py b/sphinx/transforms/post_transforms/images.py index f9b78837f..c9ed572b8 100644 --- a/sphinx/transforms/post_transforms/images.py +++ b/sphinx/transforms/post_transforms/images.py @@ -197,7 +197,7 @@ class ImageConverter(BaseImageConverter): def match(self, node: nodes.image) -> bool: if not self.app.builder.supported_image_types: return False - elif set(node['candidates']) & set(self.app.builder.supported_image_types): + elif set(self.guess_mimetypes(node)) & set(self.app.builder.supported_image_types): # builder supports the image; no need to convert return False elif self.available is None: diff --git a/tests/roots/test-ext-imgconverter/img.pdf b/tests/roots/test-ext-imgconverter/img.pdf new file mode 100644 index 000000000..cacbd855d Binary files /dev/null and b/tests/roots/test-ext-imgconverter/img.pdf differ diff --git a/tests/roots/test-ext-imgconverter/index.rst b/tests/roots/test-ext-imgconverter/index.rst index 786c92e8d..f8ef1d6e2 100644 --- a/tests/roots/test-ext-imgconverter/index.rst +++ b/tests/roots/test-ext-imgconverter/index.rst @@ -2,3 +2,4 @@ test-ext-imgconverter ===================== .. image:: svgimg.svg +.. image:: img.pdf diff --git a/tests/test_ext_imgconverter.py b/tests/test_ext_imgconverter.py index 5f6f236cf..b4fd46d25 100644 --- a/tests/test_ext_imgconverter.py +++ b/tests/test_ext_imgconverter.py @@ -19,6 +19,11 @@ def test_ext_imgconverter(app, status, warning): app.builder.build_all() content = (app.outdir / 'python.tex').read_text() + + # supported image (not converted) + assert '\\sphinxincludegraphics{{img}.pdf}' in content + + # non supported image (converted) assert '\\sphinxincludegraphics{{svgimg}.png}' in content assert not (app.outdir / 'svgimg.svg').exists() assert (app.outdir / 'svgimg.png').exists()