Representación de látex en README.md en Github


134

¿Hay alguna forma de representar LaTex en README.md en un repositorio de GitHub? Lo busqué en Google y busqué en el desbordamiento de pila, pero ninguna de las respuestas relacionadas parece factible.


1
No es posible directamente. ¿Hay algo específico para lo que crees que necesitas LaTex? Por ejemplo, si quieres ecuaciones matemáticas, eso puede ser posible con algunos trucos específicos. Díganos qué desea renderizar y alguien podría indicarle una solución alternativa.
Waylan

1
Sí, quiero ecuaciones matemáticas y ecuaciones alineadas, junto con símbolos matemáticos en línea. Eso es practicamente todo.
user90593



1
¿ha considerado usar los cuadernos Jupyter? Incluso puede insertar código python ahora;)
Charlie Parker

Respuestas:


42

Para expresiones cortas y matemáticas no tan sofisticadas, puede usar el HTML en línea para obtener sus matemáticas de látex en codecogs y luego incrustar la imagen resultante. Aquí un ejemplo:

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

Lo que debería resultar en algo así como el próximo

Actualización: Esto funciona muy bien en eclipse pero desafortunadamente no en github. La única solución es la siguiente:

Tome su ecuación de látex y vaya a http://www.codecogs.com/latex/eqneditor.php , en la parte inferior del área donde aparece su ecuación se muestra un pequeño menú desplegable, elija la URL codificada y luego péguela en su Github Markdown de la siguiente manera:

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

44
Sugiero usar latex.codecogs.com/png.latex en lugar de latex.codecogs.com/gif.latex ; ¡devuelve imágenes de mejor calidad!
Steffo

9
puede usar latex.codecogs.com/svg.latex, es una resolución independiente.
lizardfireman

28

Subo repositorios con ecuaciones a Gitlab porque tiene soporte nativo para LaTeX en archivos .md:

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

La sintaxis para látex en línea es $`\sqrt{2}`$.

Gitlab renderiza ecuaciones con JavaScript en el navegador en lugar de mostrar imágenes, lo que mejora la calidad de las ecuaciones.

Más información aquí .

Esperemos que Github implemente esto también en el futuro.


¡Asombroso! Gracias por el consejo :)
Jonathan H

¿Sabes si GitHub ha implementado esto?
Rylan Schaeffer


21

Léame2Tex

He estado trabajando en una secuencia de comandos que automatiza la mayor parte de la simplificación de la composición tipográfica de LaTeX en la rebaja con sabor a Github: https://github.com/leegao/readme2tex

Hay algunos desafíos con la representación de LaTeX para Github. Primero, el descuento con sabor a Github elimina la mayoría de las etiquetas y la mayoría de los atributos. Esto significa que no hay bibliotecas basadas en Javascript (como Mathjax) ni ningún estilo CSS.

La solución natural parece ser incrustar imágenes de ecuaciones precompiladas. Sin embargo, pronto se dará cuenta de que LaTeX hace más que simplemente convertir las fórmulas incluidas en el signo de dólar en imágenes.

ingrese la descripción de la imagen aquí

Simplemente incrustar imágenes de compiladores en línea le da a este documento un aspecto realmente antinatural. De hecho, diría que es aún más legible en tu jerga matemática x ^ 2 cotidiana que jumpy .

Creo que es importante asegurarse de que sus documentos estén escritos de forma natural y legible. Es por eso que escribí un script que, más allá de compilar fórmulas en imágenes, también asegura que la imagen resultante se ajuste y alinee correctamente con el resto del texto.

Por ejemplo, aquí hay un extracto de un .mdarchivo con respecto a algunas propiedades enumerativas de las expresiones regulares tipográficas usando readme2tex:

ingrese la descripción de la imagen aquí

Como es de esperar, el conjunto de ecuaciones en la parte superior se especifica simplemente iniciando el align*entorno correspondiente

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

Observe que mientras las ecuaciones en línea ($ ... $) se ejecutan con el texto, las ecuaciones de visualización (aquellas que están delimitadas por \begin{ENV}...\end{ENV}o $$...$$) están centradas. Esto facilita que las personas que ya están acostumbradas a LaTeX sigan siendo productivas.

Si esto suena como algo que podría ayudar, asegúrese de verificarlo. https://github.com/leegao/readme2tex


14
Sobre la base de este trabajo, he creado una aplicación GitHub que automatiza el proceso de renderizado, activándolo cada vez que se realiza un empuje. Creo que es útil, así que comparto el enlace para aquellos que quieran probarlo: github.com/agurz/github-texify
agurodriguez

3
¡Agradable! Eso es realmente increíble de tu parte hacer :)
Lee

La aplicación TeXify no parece funcionar cuando se incluye el mathjax en línea para artículos enumerados con descuento.
user32882


13

Pruebo alguna solución propuesta por otros y me gustaría recomendar TeXify creado y propuesto en comentarios por agurodriguez y más descrito por Tom Hale . Me gustaría desarrollar su respuesta y dar alguna razón por la cual esta es una muy buena solución:

  • TeXify es el contenedor de Readme2Tex (mención en la respuesta de Lee ). Para usar Readme2Tex, debe instalar una gran cantidad de software en su máquina local (python, latex, ...), pero TeXify es un complemento de github, por lo que no necesita instalar nada en su máquina local , solo necesita una instalación en línea que conecte su cuenta github presionando un botón y elija repositorios para los cuales TeXify tendrá acceso de lectura / escritura para analizar sus fórmulas de texto y generar imágenes.
  • Cuando en su repositorio cree o actualice el *.tex.mdarchivo, TeXify detectará los cambios y generará un *.mdarchivo donde las fórmulas de látex se intercambiarán por sus imágenes guardadas en el texdirectorio de su repositorio. Entonces, si crea el archivo README.tex.md, TeXify generará README.md con imágenes en lugar de fórmulas tex. Por lo tanto, el análisis de fórmulas de texto y la generación de documentación se realiza automáticamente en cada confirmación y envío :)
  • Debido a que todas sus fórmulas se cambian a imágenes en el texdirectorio y el archivo README.md usa enlaces a esas imágenes, incluso puede desinstalar TeXify y toda su documentación anterior seguirá funcionando :). El texdirectorio y los *.tex.mdarchivos permanecerán en el repositorio para que tenga acceso a sus fórmulas e imágenes originales de látex (también puede almacenar de manera segura en el texdirectorio sus otras imágenes de documentación "hechas a mano" - TeXify no las tocará).
  • Puede usar la sintaxis de látex de ecuaciones directamente en el archivo README.tex.md (sin perder la sintaxis de marcado .md) que es muy útil . Julii en su respuesta propuso utilizar enlaces especiales (con fórmulas) a servicios externos, por ejemplo. http://latex.codecogs.com/gif.latex?s%3D%5Ctext%20%7B%20sensor%20reading%20%7Dlo cual es bueno, sin embargo tiene algunos inconvenientes: las fórmulas en los enlaces no son fáciles de leer y actualizar, y si habrá algún problema con ese servicio de terceros, su documentación anterior dejará de funcionar ... En TeXify, su documentación anterior funcionará siempre incluso si desinstala ese complemento (porque todas sus imágenes generadas a partir de fórmulas de látex permanecen en repositorio en el texdirectorio).
  • El Yuchao Jiang en su respuesta, propuso usar Jupyter Notebook, que también es bueno, pero tiene algunos inconvenientes: no puede usar fórmulas directamente en el archivo README.md, debe hacer un enlace allí a otro archivo * .ipynb en su repositorio que contiene látex (MathJax) fórmulas. El formato de archivo * .ipynb es JSON, lo que no es útil de mantener (por ejemplo, Gist no muestra un error detallado con el número de línea en el archivo * .ipynb cuando olvidó poner la coma en el lugar correcto ...).

Aquí hay un enlace a algunos de mis repositorios donde uso TeXify para el cual se generó la documentación del archivo README.tex.md .


@Royi No lo sé
Kamil Kiełczewski

Es agradable, pero ¿cómo lidiar con toneladas de imágenes svg de basura no utilizadas en la carpeta / tex?
Serge P.

@SergeP. eliminar todo y empujar?
Kamil Kiełczewski

6

Para la conversión automática al empujar a GitHub, eche un vistazo a la aplicación TeXify :

Aplicación GitHub que busca archivos con extensión * .tex.md y muestra sus expresiones TeX como imágenes SVG

Cómo funciona (desde el repositorio de origen ):

Cada vez que presione TeXify se ejecutará y buscará archivos * .tex.md en su última confirmación. Para cada uno de ellos, ejecutará readme2tex, que tomará expresiones LaTeX encerradas entre signos de dólar, lo convertirá en imágenes SVG simples y luego guardará la salida en un archivo de extensión .md (Eso significa que un archivo llamado README.tex.md se procesará y la salida se guardará como README.md). Después de eso, el archivo de salida y las nuevas imágenes SVG se confirman y se devuelven a su repositorio.


1
Este trabajo es de @agurodriguez quien lo menciona en un comentario anterior
icc97

1
@ icc97 sí, pero agurodriguez no crea respuesta (y probablemente nunca notaré su comentario). Debido a que Tom creó la respuesta (~ 1 año después de agurodriguez) noto que TeXify existe y me permite usar TeXify y escribir mi propia base de respuestas sobre esto. Así que fue bueno :)
Kamil Kiełczewski

3
@ KamilKiełczewski No hay nada malo con esta respuesta, solo menciono que TeXify fue creado por un usuario SO debido a este hilo, que es bastante bueno.
icc97

Estoy usando TeXify en mi archivo Léame, pero, por alguna razón, el renderizado es saltar líneas casi siempre que hay un $...$texto. ¿Alguna pista de por qué? Este es el repositorio: github.com/brunoconteleite/Spatial-Model-Solver
Bruno Conte Leite

3

Mi solución rápida es esta:

paso 1. Agrega látex a tu .mdarchivo

$$x=\sqrt{2}$$

Nota: las ecuaciones matemáticas deben estar en $$ ... $$ o \\(... \\).

paso 2. Agregue lo siguiente a su scripts.htmlarchivo de tema (agregue este código al final)

<script type="text/javascript" async

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

¡Hecho!. Ver tu eq. cargando la página.


1
Que scripts.htmlarchivo No puedo encontrar ninguna referencia a esto como una característica de Github.
Jay Lemmon

¿tienes un archivo de Jeykylltema ( archivo de tema)? Este código es para mostrar látex en páginas git.
CKM

2
Debería aclarar que esto solo funciona para páginas git, no para README.md en el repositorio regular.
germanio

1

Puede obtener un servicio de integración continua (por ejemplo, Travis CI ) para procesar LaTeX y confirmar los resultados en github. CI desplegará un trabajador "en la nube" después de cada nueva confirmación. El trabajador compila su documento en pdf y utiliza ImageMagick para convertirlo en una imagen o utiliza PanDoc para intentar la conversión de LaTeX-> HTML, donde el éxito puede variar según su documento. Luego, el trabajador confirma la imagen o html en su repositorio desde donde se puede mostrar en su archivo Léame.

La configuración de muestra de TravisCi que crea un PDF, lo convierte a PNG y lo confirma en una ubicación estática en su repositorio se pega a continuación. Debería agregar una línea que recupere pdfconverts PDF a una imagen

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

Esta configuración de Travis Ci lanza un trabajador de Ubuntu que descarga una imagen de acoplador de látex, compila su documento en pdf y lo confirma en una rama llamada branchanme-pdf.

Para obtener más ejemplos, consulte este repositorio de Github y la discusión de sx que lo acompaña , el ejemplo de PanDoc , https://dfm.io/posts/travis-latex/ y esta publicación en Medium .



Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.