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.
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.
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:
- <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:
![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)
Przesyłam repozytoria z równaniami do Gitlab, ponieważ ma natywne wsparcie dla LaTeX w plikach .md:
```math
SE = \frac{\sigma}{\sqrt{n}}
```
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.
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
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ż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.
Jeśli brzmi to jak coś, co może pomóc, sprawdź to. https://github.com/leegao/readme2tex
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:
.
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 w tex
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ć w tex
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 w tex
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 .
Aby uzyskać automatyczną konwersję po wysłaniu do GitHub, spójrz na aplikację TeXify :
Aplikacja GitHub, która wyszukuje w Twoich pushach pliki z rozszerzeniem * .tex.md i renderuje wyrażenia TeX-a 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.
$...$
w tekście występuje. Jakieś wskazówki, dlaczego? To jest repozytorium: github.com/brunoconteleite/Spatial-Model-Solver
Moje szybkie rozwiązanie jest następujące:
krok 1. Dodaj lateks do .md
pliku
$$x=\sqrt{2}$$
Uwaga: 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)
<script type="text/javascript" async
src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-MML-AM_CHTML">
Gotowe!. Zobacz swoje eq. ładując stronę.
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
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
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 .
Możesz skorzystać z przecen, np
![equ](https://latex.codecogs.com/gif.latex?log(y)=\beta_0&space;+&space;\beta_1&space;x&space;+&space;u)
Kod można wpisać tutaj: https://www.codecogs.com/latex/eqneditor.php .
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.