<!DOCTYPE html> <html lang="en" dir="ltr"> <head> <meta charset="utf-8"> <meta name="viewport" content="height=device-height, width=device-width, initial-scale=1.0, minimum-scale=1.0"> <meta name="generator" content="Hugo 0.119.0"> <meta name="generator" content="Relearn 5.22.1+tip"> <meta name="description" content="Beautiful math and chemical formulae"> <meta name="author" content="Sören Weber"> <meta name="twitter:card" content="summary_large_image"> <meta name="twitter:image" content="https://McShelby.github.io/hugo-theme-relearn/images/hero.png"> <meta name="twitter:title" content="Math :: Hugo Relearn Theme"> <meta name="twitter:description" content="Beautiful math and chemical formulae"> <meta property="og:title" content="Math :: Hugo Relearn Theme"> <meta property="og:description" content="Beautiful math and chemical formulae"> <meta property="og:type" content="article"> <meta property="og:url" content="https://McShelby.github.io/hugo-theme-relearn/shortcodes/math/index.html"> <meta property="og:image" content="https://McShelby.github.io/hugo-theme-relearn/images/hero.png"> <meta property="article:section" content="Shortcodes :: Hugo Relearn Theme"> <meta property="og:site_name" content="Hugo Relearn Theme"> <title>Math :: Hugo Relearn Theme</title> <link href="https://McShelby.github.io/hugo-theme-relearn/shortcodes/math/index.html" rel="alternate" hreflang="x-default"> <link href="https://McShelby.github.io/hugo-theme-relearn/shortcodes/math/index.html" rel="alternate" hreflang="en"> <link href="https://McShelby.github.io/hugo-theme-relearn/pir/shortcodes/math/index.html" rel="alternate" hreflang="pir"> <link href="https://McShelby.github.io/hugo-theme-relearn/shortcodes/math/index.html" rel="canonical" type="text/html" title="Math :: Hugo Relearn Theme"> <link href="../../shortcodes/math/index.xml" rel="alternate" type="application/rss+xml" title="Math :: Hugo Relearn Theme"> <link href="../../images/logo.svg?1697145018" rel="icon" type="image/svg+xml"> <!-- https://github.com/filamentgroup/loadCSS/blob/master/README.md#how-to-use --> <link href="../../css/fontawesome-all.min.css?1697145019" rel="stylesheet" media="print" onload="this.media='all';this.onload=null;"><noscript><link href="../../css/fontawesome-all.min.css?1697145019" rel="stylesheet"></noscript> <link href="../../css/nucleus.css?1697145019" rel="stylesheet"> <link href="../../css/auto-complete.css?1697145019" rel="stylesheet" media="print" onload="this.media='all';this.onload=null;"><noscript><link href="../../css/auto-complete.css?1697145019" rel="stylesheet"></noscript> <link href="../../css/perfect-scrollbar.min.css?1697145019" rel="stylesheet"> <link href="../../css/fonts.css?1697145019" rel="stylesheet" media="print" onload="this.media='all';this.onload=null;"><noscript><link href="../../css/fonts.css?1697145019" rel="stylesheet"></noscript> <link href="../../css/theme.css?1697145019" rel="stylesheet"> <link href="../../css/theme-auto.css?1697145019" rel="stylesheet" id="R-variant-style"> <link href="../../css/variant.css?1697145019" rel="stylesheet"> <link href="../../css/print.css?1697145019" rel="stylesheet" media="print"> <link href="../../css/format-print.css?1697145019" rel="stylesheet"> <link href="../../css/ie.css?1697145019" rel="stylesheet"> <script src="../../js/url.js?1697145019"></script> <script src="../../js/variant.js?1697145019"></script> <script> // hack to let hugo tell us how to get to the root when using relativeURLs, it needs to be called *url= for it to do its magic: // https://github.com/gohugoio/hugo/blob/145b3fcce35fbac25c7033c91c1b7ae6d1179da8/transform/urlreplacers/absurlreplacer.go#L72 window.index_js_url="../../index.search.js"; var root_url="../../"; var baseUri=root_url.replace(/\/$/, ''); // translations window.T_Copy_to_clipboard = 'Copy to clipboard'; window.T_Copied_to_clipboard = 'Copied to clipboard!'; window.T_Copy_link_to_clipboard = 'Copy link to clipboard'; window.T_Link_copied_to_clipboard = 'Copied link to clipboard!'; window.T_Reset_view = 'Reset view'; window.T_View_reset = 'View reset!'; window.T_No_results_found = 'No results found for \u0022{0}\u0022'; window.T_N_results_found = '{1} results found for \u0022{0}\u0022'; // some further base stuff var baseUriFull='https:\/\/McShelby.github.io\/hugo-theme-relearn/'; window.variants && variants.init( [ 'auto', 'relearn-bright', 'relearn-light', 'relearn-dark', 'zen-light', 'zen-dark', 'neon', 'learn', 'blue', 'green', 'red' ] ); </script> <style> #R-body img.bg-white { background-color: white; } </style> </head> <body class="mobile-support print disableInlineCopyToClipboard" data-url="../../shortcodes/math/index.html"> <div id="R-body" class="default-animation"> <div id="R-body-overlay"></div> <nav id="R-topbar"> <div class="topbar-wrapper"> <div class="topbar-sidebar-divider"></div> <div class="topbar-area topbar-area-start" data-area="start"> <div class="topbar-button topbar-button-sidebar" data-content-empty="disable" data-width-s="show" data-width-m="hide" data-width-l="hide"> <button class="topbar-control" onclick="toggleNav()" type="button" title="Menu (CTRL+ALT+n)"> <i class="fa-fw fas fa-bars"></i> </button> </div> </div> <ol class="topbar-breadcrumbs breadcrumbs highlightable" itemscope itemtype="http://schema.org/BreadcrumbList"><li itemscope itemtype="https://schema.org/ListItem" itemprop="itemListElement"><a itemprop="item" href="../../shortcodes/index.html"><span itemprop="name">Shortcodes</span></a><meta itemprop="position" content="1"> > </li><li itemscope itemtype="https://schema.org/ListItem" itemprop="itemListElement"><span itemprop="name">Math</span><meta itemprop="position" content="2"></li> </ol> <div class="topbar-area topbar-area-end" data-area="end"> </div> </div> </nav> <div id="R-main-overlay"></div> <main id="R-body-inner" class="highlightable default" tabindex="-1"> <div class="flex-block-wrapper"> <article class="default"> <header class="headline"> </header> <h1 id="math">Math</h1> <p>The <code>math</code> shortcode generates beautiful formatted math and chemical formulae using the <a href="https://mathjax.org/" target="_blank">MathJax</a> library.</p> <span class="math align-center"> $$\left( \sum_{k=1}^n a_k b_k \right)^2 \leq \left( \sum_{k=1}^n a_k^2 \right) \left( \sum_{k=1}^n b_k^2 \right)$$ </span> <div class="box notices cstyle note"> <div class="box-label"><i class="fa-fw fas fa-exclamation-circle"></i> Note</div> <div class="box-content"> <p>This only works in modern browsers.</p> </div> </div> <h2 id="usage">Usage</h2> <p>While the examples are using shortcodes with named parameter it is recommended to use codefences instead. This is because more and more other software supports Math codefences (eg. GitHub) and so your markdown becomes more portable.</p> <p>You are free to also call this shortcode from your own partials.</p> <div class="box notices cstyle note"> <div class="box-label"><i class="fa-fw fas fa-exclamation-circle"></i> Note</div> <div class="box-content"> <p>To use codefence syntax you have to turn off <code>guessSyntax</code> for the <code>markup.highlight</code> setting (<a href="#configuration">see the configuration section</a>).</p> </div> </div> <div class="tab-panel" data-tab-group="shortcode-parameter"> <div class="tab-nav"> <div class="tab-nav-title">​</div> <button data-tab-item="codefence" class="tab-nav-button tab-panel-style cstyle initial active" onclick="switchTab('shortcode-parameter','codefence')" > <span class="tab-nav-text">codefence</span> </button> <button data-tab-item="shortcode" class="tab-nav-button tab-panel-style cstyle initial" onclick="switchTab('shortcode-parameter','shortcode')" > <span class="tab-nav-text">shortcode</span> </button> <button data-tab-item="partial" class="tab-nav-button tab-panel-style cstyle initial" onclick="switchTab('shortcode-parameter','partial')" > <span class="tab-nav-text">partial</span> </button> </div> <div class="tab-content-container"> <div data-tab-item="codefence" class="tab-content tab-panel-style cstyle initial active"> <div class="tab-content-text"> <div class="wrap-code highlight"><pre tabindex="0" class="chroma"><code class="language-md" data-lang="md"><span class="line"><span class="cl">```math { align="center" } </span></span><span class="line"><span class="cl">$$\left( \sum_{k=1}^n a_k b_k \right)^2 \leq \left( \sum_{k=1}^n a_k^2 \right) \left( \sum_{k=1}^n b_k^2 \right)$$ </span></span><span class="line"><span class="cl">```</span></span></code></pre></div></div> </div> <div data-tab-item="shortcode" class="tab-content tab-panel-style cstyle initial"> <div class="tab-content-text"> <div class="wrap-code highlight"><pre tabindex="0" class="chroma"><code class="language-go" data-lang="go"><span class="line"><span class="cl"><span class="p">{{<</span> <span class="nx">math</span> <span class="nx">align</span><span class="p">=</span><span class="s">"center"</span> <span class="p">>}}</span> </span></span><span class="line"><span class="cl"><span class="err">$$\</span><span class="nf">left</span><span class="p">(</span> <span class="err">\</span><span class="nx">sum_</span><span class="p">{</span><span class="nx">k</span><span class="p">=</span><span class="mi">1</span><span class="p">}^</span><span class="nx">n</span> <span class="nx">a_k</span> <span class="nx">b_k</span> <span class="err">\</span><span class="nx">right</span><span class="p">)^</span><span class="mi">2</span> <span class="err">\</span><span class="nx">leq</span> <span class="err">\</span><span class="nf">left</span><span class="p">(</span> <span class="err">\</span><span class="nx">sum_</span><span class="p">{</span><span class="nx">k</span><span class="p">=</span><span class="mi">1</span><span class="p">}^</span><span class="nx">n</span> <span class="nx">a_k</span><span class="p">^</span><span class="mi">2</span> <span class="err">\</span><span class="nx">right</span><span class="p">)</span> <span class="err">\</span><span class="nf">left</span><span class="p">(</span> <span class="err">\</span><span class="nx">sum_</span><span class="p">{</span><span class="nx">k</span><span class="p">=</span><span class="mi">1</span><span class="p">}^</span><span class="nx">n</span> <span class="nx">b_k</span><span class="p">^</span><span class="mi">2</span> <span class="err">\</span><span class="nx">right</span><span class="p">)</span><span class="err">$$</span> </span></span><span class="line"><span class="cl"><span class="p">{{<</span> <span class="o">/</span><span class="nx">math</span> <span class="p">>}}</span></span></span></code></pre></div></div> </div> <div data-tab-item="partial" class="tab-content tab-panel-style cstyle initial"> <div class="tab-content-text"> <div class="wrap-code highlight"><pre tabindex="0" class="chroma"><code class="language-go" data-lang="go"><span class="line"><span class="cl"><span class="p">{{</span> <span class="nx">partial</span> <span class="s">"shortcodes/math.html"</span> <span class="p">(</span><span class="nx">dict</span> </span></span><span class="line"><span class="cl"> <span class="s">"page"</span> <span class="p">.</span> </span></span><span class="line"><span class="cl"> <span class="s">"content"</span> <span class="s">"$$left( \sum_{k=1}^n a_k b_k \right)^2 \leq \left( \sum_{k=1}^n a_k^2 \right) \left( \sum_{k=1}^n b_k^2 \right)$$"</span> </span></span><span class="line"><span class="cl"> <span class="s">"align"</span> <span class="s">"center"</span> </span></span><span class="line"><span class="cl"><span class="p">)}}</span></span></span></code></pre></div></div> </div> </div> </div> <h3 id="parameter">Parameter</h3> <table> <thead> <tr> <th>Name</th> <th>Default</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <td><strong>align</strong></td> <td><code>center</code></td> <td>Allowed values are <code>left</code>, <code>center</code> or <code>right</code>.</td> </tr> <tr> <td><em><strong><content></strong></em></td> <td><em><empty></em></td> <td>Your formuale.</td> </tr> </tbody> </table> <h2 id="configuration">Configuration</h2> <p>MathJax is configured with default settings. You can customize MathJax’s default settings for all of your files thru a JSON object in your <code>config.toml</code> or override these settings per page thru your pages frontmatter.</p> <p>The JSON object of your <code>config.toml</code> / frontmatter is forwarded into MathJax’s configuration object.</p> <p>See <a href="https://docs.mathjax.org/en/latest/options/index.html" target="_blank">MathJax documentation</a> for all allowed settings.</p> <div class="box notices cstyle note"> <div class="box-label"><i class="fa-fw fas fa-exclamation-circle"></i> Note</div> <div class="box-content"> <p>To use codefence syntax you have to turn off <code>guessSyntax</code> for the <code>markup.highlight</code> setting.</p> </div> </div> <h3 id="global-configuration-file">Global Configuration File</h3> <div class="wrap-code highlight"><pre tabindex="0" class="chroma"><code class="language-toml" data-lang="toml"><span class="line"><span class="cl"><span class="p">[</span><span class="nx">params</span><span class="p">]</span> </span></span><span class="line"><span class="cl"> <span class="nx">mathJaxInitialize</span> <span class="p">=</span> <span class="s2">"{ \"chtml\": { \"displayAlign\": \"left\" } }"</span> </span></span><span class="line"><span class="cl"> </span></span><span class="line"><span class="cl"><span class="p">[</span><span class="nx">markup</span><span class="p">]</span> </span></span><span class="line"><span class="cl"> <span class="p">[</span><span class="nx">markup</span><span class="p">.</span><span class="nx">highlight</span><span class="p">]</span> </span></span><span class="line"><span class="cl"> <span class="c"># if `guessSyntax = true`, there will be no unstyled code even if no language</span> </span></span><span class="line"><span class="cl"> <span class="c"># was given BUT Mermaid and Math codefences will not work anymore! So this is a</span> </span></span><span class="line"><span class="cl"> <span class="c"># mandatory setting for your site if you want to use Math codefences</span> </span></span><span class="line"><span class="cl"> <span class="nx">guessSyntax</span> <span class="p">=</span> <span class="kc">false</span></span></span></code></pre></div><h3 id="pages-frontmatter">Page’s Frontmatter</h3> <div class="wrap-code highlight"><pre tabindex="0" class="chroma"><code class="language-toml" data-lang="toml"><span class="line"><span class="cl"><span class="err">+++</span> </span></span><span class="line"><span class="cl"><span class="nx">mathJaxInitialize</span> <span class="p">=</span> <span class="s2">"{ \"chtml\": { \"displayAlign\": \"left\" } }"</span> </span></span><span class="line"><span class="cl"><span class="err">+++</span></span></span></code></pre></div><h2 id="examples">Examples</h2> <h3 id="inline-math">Inline Math</h3> <div class="wrap-code highlight"><pre tabindex="0" class="chroma"><code class="language-md" data-lang="md"><span class="line"><span class="cl">Inline math is generated if you use a single <span class="sb">`$`</span> as a delimiter around your formulae: {{<span class="p"><</span> <span class="nt">math</span> <span class="p">></span>}}$\sqrt{3}${{<span class="p"><</span> <span class="p">/</span><span class="nt">math</span> <span class="p">></span>}}</span></span></code></pre></div><p>Inline math is generated if you use a single <code>$</code> as a delimiter around your formulae: <span class="math align-center">$\sqrt{3}$</span></p> <h3 id="blocklevel-math-with-right-alignment">Blocklevel Math with Right Alignment</h3> <div class="wrap-code highlight"><pre tabindex="0" class="chroma"><code class="language-md" data-lang="md"><span class="line"><span class="cl">If you delimit your formulae by two consecutive <span class="sb">`$$`</span> it generates a new block. </span></span><span class="line"><span class="cl"> </span></span><span class="line"><span class="cl">{{<span class="p"><</span> <span class="nt">math</span> <span class="na">align</span><span class="o">=</span><span class="s">"right"</span> <span class="p">></span>}} </span></span><span class="line"><span class="cl">$$\left( \sum_{k=1}^n a_k b_k \right)^2 \leq \left( \sum_{k=1}^n a_k^2 \right) \left( \sum_{k=1}^n b_k^2 \right)$$ </span></span><span class="line"><span class="cl">{{<span class="p"><</span> <span class="p">/</span><span class="nt">math</span> <span class="p">></span>}}</span></span></code></pre></div><p>If you delimit your formulae by two consecutive <code>$$</code> it generates a new block.</p> <span class="math align-right"> $$\left( \sum_{k=1}^n a_k b_k \right)^2 \leq \left( \sum_{k=1}^n a_k^2 \right) \left( \sum_{k=1}^n b_k^2 \right)$$ </span> <h3 id="codefence">Codefence</h3> <p>You can also use codefences.</p> <div class="wrap-code highlight"><pre tabindex="0" class="chroma"><code class="language-md" data-lang="md"><span class="line"><span class="cl"><span class="s">```math </span></span></span><span class="line"><span class="cl"><span class="s"></span>$$\left( \sum_{k=1}^n a_k b_k \right)^2 \leq \left( \sum_{k=1}^n a_k^2 \right) \left( \sum_{k=1}^n b_k^2 \right)$$ </span></span><span class="line"><span class="cl"><span class="s">```</span></span></span></code></pre></div> <span class="math align-center">$$\left( \sum_{k=1}^n a_k b_k \right)^2 \leq \left( \sum_{k=1}^n a_k^2 \right) \left( \sum_{k=1}^n b_k^2 \right)$$</span><h3 id="chemical-formulae">Chemical Formulae</h3> <div class="wrap-code highlight"><pre tabindex="0" class="chroma"><code class="language-md" data-lang="md"><span class="line"><span class="cl">{{<span class="p"><</span> <span class="nt">math</span> <span class="p">></span>}} </span></span><span class="line"><span class="cl">$$\ce{Hg^2+ ->[I-] HgI2 ->[I-] [Hg^{II}I4]^2-}$$ </span></span><span class="line"><span class="cl">{{<span class="p"><</span> <span class="p">/</span><span class="nt">math</span> <span class="p">></span>}}</span></span></code></pre></div> <span class="math align-center"> $$\ce{Hg^2+ ->[I-] HgI2 ->[I-] [Hg^{II}I4]^2-}$$ </span> <footer class="footline"> </footer> </article> </div> </main> </div> <script src="../../js/clipboard.min.js?1697145019" defer></script> <script src="../../js/perfect-scrollbar.min.js?1697145019" defer></script> <script> function useMathJax( config ){ if( !Object.assign ){ return; } window.MathJax = Object.assign( window.MathJax || {}, { loader: { load: ['[tex]/mhchem'] }, startup: { elements: [ '.math' ] }, tex: { inlineMath: [ ['$', '$'], ['\\(', '\\)'] ] }, options: { enableMenu: false } }, config ); } useMathJax( JSON.parse( null ) ); </script> <script id="MathJax-script" async src="../../js/mathjax/tex-mml-chtml.js?1697145019"></script> <script src="../../js/theme.js?1697145019" defer></script> </body> </html>