Github'da README.md'de lateks oluşturma


135

GitHub deposunda README.md'de LaTex'i oluşturmanın herhangi bir yolu var mı? Googledim ve yığın taşması üzerinde arama yaptım, ancak ilgili yanıtların hiçbiri uygun görünmüyor.


1
Doğrudan mümkün değil. LaTex'e ihtiyacınız olduğunu düşündüğünüz belirli bir şey var mı? Örneğin, matematik denklemleri istiyorsanız, bu bazı özel numaralarla yapılabilir. Bize ne oluşturmak istediğinizi söyleyin, birileri sizi geçici bir çözüme yönlendirebilir.
Waylan

1
Evet, satır içi matematik sembolleriyle birlikte matematik denklemleri ve hizalı denklemler istiyorum. Hepsi bukadar.
user90593



1
Jupyter not defterlerini kullanmayı düşündünüz mü? Hatta şimdi python kodunu bile ekleyebilirsiniz;)
Charlie Parker

Yanıtlar:


43

Kısa ifadeler için ve o kadar da gösterişli olmayan matematik için, kod kodlarında lateksinizin matematiğini oluşturmak için satır içi HTML'yi kullanabilir ve ardından ortaya çıkan görüntüyü yerleştirebilirsiniz. İşte bir örnek:

- <img src="https://latex.codecogs.com/gif.latex?O_t=\text { Onset event at time bin } t " /> 
- <img src="https://latex.codecogs.com/gif.latex?s=\text { sensor reading }  " /> 
- <img src="https://latex.codecogs.com/gif.latex?P(s | O_t )=\text { Probability of a sensor reading value when sleep onset is observed at a time bin } t " />

Bu da bir sonraki gibi sonuçlanmalı

Güncelleme: Bu, tutulmada harika çalışıyor, ancak maalesef github'da değil. Etrafta tek çalışma bir sonraki:

Lateks denkleminizi alın ve http://www.codecogs.com/latex/eqneditor.php adresine gidin , denkleminizin görüntülendiği alanın altında küçük bir açılır menü vardır, kodlanmış URL'yi seçin ve ardından bunu bir sonraki şekilde github markdown:

![equation](http://latex.codecogs.com/gif.latex?O_t%3D%5Ctext%20%7B%20Onset%20event%20at%20time%20bin%20%7D%20t)
![equation](http://latex.codecogs.com/gif.latex?s%3D%5Ctext%20%7B%20sensor%20reading%20%7D) 
![equation](http://latex.codecogs.com/gif.latex?P%28s%20%7C%20O_t%20%29%3D%5Ctext%20%7B%20Probability%20of%20a%20sensor%20reading%20value%20when%20sleep%20onset%20is%20observed%20at%20a%20time%20bin%20%7D%20t)

4
Ben kullanmanızı öneririz latex.codecogs.com/png.latex yerine latex.codecogs.com/gif.latex ; daha kaliteli görüntüler verir!
Steffo

9
latex.codecogs.com/svg.latex'i kullanabilirsiniz, çözünürlükten bağımsızdır.
lizardfireman

28

Denklemlere sahip depoları Gitlab'a yüklüyorum çünkü .md dosyalarında LaTeX için yerel desteğe sahip:

```math
SE = \frac{\sigma}{\sqrt{n}}
```

Satır içi lateks için sözdizimi $`\sqrt{2}`$.

Gitlab, görüntüleri göstermek yerine tarayıcıda JavaScript ile denklemler oluşturarak denklemlerin kalitesini artırır.

Daha fazla bilgi burada .

Umarız Github bunu gelecekte de uygular.


İnanılmaz! İpucu için teşekkürler :)
Jonathan H

GitHub'ın bunu uygulayıp uygulamadığını biliyor musunuz?
Rylan Schaeffer


21

Readme2Tex

LaTeX dizisini güzel bir şekilde Github-aromalı markdown'a getirme işinin çoğunu otomatikleştiren bir betik üzerinde çalışıyorum: https://github.com/leegao/readme2tex

Github için LaTeX'i oluşturmada birkaç zorluk var. İlk olarak, Github aromalı markdown, çoğu etiketi ve çoğu özelliği çıkarır. Bu, Javascript tabanlı kitaplıklar (Mathjax gibi) veya herhangi bir CSS stili anlamına gelmez.

Doğal çözüm, önceden derlenmiş denklemlerin görüntülerini gömmek gibi görünüyor. Bununla birlikte, LaTeX'in dolar işaretiyle çevrili formülleri görüntülere dönüştürmekten daha fazlasını yaptığını yakında fark edeceksiniz.

görüntü açıklamasını buraya girin

Çevrimiçi derleyicilerden görüntüleri gömmek, belgenize bu gerçekten doğal olmayan bir görünüm kazandırır. Aslında, günlük x ^ 2 matematik argonuzda ürkek olmaktan çok daha okunaklı olduğunu iddia ediyorum .

Belgelerinizin doğal ve okunabilir bir şekilde dizildiğinden emin olmanın önemli olduğuna inanıyorum. Bu nedenle, formülleri görüntülere derlemenin ötesinde, elde edilen görüntünün metnin geri kalanına uygun şekilde yerleştirilmesini ve hizalanmasını sağlayan bir komut dosyası yazdım.

Örneğin, burada bir .mddosyadan, normal ifadeler dizisinin bazı numaralandırıcı özellikleriyle ilgili bir alıntı verilmiştir readme2tex:

görüntü açıklamasını buraya girin

Tahmin edebileceğiniz gibi, en üstteki denklem seti, sadece karşılık gelen align*ortamı başlatarak belirlenir.

**Theorem**: The translation $[\![e]\!]$ given by
\begin{align*}
...
\end{align*}
...

Satır içi denklemler ($ ... $) metinle birlikte çalışırken, ekran denklemlerinin ( \begin{ENV}...\end{ENV}veya ile ayrılmış olanlar $$...$$) ortalanmış olduğuna dikkat edin . Bu, LaTeX'e zaten alışkın olan kişilerin üretken olmaya devam etmesini kolaylaştırır.

Bu yardımcı olabilecek bir şeye benziyorsa, kontrol ettiğinizden emin olun. https://github.com/leegao/readme2tex


14
Bu çalışmaya dayanarak, oluşturma sürecini otomatikleştiren ve her itme yapıldığında onu tetikleyen bir GitHub uygulaması oluşturdum. Bunun yararlı olduğunu düşünüyorum, bu yüzden denemek isteyenler için bağlantıyı paylaşıyorum: github.com/agurz/github-texify
agurodriguez

3
Güzel! Bunu yapmak gerçekten harika :)
Lee

TeXify Uygulaması, markdown numaralandırılmış öğeler için satır içi mathjax dahil edildiğinde çalışmıyor gibi görünüyor.
user32882


13

Başkaları tarafından önerilen bazı çözüm test etmek ve tavsiye etmek istiyorum TeXify oluşturulan ve tarafından yorumunda önerdiği agurodriguez ve daha fazla tarif Tom Hale : Bu çok iyi bir çözümdür niye onun cevabını geliştirmek istiyorum ve bazı gerekçe -

  • TeXify, Readme2Tex'in paketleyicisidir ( Lee cevabında bahsedilir ). Readme2Tex'i kullanmak için yerel makinenize (python, lateks, ...) çok sayıda yazılım yüklemeniz gerekir - ancak TeXify github eklentisidir, bu nedenle yerel makinenize herhangi bir şey yüklemenize gerek yoktur - yalnızca çevrimiçi kurulum yapmanız gerekir. Github hesabınızdaki eklentiyi tek bir düğmeye basarak ve TeXify'ın tex formüllerinizi ayrıştırmak ve resimler oluşturmak için okuma / yazma erişimine sahip olacağı depoları seçin.
  • *.tex.mdDeponuzda dosya oluşturduğunuzda veya güncellediğinizde , TeXify değişiklikleri algılar ve deponuzdaki dizine *.mdkaydedilen resimleri ile lateks formüllerinin değiş tokuş edileceği bir dosya oluşturur tex. Dolayısıyla, README.tex.md dosyasını oluşturursanız, TeXify, tex formülleri yerine resimlerle README.md oluşturacaktır. Böylece, tex formüllerinin ayrıştırılması ve dokümantasyon oluşturulması, her kaydetme ve itme işleminde otomatik olarak yapılır :)
  • Tüm formülleriniz texdizindeki resimlere dönüştürüldüğü ve README.md dosyası bu resimlere bağlantıları kullandığı için, TeXify'ı bile kaldırabilirsiniz ve tüm eski belgeleriniz çalışmaya devam edecektir :). texDizin ve *.tex.mdorijinal lateks formüller ve resimler (ayrıca güvenle saklayabileceğiniz erişebilir böylece dosyaların depoya kalacak tex- TeXify onlara dokunmaz dizini "elle yapılan" diğer belgeler resimler).
  • Denklem lateks sözdizimini doğrudan README.tex.md dosyasında (.md markdown sözdizimini kaybetmeden) kullanabilirsiniz, bu da çok kullanışlıdır . Julii cevabında , harici hizmete özel bağlantılar (formüllerle) kullanmayı önerdi, örn. http://latex.codecogs.com/gif.latex?s%3D%5Ctext%20%7B%20sensor%20reading%20%7Dbu iyidir ancak bazı dezavantajları vardır: Bağlantılardaki formüllerin okunması ve güncellenmesi kolay değildir (kullanışlı) ve bu üçüncü taraf hizmetiyle ilgili bir sorun olursa eski belgeleriniz çalışmayı durdurur ... TeXify'da eski belgeleriniz Bu eklentiyi kaldırsanız bile her zaman çalışır (çünkü lateks formüllerinden oluşturulan tüm resimleriniz texdizinde depoda kalır ).
  • Yuchao Jiang kullanılması önerilmiştir Onun cevabını, içinde Jupyter Notebook da güzel ancak som sakıncaları vardır: Eğer README.md dosyasında doğrudan formülleri kullanamazsınız, diğer dosya bağlantısını orada yapmak gerekir * Lütfen repo .ipynb lateks içeren (MathJax) formülleri. * .İpynb formatı JSON dosyasıdır ve bakımı kullanışlı değildir (örn. Gist, virgülü doğru yere koymayı unuttuğunuzda * .ipynb dosyasında satır numarasıyla ilgili ayrıntılı hata göstermez ...).

Burada, README.tex.md dosyasından belgelerin oluşturulduğu TeXify'ı kullandığım depomdan bazılarına bağlantı var .


@Royi Bilmiyorum
Kamil Kiełczewski

Güzel ama / tex klasöründeki bir ton kullanılmayan çöp svg görüntüsüyle nasıl başa çıkıyorsunuz?
Serge P.

@SergeP. hepsini sil ve it?
Kamil Kiełczewski

6

GitHub'a gönderildikten sonra otomatik dönüştürme için TeXify uygulamasına bir göz atın :

* .Tex.md uzantılı dosyalarınızı arayan ve TeX ifadelerini SVG görüntüleri olarak işleyen GitHub Uygulaması

Nasıl çalışır ( kaynak depodan ):

TeXify'a her bastığınızda, son kaydetmenizde * .tex.md dosyalarını çalıştıracak ve arayacaktır. Bunların her biri için, dolar işaretleri arasına alınmış LaTeX ifadelerini alacak, bunu düz SVG görüntülerine dönüştürecek ve ardından çıktıyı bir .md uzantı dosyasına kaydedecek olan benioku2tex'i çalıştıracaktır (Bu, README.tex.md adlı bir dosya anlamına gelir. işlenecek ve çıktı README.md olarak kaydedilecektir). Bundan sonra, çıktı dosyası ve yeni SVG görüntüleri işlenir ve deponuza geri gönderilir.


1
Bu çalışma, yukarıdaki bir yorumda bahseden @agurodriguez tarafından yapılmıştır
icc97

1
@ icc97 evet, ama agurodriguez cevap yaratmıyor (ve muhtemelen yorumunu asla fark etmeyeceğim). Tom cevap oluşturduğu için (agurodriguezden ~ 1 yıl sonra) TeXify'ın var olduğunu ve TeXify'ı kullanıp bunun üzerine kendi cevap tabanımı yazmama izin verdiğini fark ettim . Yani iyiydi :)
Kamil Kiełczewski

3
@ KamilKiełczewski Bu cevapta yanlış bir şey yok, sadece TeXify'ın bu konu yüzünden bir SO kullanıcısı tarafından yaratıldığından bahsediyorum, ki bu oldukça havalı.
icc97

TeXify'ı benioku'mda kullanıyorum, ancak bazı nedenlerden dolayı, $...$metinde neredeyse her seferinde oluşturma satırları atlıyor . Herhangi bir ipucu neden? Bu depo: github.com/brunoconteleite/Spatial-Model-Solver
Bruno Conte Leite

3

Hızlı çözümüm şudur:

adım 1. .mdDosyanıza lateks ekleyin

$$x=\sqrt{2}$$

Not: matematik denklemleri $$ ... $$ veya \\(... \\).

adım 2. Aşağıdakileri scripts.htmlveya tema dosyanıza ekleyin (bu kodu sonuna ekleyin)

<script type="text/javascript" async

src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-MML-AM_CHTML">

Bitti !. Eşinize bakın. sayfayı yükleyerek.


1
Hangi scripts.htmldosya? Buna bir github özelliği olarak herhangi bir referans bulamıyorum.
Jay Lemmon

tema dosyanız ( Jeykylltema dosyanız) var mı? Bu kod, git sayfalarında lateksi görüntülemek içindir.
CKM

2
Bunun sadece git sayfalarında çalıştığını, normal depodaki README.md için çalışmadığını açıklığa kavuşturmalıdır.
germanyum

1

LaTeX'i işlemek ve sonuçları github'a işlemek için sürekli bir entegrasyon hizmeti (örneğin Travis CI ) alabilirsiniz. CI, her yeni işlemden sonra bir "bulut" çalışanı dağıtacaktır. Çalışan, belgenizi pdf olarak derler ve ya ImageMagick'i onu bir görüntüye dönüştürmeye zorlar ya da başarının belgenize bağlı olarak değişebileceği LaTeX-> HTML dönüştürme girişiminde bulunmak için PanDoc'u kullanır. İşçi daha sonra görüntü veya html'yi benioku'nuzda gösterilebileceği deponuza kaydeder.

Bir PDF oluşturan, onu bir PNG'ye dönüştüren ve deponuzda statik bir konuma teslim eden örnek TravisCi yapılandırması aşağıda yapıştırılmıştır. PDF'yi bir görüntüye dönüştüren pdf'yi getiren bir satır eklemeniz gerekir

sudo: required
dist: trusty
os: linux
language: generic
services: docker
env:
  global:
  - GIT_NAME: Travis CI
  - GIT_EMAIL: builds@travis-ci.org
  - TRAVIS_REPO_SLUG: your-github-username/your-repo
  - GIT_BRANCH: master
# I recommend storing your GitHub Access token as a secret key in a Travis CI environment variable, for example $GH_TOKEN.
  - secure: ${GH_TOKEN}
script:
- wget https://raw.githubusercontent.com/blang/latex-docker/master/latexdockercmd.sh
- chmod +x latexdockercmd.sh
- "./latexdockercmd.sh latexmk -cd -f -interaction=batchmode -pdf yourdocument.tex -outdir=$TRAVIS_BUILD_DIR/"
- cd $TRAVIS_BUILD_DIR
- convert -density 300 -quality 90 yourdocument.pdf yourdocument.png
- git checkout --orphan $TRAVIS_BRANCH-pdf
- git rm -rf .
- git add -f yourdoc*.png
- git -c user.name='travis' -c user.email='travis' commit -m "updated PDF"
# note we are again using GitHub access key stored in the CI environment variable
- git push -q -f https://your-github-username:$GH_TOKEN@github.com/$TRAVIS_REPO_SLUG $TRAVIS_BRANCH-pdf
notifications:
  email: false

Bu Travis Ci yapılandırması, bir Ubuntu çalışanı başlatır, bir lateks docker görüntüsü indirir, belgenizi pdf olarak derler ve bunu branchanme-pdf adlı bir şubeye teslim eder.

Daha fazla örnek için bkz bu github repo ve ona eşlik eden sx tartışma , Pandoc örneği , https://dfm.io/posts/travis-latex/ ve Aracı'sı bu yayını .



Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.