首页 > 其他分享 >MathJax配置

MathJax配置

时间:2024-12-24 09:42:41浏览次数:2  
标签:isMathjaxConfig string 配置 ts mathjax window MathJax

这个真的难绷,官方文档看不懂,网上找的例子看似能行但实机起来各种奇怪的错误。目前mathjax是3x,但我尝试下来是行不通的。到现在,我有一个成功的案例,是mathjax@2的。分享如下:

index.html

<body>
    <div id="app"></div>
    <script type="module" src="/src/main.ts"></script>
    <!-- 识别单行,行内,\( \)样式的公式 -->
    <script>
        MathJax = {
            tex: {
                inlineMath: [
                    ['$', '$'],
                    ['$$', '$$'],
                    ['\\(', '\\)']
                ]
            }
        }
    </script>
    <script type="text/javascript" async
        src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script>
</body>

utils

新建一个mathjax.ts

interface MathJaxConfigOptions {
    showProcessingMessages?: boolean
    messageStyle?: string
    jax?: string[]
    tex2jax?: {
        inlineMath: [string[], string[]]
        displayMath: [string[], string[]]
        skipTags: string[]
    }
    'HTML-CSS'?: {
        availableFonts?: string[]
        showMathMenu?: boolean
    }
}

let isMathjaxConfig: boolean = false

export const initMathjaxConfig = (): void => {
    if (!window.MathJax) {
        return
    }
    window.MathJax.Hub.Config({
        showProcessingMessages: false,
        messageStyle: 'none',
        jax: ['input/TeX', 'output/HTML-CSS'],
        tex2jax: {
            inlineMath: [
                ['$', '$'],
                ['\\(', '\\)']
            ],
            displayMath: [
                ['$$', '$$'],
                ['\\[', '\\]']
            ],
            skipTags: ['script', 'noscript', 'style', 'textarea', 'pre']
        },
        'HTML-CSS': {
            availableFonts: ['STIX', 'TeX'],
            showMathMenu: false
        }
    } as MathJaxConfigOptions)
    isMathjaxConfig = true
}

export const MathQueue = (elementId: string): void => {
    if (!window.MathJax) {
        return
    }
    window.MathJax.Hub.Queue(['Typeset', window.MathJax.Hub, document.getElementById(elementId)])
}

export default {
    isMathjaxConfig,
    initMathjaxConfig,
    MathQueue
}

因为是ts,可能会有未知的报错,比方我之前一次实验的时候,便报错Window下没有MathJax这个type,我是在types下新建了一个global.d.ts

interface Window {
    MathJax?: any;
}

记得把global.d.ts在main.ts中挂载。

mathjax.vue

如果上述都ok的话,这步copy后再run起来,浏览器应该是直接就把公式渲染好了。

<script setup lang="ts">
import Mathjax from "@/utils/mathjax.ts";
import {ref, onMounted, nextTick} from "vue";

const mathjax = ref<string>('If $$ f(x) = f(a) + f\'(a)(x - a) + \\frac{f\'\'(a)}{2!}(x - a)^2 + \\frac{f^{(3)}(a)}{3!}(x - a)^3 + \\dots + \\frac{f^{(n)}(a)}{n!}(x - a)^n + R_n(x), $$ then this is the Taylor series expansion of \\( f(x) \\) around \\( a \\).\n');
onMounted(async () => {
  await nextTick(() => {
    if (Mathjax.isMathjaxConfig) {
      Mathjax.initMathjaxConfig()
    }
    Mathjax.MathQueue('mathjaxTest')
  })
})


</script>
<template>
  <el-row>
    <div class="mathjaxTest" v-html="mathjax"></div>
  </el-row>
</template>


<style scoped></style>

标签:isMathjaxConfig,string,配置,ts,mathjax,window,MathJax
From: https://www.cnblogs.com/yapi-wwj/p/18626671

相关文章

  • Hadoop3.1.3安装教程_单机/伪分布式配置
        当开始着手实践Hadoop时,安装Hadoop往往会成为新手的一道门槛。尽管安装其实很简单,书上有写到,官方网站也有Hadoop安装配置教程,但由于对Linux环境不熟悉,书上跟官网上简略的安装步骤新手往往Hold不住。加上网上不少教程也甚是坑,导致新手折腾老几天愣是没装......
  • Ansible(自动化运维)环境搭建及ansible-vault加密配置
    前言:原先这篇博客是在《Linux系统综合配置:yum源设置、逻辑卷制作》里的,现在想着ansible-vault加密配置是可以单独出一期的,就拆分出来了。一、安装ansible命令:sudodnfupdate命令:sudodnfinstallpython3查看版本:python3-V命令:sudodnfinstallpython3-pip命令:p......
  • 《LLM入门教程》大模型教程笔记1:环境配置(安装Anaconda、获取配置并测试OpenAI API key
    项目地址:llm-cookbook教程在线阅读:面向开发者的LLM入门教程文章目录环境配置一、安装Anaconda二、安装本书需要用到的python库三、获取并配置OpenAIAPIkey示例目录结构.envconfig.py运行结果解释`find_dotenv()`的查找机制示例说明配置`find_dotenv()`的参数`loa......
  • Java 大视界 -- Java 构建大数据开发环境:从 JDK 配置到大数据框架集成(一)
           ......
  • DM-DSC集群配置
    转自:https://www.cnblogs.com/binliubiao/p/15416631.htmlDMDSC概述DM共享存储数据库集群全称DMDataSharedCluster,简称DMDSCDMDSC特性DM共享存储数据库集群,允许多个数据库实例同时访问、操作同一数据库,具有高可用、高性能、负载均衡等特性。DMDSC支持故障自动切换和......
  • 【新教程】Ubuntu server 24.04配置无线网WiFi
    0相关信息UbuntuServer24.041工具准备sudoaptinstallnetwork-managerwpasupplicantwireless-tools2过程查看无线网卡名称:ipaddr一般wl开头的为无线网卡。比如,我这里的无线网卡就是wlo1扫描无线网络:sudoiwlistwlo1scan|grepESSID#注意将wlan0换......
  • ssh的基本配置(禁止root用户远程登录+修改默认端口)
    一、禁止root用户远程登录了解软件相关知识,先找到server端的配置文件rpm-ql查看指定的软件包安装的所有目录和文件 步骤1:备份配置文件 步骤2:修改配置文件搜索关键字Root定位到下方位置,修改圈红的配置为no  步骤3:修改配置文件后,需要重启服务: 步骤4:测试,客户......
  • 如何快速配置SFTP公网地址并随时随地传输文件?
    文章目录前言1.开启群晖SFTP连接2.群晖安装Cpolar工具3.创建SFTP公网地址4.群晖SFTP远程连接5.固定SFTP公网地址6.SFTP固定地址连接前言如今,远程办公和数据共享已经成为常态。如果你正在寻找一个高效且安全的方式来管理和传输文件,那么群晖NAS中的SFTP服务绝对......
  • zabbix外部程序告警关键配置
    环境:OS:Centos7zabbix:4.0.5 1.主机配置  2.用户配置     3.用户组配置   4.动作配置 可以针对某个具体的触发器定义动作      5.脚本需要加上执行权限chown+x脚本   ......
  • XML 配置 AOP 详解
    XML配置AOP详解1)切点表达式的写法表达式语法:execution([修饰符]返回值类型包名.类名.方法名(参数))访问修饰符可以省略返回值类型、包名、类名、方法名可以使用星号*代表任意包名与类名之间一个点.代表当前包下的类,两个点…表示当前包及其子包下的类......