MathJax für Github Pages konfigurieren
Damit man in seinem Github Pages basierten Blog (und unter Benutzung des beliebten Themes minimal mistakes) auch hübsche, LaTeX-like Formeln einbauen kann, bietet sich z.B. MathJax an, da der Standard Markdown Interpreter kramdown damit schon von Haus aus umgehen kann. Dazu sind folgende Schritte notwendig.
Konfiguration
- Sollte man in seinem Github Pages Repository noch keine Datei
_includes/scripts.html
haben, muss man diese aus dem minmal mistakes Repository in sein eigenes Repository kopieren. -
In der Kopie von
scripts.html
im eigenen Repository fügt man den folgenden Code nach dem Include von Analytics (und Comments, falls konfiguriert) und vor demsite.after_footer_scripts
Abschnitt ein:1 2 3 4 5 6 7 8 9 10 11 12
{% if page.mathjax %} <script> MathJax = { tex: { inlineMath: [['$', '$'], ['\\(', '\\)']], displayMath: [ ['$$','$$'], ["\\[","\\]"] ], processEscapes: true } }; </script> <script defer src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script> {% endif %}
-
Meine komplette
scripts.html
sieht dann so aus – ich habe mal den neuen Block für MathJax mit HTML Kommentaren kenntlich gemacht:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
{% if site.footer_scripts %} {% for script in site.footer_scripts %} <script src="{{ script | relative_url }}"></script> {% endfor %} {% else %} <script src="{{ '/assets/js/main.min.js' | relative_url }}"></script> {% endif %} {% if site.search == true or page.layout == "search" %} {%- assign search_provider = site.search_provider | default: "lunr" -%} {%- case search_provider -%} {%- when "lunr" -%} {% include_cached search/lunr-search-scripts.html %} {%- when "google" -%} {% include_cached search/google-search-scripts.html %} {%- when "algolia" -%} {% include_cached search/algolia-search-scripts.html %} {%- endcase -%} {% endif %} {% include analytics.html %} {% include /comments-providers/scripts.html %} <!-- MathJax einbinden: --> {% if page.mathjax %} <script> MathJax = { tex: { inlineMath: [['$', '$'], ['\\(', '\\)']], displayMath: [ ['$$','$$'], ["\\[","\\]"] ], processEscapes: true } }; </script> <script defer src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script> {% endif %} <!-- Ende MathJax Einbindung --> {% if site.after_footer_scripts %} {% for script in site.after_footer_scripts %} <script src="{{ script | relative_url }}"></script> {% endfor %} {% endif %}
- Will man nun in einem Post auch mathematische Formeln benutzen, hat man zwei Optionen:
- MathJax global für alle Posts aktivieren, egal, ob man sie nutzt oder nicht.
Dafür in der_config.yml
bei den Defaults für Posts einfachmathjax: true
erägnzen. - MathJax nur pro Post, in dem auch Formeln vorkommen aktivieren.
Dafür einfach im Front Matter des Posts eine Zeile mitmathjax: true
hinzufügen.
- MathJax global für alle Posts aktivieren, egal, ob man sie nutzt oder nicht.
Fertig ist die Laube. Zumindest hat es bei mir so geklappt.
Ein paar Testformeln
Wichtig ist noch zu erwähnen, dass man nun Formeln nicht über einen Markdown Codeblock, also mit Backticks, einbaut!
Vielmehr schreibt man entweder direkt im Text (“inline”) die Formel innerhalb von zwei $ Zeichen, also $f(x) = x^2$
. Das ergibt dann z.B. diese inline Formel: $f(x) = x^2$.
Oder, wenn man abgesetzte Formeln will (“Blockformel”), dann schreibt man das ganze in doppelte $$ Zeichen, also so:
1
2
3
4
5
6
7
$$
f(n) =
\begin{cases}
n/2, & \text{if $n$ is even} \\
3n+1, & \text{if $n$ is odd}
\end{cases}
$$
Das ergibt dann dieses:
\[f(n) = \begin{cases} n/2, & \text{if $n$ is even} \\ 3n+1, & \text{if $n$ is odd} \end{cases}\]🔲
Hinterlasse einen Kommentar