LaTeX 是一个强大的排版数学公式的工具,它支持多种数学符号来创建数学公式,如分数、积分、矩阵等。Spire.Presentation for .NET 提供了使用 LaTeX 代码创建并添加数学公式到 PowerPoint 幻灯片的方法,可供开发者创建多种类型的复杂公式,本文将对此做详细介绍。
安装Spire.Presentation for .NET
首先,您需要将 Spire.Presentation for.NET 包含的 DLL 文件作为引用添加到您的 .NET 项目中。DLL 文件可以从 此链接 下载,也可以通过 NuGet 安装。
PM> Install-Package Spire.Presentation 添加公式到幻灯片
下面是实现公式添加的详细步骤:
- 创建 Presentation 类的实例。
- 通过索引值获取指定幻灯片。
- 使用 ShapeList.AppendShape() 方法添加形状到幻灯片。
- 使用 ParagraphCollection.AddParagraphFromLatexMathCode(string) 方法从 LaTeX 代码创建一个数学公式,并将其添加到形状。
- 使用 Presentation.SaveToFile(string, FileFormat) 方法保存结果文档,并指定保存路径。
- C#
- VB.NET
using Spire.Presentation;
using Spire.Presentation.Drawing;
using System.Drawing;
namespace AddFormula
{
    class Program
    {
        static void Main(string[] args)
        {
            //定义LaTeX公式代码
            string latexCode1 = @"x^{2} + \sqrt{x^{2}+1}=2";
            string latexCode2 = @"F(x) &= \int^a_b \frac{1}{3}x^3";
            string latexCode3 = @"\alpha + \beta  \geq \gamma";
            string latexCode4 = @"\overrightarrow{abc}";
            string latexCode5 = @"\begin{bmatrix} 1 & 0 & \cdots & 0\\ 1 & 0 & \cdots & 0\\ \vdots & \vdots & \ddots & \vdots\\ 1 & 0 & 0 & 0 \end{bmatrix}";
            string latexCode6 = @"\log_a{b}";
            //创建Presentation类的实例
            Presentation ppt = new Presentation();
            //获取第一张幻灯片
            ISlide slide = ppt.Slides[0];
            //添加形状到幻灯片
            IAutoShape shape = slide.Shapes.AppendShape(ShapeType.Rectangle, new RectangleF(30, 100, 200, 30));
            shape.TextFrame.Paragraphs.Clear();
            //使用LaTeX代码添加数学公式到形状 
            shape.TextFrame.Paragraphs.AddParagraphFromLatexMathCode(latexCode1);
            //重复以上操作,添加形状,并添加公式到形状
            shape = slide.Shapes.AppendShape(ShapeType.Rectangle, new RectangleF(240, 100, 200, 40));
            shape.TextFrame.Paragraphs.Clear(); 
            shape.TextFrame.Paragraphs.AddParagraphFromLatexMathCode(latexCode2);
            shape = slide.Shapes.AppendShape(ShapeType.Rectangle, new RectangleF(30, 180, 200, 40));
            shape.TextFrame.Paragraphs.Clear();            
            shape.TextFrame.Paragraphs.AddParagraphFromLatexMathCode(latexCode3);
            shape = slide.Shapes.AppendShape(ShapeType.Rectangle, new RectangleF(240, 180, 200, 40));
            shape.TextFrame.Paragraphs.Clear();
            shape.TextFrame.Paragraphs.AddParagraphFromLatexMathCode(latexCode4);
            shape = slide.Shapes.AppendShape(ShapeType.Rectangle, new RectangleF(30, 280, 200, 70));
            shape.TextFrame.Paragraphs.Clear();
            shape.TextFrame.Paragraphs.AddParagraphFromLatexMathCode(latexCode5);
            shape = slide.Shapes.AppendShape(ShapeType.Rectangle, new RectangleF(240, 280, 200, 40));
            shape.TextFrame.Paragraphs.Clear();
            shape.TextFrame.Paragraphs.AddParagraphFromLatexMathCode(latexCode6);
            //设置形状边框和填充类型
            for (int i = 0; i < slide.Shapes.Count; i++)
            {
                slide.Shapes[i].Fill.FillType = FillFormatType.None;
                slide.Shapes[i].Line.FillType = FillFormatType.None;
            }
            //保存文档
            ppt.SaveToFile("MathEquations.pptx", FileFormat.Pptx2013);
        }
    }
}Imports Spire.Presentation
Imports Spire.Presentation.Drawing
Imports System.Drawing
Namespace AddFormula
	Class Program
		Private Shared Sub Main(args As String())
			'定义LaTeX公式代码 Dim latexCode1 As String = "x^{2} + \sqrt{x^{2}+1}=2" Dim latexCode2 As String = "F(x) &= \int^a_b \frac{1}{3}x^3" Dim latexCode3 As String = "\alpha + \beta  \geq \gamma" Dim latexCode4 As String = "\overrightarrow{abc}" Dim latexCode5 As String = "\begin{bmatrix} 1 & 0 & \cdots & 0\\ 1 & 0 & \cdots & 0\\ \vdots & \vdots & \ddots & \vdots\\ 1 & 0 & 0 & 0 \end{bmatrix}" Dim latexCode6 As String = "\log_a{b}" '创建Presentation类的实例
			Dim ppt As New Presentation()
			'获取第一张幻灯片 Dim slide As ISlide = ppt.Slides(0) '添加形状到幻灯片
			Dim shape As IAutoShape = slide.Shapes.AppendShape(ShapeType.Rectangle, New RectangleF(30, 100, 200, 30))
			shape.TextFrame.Paragraphs.Clear()
			'使用LaTeX代码添加数学公式到形状 shape.TextFrame.Paragraphs.AddParagraphFromLatexMathCode(latexCode1) '重复以上操作,添加形状,并添加公式到形状
			shape = slide.Shapes.AppendShape(ShapeType.Rectangle, New RectangleF(240, 100, 200, 40))
			shape.TextFrame.Paragraphs.Clear()
			shape.TextFrame.Paragraphs.AddParagraphFromLatexMathCode(latexCode2)
			shape = slide.Shapes.AppendShape(ShapeType.Rectangle, New RectangleF(30, 180, 200, 40))
			shape.TextFrame.Paragraphs.Clear()
			shape.TextFrame.Paragraphs.AddParagraphFromLatexMathCode(latexCode3)
			shape = slide.Shapes.AppendShape(ShapeType.Rectangle, New RectangleF(240, 180, 200, 40))
			shape.TextFrame.Paragraphs.Clear()
			shape.TextFrame.Paragraphs.AddParagraphFromLatexMathCode(latexCode4)
			shape = slide.Shapes.AppendShape(ShapeType.Rectangle, New RectangleF(30, 280, 200, 70))
			shape.TextFrame.Paragraphs.Clear()
			shape.TextFrame.Paragraphs.AddParagraphFromLatexMathCode(latexCode5)
			shape = slide.Shapes.AppendShape(ShapeType.Rectangle, New RectangleF(240, 280, 200, 40))
			shape.TextFrame.Paragraphs.Clear()
			shape.TextFrame.Paragraphs.AddParagraphFromLatexMathCode(latexCode6)
			'设置形状边框和填充类型 For i As Integer = 0 To slide.Shapes.Count - 1 slide.Shapes(i).Fill.FillType = FillFormatType.None slide.Shapes(i).Line.FillType = FillFormatType.None Next '保存文档
			ppt.SaveToFile("MathEquations.pptx", FileFormat.Pptx2013)
		End Sub
	End Class
End Namespace公式添加效果:

申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请 该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
 



 
					



