Czy istnieje sposób na renderowanie LaTex w README.md w repozytorium GitHub? Przeszukałem go w Google i szukałem informacji o przepełnieniu stosu, ale żadna z powiązanych odpowiedzi nie wydaje się możliwa.
Nie jest to możliwe bezpośrednio. Czy jest jakaś konkretna rzecz, do której myślisz, że potrzebujesz LaTex? Na przykład, jeśli potrzebujesz równań matematycznych, możesz to zrobić za pomocą pewnych określonych sztuczek. Powiedz nam, co chcesz renderować, a ktoś może wskazać Ci obejście.
Waylan,
1
Tak, chcę równania matematyczne i wyrównane równania wraz z wbudowanymi symbolami matematycznymi. To prawie wszystko.
czy rozważałeś użycie notebooków Jupyter? Możesz nawet wstawić kod Pythona teraz;)
Charlie Parker
Odpowiedzi:
42
W przypadku krótkich wyrażeń i niezbyt wyszukanej matematyki możesz użyć wbudowanego kodu HTML, aby uzyskać matematykę renderowaną lateksem na kodekach, a następnie osadzić wynikowy obraz. Oto przykład:
- <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 " />
Co powinno skutkować czymś podobnym do następnego
Aktualizacja: Działa to świetnie w eclipse, ale niestety nie w githubie. Jedyne obejście to następna:
Weź swoje równanie lateksowe i przejdź do http://www.codecogs.com/latex/eqneditor.php , u dołu obszaru, w którym wyświetlane jest twoje równanie, znajduje się małe menu rozwijane, wybierz zakodowany adres URL, a następnie wklej go w swoim github markdown w następny sposób:
Pracowałem nad skryptem, który automatyzuje większość problemów związanych z ładnym wprowadzeniem LaTeX-a do promocji o smaku Github: https://github.com/leegao/readme2tex
Istnieje kilka wyzwań związanych z renderowaniem LaTeX dla Github. Po pierwsze, promocja w stylu Github usuwa większość tagów i większość atrybutów. Oznacza to brak bibliotek opartych na Javascript (takich jak Mathjax) ani żadnych stylów CSS.
Wydaje się więc, że naturalnym rozwiązaniem jest osadzenie obrazów wcześniej skompilowanych równań. Jednak wkrótce zdasz sobie sprawę, że LaTeX robi coś więcej niż tylko przekształcanie formuł zawartych w znakach dolara w obrazy.
Samo osadzenie obrazów z kompilatorów online nadaje temu dokumentowi naprawdę nienaturalny wygląd. W rzeczywistości, uważałbym, że jest to nawet bardziej czytelne w twoim codziennym slangu matematycznym x ^ 2 niż skakanie .
Uważam, że ważne jest, aby dokumenty były składane w sposób naturalny i czytelny. Dlatego napisałem skrypt, który oprócz kompilowania formuł w obrazy, zapewnia również, że wynikowy obraz jest odpowiednio dopasowany i wyrównany z resztą tekstu.
Na przykład, oto fragment .mdpliku dotyczący niektórych wyliczeniowych właściwości wyrażeń regularnych składanych przy użyciu readme2tex:
Jak można się spodziewać, zestaw równań na górze jest określany przez samo uruchomienie odpowiedniego align*środowiska
**Theorem**: The translation $[\![e]\!]$ given by
\begin{align*}
...
\end{align*}
...
Zauważ, że podczas gdy równania w wierszu ($ ... $) są uruchamiane z tekstem, równania wyświetlane (te, które są rozdzielane \begin{ENV}...\end{ENV}lub $$...$$) są wyśrodkowane. Ułatwia to ludziom, którzy są już przyzwyczajeni do LaTeX-a, utrzymanie produktywności.
Na podstawie tej pracy stworzyłem aplikację GitHub, która automatyzuje proces renderowania, uruchamiając go za każdym razem, gdy jest wykonywany push. Myślę, że jest to przydatne, więc udostępniam link tym, którzy chcą spróbować: github.com/agurz/github-texify
agurodriguez
3
Miły! To naprawdę niesamowite z twojej strony :)
Lee
Wydaje się, że aplikacja TeXify nie działa, gdy zawiera wbudowaną matematykę dla wyliczonych elementów przecenionych.
user32882
15
Można również skorzystać z tego edytora online: https://www.codecogs.com/latex/eqneditor.php, który generuje SVGpliki w locie. Możesz umieścić link do dokumentu, takich jak ten:
![](https://latex.codecogs.com/svg.latex?y%3Dx%5E2)co skutkuje:
.
Testuję jakieś rozwiązanie proponowane przez innych i chciałbym polecić TeXify stworzone i zaproponowane w komentarzu przez agurodriguez i dalej opisane przez Toma Hale'a - chciałbym rozwinąć jego odpowiedź i podać powód, dlaczego jest to bardzo dobre rozwiązanie:
TeXify jest opakowaniem Readme2Tex (wzmianka w odpowiedzi Lee ). Aby korzystać z Readme2Tex, musisz zainstalować dużo oprogramowania na swojej lokalnej maszynie (python, latex, ...) - ale TeXify to wtyczka github, więc nie musisz niczego instalować na swojej lokalnej maszynie - wystarczy tylko instalacja online, która wtyczkę na swoim koncie github, naciskając jeden przycisk i wybierając repozytoria, dla których TeXify będzie miał dostęp do odczytu / zapisu, aby przeanalizować twoje formuły tex i wygenerować obrazy.
Kiedy w repozytorium utworzysz lub zaktualizujesz *.tex.mdplik, TeXify wykryje zmiany i wygeneruje *.mdplik, w którym formuły lateksowe zostaną wymienione na jego obrazy zapisane w texkatalogu w twoim repozytorium. Jeśli więc utworzysz plik README.tex.md, TeXify wygeneruje plik README.md ze zdjęciami zamiast formuł tex. Więc parsowanie formuł tex i generowanie dokumentacji odbywa się automagicznie przy każdym zatwierdzeniu i wypchnięciu :)
Ponieważ wszystkie twoje formuły są zamieniane na obrazy w texkatalogu, a plik README.md używa linków do tych obrazków, możesz nawet odinstalować TeXify i cała twoja stara dokumentacja będzie nadal działać :). texKatalogów i *.tex.mdplików pozostanie w repozytorium, więc masz dostęp do swoich oryginalnych wzorach lateksowych i zdjęcia (można również bezpiecznie przechowywać w texkatalogu swoje inne zdjęcia Dokumentacja „wykonane ręcznie” - TeXify ich nie dotykać).
Możesz użyć lateksowej składni równań bezpośrednio w pliku README.tex.md (bez utraty składni markdown .md), co jest bardzo przydatne . Julii w swojej odpowiedzi zaproponował użycie specjalnych linków (z formułami) do serwisu zewnętrznego np. http://latex.codecogs.com/gif.latex?s%3D%5Ctext%20%7B%20sensor%20reading%20%7Dco jest dobre, ma jednak pewne wady: formuły w linkach nie są łatwe (poręczne) do czytania i aktualizowania, a jeśli wystąpi jakiś problem z usługą innej firmy, Twoja stara dokumentacja przestanie działać ... W TeXify Twoja stara dokumentacja będzie działał zawsze, nawet jeśli odinstalujesz tę wtyczkę (ponieważ wszystkie twoje obrazy wygenerowane z formuł lateksowych pozostają w repozytorium w texkatalogu).
Yuchao Jiang w swojej odpowiedzi, proponuje się stosowanie Jupyter notebooka , który jest także miły, jednak mają som wady: nie można bezpośrednio użyć formuły w pliku README.md, trzeba zrobić odnośnik tam inny plik * .ipynb w repo, która zawiera lateks (MathJax) formuły. Plik * .ipynb ma format JSON, który nie jest wygodny w utrzymaniu (np. Gist nie wyświetla szczegółowego błędu z numerem linii w pliku * .ipynb, gdy zapomniałeś wstawić przecinek w odpowiednim miejscu ...).
Oto link do niektórych moich repozytoriów, w których używam TeXify, dla którego dokumentacja została wygenerowana z pliku README.tex.md .
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.
Ta praca jest autorstwa @agurodriguez, który wspomina o niej w komentarzu powyżej
icc97
1
@ icc97 tak, ale agurodriguez nie utworzy odpowiedzi (i prawdopodobnie nigdy nie zauważę jego komentarza). Ponieważ Tom tworzy odpowiedź (~ 1 rok po agurodriguez), zauważam, że TeXify istnieje i pozwala mi używać TeXify i pisać na tej podstawie własną bazę odpowiedzi . A więc było dobrze :)
Kamil Kiełczewski
3
@ KamilKiełczewski Nie ma nic złego w tej odpowiedzi, wspomnę tylko, że TeXify zostało stworzone przez użytkownika SO z powodu tego wątku, co jest całkiem fajne.
icc97
Używam TeXify w moim pliku readme, ale z jakiegoś powodu renderowanie przeskakuje prawie za każdym razem, gdy $...$w tekście występuje. Jakieś wskazówki, dlaczego? To jest repozytorium: github.com/brunoconteleite/Spatial-Model-Solver
Bruno Conte Leite
3
Moje szybkie rozwiązanie jest następujące:
krok 1. Dodaj lateks do .mdpliku
$$x=\sqrt{2}$$
Uwaga: równania matematyczne muszą być w $$ ... $$ lub \\(... \\).
krok 2. Dodaj poniższy scripts.htmlkod do pliku lub motywu (dołącz ten kod na końcu)
Jaki scripts.htmlplik? Nie mogę znaleźć żadnego odniesienia do tego jako funkcji github.
Jay Lemmon
czy masz plik Jeykyllmotywu ( plik motywu)? Ten kod służy do wyświetlania latexu na stronach git.
CKM
2
Powinienem wyjaśnić, że działa to tylko dla stron git, a nie dla README.md w zwykłym repozytorium.
germanium
1
Możesz otrzymać usługę ciągłej integracji (np. Travis CI ), aby renderować LaTeX i przekazywać wyniki do github. CI będzie wdrażać pracownika „chmury” po każdym nowym zatwierdzeniu. Pracownik kompiluje dokument do formatu PDF i albo wykorzystuje ImageMagick do konwersji go na obraz, albo używa PanDoc do próby konwersji LaTeX-> HTML, gdzie sukces może się różnić w zależności od dokumentu. Pracownik następnie zatwierdza obraz lub html do repozytorium, skąd można go wyświetlić w pliku readme.
Przykładowa konfiguracja TravisCi, która buduje plik PDF, konwertuje go na PNG i zatwierdza w statycznej lokalizacji w repozytorium, jest wklejona poniżej. Trzeba by dodać wiersz, który pobiera plik PDF konwertuje plik PDF na obraz
sudo: required
dist: trusty
os: linux
language: generic
services: docker
env:
global:
- GIT_NAME: Travis CI
- GIT_EMAIL: [email protected]
- 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:$[email protected]/$TRAVIS_REPO_SLUG $TRAVIS_BRANCH-pdf
notifications:
email: false
Ta konfiguracja Travis Ci uruchamia pracownika Ubuntu, który pobiera lateksowy obraz dockera, kompiluje dokument do formatu PDF i zatwierdza go w gałęzi o nazwie branchanme-pdf.
Odpowiedzi:
W przypadku krótkich wyrażeń i niezbyt wyszukanej matematyki możesz użyć wbudowanego kodu HTML, aby uzyskać matematykę renderowaną lateksem na kodekach, a następnie osadzić wynikowy obraz. Oto przykład:
Co powinno skutkować czymś podobnym do następnego
Aktualizacja: Działa to świetnie w eclipse, ale niestety nie w githubie. Jedyne obejście to następna:
Weź swoje równanie lateksowe i przejdź do http://www.codecogs.com/latex/eqneditor.php , u dołu obszaru, w którym wyświetlane jest twoje równanie, znajduje się małe menu rozwijane, wybierz zakodowany adres URL, a następnie wklej go w swoim github markdown w następny sposób:
źródło
Przesyłam repozytoria z równaniami do Gitlab, ponieważ ma natywne wsparcie dla LaTeX w plikach .md:
Składnia wbudowanego lateksu to
$`\sqrt{2}`$
.Gitlab renderuje równania za pomocą JavaScript w przeglądarce zamiast wyświetlać obrazy, co poprawia jakość równań.
Więcej informacji tutaj .
Miejmy nadzieję, że Github zaimplementuje to również w przyszłości.
źródło
Moja sztuczka polega na używaniu notatnika Jupyter.
GitHub ma wbudowaną obsługę renderowania plików .ipynb. Możesz pisać i wyświetlać kod LaTeX w notatniku, a GitHub wyrenderuje go za Ciebie.
Oto przykładowy plik notatnika: https://gist.github.com/cyhsutw/d5983d166fb70ff651f027b2aa56ee4e
źródło
Readme2Tex
Pracowałem nad skryptem, który automatyzuje większość problemów związanych z ładnym wprowadzeniem LaTeX-a do promocji o smaku Github: https://github.com/leegao/readme2tex
Istnieje kilka wyzwań związanych z renderowaniem LaTeX dla Github. Po pierwsze, promocja w stylu Github usuwa większość tagów i większość atrybutów. Oznacza to brak bibliotek opartych na Javascript (takich jak Mathjax) ani żadnych stylów CSS.
Wydaje się więc, że naturalnym rozwiązaniem jest osadzenie obrazów wcześniej skompilowanych równań. Jednak wkrótce zdasz sobie sprawę, że LaTeX robi coś więcej niż tylko przekształcanie formuł zawartych w znakach dolara w obrazy.
Samo osadzenie obrazów z kompilatorów online nadaje temu dokumentowi naprawdę nienaturalny wygląd. W rzeczywistości, uważałbym, że jest to nawet bardziej czytelne w twoim codziennym slangu matematycznym x ^ 2 niż skakanie .
Uważam, że ważne jest, aby dokumenty były składane w sposób naturalny i czytelny. Dlatego napisałem skrypt, który oprócz kompilowania formuł w obrazy, zapewnia również, że wynikowy obraz jest odpowiednio dopasowany i wyrównany z resztą tekstu.
Na przykład, oto fragment
.md
pliku dotyczący niektórych wyliczeniowych właściwości wyrażeń regularnych składanych przy użyciureadme2tex
:Jak można się spodziewać, zestaw równań na górze jest określany przez samo uruchomienie odpowiedniego
align*
środowiskaZauważ, że podczas gdy równania w wierszu ($ ... $) są uruchamiane z tekstem, równania wyświetlane (te, które są rozdzielane
\begin{ENV}...\end{ENV}
lub$$...$$
) są wyśrodkowane. Ułatwia to ludziom, którzy są już przyzwyczajeni do LaTeX-a, utrzymanie produktywności.Jeśli brzmi to jak coś, co może pomóc, sprawdź to. https://github.com/leegao/readme2tex
źródło
Można również skorzystać z tego edytora online: https://www.codecogs.com/latex/eqneditor.php, który generuje
SVG
pliki w locie. Możesz umieścić link do dokumentu, takich jak ten:![](https://latex.codecogs.com/svg.latex?y%3Dx%5E2)
co skutkuje: .źródło
Testuję jakieś rozwiązanie proponowane przez innych i chciałbym polecić TeXify stworzone i zaproponowane w komentarzu przez agurodriguez i dalej opisane przez Toma Hale'a - chciałbym rozwinąć jego odpowiedź i podać powód, dlaczego jest to bardzo dobre rozwiązanie:
*.tex.md
plik, TeXify wykryje zmiany i wygeneruje*.md
plik, w którym formuły lateksowe zostaną wymienione na jego obrazy zapisane wtex
katalogu w twoim repozytorium. Jeśli więc utworzysz plik README.tex.md, TeXify wygeneruje plik README.md ze zdjęciami zamiast formuł tex. Więc parsowanie formuł tex i generowanie dokumentacji odbywa się automagicznie przy każdym zatwierdzeniu i wypchnięciu :)tex
katalogu, a plik README.md używa linków do tych obrazków, możesz nawet odinstalować TeXify i cała twoja stara dokumentacja będzie nadal działać :).tex
Katalogów i*.tex.md
plików pozostanie w repozytorium, więc masz dostęp do swoich oryginalnych wzorach lateksowych i zdjęcia (można również bezpiecznie przechowywać wtex
katalogu swoje inne zdjęcia Dokumentacja „wykonane ręcznie” - TeXify ich nie dotykać).http://latex.codecogs.com/gif.latex?s%3D%5Ctext%20%7B%20sensor%20reading%20%7D
co jest dobre, ma jednak pewne wady: formuły w linkach nie są łatwe (poręczne) do czytania i aktualizowania, a jeśli wystąpi jakiś problem z usługą innej firmy, Twoja stara dokumentacja przestanie działać ... W TeXify Twoja stara dokumentacja będzie działał zawsze, nawet jeśli odinstalujesz tę wtyczkę (ponieważ wszystkie twoje obrazy wygenerowane z formuł lateksowych pozostają w repozytorium wtex
katalogu).Oto link do niektórych moich repozytoriów, w których używam TeXify, dla którego dokumentacja została wygenerowana z pliku README.tex.md .
źródło
Aby uzyskać automatyczną konwersję po wysłaniu do GitHub, spójrz na aplikację TeXify :
Jak to działa (z repozytorium źródłowego ):
źródło
$...$
w tekście występuje. Jakieś wskazówki, dlaczego? To jest repozytorium: github.com/brunoconteleite/Spatial-Model-SolverMoje szybkie rozwiązanie jest następujące:
krok 1. Dodaj lateks do
.md
plikuUwaga: równania matematyczne muszą być w $$ ... $$ lub
\\(... \\)
.krok 2. Dodaj poniższy
scripts.html
kod do pliku lub motywu (dołącz ten kod na końcu)Gotowe!. Zobacz swoje eq. ładując stronę.
źródło
scripts.html
plik? Nie mogę znaleźć żadnego odniesienia do tego jako funkcji github.Jeykyll
motywu ( plik motywu)? Ten kod służy do wyświetlania latexu na stronach git.Możesz otrzymać usługę ciągłej integracji (np. Travis CI ), aby renderować LaTeX i przekazywać wyniki do github. CI będzie wdrażać pracownika „chmury” po każdym nowym zatwierdzeniu. Pracownik kompiluje dokument do formatu PDF i albo wykorzystuje ImageMagick do konwersji go na obraz, albo używa PanDoc do próby konwersji LaTeX-> HTML, gdzie sukces może się różnić w zależności od dokumentu. Pracownik następnie zatwierdza obraz lub html do repozytorium, skąd można go wyświetlić w pliku readme.
Przykładowa konfiguracja TravisCi, która buduje plik PDF, konwertuje go na PNG i zatwierdza w statycznej lokalizacji w repozytorium, jest wklejona poniżej. Trzeba by dodać wiersz, który pobiera plik PDF konwertuje plik PDF na obraz
Ta konfiguracja Travis Ci uruchamia pracownika Ubuntu, który pobiera lateksowy obraz dockera, kompiluje dokument do formatu PDF i zatwierdza go w gałęzi o nazwie branchanme-pdf.
Aby uzyskać więcej przykładów, zobacz to repozytorium github i towarzyszącą mu dyskusję sx , przykład PanDoc , https://dfm.io/posts/travis-latex/ oraz ten post na Medium .
źródło
Możesz skorzystać z przecen, np
Kod można wpisać tutaj: https://www.codecogs.com/latex/eqneditor.php .
źródło
Jeśli masz problemy z https://www.codecogs.com/latex/eqneditor.php , stwierdziłem, że https://alexanderrodin.com/github-latex-markdown/ działa dla mnie. Generuje potrzebny kod Markdown, więc wystarczy go wyciąć i wkleić do dokumentu README.md.
źródło