Cách hiển thị các phương trình toán học trong đánh dấu chung của github (không phải blog của github)


150

Sau khi điều tra, tôi đã tìm thấy mathjax có thể làm điều này. Nhưng khi tôi viết một số ví dụ trong tệp đánh dấu của mình, nó không hiển thị các phương trình chính xác:

Tôi đã thêm phần này vào phần đầu của tệp markdown:

<script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=default"></script>

Và gõ câu lệnh mathjax:

(E = mc ^ 2) , $$ x_ {1,2} = \ frac {-b \ pm \ sqrt {b ^ 2-4ac}} {2b}. $$

Nhưng github không cho thấy gì cho các biểu tượng toán học! Xin hãy giúp tôi, cảm ơn! Cho tôi biết làm thế nào để hiển thị các biểu tượng toán học trong các trang đánh dấu github.


2
Nó không giải quyết được vấn đề cho người dùng phổ thông, nhưng câu trả lời này cho thấy tập lệnh trình duyệt ít nhất có thể cho phép bạn xem các phương trình: stackoverflow.com/q/11255900/180892
Jeromy Anglim

gitlab sử dụng KaTeX
Foad

Câu trả lời:


143

Nhưng github không hiển thị gì cho các biểu tượng toán học! Xin hãy giúp tôi, cảm ơn!

Phân tích cú pháp đánh dấu GitHub được thực hiện bởi thư viện SunDown (ex libUpSkirt).

Phương châm của thư viện là " Thư viện xử lý đánh dấu tiêu chuẩn, nhanh, an toàn trong C" . Từ quan trọng là "an toàn" ở đó, xem xét câu hỏi của bạn :).

Thật vậy, việc cho phép javascript được thực thi sẽ là một chút trong hợp đồng chuyển văn bản tiêu chuẩn sang MarkDown.

Hơn nữa, mọi thứ trông giống như thẻ HTML đều được thoát hoặc bị loại bỏ.

Cho tôi biết làm thế nào để hiển thị các biểu tượng toán học trong đánh dấu github nói chung.

Đặt cược tốt nhất của bạn sẽ là tìm một trang web tương tự như yuml.me có thể tạo ra các hình ảnh nhanh chóng bằng cách phân tích chuỗi truy vấn URL được cung cấp.

Cập nhật

Tôi đã tìm thấy một số trang web cung cấp cho người dùng dịch vụ như vậy: codedogs.com ( dường như không còn hỗ trợ nhúng ) hoặc iTex2Img . Bạn có thể muốn thử chúng. Tất nhiên, những người khác có thể tồn tại và một số Google-fu sẽ giúp bạn tìm thấy chúng.

đưa ra cú pháp đánh dấu sau

![equation](http://www.sciweavers.org/tex2img.php?eq=1%2Bsin%28mc%5E2%29&bc=White&fc=Black&im=jpg&fs=12&ff=arev&edit=)

nó sẽ hiển thị hình ảnh sau

phương trình http://www.sciweavers.org/tex2img.php?eq=1%2Bsin%28mc%5E2%29&bc=White&fc=Black&im=jpg&fs=12&ff=arev&edit=

Lưu ý : Để hình ảnh được hiển thị chính xác, bạn sẽ phải đảm bảo phần chuỗi truy vấn của url được mã hóa phần trăm . Bạn có thể dễ dàng tìm thấy các công cụ trực tuyến để giúp bạn thực hiện nhiệm vụ đó, chẳng hạn như www.url-encode-decode.com


6
@nultoken, cảm ơn câu trả lời hữu ích của bạn. Tôi đã sử dụng trang web iTex2Img mà bạn đã tham chiếu ở trên và tôi đã thêm hai công thức vào tài liệu của mình. Tôi đã gặp một vấn đề là khi tôi mở trang tài liệu trên GitHub, cả hai công thức đều được hiển thị giống nhau trong khi chúng thực sự khác nhau. Bạn sẽ biết tại sao nó xảy ra?
Sam

3
mathurl.com cũng là một trang web đáng chú ý nếu bạn phải tạo hình ảnh.
Martin Thoma

2
Điều này dường như không hoạt động trên github. Hình ảnh không hiển thị. Có ai biết tại sao không?
OganM

1
@OganM Cú pháp đã thay đổi. Liên kết đã được sửa và kiểm tra trong GitHub
nulltoken

1
Trang web iTex2Img dường như không phù hợp với tôi. Hình ảnh dường như không hiển thị trên Github.
timbram

91

Markdown hỗ trợ HTML nội tuyến. HTML nội tuyến có thể được sử dụng cho cả phương trình nội tuyến nhanh và đơn giản và, với và công cụ bên ngoài, kết xuất phức tạp hơn.

Nội tuyến nhanh chóng và đơn giản

Đối với các mục nội tuyến nhanh chóng và đơn giản, hãy sử dụng mã HTML và mã thực thể . Một ví dụ kết hợp ý tưởng này với văn bản đăng ký trong markdown là: h θ (x) = o x + 1 x, mã theo sau.

    h<sub>&theta;</sub>(x) = &theta;<sub>o</sub> x + &theta;<sub>1</sub>x

HTML ký hiệu và mã thực thể cho các ký hiệu toán học phổ biến có thể được tìm thấy ở đây . Mã cho các chữ cái Hy Lạp ở đây .

Mặc dù cách tiếp cận này có những hạn chế nhưng thực tế nó hoạt động trong tất cả các lần đánh dấu và không yêu cầu bất kỳ thư viện bên ngoài nào.

Kết xuất nội tuyến có thể mở rộng phức tạp với LaTeX và Codecogs

Nếu nhu cầu của bạn lớn hơn, hãy sử dụng trình kết xuất LaTeX bên ngoài như CodeCogs. Tạo một phương trình với trình soạn thảo CodeCogs . Chọn svg để kết xuất và HTML cho mã nhúng. Svg kết xuất tốt trên thay đổi kích thước. HTML cho phép LaTeX dễ dàng đọc khi bạn xem nguồn. Sao chép mã nhúng từ dưới cùng của trang và dán nó vào đánh dấu của bạn.

<img src="https://latex.codecogs.com/svg.latex?\Large&space;x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}" title="\Large x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}" />

Điều này kết hợp câu trả lời này và câu trả lời này .

GitHub chỉ hỗ trợ somtimes hoạt động bằng cách sử dụng cú pháp html thô ở trên để LaTeX có thể đọc được cho tôi. Nếu cách trên không hiệu quả với bạn, thì tùy chọn khác là thay vào đó, hãy chọn kết xuất được mã hóa URL và sử dụng đầu ra đó để tự tạo một liên kết như:

\ Lớn x = \ frac {-b \ pm \ sqrt {b ^ 2-4ac}} {2a}

![\Large x=\frac{-b\pm\sqrt{b^2-4ac}}{2a}](https://latex.codecogs.com/svg.latex?x%3D%5Cfrac%7B-b%5Cpm%5Csqrt%7Bb%5E2-4ac%7D%7D%7B2a%7D)

Điều này kết hợp thủ công LaTex trong văn bản hình ảnh thay thế và sử dụng URL được mã hóa để hiển thị trên GitHub.

Kết xuất nhiều dòng

Nếu bạn cần kết xuất nhiều dòng hãy xem câu trả lời này .


1
Điều này đã làm việc tuyệt vời. Tôi đã phải chuyển đổi một máy tính xách tay jupyter (.ipynb) sang .mdvà các phương trình về cơ bản là mã latex đa dòng.
Marc Maxmeister

12

Nếu bạn chỉ muốn hiển thị toán học trong trình duyệt cho chính mình, bạn có thể thử tiện ích mở rộng Chrome GitHub với MathJax . Nó khá thuận tiện.


1
có lỗi với icon16.png khi tôi cố cài đặt
Homero Esmeraldo

10

Một cách giải quyết khác là sử dụng sổ ghi chép jupyter và sử dụng chế độ đánh dấu trong các ô để hiển thị các phương trình.

Các công cụ cơ bản dường như hoạt động hoàn hảo, như các phương trình trung tâm

\begin{equation}
...
\end{equation}

hoặc phương trình nội tuyến

$ \sum_{\forall i}{x_i^{2}} $

Mặc dù, một trong những chức năng mà tôi thực sự muốn hoàn toàn không hiển thị trong github \mbox{}, đó là một bummer. Nhưng, tất cả trong tất cả điều này đã là cách thành công nhất để hiển thị các phương trình trên github.


3
Cảm ơn bạn đã trả lời, nhưng có vấn đề này: Tôi đã quản lý để sử dụng máy tính xách tay jupyter trong chế độ đánh dấu và phương trình xuất hiện OK. Tuy nhiên, bây giờ bạn có thể làm gì để chuyển phần đánh dấu jupyter này sang readme.mdGitHub?
DavidC.

1
Các phương trình không hiển thị trực tiếp trên các tệp Markdown. Các phương trình sẽ có khá nhiều hình ảnh phải có trên readme.md. Tuy nhiên, bạn luôn có thể đặt file.ipynbgithub và github kết xuất tốt.
lục giác

8

Bây giờ là năm 2020, hãy để tôi tóm tắt tiến trình hỗ trợ kết xuất công thức toán học của các máy chủ lưu trữ mã nguồn.

GitHub & Bitbucket

GitHub và Bitbucket vẫn không hỗ trợ kết xuất các công thức toán học, cho dù đó là các dấu phân cách mặc định hay khác.

Đám mây Bitbucket / BCLOUD-11192 - Thêm hỗ trợ LaTeX trong Tài liệu MarkDown (BB-12552)

GitHub / markup - Kết xuất phương trình toán học

GitHub / markup - Hỗ trợ latex

Diễn đàn cộng đồng GitHub - [YÊU CẦU ĐẶC ĐIỂM] Toán LaTeX trong Markdown

talk.commonmark.org - Công thức toán học có thể được thêm vào markdown

GitHub hầu như không đạt được tiến bộ đáng kể nào trong những năm gần đây.

GitLab

GitLab đã được hỗ trợ, nhưng không phải là cách phổ biến nhất. Nó sử dụng dấu phân cách riêng của nó.

This math is inline $`a^2+b^2=c^2`$.

This is on a separate line

```math
a^2+b^2=c^2
```

GitLab Hương vị Markdown - Toán học

Ai ủng hộ các dấu phân cách phổ quát?

Trình phân tích cú pháp Markdown được Hugo sử dụng

Những cách khác để kết xuất


6

Trong khi GitHub sẽ không giải thích các công thức MathJax, bạn có thể tự động tạo một tài liệu Markdown mới với các công thức được thay thế bằng hình ảnh.

Tôi khuyên bạn nên xem ứng dụng GitHub TeXify :

Ứng dụng GitHub tìm kiếm các tệp có phần mở rộng * .tex.md và hiển thị biểu thức TeX của nó dưới dạng hình ảnh SVG

Cách thức hoạt động (từ kho lưu trữ nguồn ):

Bất cứ khi nào bạn đẩy TeXify sẽ chạy và tìm kiếm các tệp * .tex.md trong lần xác nhận cuối cùng của bạn. Đối với mỗi một trong số đó, nó sẽ chạy readme2tex, sẽ lấy các biểu thức LaTeX được bao quanh giữa các ký hiệu đô la, chuyển đổi nó thành hình ảnh SVG đơn giản, sau đó lưu kết quả đầu ra vào tệp mở rộng .md (Điều đó có nghĩa là một tệp có tên README.tex.md sẽ được xử lý và đầu ra sẽ được lưu dưới dạng README.md). Sau đó, tệp đầu ra và hình ảnh SVG mới sau đó được cam kết và đẩy trở lại repo của bạn.


2

Có một giải pháp tốt cho vấn đề của bạn - sử dụng plugin TeXify github (được đề cập bởi câu trả lời của Tom Hale - nhưng tôi đã phát triển câu trả lời của mình trong liên kết đã cho bên dưới) - chi tiết hơn về plugin github này và giải thích tại sao đây là cách tiếp cận tốt mà bạn có thể tìm thấy trong câu trả lời đó .


2

Tôi sử dụng quy trình được đề cập dưới đây để chuyển đổi phương trình sang markdown. Điều này làm việc rất tốt cho tôi. Nó rất đơn giản!!

Giả sử, tôi muốn biểu diễn phương trình nhân ma trận

Bước 1:

Lấy tập lệnh cho các công thức của bạn từ đây - https://csrgxtu.github.io/2015/03/20/Writing-MathIAL-Fomenses-in-Markdown/

Ví dụ của tôi: Tôi muốn trình bày Z(i,j)=X(i,k) * Y(k, j); k=1 to nthành một công thức tổng hợp. Tham khảo trang web, tập lệnh cần thiết là =>

nhập mô tả hình ảnh ở đây

Z_i_j=\sum_{k=1}^{10} X_i_k * Y_k_j

Bước 2:

Sử dụng bộ mã hóa URL - https://www.urlencoder.org/ để chuyển đổi tập lệnh thành url hợp lệ

Ví dụ của tôi:

nhập mô tả hình ảnh ở đây

Bước 3:

Sử dụng trang web này để tạo hình ảnh bằng cách sao chép đầu ra từ Bước 2 trong tham số yêu cầu "eq" - http://www.sciweavers.org/tex2img.php?eq=<b><i>paste-output-here</i></b>&bc=White&fc=Black&im=jpg&fs=12&ff=arev&edit=

- Ví dụ của tôi:
http://www.sciweavers.org/tex2img.php?eq=Z_i_j=\sum_ đũak = 1} ^ {10}% 20X_i_k% 20 *% 20Y_k_j & bc = Trắng & fc = Đen & im = jpg & fs = 12 & ff = arev & chỉnh sửa =

nhập mô tả hình ảnh ở đây

Bước 4:

Hình ảnh tham khảo bằng cú pháp đánh dấu - ![alt text](enter url here)

- Sao chép phần này trong phần đánh dấu của bạn và bạn thật tuyệt:

![Z(i,j)=X(i,k) * Y(k, j); k=1 to n](http://www.sciweavers.org/tex2img.php?eq=Z_i_j%3D%5Csum_%7Bi%3D1%7D%5E%7B10%7D%20X_i_k%20%2A%20Y_k_j&bc=White&fc=Black&im=jpg&fs=12&ff=arev&edit=)

Hình ảnh dưới đây là đầu ra của markdown. Tiếng hoan hô!!


nhập mô tả hình ảnh ở đây


bất cứ ai đọc cái này, "Typora" là ứng dụng đánh dấu yêu thích mới của tôi .. chỉ cần nói
Dexter

0

Về chuyển đổi hình ảnh tex →, công cụ LaTeXiT tạo ra chất lượng đầu ra cao hơn nhiều. Tôi tin rằng nó là tiêu chuẩn trong hầu hết các bản phân phối TeX nhưng bạn chắc chắn có thể tìm thấy nó trực tuyến nếu bạn chưa có nó. Tất cả những gì bạn cần làm là đặt nó vào TeX, kéo hình ảnh vào màn hình của bạn, sau đó kéo từ máy tính để bàn của bạn đến một trang web lưu trữ hình ảnh (tôi sử dụng imgur).


Cần lưu ý rằng LaTeXiT dường như chỉ hoạt động trong MacOS (mặc dù điều đó không được nêu rõ trong trang web).
ƒacu.-

0

Tôi đã sử dụng như sau trong phần đầu của tập tin đánh dấu

<script type="text/javascript" async
src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js? 
config=TeX-MML-AM_CHTML"
</script>

Sau đó, gõ câu lệnh mathjax sau đây
$$ x_ {1,2} = \ frac {-b \ pm \ sqrt {b ^ 2-4ac}} {2b}. $$
Nó hoạt động với tôi

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.