作者Hsins (迅雷不及掩耳盗铃)
看板LaTeX
标题Re: [问题] github 上 markdown latex 语法显示问题
时间Sun Oct 2 03:20:54 2022
※ 引述《wwwh0225 (SeaWave)》之铭言:
: 如题,由於我的档案在本机电脑汇出时,数学算式都很正常,但只要上传 GitHub ,就会发现跑版的问题。
: 经过一些测试与猜测,我觉得是因为遇到 markdown 语法「斜体」的问题,只要是
: _文字_
: 就会变成斜体,导致我的数学无法正确显示。
: 因为latex 语法广泛在markdown 中使用,也不知道该问谁,所以才来这边询问。
首先你要先厘清一些概念:
(1) 你的 .md 只是纯文字档案,本身没有任何「该如何显示」的资讯
(2) 不论是 GitHub 也好还是有些人自己部落格用的 WordPress 也罢
,是藉助第三方脚本如 MathJax 或 KaTeX 将这些内容渲染出来
(3) 并不是 Markdown 支援 LaTeX 语法,要看解析器是谁
(4) KaTeX/MathJax 也不是所有的 LaTeX 语法都支援
---
以 GitHub 使用的 MathJax 为例,
这里先说一般的渲染方式:
STEP 01: 载入页面内容,这时候都还是 $\frac{1}{2}$
STEP 02: 载入脚本,执行脚本
STEP 03: 分析页面上的文字,找到 $$ 或 $$ $$ 包裹的内容
STEP 04: 将内容转换成特殊的 HTML + CSS 或是 SVG 或是 MathML
STEP 05: 替换页面上原来的内容
所以一般这类页面开启时,左下方通常都会出现载入的讯息
又或者是渲染出的数学式点右键还能叫出 MathJax 选单
至於 Markdown 本身也只是一种标注
页面如何渲染,也会经历一个这样的过程
比如 **我很粗** 就会被分析并置换
变成 <strong>我很粗</strong>
----
这类的解析,就必须要考虑到解析的方式而导致结果有所不同
以 GitHub 为例,我会建议你在输入纯文字的同时注意「空格」
以及换行,甚至标准的 Markdown 解析在字尾有两个空格的换
行也会有所不同…
```
测试:$\frac{1}{2}$ // 解析失败
测试: $\frac{1}{2}$ // 解析成功
```
```
测试
$$\frac{1}{2}$$
测试
```
```
测试
$$\frac{1}{2}$$
测试
```
虽然 GitHub 支持 MathJax
但他还不适合用来放入过多的数学式
因为渲染太慢会卡顿,解析也差强人意
目前 MathJax 3 有在改良这块
还能使用 Server-Side Rendering
但这就不是你需要烦恼的了
我也不建议在 GitHub 上面
写长篇夹杂 MathJax 的 md 文件
: 我的档案如连结,希望没有违反版规QQ
: https://github.com/wwwh0225/elements-of-statistical-learning/blob/main/ch4.md
: 谢谢大家
: -----
: Sent from JPTT on my iPhone
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 223.141.109.67 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/LaTeX/M.1664652056.A.280.html
1F:推 obarisk: 推一个, 好人好文 10/02 07:42
2F:→ obarisk: 所以解法方向建议还是转html或pdf 10/02 08:24
3F:→ obarisk: 转html建议用svg或是其它图片格式 10/02 08:25
4F:→ AndyLee76: 解析要快唯一KaTeX 10/02 20:10
Server-Side Rendering 的作法,是在伺服器端
就解析好,也就是说直接返回塞好 SVG 的文件
给使用者,这其实是解析最快的方式,但一般使
用者不太会用。
具体速度比较可以看这里:
https://www.intmath.com/cg5/katex-mathjax-comparison.php
你会发现 MathJax 3 的解析速度已经大幅改善
了,加上他支援的数学式还有可自定义性很高,
其实不比 KaTeX 要差:
Process MathJax2 13672 ms
Process MathJax3 1025 ms
Process KaTeX 2513 ms
主要是字体载入时间还需要再缩短,这个可以靠
各种 CDN 跟快取处理,我自己更偏好使用目前
的 MathJax3
※ 编辑: Hsins (223.141.109.67 台湾), 10/02/2022 20:20:03
5F:→ obarisk: server side rendering 的碳足迹比较高 10/03 18:21
6F:推 wwwh0225: 推大神,大概了解GitHub 上面打字的原罪在哪里了,非常 10/05 14:18
7F:→ wwwh0225: 感谢 10/05 14:19