Jak wyświetlić równania matematyczne w ogólnej marży na githubie (nie na blogu github)

150

Po zbadaniu sprawy odkryłem, że Mathjax może to zrobić. Ale kiedy piszę przykład w moim pliku przecen, nie pokazuje on poprawnych równań:

Dodałem to w nagłówku pliku przecen:

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

I wpisz instrukcję mathjax:

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

Ale github nie pokazuje nic dla symboli matematycznych! Proszę, pomóż mi, dzięki! Powiedz mi, jak wyświetlać symbole matematyczne na stronach z rabatami na githubie.

alexunder
źródło
2
To nie rozwiązuje problemu dla zwykłych użytkowników, ale ta odpowiedź sugeruje skrypt przeglądarki, który może przynajmniej pozwolić ci zobaczyć równania: stackoverflow.com/q/11255900/180892
Jeromy Anglim
gitlab używa KaTeX
Foad

Odpowiedzi:

143

Ale github nie pokazuje nic dla symboli matematycznych! proszę, pomóż mi, dzięki!

Analiza cen GitHub jest wykonywana przez bibliotekę SunDown (ex libUpSkirt).

Mottem biblioteki jest „Zgodna ze standardami, szybka, bezpieczna biblioteka do przetwarzania przecen w C” . Ważne słowo jest tam „bezpieczne”, biorąc pod uwagę twoje pytanie :).

Rzeczywiście, zezwolenie na wykonanie javascript byłoby nieco niezgodne ze standardowym kontraktem tekstu na HTML MarkDown.

Co więcej, wszystko, co wygląda jak znacznik HTML, jest usuwane lub usuwane.

Powiedz mi, jak wyświetlać symbole matematyczne w ogólnych przecenach na githubie.

Najlepszym rozwiązaniem byłoby znalezienie witryny podobnej do yuml.me, która może generować obrazy w locie, analizując podany adres URL.

Aktualizacja

Znalazłem kilka witryn oferujących użytkownikom taką usługę: codedogs.com ( nie wydaje się już wspierać osadzania ) lub iTex2Img . Możesz je wypróbować. Oczywiście mogą istnieć inne, a niektóre Google-fu pomoże Ci je znaleźć.

biorąc pod uwagę następującą składnię markdown

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

wyświetli następujący obraz

równanie http://www.sciweavers.org/tex2img.php?eq=1%2Bsin%28mc%5E2%29&bc=White&fc=Black&im=jpg&fs=12&ff=arev&edit=

Uwaga : aby obraz był prawidłowo wyświetlany, musisz upewnić się, że część adresu URL, w której pojawia się zapytanie, jest zakodowana w procentach . Możesz łatwo znaleźć narzędzia online, które pomogą Ci w tym zadaniu, takie jak www.url-encode-decode.com

nulltoken
źródło
6
@nultoken, dziękuję za pomocną odpowiedź. Skorzystałem ze strony internetowej iTex2Img, o której wspomniałeś powyżej, i dodałem dwie formuły do ​​mojej dokumentacji. Mam problem z tym, że kiedy otwieram stronę dokumentacji na GitHubie, obie formuły są wyświetlane tak samo, podczas gdy w rzeczywistości są różne. Czy wiesz, dlaczego tak się dzieje?
Sam,
3
mathurl.com jest również godną uwagi stroną internetową, jeśli musisz wygenerować obraz.
Martin Thoma,
2
To jednak nie wydaje się działać na githubie. Obraz nie jest renderowany. Czy ktoś wie, dlaczego?
OganM
1
@OganM Składnia uległa zmianie. Link został naprawiony i przetestowany również w
GitHubie
1
Wydaje się, że witryna iTex2Img nie działa konsekwentnie dla mnie. Wydaje się, że obraz nie jest renderowany na Github.
timbram,
91

Markdown obsługuje wbudowany HTML. Wbudowany kod HTML może być używany zarówno do szybkich i prostych równań w wierszu, jak i do bardziej złożonego renderowania za pomocą narzędzia zewnętrznego.

Szybki i prosty inline

Aby uzyskać szybkie i proste elementy wbudowane, użyj ampersand kodów jednostek HTML . Przykładem, który łączy tę ideę z tekstem indeksu dolnego w markdown, jest: h θ (x) = θ o x + θ 1 x, kod, który znajduje się poniżej.

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

Kody HTML ampers i encje dla popularnych symboli matematycznych można znaleźć tutaj . Kody greckich liter tutaj .

Chociaż to podejście ma ograniczenia, działa praktycznie we wszystkich przecenach i nie wymaga żadnych zewnętrznych bibliotek.

Złożone, skalowalne renderowanie liniowe za pomocą LaTeX i Codecogs

Jeśli Twoje potrzeby są większe, użyj zewnętrznego renderera LaTeX, takiego jak CodeCogs. Utwórz równanie za pomocą edytora CodeCogs . Wybierz svg do renderowania i HTML dla kodu osadzania. Svg dobrze renderuje się po zmianie rozmiaru. HTML umożliwia łatwe odczytanie LaTeX-a, gdy patrzysz na źródło. Skopiuj kod do umieszczenia na dole strony i wklej go do swojej promocji.

<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}" />

To łączy tę odpowiedź i tę odpowiedź .

Obsługa GitHub tylko czasami działała przy użyciu powyższej surowej składni html dla czytelnego LaTeX-a. Jeśli powyższe nie działa, inną opcją jest zamiast tego wybranie renderowania z kodowaniem URL i użycie tego wyniku do ręcznego utworzenia łącza, takiego jak:

\ Duży 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)

To ręcznie włącza LaTex do tekstu obrazu alternatywnego i używa zakodowanego adresu URL do renderowania w GitHub.

Renderowanie wieloliniowe

Jeśli potrzebujesz renderowania wieloliniowego, sprawdź tę odpowiedź .

SpeedCoder5
źródło
1
to działało świetnie. Musiałem przekonwertować notatnik jupyter (.ipynb) na, .mda równania były zasadniczo wielowierszowym kodem lateksowym.
Marc Maxmeister
12

Jeśli chcesz tylko pokazać sobie matematykę w przeglądarce, możesz wypróbować rozszerzenie GitHub do Chrome z MathJaxem . To całkiem wygodne.

nn0p
źródło
1
podczas próby instalacji pojawia się błąd z icon16.png
Homero Esmeraldo
10

Innym obejściem jest użycie notatników jupyter i użycie trybu przecen w komórkach do renderowania równań.

Wydaje się, że podstawowe rzeczy działają idealnie, jak równania wyśrodkowane

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

lub równania inline

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

Chociaż jedną z funkcji, której naprawdę chciałem, w ogóle nie renderowałem na githubie, było \mbox{}, co było kłopotem. Ale w sumie to był najbardziej skuteczny sposób renderowania równań na githubie.

chahuja
źródło
3
Dziękuję za tę odpowiedź, ale jest jeden problem: udało mi się użyć notatnika jupyter w trybie przeceny i równanie wygląda dobrze. Jednak teraz, jak możesz przenieść tę zniżkę jupyter readme.mdna GitHub?
David C.
1
Równania nie są renderowane bezpośrednio w plikach Markdown. Równania musiałyby być w zasadzie obrazami readme.md. Jednak zawsze możesz po prostu założyć file.ipynbgithub, a github dobrze to renderuje.
heksykul
8

Teraz jest rok 2020, pozwolę sobie podsumować postęp w zakresie renderowania formuły matematycznej obsługi hostów repozytoriów kodu źródłowego.

GitHub i Bitbucket

GitHub i Bitbucket nadal nie obsługują renderowania formuł matematycznych, niezależnie od tego, czy są to domyślne separatory, czy inne.

Bitbucket Cloud / BCLOUD-11192 - Dodaj obsługę LaTeX w dokumentach MarkDown (BB-12552)

GitHub / markup - renderowanie równań matematycznych

GitHub / markup - obsługa Latex

Forum społeczności GitHub - [PROŚBA O FUNKCJĘ] LaTeX Math w Markdown

talk.commonmark.org - Czy dodano formułę matematyczną do przeceny

W ostatnich latach GitHub nie zrobił żadnego znaczącego postępu.

GitLab

GitLab jest już obsługiwany, ale nie jest to najpopularniejszy sposób. Używa własnego separatora.

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

This is on a separate line

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

GitLab Flavored Markdown - Math

Kto popiera uniwersalne ograniczniki?

Parser Markdown używany przez Hugo

Inne sposoby renderowania

xuesongye
źródło
6

Chociaż GitHub nie zinterpretuje formuł MathJax, możesz automatycznie wygenerować nowy dokument Markdown z formułami zastąpionymi obrazami.

Proponuję spojrzeć na aplikację GitHub TeXify :

Aplikacja GitHub, która szuka w Twoich plikach push w poszukiwaniu plików z rozszerzeniem * .tex.md i renderuje wyrażenia TeX jako obrazy SVG

Jak to działa (z repozytorium źródłowego ):

Za każdym razem, gdy naciskasz, TeXify uruchomi się i wyszuka pliki * .tex.md w ostatnim zatwierdzeniu. Dla każdego z nich uruchomi readme2tex, który pobierze wyrażenia LaTeX zawarte między znakami dolara, przekonwertuje je na zwykłe obrazy SVG, a następnie zapisze dane wyjściowe w pliku z rozszerzeniem .md (oznacza to, że plik o nazwie README.tex.md zostaną przetworzone, a dane wyjściowe zostaną zapisane jako README.md). Następnie plik wyjściowy i nowe obrazy SVG są zatwierdzane i przesyłane z powrotem do repozytorium.

Tom Hale
źródło
2

Jest dobre rozwiązanie twojego problemu - użyj wtyczki TeXify github (wspomnianej przez Tom Hale odpowiedź - ale rozwinąłem jego odpowiedź w podanym linku poniżej) - więcej szczegółów na temat tej wtyczki github i wyjaśnienie, dlaczego jest to dobre podejście, możesz znaleźć w tej odpowiedzi .

Kamil Kiełczewski
źródło
2

Używam poniższego procesu do konwersji równań na przeceny. U mnie to działa bardzo dobrze. To jest bardzo proste!!

Powiedzmy, że chcę przedstawić równanie mnożenia macierzy

Krok 1:

Pobierz skrypt dla swoich formuł stąd - https://csrgxtu.github.io/2015/03/20/Writing-Mathematic-Fomulars-in-Markdown/

Mój przykład: chciałem przedstawić Z(i,j)=X(i,k) * Y(k, j); k=1 to nw podsumowaniu formuły. W odniesieniu do strony internetowej potrzebny był skrypt =>

wprowadź opis obrazu tutaj

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

Krok 2:

Użyj kodera URL - https://www.urlencoder.org/, aby przekonwertować skrypt na prawidłowy adres URL

Mój przykład:

wprowadź opis obrazu tutaj

Krok 3:

Użyj tej witryny, aby wygenerować obraz, kopiując i wklejając wynik z kroku 2 w parametrze żądania „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=

- Mój przykład:
http://www.sciweavers.org/tex2img.php?eq=Z_i_j=\sum_{k = 1} ^ {10}% 20X_i_k% 20 *% 20Y_k_j & bc = White & fc = Black & im = jpg & fs = 12 & ff = arev & edit =

wprowadź opis obrazu tutaj

Krok 4:

Obraz referencyjny wykorzystujący składnię markdown - ![alt text](enter url here)

- Skopiuj to w swoim Markdown i gotowe:

![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=)

Obraz poniżej przedstawia wynik przeceny. Hurra!!


wprowadź opis obrazu tutaj

Dexter
źródło
każdy, kto to czyta, „Typora” to moja nowa ulubiona aplikacja przecenowa… tylko mówię
Dexter
0

Jeśli chodzi o konwersję tex → obrazu, narzędzie LaTeXiT zapewnia znacznie wyższą jakość wydruku. Uważam, że jest to standard w większości dystrybucji TeX, ale z pewnością możesz go znaleźć w Internecie, jeśli jeszcze go nie masz. Wszystko, co musisz zrobić, to umieścić go w TeX-ie, przeciągnąć obraz na pulpit, a następnie przeciągnąć z pulpitu do witryny hostującej obrazy (używam imgur).

fredcallaway
źródło
Należy zauważyć, że LaTeXiT wydaje się działać tylko pod MacOS (chociaż nie jest to wyraźnie zaznaczone na stronie internetowej).
ƒacu.
0

Użyłem następujących w nagłówku pliku przeceny

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

Następnie wpisałem następującą instrukcję mathjax
$$ x_ {1,2} = \ frac {-b \ pm \ sqrt {b ^ 2-4ac}} {2b}. $$ U
mnie zadziałało

Swetha Tanamala
źródło