Existe alguma maneira de renderizar o LaTex em README.md em um repositório GitHub? Eu pesquisei no Google e procurei no estouro de pilha, mas nenhuma das respostas relacionadas parece viável.
Não é possível diretamente. Existe alguma coisa específica para a qual você acha que precisa do LaTex? Por exemplo, se você quiser equações matemáticas, isso pode ser possível com alguns truques específicos. Diga-nos o que você deseja renderizar e alguém poderá indicar uma solução alternativa.
Waylan
1
Sim, eu quero equações matemáticas e equações alinhadas, junto com símbolos matemáticos embutidos. É praticamente isso.
você já pensou em usar os notebooks Jupyter? Você pode até mesmo inserir código python agora;)
Charlie Parker
Respostas:
42
Para expressões curtas e matemática não tão sofisticada, você pode usar o HTML embutido para obter a matemática renderizada do látex nos codecogs e incorporar a imagem resultante. Aqui está um exemplo:
- <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 " />
O que deve resultar em algo como o próximo
Atualização: Isso funciona muito bem no eclipse, mas não no github, infelizmente. A única solução é a seguinte:
Pegue sua equação do látex e vá para http://www.codecogs.com/latex/eqneditor.php , na parte inferior da área em que sua equação aparece exibida, há um pequeno menu suspenso, escolha o URL codificado e cole-o no seu markdown do github da seguinte maneira:
O GitHub possui suporte embutido para renderização de arquivos .ipynb. Você pode escrever em linha e exibir o código LaTeX no notebook e o GitHub o renderizará para você.
Eu tenho trabalhado em um script que automatiza a maior parte do problema de obter o LaTeX tipicamente para uma remarcação com sabor do Github: https://github.com/leegao/readme2tex
Existem alguns desafios com a renderização do LaTeX for Github. Primeiro, a remarcação com sabor do Github retira a maioria das tags e mais atributos. Isso significa que não há bibliotecas baseadas em Javascript (como Mathjax) nem estilo CSS.
A solução natural parece então incorporar imagens de equações pré-compiladas. No entanto, você logo perceberá que o LaTeX faz mais do que transformar fórmulas fechadas com cifrão em imagens.
Simplesmente incorporar imagens de compiladores on-line dá uma aparência realmente não natural ao seu documento. Na verdade, eu diria que é ainda mais legível na sua gíria matemática x ^ 2 todos os dias do que nervosa .
Acredito que é importante garantir que seus documentos sejam digitados de maneira natural e legível. Foi por isso que escrevi um script que, além de compilar fórmulas em imagens, também garante que a imagem resultante seja devidamente ajustada e alinhada ao restante do texto.
Por exemplo, aqui está um trecho de um .mdarquivo referente a algumas propriedades enumerativas das expressões regulares digitadas usando readme2tex:
Como você pode esperar, o conjunto de equações na parte superior é especificado apenas iniciando o align*ambiente correspondente
**Theorem**: The translation $[\![e]\!]$ given by
\begin{align*}
...
\end{align*}
...
Observe que, embora as equações em linha ($ ... $) sejam executadas com o texto, exiba as equações (aquelas delimitadas por \begin{ENV}...\end{ENV} ou$$...$$ ) são centralizadas. Isso facilita para as pessoas que já estão acostumadas ao LaTeX continuarem sendo produtivas.
Com base neste trabalho, criei um aplicativo GitHub que automatiza o processo de renderização, acionando-o toda vez que um push é feito. Eu acho que é útil para que eu compartilhar o link para quem quiser experimentá-lo: github.com/agurz/github-texify
agurodriguez
3
Agradável! Isso é realmente muito incrível de você fazer :)
Lee
O aplicativo TeXify parece não funcionar ao incluir mathjax embutido para itens enumerados de redução.
user32882
15
Pode-se também usar este editor on-line: https://www.codecogs.com/latex/eqneditor.php, que gera SVGarquivos em tempo real. Você pode colocar um link em seu documento como este:
![](https://latex.codecogs.com/svg.latex?y%3Dx%5E2)o que resulta em:
.
Eu testei alguma solução proposta por outros e gostaria de recomendar o TeXify criado e proposto em comentário por agurodriguez e descrito mais detalhadamente por Tom Hale - gostaria de desenvolver sua resposta e de alguma razão para que essa seja uma solução muito boa:
O TeXify é um invólucro do Readme2Tex (mencionado na resposta de Lee ). Para usar o Readme2Tex, você deve instalar muitos softwares em sua máquina local (python, látex, ...) - mas o TeXify é um plug-in do github para que você não precise instalar nada na sua máquina local - você só precisa de uma instalação online que plug-in na sua conta do github pressionando um botão e escolha repositórios para os quais o TeXify terá acesso de leitura / gravação para analisar suas fórmulas tex e gerar imagens.
Quando você cria ou atualiza um *.tex.mdarquivo no seu repositório , o TeXify detecta alterações e gera *.mdarquivos onde as fórmulas de látex serão trocadas por suas imagens salvas no texdiretório do seu repositório. Portanto, se você criar o arquivo README.tex.md, o TeXify gerará README.md com imagens, em vez de fórmulas tex. Portanto, analisar fórmulas tex e gerar documentação é feito automaticamente em cada commit e push :)
Como todas as suas fórmulas são alteradas para imagens no texdiretório e o arquivo README.md usa links para essas imagens, você pode desinstalar o TeXify e toda a sua documentação antiga ainda funciona :). O texdiretório e os *.tex.mdarquivos permanecerão no repositório para que você tenha acesso às fórmulas e imagens originais de látex (você também pode armazenar com segurança no texdiretório suas outras imagens da documentação "feitas à mão" - o TeXify não as tocará).
Você pode usar a sintaxe látex das equações diretamente no arquivo README.tex.md (sem perder a sintaxe da marcação .md), o que é muito útil . Julii em sua resposta propôs o uso de links especiais (com fórmulas) para serviços externos, por exemplo. http://latex.codecogs.com/gif.latex?s%3D%5Ctext%20%7B%20sensor%20reading%20%7Do que é bom, porém tem algumas desvantagens: as fórmulas nos links não são fáceis (úteis) de ler e atualizar, e se houver algum problema com esse serviço de terceiros, sua documentação antiga parará de funcionar ... No TeXify, sua documentação antiga funcionará sempre mesmo se você desinstalar esse plug-in (porque todas as suas imagens geradas a partir de fórmulas de látex ficam no repositório no texdiretório).
O Yuchao Jiang, em sua resposta, propôs usar o Jupyter Notebook, o que também é bom, mas tem algumas desvantagens: você não pode usar fórmulas diretamente no arquivo README.md, é necessário criar um link para outro arquivo * .ipynb no seu repositório que contém látex Fórmulas (MathJax). O formato do arquivo * .ipynb é JSON, o que não é útil para manutenção (por exemplo, Gist não mostra erro detalhado com o número da linha no arquivo * .ipynb quando você esquece de colocar vírgula no lugar apropriado ...).
Aqui está um link para alguns dos meus repositórios em que uso o TeXify para cuja documentação foi gerada a partir do arquivo README.tex.md .
Sempre que você pressionar o TeXify, será executado e pesquisado os arquivos * .tex.md no seu último commit. Para cada um deles, ele executa o readme2tex, que aceita expressões LaTeX entre cifrões, converte-as em imagens SVG simples e salva a saída em um arquivo de extensão .md (isso significa que um arquivo chamado README.tex.md será processado e a saída será salva como README.md). Depois disso, o arquivo de saída e as novas imagens SVG são confirmadas e enviadas de volta ao seu repositório.
Este trabalho é de @agurodriguez, que menciona isso em um comentário acima
icc97 13/01/19
1
@ icc97 sim, mas agurodriguez não cria resposta (e eu provavelmente nunca notarei seu comentário). Como o Tom cria uma resposta (~ 1 ano após o agurodriguez), percebo que o TeXify existe e me permite usá-lo e escrever minha própria base de respostas . Por isso, foi bom :)
Kamil Kiełczewski
3
@ KamilKiełczewski Não há nada de errado com esta resposta, estou apenas mencionando que o TeXify foi criado por um usuário de SO por causa dessa discussão, o que é bem legal.
icc97
Estou usando o TeXify no meu leia-me, mas, por algum motivo, a renderização está pulando linhas quase sempre que houver um $...$no texto. Alguma pista porque? Este é o repositório
Bruno Conte Leite
3
Minha solução rápida é esta:
etapa 1. Adicione látex ao seu .mdarquivo
$$x=\sqrt{2}$$
Nota: os eqns matemáticos devem estar em $$ ... $$ ou \\(... \\).
etapa 2. Adicione o seguinte ao seu scripts.htmlarquivo ou tema (anexe este código no final)
Que scripts.htmlarquivo? Não consigo encontrar nenhuma referência a isso como um recurso do github.
Jay Lemmon
você tem arquivo de Jeykylltema ( arquivo de tema)? Este código é para exibir o látex nas páginas git.
CKM
2
Deve esclarecer que isso funciona apenas para páginas git, não para README.md em repositório regular.
germanium
1
Você pode obter um serviço de integração contínua (por exemplo, Travis CI ) para renderizar o LaTeX e confirmar os resultados no github. O IC implantará um trabalhador de "nuvem" após cada nova confirmação. O trabalhador compila seu documento em pdf e cita o ImageMagick para convertê-lo em uma imagem ou usa o PanDoc para tentar a conversão LaTeX-> HTML, onde o sucesso pode variar dependendo do seu documento. O Worker confirma uma imagem ou html no seu repositório, de onde pode ser mostrado no seu leia-me.
A configuração de exemplo do TravisCi que cria um PDF, o converte em PNG e o confirma em um local estático no seu repositório é colada abaixo. Você precisaria adicionar uma linha que busque o pdfconverte o PDF em uma imagem
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
Essa configuração do Travis Ci inicia que um trabalhador do Ubuntu faça o download de uma imagem de docker de látex, compile seu documento para pdf e o confirme em um ramo chamado branchanme-pdf.
Respostas:
Para expressões curtas e matemática não tão sofisticada, você pode usar o HTML embutido para obter a matemática renderizada do látex nos codecogs e incorporar a imagem resultante. Aqui está um exemplo:
O que deve resultar em algo como o próximo
Atualização: Isso funciona muito bem no eclipse, mas não no github, infelizmente. A única solução é a seguinte:
Pegue sua equação do látex e vá para http://www.codecogs.com/latex/eqneditor.php , na parte inferior da área em que sua equação aparece exibida, há um pequeno menu suspenso, escolha o URL codificado e cole-o no seu markdown do github da seguinte maneira:
fonte
Carrego repositórios com equações no Gitlab porque ele possui suporte nativo para o LaTeX em arquivos .md:
A sintaxe para o látex embutido é
$`\sqrt{2}`$
.O Gitlab renderiza equações com JavaScript no navegador em vez de mostrar imagens, o que melhora a qualidade das equações.
Mais informações aqui .
Espero que o Github também implemente isso no futuro.
fonte
Meu truque é usar o Notebook Jupyter.
O GitHub possui suporte embutido para renderização de arquivos .ipynb. Você pode escrever em linha e exibir o código LaTeX no notebook e o GitHub o renderizará para você.
Aqui está um exemplo de arquivo do notebook: https://gist.github.com/cyhsutw/d5983d166fb70ff651f027b2aa56ee4e
fonte
Readme2Tex
Eu tenho trabalhado em um script que automatiza a maior parte do problema de obter o LaTeX tipicamente para uma remarcação com sabor do Github: https://github.com/leegao/readme2tex
Existem alguns desafios com a renderização do LaTeX for Github. Primeiro, a remarcação com sabor do Github retira a maioria das tags e mais atributos. Isso significa que não há bibliotecas baseadas em Javascript (como Mathjax) nem estilo CSS.
A solução natural parece então incorporar imagens de equações pré-compiladas. No entanto, você logo perceberá que o LaTeX faz mais do que transformar fórmulas fechadas com cifrão em imagens.
Simplesmente incorporar imagens de compiladores on-line dá uma aparência realmente não natural ao seu documento. Na verdade, eu diria que é ainda mais legível na sua gíria matemática x ^ 2 todos os dias do que nervosa .
Acredito que é importante garantir que seus documentos sejam digitados de maneira natural e legível. Foi por isso que escrevi um script que, além de compilar fórmulas em imagens, também garante que a imagem resultante seja devidamente ajustada e alinhada ao restante do texto.
Por exemplo, aqui está um trecho de um
.md
arquivo referente a algumas propriedades enumerativas das expressões regulares digitadas usandoreadme2tex
:Como você pode esperar, o conjunto de equações na parte superior é especificado apenas iniciando o
align*
ambiente correspondenteObserve que, embora as equações em linha ($ ... $) sejam executadas com o texto, exiba as equações (aquelas delimitadas por
\begin{ENV}...\end{ENV}
ou$$...$$
) são centralizadas. Isso facilita para as pessoas que já estão acostumadas ao LaTeX continuarem sendo produtivas.Se isso parece algo que poderia ajudar, não deixe de conferir. https://github.com/leegao/readme2tex
fonte
Pode-se também usar este editor on-line: https://www.codecogs.com/latex/eqneditor.php, que gera
SVG
arquivos em tempo real. Você pode colocar um link em seu documento como este:![](https://latex.codecogs.com/svg.latex?y%3Dx%5E2)
o que resulta em: .fonte
Eu testei alguma solução proposta por outros e gostaria de recomendar o TeXify criado e proposto em comentário por agurodriguez e descrito mais detalhadamente por Tom Hale - gostaria de desenvolver sua resposta e de alguma razão para que essa seja uma solução muito boa:
*.tex.md
arquivo no seu repositório , o TeXify detecta alterações e gera*.md
arquivos onde as fórmulas de látex serão trocadas por suas imagens salvas notex
diretório do seu repositório. Portanto, se você criar o arquivo README.tex.md, o TeXify gerará README.md com imagens, em vez de fórmulas tex. Portanto, analisar fórmulas tex e gerar documentação é feito automaticamente em cada commit e push :)tex
diretório e o arquivo README.md usa links para essas imagens, você pode desinstalar o TeXify e toda a sua documentação antiga ainda funciona :). Otex
diretório e os*.tex.md
arquivos permanecerão no repositório para que você tenha acesso às fórmulas e imagens originais de látex (você também pode armazenar com segurança notex
diretório suas outras imagens da documentação "feitas à mão" - o TeXify não as tocará).http://latex.codecogs.com/gif.latex?s%3D%5Ctext%20%7B%20sensor%20reading%20%7D
o que é bom, porém tem algumas desvantagens: as fórmulas nos links não são fáceis (úteis) de ler e atualizar, e se houver algum problema com esse serviço de terceiros, sua documentação antiga parará de funcionar ... No TeXify, sua documentação antiga funcionará sempre mesmo se você desinstalar esse plug-in (porque todas as suas imagens geradas a partir de fórmulas de látex ficam no repositório notex
diretório).Aqui está um link para alguns dos meus repositórios em que uso o TeXify para cuja documentação foi gerada a partir do arquivo README.tex.md .
fonte
Para conversão automática mediante envio ao GitHub, dê uma olhada no aplicativo TeXify :
Como funciona (do repositório de origem ):
fonte
$...$
no texto. Alguma pista porque? Este é o repositórioMinha solução rápida é esta:
etapa 1. Adicione látex ao seu
.md
arquivoNota: os eqns matemáticos devem estar em $$ ... $$ ou
\\(... \\)
.etapa 2. Adicione o seguinte ao seu
scripts.html
arquivo ou tema (anexe este código no final)Feito!. Veja sua eq. carregando a página.
fonte
scripts.html
arquivo? Não consigo encontrar nenhuma referência a isso como um recurso do github.Jeykyll
tema ( arquivo de tema)? Este código é para exibir o látex nas páginas git.Você pode obter um serviço de integração contínua (por exemplo, Travis CI ) para renderizar o LaTeX e confirmar os resultados no github. O IC implantará um trabalhador de "nuvem" após cada nova confirmação. O trabalhador compila seu documento em pdf e cita o ImageMagick para convertê-lo em uma imagem ou usa o PanDoc para tentar a conversão LaTeX-> HTML, onde o sucesso pode variar dependendo do seu documento. O Worker confirma uma imagem ou html no seu repositório, de onde pode ser mostrado no seu leia-me.
A configuração de exemplo do TravisCi que cria um PDF, o converte em PNG e o confirma em um local estático no seu repositório é colada abaixo. Você precisaria adicionar uma linha que busque o pdfconverte o PDF em uma imagem
Essa configuração do Travis Ci inicia que um trabalhador do Ubuntu faça o download de uma imagem de docker de látex, compile seu documento para pdf e o confirme em um ramo chamado branchanme-pdf.
Para obter mais exemplos, consulte este repositório do github e sua discussão sobre sx , exemplo do PanDoc , https://dfm.io/posts/travis-latex/ e esta publicação no Medium .
fonte
Você pode usar remarcações, por exemplo
O código pode ser digitado aqui: https://www.codecogs.com/latex/eqneditor.php .
fonte
Se você está tendo problemas com https://www.codecogs.com/latex/eqneditor.php , descobri que https://alexanderrodin.com/github-latex-markdown/ funcionava para mim. Ele gera o código Markdown que você precisa, então basta recortá-lo e colá-lo no seu documento README.md.
fonte