imgmath: Fix relative file path (#10965)

This commit is contained in:
Julien Schueller 2023-01-05 12:54:32 +01:00 committed by GitHub
parent 965768bfda
commit 222d366ead
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 7 additions and 4 deletions

View File

@ -16,6 +16,8 @@ Features added
Bugs fixed
----------
* #10944: imgmath: Fix resolving image paths for files in nested folders.
Testing
--------

View File

@ -207,10 +207,9 @@ def render_math(
"""Render the LaTeX math expression *math* using latex and dvipng or
dvisvgm.
Return the filename relative to the built document and the "depth",
Return the image absolute filename and the "depth",
that is, the distance of image bottom and baseline in pixels, if the
option to use preview_latex is switched on.
Also return the temporary and destination files.
Error handling may seem strange, but follows a pattern: if LaTeX or dvipng
(dvisvgm) aren't available, only a warning is generated (since that enables
@ -317,7 +316,8 @@ def html_visit_math(self: HTMLTranslator, node: nodes.math) -> None:
image_format = self.builder.config.imgmath_image_format.lower()
img_src = render_maths_to_base64(image_format, rendered_path)
else:
relative_path = path.relpath(rendered_path, self.builder.outdir)
bname = path.basename(rendered_path)
relative_path = path.join(self.builder.imgpath, 'math', bname)
img_src = relative_path.replace(path.sep, '/')
c = f'<img class="math" src="{img_src}"' + get_tooltip(self, node)
if depth is not None:
@ -357,7 +357,8 @@ def html_visit_displaymath(self: HTMLTranslator, node: nodes.math_block) -> None
image_format = self.builder.config.imgmath_image_format.lower()
img_src = render_maths_to_base64(image_format, rendered_path)
else:
relative_path = path.relpath(rendered_path, self.builder.outdir)
bname = path.basename(rendered_path)
relative_path = path.join(self.builder.imgpath, 'math', bname)
img_src = relative_path.replace(path.sep, '/')
self.body.append(f'<img src="{img_src}"' + get_tooltip(self, node) +
'/></p>\n</div>')