alshedivat / al-folio

A beautiful, simple, clean, and responsive Jekyll theme for academics
https://alshedivat.github.io/al-folio/
MIT License
11.17k stars 11.22k forks source link

Inline mathjax in image caption renders as display #2601

Open TomClabault opened 3 months ago

TomClabault commented 3 months ago

Have you checked that your issue isn't already filed?

Bug description

Inline mathjax in image caption renders as display

How to reproduce the bug

<div class="caption">
    Inline $$Mathjax$$ isn't inline.
</div>

Error messages and logs

No response

What operating system are you using?

Windows

Where are you seeing the problem on?

Running locally with Docker

More info

Expected result: Should render all 4 words on the same line

Result observed: image

Note that this isn't really only related to image captions. Having the Mathjax code in a simple <div> with no class renders the same (although not centered within the page).

m-julian commented 3 weeks ago

@TomClabault From the mathjax documentation :

The default math delimiters are $$...$$ and \[...\] for displayed mathematics, and \(...\) for in-line mathematics. Note in particular that the $...$ in-line delimiters are not used by default. That is because dollar signs appear too often in non-mathematical settings, which could cause some text to be treated as mathematics unexpectedly.

The $$...$$ should be used for displayed mathematics, which are on separate lines. You should be able to use $...$ or \(...\) for the in-line mathematics. Can you try these instead?

CodeLikeAGirl29 commented 2 weeks ago

The issue you're encountering happens because $$ in MathJax is used for display math, not inline math. To render inline math in MathJax, you should use single dollar signs $...$ instead of double dollar signs $$...$$.

Here’s how to fix it:

<div class="caption">
    Inline $Mathjax$ isn't inline.
</div>

If you want to configure MathJax to recognize $$ for inline math as well, you'll need to adjust the MathJax configuration. Add the following configuration in your MathJax setup:

MathJax = {
  tex: {
    inlineMath: [['$', '$'], ['\\(', '\\)']],
    displayMath: [['$$', '$$'], ['\\[', '\\]']]
  }
};

This config ensures that $...$ is used for inline math and $$...$$ for display math.

hacktoberfest

TomClabault commented 2 weeks ago

Looks good and simple, waiting on #2795 to try this out!