·

How to render math in Vue or Nuxt?

Published at 2024-06-06 16:13:27Viewed 973 times
Professional article
Please reprint with source link

There are several ways to write and render beautiful math on web. However, some methods can't be directly applied to Vue.js/Nuxt.js. In this article, we will explain how to use katex and mathjax to render math in Vue.js/Nuxt.js.

Katex

To automatically render all math in all the pages, you need to use CDN to load katex :

<!-- index.html -->

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <link rel="icon" href="/poem-studio-favicon-black.svg">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.16.10/dist/katex.min.css" integrity="sha384-wcIxkf4k558AjM3Yz3BBFQUbk/zgIYC2R0QpeeYb+TwlBVMrlgLqwRjRtGZiK7ww" crossorigin="anonymous">
    <script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.10/dist/katex.min.js" integrity="sha384-hIoBPJpTUs74ddyc4bFZSM1TVlQDA60VBbJS0oA934VSz82sBx1X7kSx2ATBDIyd" crossorigin="anonymous"></script>
    <script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.10/dist/contrib/auto-render.min.js" integrity="sha384-43gviWU0YVjaDtb/GhzOouOXtZMP/7XUzwPTstBeZFe/+rCMvRwr4yROQP43s0Xk" crossorigin="anonymous"
    onload="renderMathInElement(document.body);"></script>
    <title>Manitori</title>
  </head>
  <body>
    <div id="app"></div>
    <script type="module" src="/src/main.js"></script>
  </body>
</html>

If you are using Nuxt.js, then you need to change your nuxt.config.ts :

//nuxt.config.ts

export default defineNuxtConfig({
  app: {
    head: {
      link: [
        {rel:'stylesheet', href:"https://cdn.jsdelivr.net/npm/katex@0.16.10/dist/katex.min.css", integrity:"sha384-wcIxkf4k558AjM3Yz3BBFQUbk/zgIYC2R0QpeeYb+TwlBVMrlgLqwRjRtGZiK7ww", crossorigin:"anonymous"}
      ],
      script: [
        {
          defer:true,
          src:"https://cdn.jsdelivr.net/npm/katex@0.16.10/dist/katex.min.js", 
          integrity:"sha384-hIoBPJpTUs74ddyc4bFZSM1TVlQDA60VBbJS0oA934VSz82sBx1X7kSx2ATBDIyd", 
          crossorigin:"anonymous"
        },
        {
          defer:true, 
          src:"https://cdn.jsdelivr.net/npm/katex@0.16.10/dist/contrib/auto-render.min.js", 
          integrity:"sha384-43gviWU0YVjaDtb/GhzOouOXtZMP/7XUzwPTstBeZFe/+rCMvRwr4yROQP43s0Xk", 
          crossorigin:"anonymous",
          onload:"renderMathInElement(document.body);"
        },
       ]
    }
  }

})

If you want to specify the options of the renderMathInElement function, you could call renderMathInElement in another <script> :

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <link rel="icon" href="/poem-studio-favicon-black.svg">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.16.10/dist/katex.min.css" integrity="sha384-wcIxkf4k558AjM3Yz3BBFQUbk/zgIYC2R0QpeeYb+TwlBVMrlgLqwRjRtGZiK7ww" crossorigin="anonymous">
    <script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.10/dist/katex.min.js" integrity="sha384-hIoBPJpTUs74ddyc4bFZSM1TVlQDA60VBbJS0oA934VSz82sBx1X7kSx2ATBDIyd" crossorigin="anonymous"></script>
    <script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.10/dist/contrib/auto-render.min.js" integrity="sha384-43gviWU0YVjaDtb/GhzOouOXtZMP/7XUzwPTstBeZFe/+rCMvRwr4yROQP43s0Xk" crossorigin="anonymous"></script>
    <script>
    document.addEventListener("DOMContentLoaded", function() {
      renderMathInElement(document.body, {
          // customised options
          // • auto-render specific keys, e.g.:
          delimiters: [
              {left: '$$', right: '$$', display: true},
              {left: '$', right: '$', display: false},
              {left: '\\(', right: '\\)', display: false},
              {left: '\\[', right: '\\]', display: true}
          ],
          // • rendering keys, e.g.:
          throwOnError : false
        });
    });
    </script>
    <title>Manitori</title>
  </head>
  <body>
    <div id="app"></div>
    <script type="module" src="/src/main.js"></script>
  </body>
</html>

Note that you'd better change document.body to a specific area document.getElementById(Id), otherwise, it may cause some fatal error, see Vue - TypeError: Cannot read properties of null (reading 'insertBefore').

To render math in a specific area, you need to call renderMathInElement separately in each page. For example:

<script lang="ts" setup>
onMounted(()=>{
  nextTick(()=>{
    var node = document.getElementById(Id)
    document.addEventListener("DOMContentLoaded", function() {
      renderMathInElement(node, {
        // customised options
        // • auto-render specific keys, e.g.:
        delimiters: [
          {left: '$$', right: '$$', display: true},
          {left: '$', right: '$', display: false},
          {left: '\\(', right: '\\)', display: false},
          {left: '\\[', right: '\\]', display: true}
        ],
        // • rendering keys, e.g.:
        throwOnError : false
      });
    });
  })
})
</script>

In Vue.js, you may need to asynchronously render math, so you can follow this example:

<script lang="ts" setup>
var node = document.getElementById(Id)

Promise.resolve()
.then(()=>{
  nextTick(()=>{
    document.addEventListener("DOMContentLoaded", function() {
      renderMathInElement(node, {
        // customised options
        // • auto-render specific keys, e.g.:
        delimiters: [
          {left: '$$', right: '$$', display: true},
          {left: '$', right: '$', display: false},
          {left: '\\(', right: '\\)', display: false},
          {left: '\\[', right: '\\]', display: true}
        ],
        // • rendering keys, e.g.:
        throwOnError : false
      });
    });
  })
})
</script>

Mathjax

It is easy to automatically render all math using mathjax. Like katex, you'd better use CDN to load mathjax :

<!-- index.html -->

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <link rel="icon" href="/poem-studio-favicon-black.svg">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <script type="text/javascript" id="MathJax-script" async
    src="https://cdn.jsdelivr.net/npm/mathjax@4.0.0-beta.6/tex-chtml.js">
  </script>
  <script>
    MathJax = {
      tex: {
        inlineMath: [['$', '$'], ['\\(', '\\)']]
      }
    };
    </script>
    <title>Manitori</title>
  </head>
  <body>
    <div id="app"></div>
    <script type="module" src="/src/main.js"></script>
  </body>
</html>

If you are using Nuxt.js, then change your nuxt.config.ts like this:

//nuxt.config.ts

export default defineNuxtConfig({
  app: {
    head: {

      script: [
        {
          type: "text/javascript",
          id: "MathJax-script",
          async: true,
          src: "https://cdn.jsdelivr.net/npm/mathjax@4.0.0-beta.6/tex-chtml.js",
        },
        {
          innerHTML:
            "MathJax = {tex: {inlineMath: [['$', '$'],['$$', '$$']]}};",
        },
      ]
})

However, in Vue.js you also need to asynchronously render math using mathjax, otherwise, The rendered math formula will revert back to original text. You can call MathJax.typesetPromise() to achieve this. For example:

<script lang="ts" setup>
Promise.resolve()
.then(()=>{
  nextTick(() => {
    MathJax.typesetPromise();
  });
})
</script>

Or you could use setTimeout instead of nextTick:

setTimeout(() => {
  MathJax.typesetPromise();
}, 3000);

Following our methods, you can easily integrate Vue.js/Nuxt.js with katex and mathjax😄!

0 人喜欢

Comments

There is no comment, let's add the first one.

弦圈热门内容

婚礼拍摄流程

设备:a7m3 + 28-75 f2.8 + 棍灯 + 闪光Tip 1: 要电梯卡:摄影师可以在酒店前台说明自己是拍摄婚礼的,通常可以拿到电梯卡,方便进出。提前联系:如果是朋友关系,可以要伴娘的联系方式,方便沟通,避免被堵在酒店楼下;但如果是工作关系,则不建议这样做,以免引起不必要的麻烦,可以提前要电梯卡。Tip 2: 收费标准:在二三线城市,婚礼摄影的费用一般在1000-1500元之间;在一线城市如北京、上海、广州、深圳,费用则从1500元起,上不封顶。影响因素:收费标准主要取决于摄影师的样片质量和实际拍摄水平。Tip 3: 自报家门:摄影师见到新娘和伴娘时,应先自我介绍,表明身份。拍摄环境:新娘可能会询问房间布置是否适合拍摄,如果光线不足,摄影师需要自带灯光;如果房间空间狭小,则需要使用广角镜头。Tip 4: 静物拍摄:先拍摄婚鞋、婚戒、婚书等静物,记录这些细节。场景布置:观察房间布置,拍摄好看的地方,尤其是新人用心布置的部分。新娘化妆:拍摄新娘化妆的过程,留意光线充足的地方,适合摆拍。贵重物品拍摄:拍摄婚戒等贵重物品时,一定要有主家人在场,避免后续出现问题。Tip 5: 晨袍拍摄 ...

1月26日弦圈APP进度更新

最近这段时间,我都把时间花在开发弦圈APP上了。这个过程可谓是历经波折,开发过程中我曾多次更换框架,每更换一次就意味着得重新从零开始写,而更换完框架后又因为遇到某些难以解决的问题,又重新回到原来的框架。总之,如今经过两个星期的开发,终于逐渐成型,但还是有很多地方未实现的。目前弦圈APP,已实现功能包括:登陆注册、看文章、看帖子、看问题和回答、看百科词条、圈子、发布评论与回复、点赞与踩、关注用户等。未完成功能包括:用户主页、个人中心、消息中心、词条部分功能(如目录)、写文章、发帖子、写书、提问和回答、看书、签到、任务中心、交易中心等等。完成弦圈APP仍然任重而道远,因为弦圈从开发到上线就写了六个月代码,再加上上线至今又经过半年陆陆续续的更新,如今的弦圈已然代码规模已经不小。而我从零开始写APP,用的还是新技术,不亚于从零开始重写一遍整个弦圈。这工作量对于一个人来说,实在是太大了。同时,我在开发APP的过程中,也发现弦圈网站的一些bug,也来不及修复。最后我就发一发弦圈APP的测试图片吧。

写作小标题

一 抓好思想教育,“主旋律”越唱越响1.一以贯之,强化思想政治引领。集中学习抓引导,小组共论鼓干劲,个人自学促提升。2.上下同步,提升青年精神素养。 以上率下强推进,调研座谈保落实,简报交流取真经。3.双效合一,深化优良传统教育。先辈传承长士气 专题培训固根本 时空沉浸坚信仰,青言青语润人心。二 强化职能定位,“主力军”越建越强1.多维发力,围绕中心服务大局。安全生产不懈怠,优质服务不断档,创新创效不停歇。2.齐头并进,践行央企责任担当。乡村振兴亮实效,低碳生活有妙招。3.统筹谋划,志愿服务成效显著。冬奥保障显担当,旺季生产加满油,蓝天课堂掀新篇。三 提升服务能力,“主心骨”越来越硬1.多措并举,有效助力青年发展。基层调研知实情,青春助力有延续。2.对准焦距,关心关爱青年成长。新春送福暖人心,圆梦助力解难题,双节关爱有温度。3.双轮驱动,持续推动争先创优。文艺文创树形象,青年才俊扬志气。四 夯实团建基础,“主阵地”越筑越实1.分类施策,健全制度合规管理。完善制度粗管理,人才培养筑根基。2.挖掘典型,组织建设活力十足。先进典型展风采。

共青团工作要点

一、政治建设:思想政治引领:注重加强团员政治教育和青年思想政治引领,以习近平新时代中国特色社会主义思想为指引,深入学习习近平总书记关于青年工作的重要思想,坚持党建带团建,扎实开展团员和青年主题教育,深入学习党的二十大精神和团十九大精神,有针对性开展“青年大学习”教育培训。战略文化传导:结合集团战略和本单位觉政工作重点,依托青年论坛,组建青年讲师团,教育引导广大团员青年传承弘扬集团自身优良传统、红色精神,加强宣讲,积极传播企业文化理念。舆论宣传工作:田青工作有宣传阵地、有宣传队伍,持续加强宣传平台建设,团青活动开展丰富多彩的宣传工作。二、作用发挥国绕中心、服务大局:常态化开展青年籍神素养提升工程、主题实践活动,引领团员青年在安全生产防范风险、深化改革等领域发挥生力军与突击队作用,保障生产、运行、服务、创新等方面工作平稳有序。青年文明号活动:国绕持续打造世界一流产品服务水平,推进青年文明号创建,积极组织青年文明号开放周主题实践话动,创建活动特色鲜明,创建工作有制度、有记录、有成效,加强对往届青年文明号监督工作。青年志愿者活动:以青春之力服务-国之大者”,开展形式多样的志愿者活动及社会公益活 ...

未来所有人都能被一种名为‘复活术’的仪式复活,而我被复活进了一座神秘的监狱,在这里每个人无时无刻都要接受无比残忍的折磨...

在未来的地球上,诞生了一种名为“复活术”的神奇仪式,所有人都能被该仪式复活,且不需要付出任何代价。你只需要在任意地方画出一些玄奥的几何图案,然后随意念出任意条件,如果有人满足你所说的条件,那么这个人就会马上被复活。如果满足条件的不止一个人,那么所有满足条件的人都会被同时复活。于是,死去的科学家、伟人们都被人们争相复活,人类的科技水平在短短数年内就得到了飞速发展。同时地球的人口也开始了指数型暴涨,到了2080年,全世界人口就已经到达400亿!因为人口的暴涨资源开始紧缺,加上死亡已经不再忌讳,很多人开始胡作为非,有些无聊的人甚至把烧杀抢夺、花样自杀当作自己的日常生活。于是各国政府纷纷出台《复活法》,限制复活术的使用,每个人禁止生育后代,以及禁止自杀,所有自杀者复活后会被直接拘禁。就这样,社会秩序的混乱才逐渐消停了一些。虽然人类距离抵达一级文明的水平还有很长一段时间,但这样史无前例的科技发展速度还是让大家沉浸在了征服宇宙的未来无尽幻想之中,却殊不知一场同样史无前例的浩大危机正在逼近......不知道多少年过去,在仙界死去的陈默也被复活术复活后,就发现自己已经置身在这座名为“通天塔”的监狱之中 ...

李群和李代数经典教材:Structure and Geometry of Lie Groups

本书隶属于Springer Monographs in Mathematics系列,作者是Joachim Hilgert和Karl-Hermann Neeb。这是本不错的李群李代数教材,可以用于入门李群和李代数。我不是做李群和李代数这方面的,但印象中,李群李代数相关的教材似乎并不是很多,并且很多教材写得并不那么好懂。而这本教材,应该算是我所知道的最适合入门的教材之一了。本书从最基础的一般线性群开始讲起,借助这些矩阵群的例子,一步步上升到李群。所谓的李群其实就是一个群加上流形结构而已。本书在讲完李括号后,就直接开始提及李代数,所谓的李代数就是一个向量空间带上一个叫做李括号的双线性函数。本书节奏紧凑、内容推进速度恰当,知识密度也高没有太多废话,是标准的代数风格的教材。由于我当初只大概看过一二章,用于补充李群和李代数相关的基础知识,因此并没有太过深入,就不过多评价。顺带一提,李群和李代数都跟表示论有直接联系,因此想要做表示论的朋友或许也应该学点李群和李代数。最后我看了一下下载这本书的日期,已经是2020年了,当时的我刚刚大一,印象中是首师大的一位学长在数学群里推荐的。特此怀念一下。更新:作者 ...

弦圈更换新网址xianquan.net,原地址manitori.xyz保留

今天,经过一番思考与商量,我最后决定将弦圈的原网址 https://www.manitori.xyz/ 更换为 https://www.xianquan.net/ 。原因也很简单,因为目前弦圈主打的还是国内市场,而manitori是弦圈的英文名并不合适,加之一个构词法创造出来的新英文单词对新人而言很难记忆。总之,在种种因素促使下,我决定将弦圈的拼音xianquan作为弦圈国内版的网址。至于为什么不是xianquan.com,那是单纯因为.com域名已经被别人给注册了,而想要买回xianquan.com需要5万多块😅。至于原地址manitori.xyz我会继续保留,未来将会用作弦圈国际版的网址。而当前原地址manitori.xyz将会继续像原来那样正常运作,只不过会自动跳转到xianquan.net。唯一要注意的是,这可能需要你重新登录,因为域名换了cookies会没掉,而目前根据搜索cookies并不能跨越不同域名。然后这里也有一个小坑,就是保持登录状态(弦圈保持登录状态最多保持7天)。现在的大网站基本上是登录一遍就再也不用登录第二遍,我之后尝试能不能实现。弦圈仍然会支持中英文切换,这 ...

Claire Voisin教材霍奇理论和复代数几何:Hodge Theory and Complex Algebraic Geometry

Claire Voisin的复几何教材Hodge Theory and Complex Algebraic Geometry分为两本,印象中这是本稀缺教材,网上不太容易找到。这本书有一定门槛,需要有一定多复变函数、代数几何、微分几何、复分析的基础,具体点你需要提前熟悉多复变全纯函数、部分Hodge理论、复流形、层论、上同调等相关知识,这样才好上手读下去。因此,新人小白谨慎作为入门教材。本书从多复变函数开始讲起,本书作者的叙述风格我虽然很喜欢,但是过于简略,第一章开头多复变函数就需要你有一定基础才能看懂。同时,这本书的内容十分全面,把复几何相当多的基本重要概念都讲了,或许是相关内容实在太多,哪怕作者尽量省略一些基础和细节,最后还是得分成两本书。由于我对复几何并不是特别熟悉,这本书我也只是涉猎过,因此不做过多评价,直接上图。上图公式一下子就把我吸引住了,这也是为啥我当初会看这本书的原因,因为这公式实在太美了,我很想弄清楚它是怎么一回事。PS:由于此pdf版并没有相应的目录,不能方便跳转书的不同章节,因此早在n年前,我就用Adobe调整了页码,你只需要输入相应的页数就能直接跳转到该页。跳转页 ...

🇩🇰1.6 哥本哈根

​旅途的最后一站,南下借道哥本哈根,广东人最乐的一集:在这里补回了来北欧维京人这一块,看到了广东人最熟悉的龙船,虽然用途玩法完全不一样()最令人惊叹的是罗斯基勒大教堂,糅合了各种风格的12世纪红砖大教堂,里面是埋葬着丹麦各代先王的皇陵,包括大王克里斯蒂安和蓝牙王哈罗德,全教堂包括二楼和地下墓穴可供参观,里面四面八方上下左右都是棺材墓石,一下子治好了这么多天的审美疲劳,且门票只用50RMB。最后在机场买到了广东人从小吃到大但是是正宗的丹麦蓝罐曲奇,一开始感觉没啥区别,越吃越香越想吃,黄油味很香浓,一口气造了一小罐。​最后感叹一句:什么时候在西班牙也能喝到思乐冰啊😭

1月11日弦圈更新日志,明后天上线

这几天一直在忙着更新弦圈的新功能,目前弦圈的内容和功能还是有些单调,并且基本上都是些严肃、枯燥、理性的内容。为了进一步提高弦圈的趣味性,以及提高用户的活跃度和积极性,我计划推出更多有意思的功能。首先第一个就是商店功能,弦圈现在有两种货币:金币(免费)、弦币(付费)。而金币之前获得了也没有任何用处,因此现在把这个坑慢慢填了,增加金币的用处——用于商店购买。第二个功能就是任务中心,分别包括新手任务、每日任务、圈子任务,让用户使用弦圈的过程中多一些正反馈,就跟打怪升级一样。圈子任务我计划是,每个圈子的圈主都能个性化自己圈子的任务,然后任务奖励也是个性化。比如代数几何圈,任务奖励可以是称号——格洛腾迪克学徒。接着便是“我的仓库”,商店购买的东西都会放在仓库里。见下图,是不是有种游戏的感觉😇接下来,我计划在弦圈引入趣味小游戏,以及live2D虚拟人,进一步丰富弦圈的内容。关于游戏,既然是页游,我觉得可以做一下“开心农场”给大家种田,而种的东西呢,数学的可以种GTM系列、编程的种APP或者电脑。也可以做个“小世界”,就是每个用户自己的世界,里面能摆放各种装饰品等,这样商店里用金币买的东西就能具象化 ...

一定要很聪明才能学数学专业吗?

知乎提问:我高考数学120+,也喜欢并热爱数学,但报考志愿时父母以女孩子脑子转的不如男孩子拒绝让我报考专业,于是大学期间自学数学专业课准备考研跨考数学,近期很疑惑,一定是要足够聪明的人才能学好数学吗我的回答(已删):并不需要很聪明才能学数学,而且大众所谓的聪明一般是指反应很快,就比如说对数学的理解比其它人要快一些。但是这能力其实跟真正的那种科研能力、创造力没啥关系,参考今年fields奖得主Hub,他考试成绩一塌糊涂。在我看来,学数学更重要的是坚持、毅力、冷静,你得沉得下心来学,一次学不懂反复学,这样才能把数学学好。发布于 2022-10-23 13:09

一本数学教材严谨和通俗哪个更重要?

知乎提问:一本数学教材严谨和通俗哪个更重要??我的回答:在我看来这两样都同等重要,没有哪个更重要。数学教材既然是关于数学的教材,才肯定是需要严谨才不会误导初学者,同时如果写教材的作者是一个合格的数学工作者,那么他的文笔大概率也是十分严谨的。而教材不同于学术文献,教材是专门写来给初学者或者别的领域专家学习的,为了更好理解,那必然需要写得通俗。所以有这样一个等价关系:数学教材 $=$ 数学 $+$ 教材 $\cong$ 严谨 $+$ 通俗当然上面的描述是基于理想情况,现实中不严谨的数学教材,严谨但不通俗的数学教材,以及既不严谨也不通俗的数学教材,都有。其中既不严谨也不通俗的数学教材,可以说非国内的数分高代教材莫属了,内容东平西凑,国内外教材都抄一遍然后参考文献也不给人家。

奥数热对中国数学是利还是弊?

知乎提问:奥数热对中国数学是利还是弊?我的回答:这个问题对于以不同目的学数学的人,自然会有不同的答案。对于那些以升学为目的、普通家庭的学生,或许是多一条改变命运的路,不至于只有中考、高考一条路。不过由于奥数热,这条路的内卷程度甚至比高考还厉害,因为名额很少,但却这么多人在争。而普通家庭的学生没有什么教育资源的优势,加入这条道路不仅要花费大量时间精力以及金钱,还因为无法兼顾正常课导致无法中考或高考。因此整体上而言对于以升学为目的、普通家庭的学生,我认为是弊大于利,绝大多数学生只会成为“炮灰”。对于那些不以升学为目的,热爱数学的普通家庭学生,这也不见得是好事。因为热爱数学的学生,不一定对奥数感兴趣,加之奥数本身所倡导的竞技性,说真的压根不能算是正常的数学,只能说是把体育竞技带进了数学(奥数全称奥林匹克数学竞赛),只会让真正热爱数学的人心生厌恶,奥数热所带来的社会风气,哪怕是以升学为目的、热爱数学的普通家庭学生,奥数热也只会让真正想学数学的人无暇关注数学本身,从而分神在无意义的数学竞技中。数学研究不是竞技,那是探索未知,两者完全不在一个频道上。因此,整体上说奥数热对热爱数学的普通家庭学生,我 ...

如何在学习数学的过程中建立一个直观的认识?

知乎提问:请教大家一个问题:我在理解数学公式的时候,全部都是从几何意义入手,而且这些几何意义能够反推出公式,(比如y=kx+b和一条直线 能够建立直觉上的认知)。但是遇到一些比较复杂的公式,没有办法由几何意义建立直觉上的认知的时候(比如说正态分布的函数,没有办法知道正态分布的函数每部分对几何的影响),就发现自己没有办法理解。想请问up,对于后者应该怎么去理解?有没有什么其他的思维去理解记忆,建立直观上的认识。我的回答:我的思维方式与你完全相反,我是不喜欢直观的东西,相反我喜欢抽象的东西,越抽象越好。我理解数学也从来不是从几何直观出发,而是直接从抽象角度出发,哪怕一样东西抽象到完全没有任何直观可言,也不影响我理解它。我个人觉得题主形成这种过度依赖几何直观理解数学的思维,可能跟没有好好学习代数有关。相较于几何,代数本身更加抽象,强调推理和计算。你需要多学习代数相关的数学,培养自己的代数思维,这样或许有助于你理解一些抽象的数学对象。有些数学概念本身就是通过直观就能理解的,或者说有些概念本身就是抽象的,因此需要针对不同的概念用不同的思维去理解。以上我说的更多的是方法论,并没有非常具体做法,主要 ...