[{"data":1,"prerenderedAt":74},["Reactive",2],{"blog-post-markdown-math-expressions-complete-guide":3},{"slug":4,"title":5,"description":6,"excerpt":7,"date":8,"category":9,"author":10,"keywords":11,"readingMinutes":12,"html":13,"headings":14,"tools":61,"related":63},"markdown-math-expressions-complete-guide","Math Expressions in Markdown: Complete LaTeX and MathJax Guide","Learn how to write mathematical equations and formulas in Markdown using LaTeX syntax, MathJax, and KaTeX. Includes examples for GitHub, Jekyll, and popular platforms.","Mathematical expressions are essential for technical documentation, academic papers, and scientific content. While standard Markdown doesn't natively support math rendering, you can display…","2025-08-11","Tutorial","Matthew Rathbone","markdown math, latex math markdown, mathjax markdown, katex markdown, mathematical expressions markdown, math formulas markdown",7,"\u003Cp>Mathematical expressions are essential for technical documentation, academic papers, and scientific content. While standard Markdown doesn&#39;t natively support math rendering, you can display beautiful mathematical formulas using LaTeX syntax combined with rendering engines like MathJax or KaTeX. This comprehensive guide covers everything you need to know about incorporating math expressions into your Markdown documents.\u003C/p>\n\u003Ch2 id=\"why-use-math-expressions-in-markdown\">Why Use Math Expressions in Markdown?\u003C/h2>\n\u003Cp>Mathematical notation in Markdown offers several advantages:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Cstrong>Professional Appearance\u003C/strong>: Render complex equations with proper formatting\u003C/li>\n\u003Cli>\u003Cstrong>Universal Syntax\u003C/strong>: LaTeX is the standard for mathematical typesetting\u003C/li>\n\u003Cli>\u003Cstrong>Version Control Friendly\u003C/strong>: Text-based formulas work well with Git\u003C/li>\n\u003Cli>\u003Cstrong>Cross-Platform Compatibility\u003C/strong>: Works across different documentation platforms\u003C/li>\n\u003Cli>\u003Cstrong>Accessibility\u003C/strong>: Screen readers can process mathematical content when properly structured\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"latex-math-syntax-basics\">LaTeX Math Syntax Basics\u003C/h2>\n\u003Cp>LaTeX provides a rich syntax for mathematical expressions. Here are the fundamental concepts:\u003C/p>\n\u003Ch3 id=\"inline-vs-block-math\">Inline vs Block Math\u003C/h3>\n\u003Cp>\u003Cstrong>Inline math\u003C/strong> appears within text using single dollar signs:\u003C/p>\n\u003Cpre>\u003Ccode class=\"hljs language-markdown\">The formula $E = mc^2$ represents mass-energy equivalence.\n\u003C/code>\u003C/pre>\u003Cp>\u003Cstrong>Block math\u003C/strong> is displayed on separate lines using double dollar signs:\u003C/p>\n\u003Cpre>\u003Ccode class=\"hljs language-markdown\">$$\nE = mc^2\n$$\n\u003C/code>\u003C/pre>\u003Ch3 id=\"common-mathematical-elements\">Common Mathematical Elements\u003C/h3>\n\u003Ch4 id=\"fractions\">Fractions\u003C/h4>\n\u003Cpre>\u003Ccode class=\"hljs language-latex\">\u003Cspan class=\"hljs-built_in\">$\u003C/span>\u003Cspan class=\"hljs-built_in\">$\u003C/span>\n\u003Cspan class=\"hljs-keyword\">\\frac\u003C/span>{a}{b} = \u003Cspan class=\"hljs-keyword\">\\frac\u003C/span>{numerator}{denominator}\n\u003Cspan class=\"hljs-built_in\">$\u003C/span>\u003Cspan class=\"hljs-built_in\">$\u003C/span>\n\u003C/code>\u003C/pre>\u003Ch4 id=\"exponents-and-subscripts\">Exponents and Subscripts\u003C/h4>\n\u003Cpre>\u003Ccode class=\"hljs language-latex\">\u003Cspan class=\"hljs-built_in\">$\u003C/span>\u003Cspan class=\"hljs-built_in\">$\u003C/span>\nx\u003Cspan class=\"hljs-built_in\">^\u003C/span>2 + y\u003Cspan class=\"hljs-built_in\">^\u003C/span>2 = z\u003Cspan class=\"hljs-built_in\">^\u003C/span>2\n\u003Cspan class=\"hljs-built_in\">$\u003C/span>\u003Cspan class=\"hljs-built_in\">$\u003C/span>\n\n\u003Cspan class=\"hljs-built_in\">$\u003C/span>\u003Cspan class=\"hljs-built_in\">$\u003C/span>\nH\u003Cspan class=\"hljs-built_in\">_\u003C/span>2O + CO\u003Cspan class=\"hljs-built_in\">_\u003C/span>2\n\u003Cspan class=\"hljs-built_in\">$\u003C/span>\u003Cspan class=\"hljs-built_in\">$\u003C/span>\n\u003C/code>\u003C/pre>\u003Ch4 id=\"greek-letters\">Greek Letters\u003C/h4>\n\u003Cpre>\u003Ccode class=\"hljs language-latex\">\u003Cspan class=\"hljs-built_in\">$\u003C/span>\u003Cspan class=\"hljs-built_in\">$\u003C/span>\n\u003Cspan class=\"hljs-keyword\">\\alpha\u003C/span>, \u003Cspan class=\"hljs-keyword\">\\beta\u003C/span>, \u003Cspan class=\"hljs-keyword\">\\gamma\u003C/span>, \u003Cspan class=\"hljs-keyword\">\\delta\u003C/span>, \u003Cspan class=\"hljs-keyword\">\\epsilon\u003C/span>, \u003Cspan class=\"hljs-keyword\">\\pi\u003C/span>, \u003Cspan class=\"hljs-keyword\">\\sigma\u003C/span>, \u003Cspan class=\"hljs-keyword\">\\omega\u003C/span>\n\u003Cspan class=\"hljs-built_in\">$\u003C/span>\u003Cspan class=\"hljs-built_in\">$\u003C/span>\n\u003C/code>\u003C/pre>\u003Ch4 id=\"square-roots\">Square Roots\u003C/h4>\n\u003Cpre>\u003Ccode class=\"hljs language-latex\">\u003Cspan class=\"hljs-built_in\">$\u003C/span>\u003Cspan class=\"hljs-built_in\">$\u003C/span>\n\u003Cspan class=\"hljs-keyword\">\\sqrt\u003C/span>{x} + \u003Cspan class=\"hljs-keyword\">\\sqrt\u003C/span>[3]{y}\n\u003Cspan class=\"hljs-built_in\">$\u003C/span>\u003Cspan class=\"hljs-built_in\">$\u003C/span>\n\u003C/code>\u003C/pre>\u003Ch2 id=\"platform-specific-implementation\">Platform-Specific Implementation\u003C/h2>\n\u003Ch3 id=\"github-and-gitlab\">GitHub and GitLab\u003C/h3>\n\u003Cp>GitHub recently added native support for math expressions:\u003C/p>\n\u003Cpre>\u003Ccode class=\"hljs language-markdown\">The quadratic formula is $x = \\frac{-b \\pm \\sqrt{b^2-4ac}}{2a}$.\n\n$$\n\\sum\u003Cspan class=\"hljs-emphasis\">_{i=1}^{n} x_\u003C/span>i = x\u003Cspan class=\"hljs-emphasis\">_1 + x_\u003C/span>2 + \\cdots + x\u003Cspan class=\"hljs-emphasis\">_n\n$$\u003C/span>\n\u003C/code>\u003C/pre>\u003Cp>GitHub uses MathJax for rendering, which supports most LaTeX math commands.\u003C/p>\n\u003Ch3 id=\"jekyll-and-github-pages\">Jekyll and GitHub Pages\u003C/h3>\n\u003Cp>For Jekyll sites, you can enable math support by adding MathJax to your layout:\u003C/p>\n\u003Cpre>\u003Ccode class=\"hljs language-html\">\u003Cspan class=\"hljs-comment\">&lt;!-- Add to _layouts/default.html or post.html --&gt;\u003C/span>\n\u003Cspan class=\"hljs-tag\">&lt;\u003Cspan class=\"hljs-name\">script\u003C/span> \u003Cspan class=\"hljs-attr\">type\u003C/span>=\u003Cspan class=\"hljs-string\">&quot;text/javascript&quot;\u003C/span> \u003Cspan class=\"hljs-attr\">async\u003C/span>\n  \u003Cspan class=\"hljs-attr\">src\u003C/span>=\u003Cspan class=\"hljs-string\">&quot;https://cdnjs.cloudflare.com/ajax/libs/mathjax/3.2.2/es5/tex-mml-chtml.js&quot;\u003C/span>&gt;\u003C/span>\n\u003Cspan class=\"hljs-tag\">&lt;/\u003Cspan class=\"hljs-name\">script\u003C/span>&gt;\u003C/span>\n\n\u003Cspan class=\"hljs-tag\">&lt;\u003Cspan class=\"hljs-name\">script\u003C/span> \u003Cspan class=\"hljs-attr\">type\u003C/span>=\u003Cspan class=\"hljs-string\">&quot;text/javascript&quot;\u003C/span>&gt;\u003C/span>\u003Cspan class=\"language-javascript\">\n  \u003Cspan class=\"hljs-variable language_\">window\u003C/span>.\u003Cspan class=\"hljs-property\">MathJax\u003C/span> = {\n    \u003Cspan class=\"hljs-attr\">tex\u003C/span>: {\n      \u003Cspan class=\"hljs-attr\">inlineMath\u003C/span>: [[\u003Cspan class=\"hljs-string\">&#x27;$&#x27;\u003C/span>, \u003Cspan class=\"hljs-string\">&#x27;$&#x27;\u003C/span>], [\u003Cspan class=\"hljs-string\">&#x27;\\\\(&#x27;\u003C/span>, \u003Cspan class=\"hljs-string\">&#x27;\\\\)&#x27;\u003C/span>]],\n      \u003Cspan class=\"hljs-attr\">displayMath\u003C/span>: [[\u003Cspan class=\"hljs-string\">&#x27;$$&#x27;\u003C/span>, \u003Cspan class=\"hljs-string\">&#x27;$$&#x27;\u003C/span>], [\u003Cspan class=\"hljs-string\">&#x27;\\\\[&#x27;\u003C/span>, \u003Cspan class=\"hljs-string\">&#x27;\\\\]&#x27;\u003C/span>]]\n    }\n  };\n\u003C/span>\u003Cspan class=\"hljs-tag\">&lt;/\u003Cspan class=\"hljs-name\">script\u003C/span>&gt;\u003C/span>\n\u003C/code>\u003C/pre>\u003Cp>If you&#39;d rather avoid a client-side JavaScript library entirely, the \u003Ca href=\"https://github.com/linjer/jekyll-katex\">\u003Ccode>jekyll-katex\u003C/code>\u003C/a> plugin renders LaTeX to static HTML at \u003Cem>build\u003C/em> time instead — no runtime script tag, no flash-of-unrendered-math on page load. Add it to your \u003Ccode>_config.yml\u003C/code>:\u003C/p>\n\u003Cpre>\u003Ccode class=\"hljs language-yaml\">\u003Cspan class=\"hljs-attr\">plugins:\u003C/span>\n  \u003Cspan class=\"hljs-bullet\">-\u003C/span> \u003Cspan class=\"hljs-string\">jekyll-katex\u003C/span>\n\n\u003Cspan class=\"hljs-attr\">kramdown:\u003C/span>\n  \u003Cspan class=\"hljs-attr\">math_engine:\u003C/span> \u003Cspan class=\"hljs-string\">katex\u003C/span>\n\u003C/code>\u003C/pre>\u003Cp>The tradeoff: build-time rendering means every formula gets baked into the HTML during \u003Ccode>jekyll build\u003C/code>, so there&#39;s no per-page JavaScript cost, but you also can&#39;t render math from JavaScript-injected content (e.g. content loaded after the page renders).\u003C/p>\n\u003Ch3 id=\"hugo-static-site-generator\">Hugo Static Site Generator\u003C/h3>\n\u003Cp>Hugo supports math rendering with KaTeX by default:\u003C/p>\n\u003Cpre>\u003Ccode class=\"hljs language-yaml\">\u003Cspan class=\"hljs-comment\"># In config.yml\u003C/span>\n\u003Cspan class=\"hljs-attr\">markup:\u003C/span>\n  \u003Cspan class=\"hljs-attr\">goldmark:\u003C/span>\n    \u003Cspan class=\"hljs-attr\">renderer:\u003C/span>\n      \u003Cspan class=\"hljs-attr\">unsafe:\u003C/span> \u003Cspan class=\"hljs-literal\">true\u003C/span>\n  \u003Cspan class=\"hljs-attr\">highlight:\u003C/span>\n    \u003Cspan class=\"hljs-attr\">style:\u003C/span> \u003Cspan class=\"hljs-string\">github\u003C/span>\n    \u003Cspan class=\"hljs-attr\">lineNos:\u003C/span> \u003Cspan class=\"hljs-literal\">true\u003C/span>\n\n\u003Cspan class=\"hljs-attr\">params:\u003C/span>\n  \u003Cspan class=\"hljs-attr\">math:\u003C/span> \u003Cspan class=\"hljs-literal\">true\u003C/span>\n\u003C/code>\u003C/pre>\u003Ch3 id=\"notion\">Notion\u003C/h3>\n\u003Cp>Notion supports LaTeX math using the \u003Ccode>/math\u003C/code> command or by typing \u003Ccode>$$\u003C/code>:\u003C/p>\n\u003Cpre>\u003Ccode class=\"hljs language-markdown\">$$\n\\int\u003Cspan class=\"hljs-emphasis\">_0^\\infty e^{-x^2} dx = \\frac{\\sqrt{\\pi}}{2}\n$$\u003C/span>\n\u003C/code>\u003C/pre>\u003Ch2 id=\"advanced-mathematical-expressions\">Advanced Mathematical Expressions\u003C/h2>\n\u003Ch3 id=\"matrices-and-vectors\">Matrices and Vectors\u003C/h3>\n\u003Cpre>\u003Ccode class=\"hljs language-latex\">\u003Cspan class=\"hljs-built_in\">$\u003C/span>\u003Cspan class=\"hljs-built_in\">$\u003C/span>\nA = \u003Cspan class=\"hljs-keyword\">\\begin\u003C/span>{pmatrix}\na \u003Cspan class=\"hljs-built_in\">&amp;\u003C/span> b \u003Cspan class=\"hljs-keyword\">\\\\\u003C/span>\nc \u003Cspan class=\"hljs-built_in\">&amp;\u003C/span> d\n\u003Cspan class=\"hljs-keyword\">\\end\u003C/span>{pmatrix}\n\u003Cspan class=\"hljs-built_in\">$\u003C/span>\u003Cspan class=\"hljs-built_in\">$\u003C/span>\n\u003C/code>\u003C/pre>\u003Cp>A determinant uses the same row/column layout, just with \u003Ccode>\\vmatrix\u003C/code> instead of \u003Ccode>\\pmatrix\u003C/code>:\u003C/p>\n\u003Cpre>\u003Ccode class=\"hljs language-latex\">\u003Cspan class=\"hljs-built_in\">$\u003C/span>\u003Cspan class=\"hljs-built_in\">$\u003C/span>\n\u003Cspan class=\"hljs-keyword\">\\det\u003C/span>(A) = \u003Cspan class=\"hljs-keyword\">\\begin\u003C/span>{vmatrix}\na \u003Cspan class=\"hljs-built_in\">&amp;\u003C/span> b \u003Cspan class=\"hljs-keyword\">\\\\\u003C/span>\nc \u003Cspan class=\"hljs-built_in\">&amp;\u003C/span> d\n\u003Cspan class=\"hljs-keyword\">\\end\u003C/span>{vmatrix} = ad - bc\n\u003Cspan class=\"hljs-built_in\">$\u003C/span>\u003Cspan class=\"hljs-built_in\">$\u003C/span>\n\u003C/code>\u003C/pre>\u003Cp>Vectors are typically written with an arrow (\u003Ccode>\\vec{}\u003C/code>) or bold (\u003Ccode>\\mathbf{}\u003C/code>):\u003C/p>\n\u003Cpre>\u003Ccode class=\"hljs language-latex\">\u003Cspan class=\"hljs-built_in\">$\u003C/span>\u003Cspan class=\"hljs-built_in\">$\u003C/span>\n\u003Cspan class=\"hljs-keyword\">\\vec\u003C/span>{v} = \u003Cspan class=\"hljs-keyword\">\\langle\u003C/span> v\u003Cspan class=\"hljs-built_in\">_\u003C/span>1, v\u003Cspan class=\"hljs-built_in\">_\u003C/span>2, v\u003Cspan class=\"hljs-built_in\">_\u003C/span>3 \u003Cspan class=\"hljs-keyword\">\\rangle\u003C/span> = v\u003Cspan class=\"hljs-built_in\">_\u003C/span>1\u003Cspan class=\"hljs-keyword\">\\hat\u003C/span>{i} + v\u003Cspan class=\"hljs-built_in\">_\u003C/span>2\u003Cspan class=\"hljs-keyword\">\\hat\u003C/span>{j} + v\u003Cspan class=\"hljs-built_in\">_\u003C/span>3\u003Cspan class=\"hljs-keyword\">\\hat\u003C/span>{k}\n\u003Cspan class=\"hljs-built_in\">$\u003C/span>\u003Cspan class=\"hljs-built_in\">$\u003C/span>\n\u003C/code>\u003C/pre>\u003Ch3 id=\"systems-of-equations\">Systems of Equations\u003C/h3>\n\u003Cpre>\u003Ccode class=\"hljs language-latex\">\u003Cspan class=\"hljs-built_in\">$\u003C/span>\u003Cspan class=\"hljs-built_in\">$\u003C/span>\n\u003Cspan class=\"hljs-keyword\">\\begin\u003C/span>{cases}\nx + y = 5 \u003Cspan class=\"hljs-keyword\">\\\\\u003C/span>\n2x - y = 1\n\u003Cspan class=\"hljs-keyword\">\\end\u003C/span>{cases}\n\u003Cspan class=\"hljs-built_in\">$\u003C/span>\u003Cspan class=\"hljs-built_in\">$\u003C/span>\n\u003C/code>\u003C/pre>\u003Ch3 id=\"integrals-and-derivatives\">Integrals and Derivatives\u003C/h3>\n\u003Cpre>\u003Ccode class=\"hljs language-latex\">\u003Cspan class=\"hljs-built_in\">$\u003C/span>\u003Cspan class=\"hljs-built_in\">$\u003C/span>\n\u003Cspan class=\"hljs-keyword\">\\frac\u003C/span>{d}{dx}\u003Cspan class=\"hljs-keyword\">\\int\u003C/span>\u003Cspan class=\"hljs-built_in\">_\u003C/span>a\u003Cspan class=\"hljs-built_in\">^\u003C/span>x f(t)dt = f(x)\n\u003Cspan class=\"hljs-built_in\">$\u003C/span>\u003Cspan class=\"hljs-built_in\">$\u003C/span>\n\n\u003Cspan class=\"hljs-built_in\">$\u003C/span>\u003Cspan class=\"hljs-built_in\">$\u003C/span>\n\u003Cspan class=\"hljs-keyword\">\\int\u003C/span>\u003Cspan class=\"hljs-built_in\">_\u003C/span>0\u003Cspan class=\"hljs-built_in\">^\u003C/span>{\u003Cspan class=\"hljs-keyword\">\\pi\u003C/span>} \u003Cspan class=\"hljs-keyword\">\\sin\u003C/span>(x) dx = 2\n\u003Cspan class=\"hljs-built_in\">$\u003C/span>\u003Cspan class=\"hljs-built_in\">$\u003C/span>\n\u003C/code>\u003C/pre>\u003Ch3 id=\"summations-and-products\">Summations and Products\u003C/h3>\n\u003Cpre>\u003Ccode class=\"hljs language-latex\">\u003Cspan class=\"hljs-built_in\">$\u003C/span>\u003Cspan class=\"hljs-built_in\">$\u003C/span>\n\u003Cspan class=\"hljs-keyword\">\\sum\u003C/span>\u003Cspan class=\"hljs-built_in\">_\u003C/span>{i=1}\u003Cspan class=\"hljs-built_in\">^\u003C/span>{n} i = \u003Cspan class=\"hljs-keyword\">\\frac\u003C/span>{n(n+1)}{2}\n\u003Cspan class=\"hljs-built_in\">$\u003C/span>\u003Cspan class=\"hljs-built_in\">$\u003C/span>\n\n\u003Cspan class=\"hljs-built_in\">$\u003C/span>\u003Cspan class=\"hljs-built_in\">$\u003C/span>\n\u003Cspan class=\"hljs-keyword\">\\prod\u003C/span>\u003Cspan class=\"hljs-built_in\">_\u003C/span>{i=1}\u003Cspan class=\"hljs-built_in\">^\u003C/span>{n} i = n!\n\u003Cspan class=\"hljs-built_in\">$\u003C/span>\u003Cspan class=\"hljs-built_in\">$\u003C/span>\n\u003C/code>\u003C/pre>\u003Ch3 id=\"limits\">Limits\u003C/h3>\n\u003Cpre>\u003Ccode class=\"hljs language-latex\">\u003Cspan class=\"hljs-built_in\">$\u003C/span>\u003Cspan class=\"hljs-built_in\">$\u003C/span>\n\u003Cspan class=\"hljs-keyword\">\\lim\u003C/span>\u003Cspan class=\"hljs-built_in\">_\u003C/span>{x \u003Cspan class=\"hljs-keyword\">\\to\u003C/span> \u003Cspan class=\"hljs-keyword\">\\infty\u003C/span>} \u003Cspan class=\"hljs-keyword\">\\frac\u003C/span>{1}{x} = 0\n\u003Cspan class=\"hljs-built_in\">$\u003C/span>\u003Cspan class=\"hljs-built_in\">$\u003C/span>\n\u003C/code>\u003C/pre>\u003Ch2 id=\"chemistry-and-physics-notation\">Chemistry and Physics Notation\u003C/h2>\n\u003Ch3 id=\"chemical-formulas\">Chemical Formulas\u003C/h3>\n\u003Cpre>\u003Ccode class=\"hljs language-latex\">\u003Cspan class=\"hljs-built_in\">$\u003C/span>\u003Cspan class=\"hljs-built_in\">$\u003C/span>\n\u003Cspan class=\"hljs-keyword\">\\ce\u003C/span>{H2SO4 + 2NaOH -&gt; Na2SO4 + 2H2O}\n\u003Cspan class=\"hljs-built_in\">$\u003C/span>\u003Cspan class=\"hljs-built_in\">$\u003C/span>\n\u003C/code>\u003C/pre>\u003Ch3 id=\"physics-equations\">Physics Equations\u003C/h3>\n\u003Cpre>\u003Ccode class=\"hljs language-latex\">\u003Cspan class=\"hljs-built_in\">$\u003C/span>\u003Cspan class=\"hljs-built_in\">$\u003C/span>\nF = ma = \u003Cspan class=\"hljs-keyword\">\\frac\u003C/span>{dp}{dt}\n\u003Cspan class=\"hljs-built_in\">$\u003C/span>\u003Cspan class=\"hljs-built_in\">$\u003C/span>\n\n\u003Cspan class=\"hljs-built_in\">$\u003C/span>\u003Cspan class=\"hljs-built_in\">$\u003C/span>\n\u003Cspan class=\"hljs-keyword\">\\nabla\u003C/span> \u003Cspan class=\"hljs-keyword\">\\cdot\u003C/span> \u003Cspan class=\"hljs-keyword\">\\vec\u003C/span>{E} = \u003Cspan class=\"hljs-keyword\">\\frac\u003C/span>{\u003Cspan class=\"hljs-keyword\">\\rho\u003C/span>}{\u003Cspan class=\"hljs-keyword\">\\epsilon\u003C/span>\u003Cspan class=\"hljs-built_in\">_\u003C/span>0}\n\u003Cspan class=\"hljs-built_in\">$\u003C/span>\u003Cspan class=\"hljs-built_in\">$\u003C/span>\n\u003C/code>\u003C/pre>\u003Ch2 id=\"statistics-and-probability-notation\">Statistics and Probability Notation\u003C/h2>\n\u003Cp>If your documentation covers data science or experiment results, these come up constantly:\u003C/p>\n\u003Cpre>\u003Ccode class=\"hljs language-latex\">\u003Cspan class=\"hljs-built_in\">$\u003C/span>\u003Cspan class=\"hljs-built_in\">$\u003C/span>\nf(x) = \u003Cspan class=\"hljs-keyword\">\\frac\u003C/span>{1}{\u003Cspan class=\"hljs-keyword\">\\sigma\u003C/span>\u003Cspan class=\"hljs-keyword\">\\sqrt\u003C/span>{2\u003Cspan class=\"hljs-keyword\">\\pi\u003C/span>}} e\u003Cspan class=\"hljs-built_in\">^\u003C/span>{-\u003Cspan class=\"hljs-keyword\">\\frac\u003C/span>{1}{2}\u003Cspan class=\"hljs-keyword\">\\left\u003C/span>(\u003Cspan class=\"hljs-keyword\">\\frac\u003C/span>{x-\u003Cspan class=\"hljs-keyword\">\\mu\u003C/span>}{\u003Cspan class=\"hljs-keyword\">\\sigma\u003C/span>}\u003Cspan class=\"hljs-keyword\">\\right\u003C/span>)\u003Cspan class=\"hljs-built_in\">^\u003C/span>2}\n\u003Cspan class=\"hljs-built_in\">$\u003C/span>\u003Cspan class=\"hljs-built_in\">$\u003C/span>\n\u003C/code>\u003C/pre>\u003Cp>The normal distribution above, alongside Bayes&#39; theorem, are probably the two most commonly embedded formulas in technical blog posts and papers:\u003C/p>\n\u003Cpre>\u003Ccode class=\"hljs language-latex\">\u003Cspan class=\"hljs-built_in\">$\u003C/span>\u003Cspan class=\"hljs-built_in\">$\u003C/span>\nP(A|B) = \u003Cspan class=\"hljs-keyword\">\\frac\u003C/span>{P(B|A) \u003Cspan class=\"hljs-keyword\">\\cdot\u003C/span> P(A)}{P(B)}\n\u003Cspan class=\"hljs-built_in\">$\u003C/span>\u003Cspan class=\"hljs-built_in\">$\u003C/span>\n\u003C/code>\u003C/pre>\u003Cp>Sample statistics tend to use overline/bar notation for means and subscripted sums:\u003C/p>\n\u003Cpre>\u003Ccode class=\"hljs language-latex\">\u003Cspan class=\"hljs-built_in\">$\u003C/span>\u003Cspan class=\"hljs-built_in\">$\u003C/span>\n\u003Cspan class=\"hljs-keyword\">\\bar\u003C/span>{x} = \u003Cspan class=\"hljs-keyword\">\\frac\u003C/span>{1}{n}\u003Cspan class=\"hljs-keyword\">\\sum\u003C/span>\u003Cspan class=\"hljs-built_in\">_\u003C/span>{i=1}\u003Cspan class=\"hljs-built_in\">^\u003C/span>{n} x\u003Cspan class=\"hljs-built_in\">_\u003C/span>i \u003Cspan class=\"hljs-keyword\">\\qquad\u003C/span> s\u003Cspan class=\"hljs-built_in\">^\u003C/span>2 = \u003Cspan class=\"hljs-keyword\">\\frac\u003C/span>{1}{n-1}\u003Cspan class=\"hljs-keyword\">\\sum\u003C/span>\u003Cspan class=\"hljs-built_in\">_\u003C/span>{i=1}\u003Cspan class=\"hljs-built_in\">^\u003C/span>{n}(x\u003Cspan class=\"hljs-built_in\">_\u003C/span>i - \u003Cspan class=\"hljs-keyword\">\\bar\u003C/span>{x})\u003Cspan class=\"hljs-built_in\">^\u003C/span>2\n\u003Cspan class=\"hljs-built_in\">$\u003C/span>\u003Cspan class=\"hljs-built_in\">$\u003C/span>\n\u003C/code>\u003C/pre>\u003Ch2 id=\"computer-science-and-algorithm-notation\">Computer Science and Algorithm Notation\u003C/h2>\n\u003Cp>Since this is a developer-focused site, it&#39;s worth calling out the notation you&#39;ll actually use when documenting algorithms rather than academic papers.\u003C/p>\n\u003Cp>\u003Cstrong>Big O notation\u003C/strong> is just inline math — no special syntax needed beyond the usual dollar-sign delimiters:\u003C/p>\n\u003Cpre>\u003Ccode class=\"hljs language-markdown\">\u003Cspan class=\"hljs-bullet\">-\u003C/span> Constant: $O(1)$\n\u003Cspan class=\"hljs-bullet\">-\u003C/span> Logarithmic: $O(\\log n)$\n\u003Cspan class=\"hljs-bullet\">-\u003C/span> Linear: $O(n)$\n\u003Cspan class=\"hljs-bullet\">-\u003C/span> Linearithmic: $O(n \\log n)$\n\u003Cspan class=\"hljs-bullet\">-\u003C/span> Quadratic: $O(n^2)$\n\u003Cspan class=\"hljs-bullet\">-\u003C/span> Exponential: $O(2^n)$\n\u003C/code>\u003C/pre>\u003Cp>Recurrence relations (for documenting recursive algorithm complexity) use the \u003Ccode>cases\u003C/code> environment, the same one shown in the systems-of-equations example above:\u003C/p>\n\u003Cpre>\u003Ccode class=\"hljs language-latex\">\u003Cspan class=\"hljs-built_in\">$\u003C/span>\u003Cspan class=\"hljs-built_in\">$\u003C/span>\nT(n) = \u003Cspan class=\"hljs-keyword\">\\begin\u003C/span>{cases}\n2T(n/2) + O(n) \u003Cspan class=\"hljs-built_in\">&amp;\u003C/span> \u003Cspan class=\"hljs-keyword\">\\text\u003C/span>{if } n &gt; 1 \u003Cspan class=\"hljs-keyword\">\\\\\u003C/span>\nO(1) \u003Cspan class=\"hljs-built_in\">&amp;\u003C/span> \u003Cspan class=\"hljs-keyword\">\\text\u003C/span>{if } n = 1\n\u003Cspan class=\"hljs-keyword\">\\end\u003C/span>{cases}\n\u003Cspan class=\"hljs-built_in\">$\u003C/span>\u003Cspan class=\"hljs-built_in\">$\u003C/span>\n\u003C/code>\u003C/pre>\u003Ch2 id=\"troubleshooting-common-issues\">Troubleshooting Common Issues\u003C/h2>\n\u003Ch3 id=\"escaping-special-characters\">Escaping Special Characters\u003C/h3>\n\u003Cp>\u003Cstrong>Problem\u003C/strong>: Underscores and other special characters breaking math rendering\u003C/p>\n\u003Cp>\u003Cstrong>Solution\u003C/strong>: Use backslashes to escape characters:\u003C/p>\n\u003Cpre>\u003Ccode class=\"hljs language-latex\">\u003Cspan class=\"hljs-built_in\">$\u003C/span>\u003Cspan class=\"hljs-built_in\">$\u003C/span>\n\u003Cspan class=\"hljs-keyword\">\\text\u003C/span>{variable\u003Cspan class=\"hljs-keyword\">\\_\u003C/span>name} = x\u003Cspan class=\"hljs-keyword\">\\_\u003C/span>1 + x\u003Cspan class=\"hljs-keyword\">\\_\u003C/span>2\n\u003Cspan class=\"hljs-built_in\">$\u003C/span>\u003Cspan class=\"hljs-built_in\">$\u003C/span>\n\u003C/code>\u003C/pre>\u003Ch3 id=\"line-breaks-in-equations\">Line Breaks in Equations\u003C/h3>\n\u003Cp>\u003Cstrong>Problem\u003C/strong>: Long equations extending beyond page width\u003C/p>\n\u003Cp>\u003Cstrong>Solution\u003C/strong>: Use alignment environments:\u003C/p>\n\u003Cpre>\u003Ccode class=\"hljs language-latex\">\u003Cspan class=\"hljs-built_in\">$\u003C/span>\u003Cspan class=\"hljs-built_in\">$\u003C/span>\n\u003Cspan class=\"hljs-keyword\">\\begin\u003C/span>{align}\nf(x) \u003Cspan class=\"hljs-built_in\">&amp;\u003C/span>= ax\u003Cspan class=\"hljs-built_in\">^\u003C/span>2 + bx + c \u003Cspan class=\"hljs-keyword\">\\\\\u003C/span>\n     \u003Cspan class=\"hljs-built_in\">&amp;\u003C/span>= a(x\u003Cspan class=\"hljs-built_in\">^\u003C/span>2 + \u003Cspan class=\"hljs-keyword\">\\frac\u003C/span>{b}{a}x) + c \u003Cspan class=\"hljs-keyword\">\\\\\u003C/span>\n     \u003Cspan class=\"hljs-built_in\">&amp;\u003C/span>= a(x + \u003Cspan class=\"hljs-keyword\">\\frac\u003C/span>{b}{2a})\u003Cspan class=\"hljs-built_in\">^\u003C/span>2 - \u003Cspan class=\"hljs-keyword\">\\frac\u003C/span>{b\u003Cspan class=\"hljs-built_in\">^\u003C/span>2}{4a} + c\n\u003Cspan class=\"hljs-keyword\">\\end\u003C/span>{align}\n\u003Cspan class=\"hljs-built_in\">$\u003C/span>\u003Cspan class=\"hljs-built_in\">$\u003C/span>\n\u003C/code>\u003C/pre>\u003Ch3 id=\"platform-compatibility\">Platform Compatibility\u003C/h3>\n\u003Cp>\u003Cstrong>Problem\u003C/strong>: Math renders differently across platforms\u003C/p>\n\u003Cp>\u003Cstrong>Solution\u003C/strong>: Test your expressions on target platforms and use widely supported LaTeX commands:\u003C/p>\n\u003Cpre>\u003Ccode class=\"hljs language-latex\">&lt;!-- Use standard commands for better compatibility --&gt;\n\u003Cspan class=\"hljs-keyword\">\\sum\u003C/span>, \u003Cspan class=\"hljs-keyword\">\\int\u003C/span>, \u003Cspan class=\"hljs-keyword\">\\frac\u003C/span>, \u003Cspan class=\"hljs-keyword\">\\sqrt\u003C/span>, \u003Cspan class=\"hljs-keyword\">\\sin\u003C/span>, \u003Cspan class=\"hljs-keyword\">\\cos\u003C/span>, \u003Cspan class=\"hljs-keyword\">\\log\u003C/span>\n\u003C/code>\u003C/pre>\u003Ch2 id=\"best-practices\">Best Practices\u003C/h2>\n\u003Ch3 id=\"readability-guidelines\">Readability Guidelines\u003C/h3>\n\u003Col>\n\u003Cli>\u003Cstrong>Use Descriptive Text\u003C/strong>: Explain complex equations in surrounding text\u003C/li>\n\u003Cli>\u003Cstrong>Consistent Notation\u003C/strong>: Maintain consistent variable naming throughout documents\u003C/li>\n\u003Cli>\u003Cstrong>Proper Spacing\u003C/strong>: Use \u003Ccode>\\,\u003C/code> for thin spaces and \u003Ccode>\\quad\u003C/code> for wider spaces\u003C/li>\n\u003Cli>\u003Cstrong>Clear Structure\u003C/strong>: Break complex expressions into multiple steps\u003C/li>\n\u003C/ol>\n\u003Ch3 id=\"performance-considerations\">Performance Considerations\u003C/h3>\n\u003Cpre>\u003Ccode class=\"hljs language-html\">\u003Cspan class=\"hljs-comment\">&lt;!-- Preload MathJax for better performance --&gt;\u003C/span>\n\u003Cspan class=\"hljs-tag\">&lt;\u003Cspan class=\"hljs-name\">link\u003C/span> \u003Cspan class=\"hljs-attr\">rel\u003C/span>=\u003Cspan class=\"hljs-string\">&quot;preload&quot;\u003C/span> \u003Cspan class=\"hljs-attr\">href\u003C/span>=\u003Cspan class=\"hljs-string\">&quot;https://polyfill.io/v3/polyfill.min.js?features=es6&quot;\u003C/span> \u003Cspan class=\"hljs-attr\">as\u003C/span>=\u003Cspan class=\"hljs-string\">&quot;script&quot;\u003C/span>&gt;\u003C/span>\n\u003Cspan class=\"hljs-tag\">&lt;\u003Cspan class=\"hljs-name\">link\u003C/span> \u003Cspan class=\"hljs-attr\">rel\u003C/span>=\u003Cspan class=\"hljs-string\">&quot;preload&quot;\u003C/span> \u003Cspan class=\"hljs-attr\">href\u003C/span>=\u003Cspan class=\"hljs-string\">&quot;https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js&quot;\u003C/span> \u003Cspan class=\"hljs-attr\">as\u003C/span>=\u003Cspan class=\"hljs-string\">&quot;script&quot;\u003C/span>&gt;\u003C/span>\n\u003C/code>\u003C/pre>\u003Ch3 id=\"accessibility\">Accessibility\u003C/h3>\n\u003Cpre>\u003Ccode class=\"hljs language-latex\">&lt;!-- Use \u003Cspan class=\"hljs-keyword\">\\text\u003C/span>{} for descriptive text within formulas --&gt;\n\u003Cspan class=\"hljs-built_in\">$\u003C/span>\u003Cspan class=\"hljs-built_in\">$\u003C/span>\nP(\u003Cspan class=\"hljs-keyword\">\\text\u003C/span>{success}) = \u003Cspan class=\"hljs-keyword\">\\frac\u003C/span>{\u003Cspan class=\"hljs-keyword\">\\text\u003C/span>{favorable outcomes}}{\u003Cspan class=\"hljs-keyword\">\\text\u003C/span>{total outcomes}}\n\u003Cspan class=\"hljs-built_in\">$\u003C/span>\u003Cspan class=\"hljs-built_in\">$\u003C/span>\n\u003C/code>\u003C/pre>\u003Ch2 id=\"rendering-engines-comparison\">Rendering Engines Comparison\u003C/h2>\n\u003Ch3 id=\"mathjax\">MathJax\u003C/h3>\n\u003Cp>\u003Cstrong>Pros\u003C/strong>:\u003C/p>\n\u003Cul>\n\u003Cli>Excellent LaTeX compatibility\u003C/li>\n\u003Cli>High-quality rendering\u003C/li>\n\u003Cli>Wide platform support\u003C/li>\n\u003C/ul>\n\u003Cp>\u003Cstrong>Cons\u003C/strong>:\u003C/p>\n\u003Cul>\n\u003Cli>Larger file size\u003C/li>\n\u003Cli>Slower initial load\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"katex\">KaTeX\u003C/h3>\n\u003Cp>\u003Cstrong>Pros\u003C/strong>:\u003C/p>\n\u003Cul>\n\u003Cli>Faster rendering\u003C/li>\n\u003Cli>Smaller bundle size\u003C/li>\n\u003Cli>Server-side rendering support\u003C/li>\n\u003C/ul>\n\u003Cp>\u003Cstrong>Cons\u003C/strong>:\u003C/p>\n\u003Cul>\n\u003Cli>Limited LaTeX command support\u003C/li>\n\u003Cli>Fewer advanced features\u003C/li>\n\u003C/ul>\n\u003Ch3 id=\"implementation-example\">Implementation Example\u003C/h3>\n\u003Cpre>\u003Ccode class=\"hljs language-html\">\u003Cspan class=\"hljs-comment\">&lt;!-- MathJax --&gt;\u003C/span>\n\u003Cspan class=\"hljs-tag\">&lt;\u003Cspan class=\"hljs-name\">script\u003C/span> \u003Cspan class=\"hljs-attr\">src\u003C/span>=\u003Cspan class=\"hljs-string\">&quot;https://polyfill.io/v3/polyfill.min.js?features=es6&quot;\u003C/span>&gt;\u003C/span>\u003Cspan class=\"hljs-tag\">&lt;/\u003Cspan class=\"hljs-name\">script\u003C/span>&gt;\u003C/span>\n\u003Cspan class=\"hljs-tag\">&lt;\u003Cspan class=\"hljs-name\">script\u003C/span> \u003Cspan class=\"hljs-attr\">id\u003C/span>=\u003Cspan class=\"hljs-string\">&quot;MathJax-script&quot;\u003C/span> \u003Cspan class=\"hljs-attr\">async\u003C/span> \u003Cspan class=\"hljs-attr\">src\u003C/span>=\u003Cspan class=\"hljs-string\">&quot;https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js&quot;\u003C/span>&gt;\u003C/span>\u003Cspan class=\"hljs-tag\">&lt;/\u003Cspan class=\"hljs-name\">script\u003C/span>&gt;\u003C/span>\n\n\u003Cspan class=\"hljs-comment\">&lt;!-- KaTeX --&gt;\u003C/span>\n\u003Cspan class=\"hljs-tag\">&lt;\u003Cspan class=\"hljs-name\">link\u003C/span> \u003Cspan class=\"hljs-attr\">rel\u003C/span>=\u003Cspan class=\"hljs-string\">&quot;stylesheet&quot;\u003C/span> \u003Cspan class=\"hljs-attr\">href\u003C/span>=\u003Cspan class=\"hljs-string\">&quot;https://cdn.jsdelivr.net/npm/katex@0.16.4/dist/katex.min.css&quot;\u003C/span>&gt;\u003C/span>\n\u003Cspan class=\"hljs-tag\">&lt;\u003Cspan class=\"hljs-name\">script\u003C/span> \u003Cspan class=\"hljs-attr\">defer\u003C/span> \u003Cspan class=\"hljs-attr\">src\u003C/span>=\u003Cspan class=\"hljs-string\">&quot;https://cdn.jsdelivr.net/npm/katex@0.16.4/dist/katex.min.js&quot;\u003C/span>&gt;\u003C/span>\u003Cspan class=\"hljs-tag\">&lt;/\u003Cspan class=\"hljs-name\">script\u003C/span>&gt;\u003C/span>\n\u003Cspan class=\"hljs-tag\">&lt;\u003Cspan class=\"hljs-name\">script\u003C/span> \u003Cspan class=\"hljs-attr\">defer\u003C/span> \u003Cspan class=\"hljs-attr\">src\u003C/span>=\u003Cspan class=\"hljs-string\">&quot;https://cdn.jsdelivr.net/npm/katex@0.16.4/dist/contrib/auto-render.min.js&quot;\u003C/span>&gt;\u003C/span>\u003Cspan class=\"hljs-tag\">&lt;/\u003Cspan class=\"hljs-name\">script\u003C/span>&gt;\u003C/span>\n\u003C/code>\u003C/pre>\u003Ch2 id=\"real-world-examples\">Real-World Examples\u003C/h2>\n\u003Ch3 id=\"statistical-formulas\">Statistical Formulas\u003C/h3>\n\u003Cpre>\u003Ccode class=\"hljs language-latex\">\u003Cspan class=\"hljs-built_in\">$\u003C/span>\u003Cspan class=\"hljs-built_in\">$\u003C/span>\n\u003Cspan class=\"hljs-keyword\">\\sigma\u003C/span> = \u003Cspan class=\"hljs-keyword\">\\sqrt\u003C/span>{\u003Cspan class=\"hljs-keyword\">\\frac\u003C/span>{\u003Cspan class=\"hljs-keyword\">\\sum\u003C/span>\u003Cspan class=\"hljs-built_in\">_\u003C/span>{i=1}\u003Cspan class=\"hljs-built_in\">^\u003C/span>{n}(x\u003Cspan class=\"hljs-built_in\">_\u003C/span>i - \u003Cspan class=\"hljs-keyword\">\\mu\u003C/span>)\u003Cspan class=\"hljs-built_in\">^\u003C/span>2}{n}}\n\u003Cspan class=\"hljs-built_in\">$\u003C/span>\u003Cspan class=\"hljs-built_in\">$\u003C/span>\n\u003C/code>\u003C/pre>\u003Ch3 id=\"machine-learning\">Machine Learning\u003C/h3>\n\u003Cpre>\u003Ccode class=\"hljs language-latex\">\u003Cspan class=\"hljs-built_in\">$\u003C/span>\u003Cspan class=\"hljs-built_in\">$\u003C/span>\nJ(\u003Cspan class=\"hljs-keyword\">\\theta\u003C/span>) = \u003Cspan class=\"hljs-keyword\">\\frac\u003C/span>{1}{2m}\u003Cspan class=\"hljs-keyword\">\\sum\u003C/span>\u003Cspan class=\"hljs-built_in\">_\u003C/span>{i=1}\u003Cspan class=\"hljs-built_in\">^\u003C/span>{m}(h\u003Cspan class=\"hljs-built_in\">_\u003C/span>\u003Cspan class=\"hljs-keyword\">\\theta\u003C/span>(x\u003Cspan class=\"hljs-built_in\">^\u003C/span>{(i)}) - y\u003Cspan class=\"hljs-built_in\">^\u003C/span>{(i)})\u003Cspan class=\"hljs-built_in\">^\u003C/span>2\n\u003Cspan class=\"hljs-built_in\">$\u003C/span>\u003Cspan class=\"hljs-built_in\">$\u003C/span>\n\u003C/code>\u003C/pre>\u003Ch3 id=\"calculus\">Calculus\u003C/h3>\n\u003Cpre>\u003Ccode class=\"hljs language-latex\">\u003Cspan class=\"hljs-built_in\">$\u003C/span>\u003Cspan class=\"hljs-built_in\">$\u003C/span>\n\u003Cspan class=\"hljs-keyword\">\\frac\u003C/span>{d}{dx}[f(g(x))] = f&#x27;(g(x)) \u003Cspan class=\"hljs-keyword\">\\cdot\u003C/span> g&#x27;(x)\n\u003Cspan class=\"hljs-built_in\">$\u003C/span>\u003Cspan class=\"hljs-built_in\">$\u003C/span>\n\u003C/code>\u003C/pre>\u003Ch3 id=\"worked-example-a-multi-step-derivation\">Worked Example: A Multi-Step Derivation\u003C/h3>\n\u003Cp>For documentation that walks readers through a proof or derivation rather than just stating a result, break it into steps with a \u003Ccode>$$\u003C/code> block per step. Here&#39;s the quadratic formula derived by completing the square:\u003C/p>\n\u003Cpre>\u003Ccode class=\"hljs language-markdown\">Starting with the general quadratic equation:\n$$ax^2 + bx + c = 0$$\n\n\u003Cspan class=\"hljs-strong\">**Step 1:**\u003C/span> Divide by the leading coefficient $a$:\n$$x^2 + \\frac{b}{a}x + \\frac{c}{a} = 0$$\n\n\u003Cspan class=\"hljs-strong\">**Step 2:**\u003C/span> Complete the square:\n$$\\left(x + \\frac{b}{2a}\\right)^2 = \\frac{b^2 - 4ac}{4a^2}$$\n\n\u003Cspan class=\"hljs-strong\">**Step 3:**\u003C/span> Take the square root and solve for $x$:\n$$x = \\frac{-b \\pm \\sqrt{b^2 - 4ac}}{2a}$$\n\u003C/code>\u003C/pre>\u003Cp>This pattern — bold step labels followed by a display-math block — reads well on GitHub, GitLab, and any KaTeX/MathJax-rendered site, and is far easier to follow than cramming the whole derivation into one block.\u003C/p>\n\u003Ch2 id=\"testing-and-validation\">Testing and Validation\u003C/h2>\n\u003Cp>Always test your mathematical expressions across different platforms:\u003C/p>\n\u003Col>\n\u003Cli>\u003Cstrong>Local Development\u003C/strong>: Preview in your local markdown renderer\u003C/li>\n\u003Cli>\u003Cstrong>Target Platform\u003C/strong>: Test on GitHub, GitLab, or your documentation site\u003C/li>\n\u003Cli>\u003Cstrong>Mobile Devices\u003C/strong>: Ensure formulas display correctly on smaller screens\u003C/li>\n\u003Cli>\u003Cstrong>Browser Compatibility\u003C/strong>: Check rendering across different browsers\u003C/li>\n\u003C/ol>\n\u003Ch2 id=\"integration-with-other-markdown-features\">Integration with Other Markdown Features\u003C/h2>\n\u003Cp>Math expressions work well with other Markdown elements. You can create comprehensive technical documentation by combining mathematical formulas with \u003Ca href=\"/blog/markdown-table-ultimate-guide\">tables in Markdown\u003C/a> for data presentation, and use \u003Ca href=\"/blog/markdown-collapsible-sections-guide\">collapsible sections\u003C/a> to organize complex mathematical proofs or derivations.\u003C/p>\n\u003Ch2 id=\"tools-and-further-reading\">Tools and Further Reading\u003C/h2>\n\u003Cp>If you&#39;d rather check a formula renders correctly than paste it blind, our \u003Ca href=\"/tools/markdown-math\">Markdown Math Preview tool\u003C/a> renders LaTeX live in your browser as you type, using KaTeX, with clear error messages if something doesn&#39;t parse. And if you&#39;re working across multiple platforms, see our \u003Ca href=\"/blog/markdown-math-rendering-across-platforms\">guide to math rendering support across GitHub, GitLab, Obsidian, Notion, Jekyll, Hugo, Confluence, and Slack\u003C/a> for exactly which ones render math natively versus needing a plugin or app.\u003C/p>\n\u003Ch2 id=\"conclusion\">Conclusion\u003C/h2>\n\u003Cp>Mathematical expressions in Markdown bridge the gap between simple text formatting and professional scientific documentation. By leveraging LaTeX syntax with rendering engines like MathJax or KaTeX, you can create beautiful, accessible mathematical content that integrates seamlessly with your documentation workflow.\u003C/p>\n\u003Cp>Whether you&#39;re writing academic papers, technical documentation, or educational materials, the combination of Markdown&#39;s simplicity with LaTeX&#39;s mathematical power provides an excellent foundation for communicating complex ideas clearly and effectively.\u003C/p>\n\u003Cp>Remember to choose the right rendering engine for your needs, test across platforms, and follow accessibility best practices to ensure your mathematical content reaches the widest possible audience.\u003C/p>\n",[15,19,22,25,28,31,34,37,40,43,46,49,52,55,58],{"id":16,"text":17,"level":18},"why-use-math-expressions-in-markdown","Why Use Math Expressions in Markdown?",2,{"id":20,"text":21,"level":18},"latex-math-syntax-basics","LaTeX Math Syntax Basics",{"id":23,"text":24,"level":18},"platform-specific-implementation","Platform-Specific Implementation",{"id":26,"text":27,"level":18},"advanced-mathematical-expressions","Advanced Mathematical Expressions",{"id":29,"text":30,"level":18},"chemistry-and-physics-notation","Chemistry and Physics Notation",{"id":32,"text":33,"level":18},"statistics-and-probability-notation","Statistics and Probability Notation",{"id":35,"text":36,"level":18},"computer-science-and-algorithm-notation","Computer Science and Algorithm Notation",{"id":38,"text":39,"level":18},"troubleshooting-common-issues","Troubleshooting Common Issues",{"id":41,"text":42,"level":18},"best-practices","Best Practices",{"id":44,"text":45,"level":18},"rendering-engines-comparison","Rendering Engines Comparison",{"id":47,"text":48,"level":18},"real-world-examples","Real-World Examples",{"id":50,"text":51,"level":18},"testing-and-validation","Testing and Validation",{"id":53,"text":54,"level":18},"integration-with-other-markdown-features","Integration with Other Markdown Features",{"id":56,"text":57,"level":18},"tools-and-further-reading","Tools and Further Reading",{"id":59,"text":60,"level":18},"conclusion","Conclusion",[62],"markdown-math",[64],{"slug":65,"title":66,"description":67,"excerpt":68,"date":69,"category":70,"author":71,"keywords":72,"readingMinutes":73},"markdown-math-rendering-across-platforms","Markdown Math Rendering Across Platforms: Where LaTeX Actually Works","The $...$ / $$...$$ LaTeX convention for math in Markdown looks identical everywhere, but whether it renders at all — and which engine renders it — varies enormously across GitHub, GitLab, Obsidian, Notion, Jekyll, Hugo, Confluence, and Slack. Here's what's real.","Wrap a formula in dollar signs — $E = mc^2$ — and on some platforms you get a beautifully typeset equation. On others you get the literal text $E = mc^2$ sitting there unrendered, because the…","2026-08-21","workflows","Matt Rathbone","markdown math rendering, latex markdown platforms, katex vs mathjax, github math support, notion math equations, jekyll math plugin, hugo katex, confluence math",8,1792184940784]