2009-10-01 5 views
13

Tengo curiosidad acerca de si existe un procesador .NET nativo para TeX/LaTeX. La coincidencia más cercana que he podido encontrar es una implementación de Java, JMathTeX. Estoy tentado de llevar esto a C#, pero antes de hacerlo, simplemente me gustaría comprobar si alguien conoce una implementación de .NET.Representador de LaTeX para .NET?

Mis pensamientos actuales son utilizar MiKTeX junto con dvipng para compilar la fuente TeX y renderizar el DVI generado como PNG, pero todavía me preocupa que esto pueda ocasionar una cantidad inaceptable de sobrecarga, sin mencionar la necesidad de agrupar MiKTeX con el programa dado.

+1

Me pregunto por qué harías esto. La versión de Knuth está prácticamente libre de errores (ofrece un premio en efectivo por errores confirmados, y no se ha reclamado en bastante tiempo). No es probable que una nueva escritura sea tan buena. – dmckee

+0

@dmckee: la alternativa para renderizar dentro de las aplicaciones .NET es usar un compilador como MiKTeX y luego dvipng para convertirlo en PNG. Este es un método bastante indirecto, y esperaba algo más simple. – Noldorin

+1

Esperaría que fuera una mejor alternativa para usar el (excelente) pdf [la] tex, ya que el resultado ya sería un formato (relativamente) fácil de visualizar. –

Respuesta

2

Si no me equivoco, TeX está escrito en un dialecto de Pascal, y cuando se compila hoy generalmente se compila primero en C estándar, luego se compila con un compilador de C para producir el binario final. En su lugar, podría ser factible compilar el código original de Pascal en C# y tal vez escribir un contenedor en C# para poder usarlo como biblioteca.

Por supuesto, este es un proyecto bastante grande para emprender y probablemente sea excesivo para su problema.

+0

Sugerencia interesante.Merece la pena compilar para C y, a continuación, incluir en una biblioteca administrada de C++/CLI, estoy pensando. – Noldorin

+0

Parece que tienes razón. TeX está escrito en WEB, una variante de Pascal, luego compilada en C usando http://www.tug.org/web2c/. – Noldorin

2

A pure C# implementation of Latex by verybadcat.

Se trata de un puerto # C del maravilloso motor iosMath LaTeX.

Ahora está trabajando en la mayoría de los casos. Algunos ejemplos están debajo. Irónicamente suficiente, la primera interfaz es iOS. Sin embargo, si desea agregar un front-end , como Xamarin.Forms o un entorno Windows, debería ser posible . Debería definir su propio TypesettingContext y escribir una implementación de IGraphicsContext. El TypesettingContext en tiene varios componentes, incluida la elección de una fuente. Con suerte, no necesitaría tocar el motor de composición tipo básico. (Si lo hace, yo consideraría que un error.)

CSharpMath example

2

Esto es muy atrasados, pero yo pensé que había puesto un enlace a un puerto restablecido y ampliado del proyecto WPF-Math, que comencé no mucho después de esta pregunta original, y todavía ayudo a mantener en una capacidad menor. Originalmente era un puerto de JMathTex, pero desde entonces se ha expandido para incluir mucho más. Por el momento, está en el proceso de obtener renderizadores que no sean WPF.