2014-10-09 30 views
22

Tôi sử dụng jekyll để viết bài và hiển thị nó trong github-pages. tập tin nguồn của tôi là viết với markdown.
Làm cách nào để chèn công thức vào tệp đánh dấu?
Tôi không muốn lưu công thức vào một hình ảnh. và tải hình ảnh trong tệp đánh dấu. Tôi thực sự muốn viết công thức latex trong tệp đánh dấu trực tiếpLàm thế nào để hỗ trợ latex trong github-trang

+1

Không bao giờ cố gắng nhưng có vẻ như doable http: //gastonsanchez.com/blog/opinion/2014/02/16/Mathjax-with-jekyll.html – DomDom

+1

Tuyệt vời. nó hoạt động. – Samuel

Trả lời

22

Vì tài nguyên trực tuyến đã thay đổi về câu hỏi này, đây là bản cập nhật hỗ trợ LateX với GitHub Pages.

Lưu ý rằng việc hiển thị Latex gần nhất mà không xuất như hình ảnh và hỗ trợ nó trên trang web Jekyll của bạn sẽ là sử dụng MathJax.

MathJax là thực sự khuyến khíchin Jekyllrb docs hỗ trợ toán học, với Kramdown, nó cũng chuyển đổi nó từ LaTeX để PNG, thêm chi tiết về nó ở đây tại Kramdown documentation

Lựa chọn 1: Viết phương trình của bạn trong MathURL và nhúng nó.

Bạn có thể viết phương trình với MathURL, sau đó tạo một url trỏ vĩnh viễn vào phương trình và hiển thị điều này trong thẻ . Tuy nhiên, điều này sẽ ngừng hoạt động nếu MathURL ngoại tuyến.

Phương án 2: Thực hiệnjsMath

jsMath sẽ cho phép hầu hết mủ như cú pháp và sẽ được hỗ trợ trong blog của bạn nếu bạn đã thiết lập nó một cách chính xác, có extensive documentation on this.

Lựa chọn 3: Mathjax (đến nay là đơn giản nhất trong quan điểm của tôi)

Nhiều trang web đã nói rằng Mathjax được coi là một người kế nhiệm của jsMath, và dễ dàng hơn nhiều để thực hiện với Jekyll. MathJax is also used by mathematics.stackexchange.com too!

  • Bước 1: Có trang web của bạn tải các tập lệnh trong các trang web mà bạn muốn hiển thị toán học. (Thường được thực hiện trong phần đầu)

  • Tùy chọn: Chọn phân tích cú pháp markdown của bạn trong _config.yml. redcarpet hoặc kramdown được đề xuất trong ví dụ này. Một số trình phân tích cú pháp như discount sẽ can thiệp vào cú pháp nhưng tôi có giải pháp bên dưới.

  • Bước 2: Viết phương trình của bạn.

Trích dẫn hướng dẫn này bởi Gaston Sanchez:

MathJax không có hành vi chính xác giống như LaTeX. Theo mặc định, trình xử lý tiền tố tex2jax xác định các dấu phân cách toán LaTeX, là \ (... \) cho toán học trực tuyến và \ [... \] cho các phương trình được hiển thị. Nó cũng xác định các dấu phân cách TeX $$ ...$$ cho phương trình được hiển thị, nhưng nó không xác định $ ... $ là dấu phân cách toán học trực tuyến.

Đọc cú pháp documentation trên cú pháp để biết thêm chi tiết.

  • Lưu ý: Sử dụng thẻ raw lỏng để đảm bảo phân tích cú pháp Markdown không can thiệp với cú pháp MathJax.
  • Mặc dù bạn có thể thoát khỏi các dấu gạch chéo ngược (ví dụ: \\[ \frac{1}{n^{2}} \\]) đến đảm bảo chúng được phân tích cú pháp chính xác, as described by Chistopher Poole's tutorial, điều này không phải lúc nào cũng trực quan và phức tạp. Giải pháp đơn giản hơn là sử dụng thẻ chất lỏng thô để đảm bảo văn bản bị bộ xử lý Markdown bỏ qua và xuất trực tiếp dưới dạng html tĩnh . Này được thực hiện với {% raw %} và cũng {% endraw %}

Đây là một mẫu mã:

{% raw %} 
    $$a^2 + b^2 = c^2$$ --> note that all equations between these tags will not need escaping! 
{% endraw %} 

Cuối cùng cũng đảm bảo rằng các phông chữ hỗ trợ hiển thị latex như một số có vấn đề như cỡ chữ quá nhỏ. Ngoài ra, đây là một số số additional methods like Google Charts and MathML được thảo luận trong trang web chị em latex StackExchange.

+0

MathJax làm việc hoàn hảo cho tôi. Trang tại http://docs.mathjax.org/en/latest/start.html có một mẫu tốt trên đó. – MxNx

+0

[ở đây] (http://gastonsanchez.com/opinion/2014/02/16/Mathjax-with-jekyll/) là một bài đăng trên blog rất hay về cách sử dụng mathjax với jekyll – glS

+0

Nó cũng đơn giản như thêm thẻ tập lệnh mathjax trong bố cục bài đăng ngay bây giờ. Nó khá rõ ràng trong các tài liệu bây giờ: https://jekyllrb.com/docs/extras/#math-support –

3

Nếu bạn sử dụng Jekyll trong trang GitHub của bạn, bạn có thể thêm

<script type="text/x-mathjax-config"> 
MathJax.Hub.Config({ 
    tex2jax: { 
    skipTags: ['script', 'noscript', 'style', 'textarea', 'pre'], 
    inlineMath: [['$','$']] 
    } 
}); 

trong file _includes/head.html, và sau đó trang web GitHub trang của bạn sẽ hỗ trợ MathJax

Các vấn đề liên quan