Jolie impression mathématique dans l’application de bureau C #

Quelle est la meilleure méthode pour imprimer des équations mathématiques dans une application de bureau C # (winforms)? Le format de la source n’est pas important; Je peux générer presque n’importe quoi avec un petit effort. Ce qui est important, c’est que les performances soient relativement élevées et que les frais généraux soient faibles (je sais, je ne suis censé choisir que 2 des {performances, taille, fonctionnalités}, mais je veux les 3.).

Choses que j’ai considérées:

  • LaTeX via System.Process () -> dvipng. Problème: même une installation minimale de LaTeX est d’environ 200 Mo. Considérant que mon application est actuellement ~ 400k, je pense que cela est un peu excessif.
  • Une sorte de bibliothèque de rendu mathématique basée sur JS conçue pour le Web, par exemple JSMath. Problème: crée une sortie HTML, qui doit encore être affichée dans un navigateur Web. Faible (probablement très faible) performance.
  • Rouler les miens. Problèmes: Il faut beaucoup de temps et d’efforts pour reproduire les œuvres de ceux qui sont partis auparavant. Difficile de dessiner du texte en C #.

Aucune suggestion? L’un de vous a-t-il fait ce genre de chose dans le passé?

Certains articles sur Google m’amènent à cet article de CodeProject : il utilise MimeTex , une bibliothèque qui génère des gif à partir de formules latex. Vous devrez utiliser PInvoke pour l’avoir en C #, mais tout semble être dans l’article.

Vous pouvez utiliser MEEL pour WinForms. C’est vraiment facile à utiliser.

Une solution potentielle pour votre application, si cela est réalisable, consisterait à héberger une page de serveur actif en ligne que vous pourriez transmettre au balisage LaTeX et lui faire renvoyer une image. Les contraintes évidentes incluent la bande passante, l’access au réseau et la vitesse.

Utiliser les liens CodeProject et MineTex fournis par CharlesB serait un excellent sharepoint départ pour la mise en œuvre d’une solution C # / ASP.

Ensuite, à partir de winforms, vous pouvez faire la demande et obtenir une image qui pourrait être affichée dans un contrôle, ou même rendue avec GDI +.