config.yml 里启用了 Goldmark 的 renderer.unsafe 和 extensions.passthrough,允许 $$...$$/$...$/\[...\] 等分隔符在 Markdown 中原样输出,避免被转义
markup:
  goldmark:
    renderer:
      unsafe: true
    extensions:
      passthrough:
        enable: true
        delimiters:
          block:
            - - "\\["
              - "\\]"
            - - "$$"
              - "$$"
          inline:
            - - "\\("
              - "\\)"
            - - "$"
              - "$"

新增 layouts/partials/math.html,通过 PaperMod 的 extend_head.html 自动注入 KaTeX CSS/JS,并在页面加载后调用 renderMathInElement 统一渲染数学公式,同时忽略 pre/code 等标签避免误渲染

layouts/partials/math.html

{{- $katexVersion := "0.16.11" -}}
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@{{ $katexVersion }}/dist/katex.min.css" crossorigin="anonymous" />
<script defer src="https://cdn.jsdelivr.net/npm/katex@{{ $katexVersion }}/dist/katex.min.js" crossorigin="anonymous"></script>
<script defer src="https://cdn.jsdelivr.net/npm/katex@{{ $katexVersion }}/dist/contrib/auto-render.min.js" crossorigin="anonymous"></script>
<script>
  document.addEventListener("DOMContentLoaded", function () {
    if (typeof renderMathInElement !== "function") {
      return;
    }
    renderMathInElement(document.body, {
      delimiters: [
        { left: "$$", right: "$$", display: true },
        { left: "$", right: "$", display: false },
        { left: "\\(", right: "\\)", display: false },
        { left: "\\[", right: "\\]", display: true },
      ],
      ignoredTags: ["script", "noscript", "style", "textarea", "pre", "code"],
      throwOnError: false,
    });
  });
</script>

themes/PaperMod/layouts/partials/extend_head.html

{{- /* Head custom content area start */ -}}
{{- /*     Insert any custom code (web-analytics, resources, etc.) - it will appear in the <head></head> section of every page. */ -}}
{{- /*     Can be overwritten by partial with the same name in the global layouts. */ -}}
{{- /* Head custom content area end */ -}}
{{ if or .Params.math .Site.Params.math }}
{{ partial "math.html" . }}
{{ end }}