libreim / blog

Blog colaborativo sobre matemáticas e informática de la comunidad de @libreim.
https://libreim.github.io/blog
GNU General Public License v3.0
29 stars 8 forks source link

Dibujar diagramas conmutativos #87

Closed mroman42 closed 8 years ago

mroman42 commented 8 years ago

He empezado un post sobre teoría de categorías y no estoy seguro de cómo dibujar los diagramas conmutativos. Mi primera idea era crearlos en LaTeX con tikz-cd e insertarlos aquí como imagen. ¿Hay algún procedimiento más fácil?¿MathJax puede hacer algo con tikz-cd?

Quizá relacionado con #72, aunque no creo que haya una solución común.

fdavidcl commented 8 years ago

MathJax permite (fuente) dibujar diagramas conmutativos de AMScd. Lo que pasa es que estos diagramas no pueden tener flechas diagonales :confused:.

\require{AMScd} % No sé si el require es necesario ya
\begin{CD}
A     @>a>>  B\\
@VVbV        @VVcV\\
C     @>d>>  D
\end{CD}

Prueba en HostMath

Otra solución es que los hagas en un programa de dibujo vectorial y pegues el código SVG tal cual en el post, los navegadores modernos entienden eso sin mucho problema.

Si encuentro algo más te digo.

mroman42 commented 8 years ago

Parece que hay formas de escribir el diagrama con tikz, que es la librería buena para LaTeX, y pasarlas luego a svg: tikz2svg.

La misma pregunta se la hacen también en nLab y en StackOverflow, pero las soluciones son más o menos las que comentábamos aquí. Creo que la que puede quedar mejor es la de tikz2svg. Además, puede que sirva también como alternativa para solucionar #72, como se muestra aquí.

stringparser commented 8 years ago

Que guay. Estoy pensando... si se puede hacer eso seguramente habrá una librería por ahí de latex2svg. Eso molaría bastante.

fdavidcl commented 8 years ago

Pues parece que sí, con una búsqueda rápida he encontrado SVGLaTeX. Lo mismo hay más cosas similares.

stringparser commented 8 years ago

¡Que bien! Gracias tio :)

stringparser commented 8 years ago

Esto le va a gustar a @M42 :D

https://gist.github.com/lierdakil/6a95278d02256a74a0fc

EDIT: El tio del gist es bastante apañao, mira lo que ha hecho https://github.com/atom-haskell/ide-haskell

mroman42 commented 8 years ago

Añadiéndole un \usepackage{tikz-cd} es solución en Haskell a la issue. Ya ves si le va a gustar. :)

Voy a escribir los diagramas en tikz-cd y llevármelos a svg. En cuanto lo pruebe cierro la issue.

fdavidcl commented 8 years ago

:clap: :clap: @stringparser Mola mucho el gist ese :D

mroman42 commented 8 years ago

He añadido las imágenes. Usan al final tikzcd y pdf2svg. He añadido los originales en LaTeX para que todo el proceso sea reproducible.

mroman42 commented 8 years ago

Me falta entender cómo enlazar las imágenes. No puedo usar https://raw.githubusercontent.com por lo que cuentan aquí. La opción que me queda es enlazarla directamente como http://dgiim.github.io/blog/images/n-categories/f-id.svg. ¿Dará algún problema?

Por otro lado, haciéndolo así no puedo previsualizarla cuando hago jekyll serve pero este es un problema menor.

No he probado a introducir el código del .svg directamente en Markdown. Seguramente sea lo más cómodo, pero no me convence copiar y pegar el código, sobre todo para que esté en un archivo separado y sea luego reproducible.

fdavidcl commented 8 years ago

Prueba con esto:

![]({{ site.baseurl }}/images/blabla.svg)

[He arreglado la guía de estilo para recomendar este formato]

Aun así, aunque funcionase en local habría que probar de alguna forma que los servidores de GitHub también van a servir las imágenes, que me da a mí que no :/

Meter el código SVG dentro del post casi seguro que valdría. No sé si podríamos intentar usar los mecanismos de include de Jekyll para mantener el SVG en un archivo aparte.

mroman42 commented 8 years ago

Con esto funciona perfectamente. Falta centrarla y aumentarla de tamaño. Eso se puede hacer a lo mejor con {: .fig.med} o algo parecido como hicimos con el post de Arch. Cuando termine el post buscamos un estilo con el que quede bien.

mroman42 commented 8 years ago

Voy a dejar el post de lado por ahora. Con la versión actual, si alguien quiere, puede encargarse de esta issue para conseguir que las images se vean bien en la introducción. Me "desasigno".

mroman42 commented 8 years ago

Se pueden acabar metiendo como .svg