From cdb45f2d037b81ddce73b73a580ef1913deb801b Mon Sep 17 00:00:00 2001 From: Liam Huang <liamhuang0205@gmail.com> Date: Wed, 12 Feb 2020 14:39:51 +0800 Subject: [PATCH 1/5] [mathjax] mathjax.swig: loading amsmath packages by default. --- layout/_third-party/math/mathjax.swig | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/layout/_third-party/math/mathjax.swig b/layout/_third-party/math/mathjax.swig index 331b8a0551..7fde704c9b 100644 --- a/layout/_third-party/math/mathjax.swig +++ b/layout/_third-party/math/mathjax.swig @@ -3,15 +3,19 @@ <script> if (typeof MathJax === 'undefined') { window.MathJax = { - {%- if theme.math.mathjax.mhchem %} - loader: { - load: ['[tex]/mhchem'] - }, - {%- endif %} + loader: { + {%- if theme.math.mathjax.mhchem %} + load: ['[tex]/ams', '[tex]/mhchem'], + {%- else %} + load: ['[tex]/ams'], + {%- endif %} + }, tex: { inlineMath: {'[+]': [['$', '$']]}, {%- if theme.math.mathjax.mhchem %} - packages: {'[+]': ['mhchem']}, + packages: {'[+]': ['ams', 'mhchem']}, + {%- else %} + packages: {'[+]': ['ams']}, {%- endif %} tags: 'ams' }, From e243dde6f87304aee3c229f39096c0a2bd705090 Mon Sep 17 00:00:00 2001 From: Liam Huang <liamhuang0205@gmail.com> Date: Wed, 12 Feb 2020 14:40:39 +0800 Subject: [PATCH 2/5] [mathjax] mathjax.swig: enable \( and \) as inline math delimiters. --- layout/_third-party/math/mathjax.swig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/layout/_third-party/math/mathjax.swig b/layout/_third-party/math/mathjax.swig index 7fde704c9b..87598c3795 100644 --- a/layout/_third-party/math/mathjax.swig +++ b/layout/_third-party/math/mathjax.swig @@ -11,7 +11,7 @@ {%- endif %} }, tex: { - inlineMath: {'[+]': [['$', '$']]}, + inlineMath: {'[+]': [['$', '$'], ['\\(', '\\)']]}, {%- if theme.math.mathjax.mhchem %} packages: {'[+]': ['ams', 'mhchem']}, {%- else %} From f1e739e9547d92c4dd139d864e6081491b9c2956 Mon Sep 17 00:00:00 2001 From: Liam Huang <liamhuang0205@gmail.com> Date: Wed, 12 Feb 2020 16:12:11 +0800 Subject: [PATCH 3/5] Revert "[mathjax] mathjax.swig: enable \( and \) as inline math delimiters." This reverts commit e243dde6f87304aee3c229f39096c0a2bd705090. --- layout/_third-party/math/mathjax.swig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/layout/_third-party/math/mathjax.swig b/layout/_third-party/math/mathjax.swig index 87598c3795..7fde704c9b 100644 --- a/layout/_third-party/math/mathjax.swig +++ b/layout/_third-party/math/mathjax.swig @@ -11,7 +11,7 @@ {%- endif %} }, tex: { - inlineMath: {'[+]': [['$', '$'], ['\\(', '\\)']]}, + inlineMath: {'[+]': [['$', '$']]}, {%- if theme.math.mathjax.mhchem %} packages: {'[+]': ['ams', 'mhchem']}, {%- else %} From 37d4a222262cf9514857638ac5bcb3eada2f5ee9 Mon Sep 17 00:00:00 2001 From: Liam Huang <liamhuang0205@gmail.com> Date: Wed, 12 Feb 2020 16:18:50 +0800 Subject: [PATCH 4/5] [mathjax] mathjax.swig: translation of code blocks. --- layout/_third-party/math/mathjax.swig | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/layout/_third-party/math/mathjax.swig b/layout/_third-party/math/mathjax.swig index 7fde704c9b..f13cf61700 100644 --- a/layout/_third-party/math/mathjax.swig +++ b/layout/_third-party/math/mathjax.swig @@ -1,6 +1,18 @@ {%- set mathjax_uri = theme.vendors.mathjax or '//cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js' %} <script> + {%- if theme.math.mathjax.math_in_verbatim %} + document.querySelectorAll('code').forEach(code => { + const text = code.innerHTML; + // is_inline_math = /^\$(.*)\$$/.exec(text) || /^\\\((.*)\\\)$/.exec(text); + // is_display_math = /^\$\$(.*)\$\$$/ms.exec(text) || /^\\begin\{.+\}(.*)\\end\{.+\}/ms.exec(text); + if (/^\$\$(.*)\$\$$/ms.exec(text) || /^\\begin\{.+\}(.*)\\end\{.+\}/ms.exec(text)) { + code.outerHTML = "<span class='theme_next_mathjax_display has-jax'>" + text + "</span>"; + } else if (/^\$(.*)\$$/.exec(text) || /^\\\((.*)\\\)$/.exec(text)) { + code.outerHTML = "<span class='theme_next_mathjax_inline has-jax'>" + text + "</span>"; + } + }); + {%- endif %} if (typeof MathJax === 'undefined') { window.MathJax = { loader: { From f410acd73aa4fac1d5e7fdd808b31ad348f43616 Mon Sep 17 00:00:00 2001 From: Liam Huang <liamhuang0205@gmail.com> Date: Wed, 12 Feb 2020 16:25:59 +0800 Subject: [PATCH 5/5] [mathjax] _config.yml: add new flag for mathjax. --- _config.yml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/_config.yml b/_config.yml index a04ffa2504..aa46b94757 100644 --- a/_config.yml +++ b/_config.yml @@ -519,6 +519,19 @@ math: enable: false # See: https://mhchem.github.io/MathJax-mhchem/ mhchem: false + # For hexo-renderer-marked, the default renderer of Hexo, some math equations with + # multiple subscribe mark of LaTeX (say, the underscore `_`) might cause problems. + # Enable this flag could bypass this problem by wrap your math codes in the inline-math_in_verbatim + # marks of Markdown, say, the backquote pair. + # For example, + # ``` + # $ E = mc^2 $. + # ``` + # could be replaced by + # ``` + # `$ E = mc^2 $`. + # ``` + math_in_verbatim: false # hexo-renderer-markdown-it-plus (or hexo-renderer-markdown-it with markdown-it-katex plugin) required for full Katex support. katex: