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.