作者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/m.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