Post

LaTeX w Jekyllu: wzory matematyczne MathJax

LaTeX w Jekyllu: wzory matematyczne MathJax

W Jekyllu jest parę fajnych rzeczy, a jedną z nich jest wtyczka do umieszczania wzorów LaTeX w plikach markdown.

Ponoć najpopularniejszy jest MathJax, więc go używam.

Konfiguracja

Wystarczy wstawić ten kod do bloku <head></head> w odpowiednim pliku:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<head>

    ...

<!-- MathJax v3 -->
<script>
  window.MathJax = {
    tex: {
      inlineMath: [['$', '$'], ['\\(', '\\)']],
      displayMath: [['$$', '$$'], ['\\[', '\\]']],
      processEscapes: true
    },
    options: {
      skipHtmlTags: ['script', 'noscript', 'style', 'textarea', 'pre', 'code']
    }
  };
</script>
<script defer src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml.js"></script>

</head>

Pozostaje znaleźć właściwy plik, żeby wstawić do niego ten kod.

Gdzie wstawić ten kod

Sprawdziłem w _config.yml pole theme:

1
theme: jekyll-theme-chirpy

Oznacza to, że używam motywu jekyll-theme-chirpy, który nie ma lokalnego katalogu _layouts, bo layouty są w gemie (bibliotece) motywu.

Chirpy pozwala nadpisywać fragmenty layoutu przez katalog _includes.

W katalogu projektu tworzę plik _includes/head.html:

1
2
mkdir -p _includes
touch _includes/head.html

Kopiuję oryginalny head.html z Chirpy do mojego projektu. Najpierw sprawdzam, gdzie jest zainstalowany gem:

1
bundle info jekyll-theme-chirpy

Dostaję ścieżkę, na przykład:

1
E:\Ruby34-x64\lib\ruby\gems\3.4.0\gems\jekyll-theme-chirpy-7.4.1

Podstawiam tę ścieżkę i kopiuję plik:

1
copy "E:\Ruby34-x64\lib\ruby\gems\3.4.0\gems\jekyll-theme-chirpy-7.4.1\_includes\head.html" "_includes\head.html"

Na koniec dodaję kod MathJax do _includes/head.html, w sekcji <head></head>, na przykład tuż przed </head>.

Mogę teraz używać wzorów LaTeX.

Użycie

Przykład: inline math

Wzór w tekście: $e^{i x} = \cos{x} + i\sin{x}$.

Kod:

1
$e^{i x} = \cos{x} + i\sin{x}$

Przykład: display math

Wzór:

1
2
3
$$
\int_0^\infty e^{-x^2}\,dx = \frac{\sqrt{\pi}}{2}
$$

Kod:

\[\int_0^\infty e^{-x^2}\,dx = \frac{\sqrt{\pi}}{2}\]

Wzór:

1
2
3
4
5
6
$$
\left\{\begin{align}
a^2 + b^2 &= c^2 \\
e^{i\pi} + 1 &= 0
\end{align}\right.
$$

Kod:

\[\left\{\begin{align} a^2 + b^2 &= c^2 \\ e^{i\pi} + 1 &= 0 \end{align}\right.\]

Robię → działa → jest fajnie.