Vue 渲染 LaTeX 公式 Markdown 库

🌟 前言

欢迎来到我的技术小宇宙!🌌 这里不仅是我记录技术点滴的后花园,也是我分享学习心得和项目经验的乐园。📚 无论你是技术小白还是资深大牛,这里总有一些内容能触动你的好奇心。🔍

  • 🤖 洛可可白:个人主页

  • 🔥 个人专栏:✅前端技术 ✅后端技术

  • 🏠 个人博客:洛可可白博客

  • 🐱 代码获取:bestwishes0203

  • 📷 封面壁纸:洛可可白wallpaper

在这里插入图片描述

Vue 渲染 LaTeX 公式 Markdown 库

      • 1. 使用 `MathJax` 渲染 LaTeX 公式
        • 安装依赖
        • 配置 MathJax
        • 创建 Vue 组件
        • 使用组件
      • 2. 使用 `KaTeX` 渲染 LaTeX 公式
        • 安装依赖
        • 创建 KaTeX 组件
        • 使用组件
      • 3. 结合 Markdown 渲染
        • 安装依赖
        • 创建 Markdown 组件
        • 使用组件
      • 总结

在 Vue 项目中渲染包含 LaTeX 公式的 Markdown 内容,推荐使用 markdown-it 结合 markdown-it-katexmarkdown-it 是一个高性能的 Markdown 解析器,而 markdown-it-katex 是其插件,用于渲染 LaTeX 数学公式。通过这种方式,你可以轻松地在 Vue 中展示复杂的数学公式,同时保持代码的简洁性和可维护性。这种组合不仅支持行内公式(如 $E=mc^2$),还支持块级公式(如 $$\sum_{n=1}^{\infty} \frac{1}{n^2} = \frac{\pi^2}{6}$$),非常适合学术和技术文档的展示。

1. 使用 MathJax 渲染 LaTeX 公式

安装依赖
npm install mathjax
配置 MathJax

public/index.html 中引入 MathJax 的 CDN 链接并进行配置:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Vue LaTeX Project</title><script>MathJax = {tex: {inlineMath: [['$', '$'], ['\\(', '\\)']],displayMath: [['$$', '$$'], ['\\[', '\\]']]},svg: { fontCache: 'global' }};</script><script async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-svg.js"></script>
</head>
<body><div id="app"></div>
</body>
</html>
创建 Vue 组件

创建一个 MarkdownRenderer.vue 组件,用于渲染 Markdown 内容并支持 LaTeX 公式:

<template><div v-html="renderedContent"></div>
</template><script>
export default {props: {content: String},computed: {renderedContent() {// 使用 MathJax 自动解析 LaTeX 公式return this.content;}},mounted() {// 确保 MathJax 渲染公式MathJax.typesetPromise([this.$el]);},watch: {content() {// 当内容更新时重新渲染公式MathJax.typesetPromise([this.$el]);}}
};
</script>
使用组件

在父组件中使用 MarkdownRenderer 组件:

<template><div><markdown-renderer :content="markdownContent" /></div>
</template><script>
import MarkdownRenderer from './components/MarkdownRenderer.vue';export default {components: {MarkdownRenderer},data() {return {markdownContent: `
# Markdown with LaTeX Formulas$$
\\begin{align*}
e^x & = 1 + x + \\frac{x^2}{2!} + \\frac{x^3}{3!} + \\frac{x^4}{4!} + \\cdots \\\\& = \\sum_{n=0}^{\\infty} \\frac{x^n}{n!}
\\end{align*}
$$\\[ \\text{均值} (\\bar{x}) = \\frac{1}{N}\\sum_{i=1}^{N} x_i \\]`};}
};
</script>

2. 使用 KaTeX 渲染 LaTeX 公式

安装依赖
npm install katex
创建 KaTeX 组件

创建一个 KatexRenderer.vue 组件,用于渲染 LaTeX 公式:

<template><div v-html="renderedFormula"></div>
</template><script>
import katex from 'katex';
import 'katex/dist/katex.min.css';export default {props: {formula: String},computed: {renderedFormula() {return katex.renderToString(this.formula, { throwOnError: false });}}
};
</script>
使用组件

在父组件中使用 KatexRenderer 组件:

<template><div><katex-renderer :formula="formula" /></div>
</template><script>
import KatexRenderer from './components/KatexRenderer.vue';export default {components: {KatexRenderer},data() {return {formula: `
\\begin{align*}
e^x & = 1 + x + \\frac{x^2}{2!} + \\frac{x^3}{3!} + \\frac{x^4}{4!} + \\cdots \\\\& = \\sum_{n=0}^{\\infty} \\frac{x^n}{n!}
\\end{align*}
`};}
};
</script>

3. 结合 Markdown 渲染

如果你需要结合 Markdown 渲染并支持 LaTeX 公式,可以使用 markdown-itmarkdown-it-katex

安装依赖
npm install markdown-it markdown-it-katex
创建 Markdown 组件

创建一个 MarkdownRenderer.vue 组件:

<template><div v-html="renderedMarkdown"></div>
</template><script>
import MarkdownIt from 'markdown-it';
import katex from 'markdown-it-katex';export default {props: {content: String},computed: {renderedMarkdown() {const md = new MarkdownIt();md.use(katex);return md.render(this.content);}}
};
</script>
使用组件

在父组件中使用 MarkdownRenderer 组件:

<template><div><markdown-renderer :content="markdownContent" /></div>
</template><script>
import MarkdownRenderer from './components/MarkdownRenderer.vue';export default {components: {MarkdownRenderer},data() {return {markdownContent: `
# Markdown with LaTeX Formulas$$
\\begin{align*}
e^x & = 1 + x + \\frac{x^2}{2!} + \\frac{x^3}{3!} + \\frac{x^4}{4!} + \\cdots \\\\& = \\sum_{n=0}^{\\infty} \\frac{x^n}{n!}
\\end{align*}
$$\\[ \\text{均值} (\\bar{x}) = \\frac{1}{N}\\sum_{i=1}^{N} x_i \\]`};}
};
</script>

总结

  • 如果你需要强大的公式渲染能力,推荐使用 MathJax
  • 如果你需要更快的渲染速度,推荐使用 KaTeX
  • 如果你需要结合 Markdown 渲染,可以使用 markdown-itmarkdown-it-katex

通过以上方法,你可以灵活地在 Vue 项目中渲染 Markdown 内容并支持复杂的 LaTeX 公式块。

如果对你有帮助,点赞👍、收藏💖、关注🔔是我更新的动力!👋🌟🚀

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/35911.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何在WordPress中添加下载链接?

在WordPress网站上添加文件下载链接&#xff0c;不仅能提升用户体验&#xff0c;还能增加网站的互动性和实用价值。不管是提供免费的电子书、软件&#xff0c;还是其他类型的文件&#xff0c;下载链接都可以让用户快速获取所需的资源&#xff0c;增强他们对网站的好感。 本文将…

C/C++ 内存管理

1.C/C内存分布 sizeof和strlen有什么区别&#xff1a; 本质区别 特性sizeofstrlen类型运算符&#xff08;编译时计算&#xff09;库函数&#xff08;运行时计算&#xff09;作用对象变量、数据类型、表达式仅限以 \0 结尾的字符串&#xff08;char* 或字符数组&#xff09;功…

【C语言】:学生管理系统(多文件版)

一、文件框架 二、Data data.txt 三、Inc 1. list.h 学生结构体 #ifndef __LIST_H__ #define __LIST_H__#include <stdio.h> #include <stdlib.h> #include <string.h> #include <stdbool.h> #include <time.h>#define MAX_LEN 20// 学生信息…

【Spring】第三弹:基于 XML 获取 Bean 对象

一、获取 Bean 对象 1.1 根据名称获取 Bean 对象 由于 id 属性指定了 bean 的唯一标识&#xff0c;所以根据 bean 标签的 id 属性可以精确获取到一个组件对象。 1.确保存在一个测试类&#xff1a; public class HelloWorld {public void sayHello(){System.out.println(&quo…

Easysearch 索引生命周期管理实战

如果你的使用场景是对时序型数据进行分析&#xff0c;可能你会更重视最新的数据&#xff0c;并且可能会定期对老旧的数据进行一些处理&#xff0c;比如减少副本数、forcemerge、 删除等。Easysearch 的索引生命周期管理功能&#xff0c;可以自动完成此类索引的管理任务。 创建…

ARMv8.x-M架构计算能力概览

1.ARMv8.xM架构提供了哪些计算能力&#xff1f; ARMv7-M时代&#xff0c;Cortex-M系列CPU以提供通用计算能力为主。ARMv8-M架构提供了更加多样的计算能力。 首先&#xff0c;提供Thumb2指令集提供整数通用计算能力。 其次&#xff0c;ARMv8.x-M架构手册明确列出了更多可选的CPU…

20. Excel 自动化:Excel 对象模型

一 Excel 对象模型是什么 Excel对象模型是Excel图形用户界面的层次结构表示&#xff0c;它允许开发者通过编程来操作Excel的各种组件&#xff0c;如工作簿、工作表、单元格等。 xlwings 是一个Python库&#xff0c;它允许Python脚本与Excel进行交互。与一些其他Python库&#x…

大模型GGUF和LLaMA的区别

GGUF&#xff08;Gigabyte-Graded Unified Format&#xff09;和LLaMA&#xff08;Large Language Model Meta AI&#xff09;是两个不同层面的概念&#xff0c;分别属于大模型技术栈中的不同环节。它们的核心区别在于定位和功能&#xff1a; 1. LLaMA&#xff08;Meta的大语言…

一周学会Flask3 Python Web开发-SQLAlchemy查询所有数据操作-班级模块

锋哥原创的Flask3 Python Web开发 Flask3视频教程&#xff1a; 2025版 Flask3 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili 我们来新建一个的蓝图模块-班级模块&#xff0c;后面可以和学生模块&#xff0c;实现一对多的数据库操作。 blueprint下新建g…

STM32学习【5】用按键控制LED亮灭(寄存器)以及对位运算的思考

目录 1. 看原理图2 使能GPIOAGPIOA时钟模块2.2 设置引脚GPIO输入2.3 读取引脚值 3. 关于寄存器操作的思考 写在前面 注意&#xff0c;这篇文章虽然说是用按键控制led亮灭&#xff0c;重点不在代码&#xff0c;而是关键核心的描述。 用寄存器的方式&#xff0c;通过key来控制led…

js,html,css,vuejs手搓级联单选

<!DOCTYPE html> <html lang"zh"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>级联选择器</title><script src"h…

【Spring】第四弹:基于XML文件注入Bean对象

一、setter 注入Bean对象 1.创建Student对象 public class Student {private Integer id;private String name;private Integer age;private String sex;public Student() {}public Integer getId() {return id;}public void setId(Integer id) {this.id id;}public String …

DeepSeek私有化部署与安装浏览器插件内网穿透远程访问实战

文章目录 前言1. 本地部署OllamaDeepSeek2. Page Assist浏览器插件安装与配置3. 简单使用演示4. 远程调用大模型5. 安装内网穿透6. 配置固定公网地址 前言 最近&#xff0c;国产AI大模型Deepseek成了网红爆款&#xff0c;大家纷纷想体验它的魅力。但随着热度的攀升&#xff0c…

单目3d detection算法记录

1、centernet object as points 这篇文章的核心单目3d检测主要是利用中心点直接回归出3d模型的所有属性&#xff0c;head共享整个backbone&#xff0c;其中3d属性包括&#xff1a;2d目标中心点、2dw和h、2d offsets、3doffsets、3d dimmession、rot还有depth。 其中对应的dep…

MySQL程序

博主主页: 码农派大星. 数据结构专栏:Java数据结构 数据库专栏:数据库 JavaEE专栏:JavaEE 软件测试专栏:软件测试 关注博主带你了解更多知识 1. mysqld (MySQL服务器) mysqld也被称为MySQL服务器&#xff0c;是⼀个多线程程序&#xff0c;对数据⽬录进⾏访问管理(包含数据库…

rust学习笔记17-异常处理

今天聊聊rust中异常错误处理 1. 基础类型&#xff1a;Result 和 Option&#xff0c;之前判断空指针就用到过 Option<T> 用途&#xff1a;表示值可能存在&#xff08;Some(T)&#xff09;或不存在&#xff08;None&#xff09;&#xff0c;适用于无需错误信息的场景。 f…

IIS 服务器日志和性能监控

Internet Information Services &#xff08;IIS&#xff09; 是 Microsoft 提供的一款功能强大、灵活且可扩展的 Web 服务器&#xff0c;用于托管网站、服务和应用程序。IIS 支持 HTTP、HTTPS、FTP、SMTP 和更多用于提供网页的协议&#xff0c;因此广泛用于企业环境。 IIS 的…

基于Netty实现高性能HTTP反向代理

以下将分步骤实现一个基于Netty的高性能HTTP反向代理&#xff0c;支持动态路由、负载均衡和基础鉴权功能。 1. 项目依赖配置&#xff08;Maven&#xff09; 2. 定义路由规则 3. 实现HTTP反向代理服务端 4. 实现反向代理处理器 5. 实现基础鉴权 6. 性能优化策略 连接池管理…

Feedback-Guided Autonomous Driving

Feedback-Guided Autonomous Driving idea 问题设定&#xff1a;基于 CARLA 的目标驱动导航任务&#xff0c;通过知识蒸馏&#xff0c;利用特权智能体的丰富监督信息训练学生传感器运动策略函数 基于 LLM 的端到端驱动模型&#xff1a;采用 LLaVA 架构并添加航点预测头&#…

OpenCV基础【图像和视频的加载与显示】

目录 一.创建一个窗口&#xff0c;显示图片 二.显示摄像头/多媒体文件 三.把摄像头录取到的视频存储在本地 四.鼠标回调事件 五.TrackBar滑动条 一.创建一个窗口&#xff0c;显示图片 import cv2img_path "src/fengjing.jpg" # 自己的图片路径 img cv2.imre…