Live KaTeX math rendering powered by the extensions prop. Edit the markdown to try your own math expressions.
Component Renderers
A reusable KatexRenderer.svelte component handles both inline and block math via the renderers prop. Best for reusable,
testable rendering logic.
The equation unites five fundamental constants.
Every quadratic has solutions:
Markdown works alongside math: bold, italic, and inline .
Tip: Use
$...$for inline math and$$...$$for block math.
Usage
<script lang="ts">
import SvelteMarkdown from '@humanspeak/svelte-markdown'
import markedKatex from 'marked-katex-extension'
import KatexRenderer from './KatexRenderer.svelte'
const source = 'Euler: $e^{i\\pi} + 1 = 0$'
const renderers = {
inlineKatex: KatexRenderer,
blockKatex: KatexRenderer
}
</script>
<svelte:head>
<link rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/[email protected]/dist/katex.min.css"
crossorigin="anonymous" />
</svelte:head>
<SvelteMarkdown
{source}
extensions={[markedKatex({ throwOnError: false })]}
{renderers}
/>KatexRenderer.svelte
<!-- KatexRenderer.svelte -->
<script lang="ts">
import katex from 'katex'
interface Props {
text: string
displayMode?: boolean
}
const { text, displayMode = false }: Props = $props()
const html = $derived(
katex.renderToString(text, { throwOnError: false, displayMode })
)
</script>
{@html html}