5

我正在编写显示大量数学内容的软件。由于在 Windows 窗体中已经很难在标签中设置下标或希腊字母,我正在考虑切换到 WPF。

目前,我正在寻找在我的图形用户界面中呈现数学表达式、公式或符号的最佳方式。它们必须显示在标签或绘制的图形/图片中。没有实时/即时渲染,但漂亮的修复符号。

最好的方法是什么?我认为应该很好地支持 MathML,但我找不到很多关于它的信息。我很高兴听到一些建议。

在这里,我可以从中获取符号(或我更喜欢的符号):

  • LaTeX 代码(首选!代码已经存在,并且在软件和文档中的相同外观会很棒)
  • MathML 代码(Word 2007 或更高版本中的 LaTeX 代码 -> Word 方程式 -> 将纯 MathML 复制到剪贴板)
  • SVG(Inkscape 中 LaTeX 的一些渲染并导出到 XAML)
  • xmcd文件(Mathcad XML 文档。不知道如何,但至少它是 XML)
  • html文件(由 LaTeX->html 或 Mathcad->html 编写

我个人不会考虑,但也许有很好的解决方案:

  • 图片(png-icons, pdf, dvi, eps,svg直接导入)
  • 符号(如从字符映射中复制粘贴。不喜欢字体,找不到我需要的所有内容,并且不会给出公式语法的交换)

我认为使用 LaTeX、MathML 或 html 会很棒,因为它们也可以用于文档。我也可以考虑将计算结果导出到*.tex文件或内部完全使用 LaTeX 生成图形(tikz,pgfplots ...)

4

3 回答 3

2

考虑使用开源WPF-Math库(免责声明:我是它的当前维护者)。

它可以帮助您在 WPF 窗口中显示 LaTeX 表达式。它还使用矢量图而不是位图,因此这些公式在现代显示器上可以很好地缩放。

于 2017-02-17T05:36:43.843 回答
1

我会选择使用数据模板的纯 xaml 方法。不需要其他矢量格式或 rednering 引擎。您可以为表达式树中的每个表达式使用数据模板。使用视图框可以实现拉伸,因此最上面的表达式会比内部表达式大。您的数据模板将从您的表达式树生成可视化树。我的意思是在 contentpresenter 里面会有 contentpresenters。

最大的优点是表达式可视化可以是响应式和交互式的,就像 MS Word 或 Excel 中的数学表达式一样。

如果您不熟悉 wpf 数据模板,我可以帮助您实现,因为这不是微不足道的

于 2015-03-06T18:18:18.940 回答
0

据我所知,最好的渲染(在纸上)是通过矢量文件的后期转换实现的。我更喜欢使用 GDI+ (System.Drawing) 或 WPF (System.Media) 来呈现公式。让我知道我们是否可以就 WPF 解决方案进行合作。

于 2015-12-22T13:02:24.430 回答