iosMath 0.9.4

iosMath 0.9.4

测试已测试
语言 Obj-CObjective C
许可证 MIT
发布最新版本2017年5月

Kostub Deshmukh 维护。



iosMath 0.9.4

  • 作者
  • Kostub Deshmukh

iosMath 是一个用于在 iOS 和 MacOS 应用程序中显示美观渲染的数学公式的库。它使用类似于 UILabel 的等效类来排版使用 LaTeX 编写的公式。它使用与 LaTeX 相同的排版规则,因此公式将按照 LaTeX 的渲染方式渲染。

它与 MathJaxKaTeX(用于网页)类似,但对于原生 iOS 或 MacOS 应用程序,无需使用 UIWebView 和 Javascript。更重要的是,它的速度比使用 UIWebView 快得多。

示例

以下是您可以使用此库渲染的一些公式的屏幕截图

Quadratic Formula

Calculus

AM-GM

Ramanujan Identity

EXAMPLES.md 文件包含更多示例。

要求

iosMath 在 iOS 6+ 或 MacOS 10.8+ 上正常工作,并需要 ARC 来构建。它依赖于以下 Apple 框架

  • Foundation.framework
  • CoreGraphics.framework
  • QuartzCore.framework
  • CoreText.framework

此外,对于 iOS,它还需要

  • UIKit.framework

此外,对于 MacOS,它还需要

  • AppKit.framework

安装

静态库

您还可以将 iosMath 添加为静态库到项目或工作区中。

  1. 下载最新的代码版本 (下载链接) 或将存储库作为 git 子模块添加到您的 git 跟踪项目中。
  2. 在 Xcode 中打开您的项目,然后将 iosMath.xcodeproj 拖放到您的项目或工作区(使用“产品导航器视图”)。
  3. 选择您的目标并转到构建阶段选项卡。在“链接二进制与库”部分选择添加按钮。在表单中找到并添加 libIosMath.a。您可能还需要将 iosMath 添加到“目标依赖项”列表中。
  4. MathFontBundle 添加到“复制打包资源”列表中。
  5. 使用 #import <IosMath/IosMath.h> 在需要的地方包含 IosMath。

用法

该库提供了一个类 MTMathUILabel,它是一个支持渲染数学公式的 UIView。要显示一个公式,只需创建一个如下所示的 MTMathUILabel

#import "MTMathUILabel.h"

MTMathULabel* label = [[MTMathUILabel alloc] init];
label.latex = @"x = \\frac{-b \\pm \\sqrt{b^2-4ac}}{2a}";

MTMathUILabel 作为您 UIView 的子视图添加,渲染如上所示的二次公式示例。

包括的功能

这是当前库支持的公式类型的列表

  • 简单代数方程
  • 分数和连分数
  • 指数和下标
  • 三角公式
  • 平方根和n次根
  • 微积分符号 -极限、导数、积分
  • 大运算符(例如,积、和)
  • 大括号(使用 \left 和 \right)
  • 希腊字母
  • 组合(如 \binom、\ choose 等)
  • 几何符号(例如,角度、全等等)
  • 比率、比例、百分比
  • 数学间距
  • 上划线和下划线
  • 数学重音
  • 矩阵
  • 方程对齐
  • 更改粗体、罗马、花体和其他字体样式(\bf、\text、等)
  • 最常见的数学符号

示例

本项目包含一个示例应用程序,展示了如何使用应用程序以及可以渲染的不同方程。要运行示例应用程序,请克隆存储库,并先运行 pod install 命令。然后在 iOS 上运行 iosMathExample 应用程序。在 MacOS 上运行 MacOSMath 应用程序。

高级配置

MTMathUILabel 支持一些高级配置选项

数学模式

您可以在显示模式(相当于 LaTeX 中的 $$\[)和文本模式(相当于 LaTeX 中的 $\()之间切换 MTMathUILabel 的模式。默认样式是显示。要切换到文本模式,只需

label.labelMode = kMTMathUILabelModeText;
文本对齐

方程的默认对齐方式是左对齐。可以将其更改为居中对齐或右对齐,如下所示

label.textAlignment = kMTTextAlignmentCenter;
字体大小

默认字体大小是 20pt。您可以按照以下方式更改它

label.fontSize = 30;
字体

默认字体是 Latin Modern Math。可以按以下方式进行更改

label.font = [[MTFontManager fontManager] termesFontWithSize:20];

此项目包含 3 种与它捆绑的字体,但您可以使用任何 OTF 数学字体。

颜色

渲染后方程的默认颜色是黑色。可以按照以下方式将其更改为其他颜色

label.textColor = [UIColor redColor];

还可以为方程的不同部分设置不同的颜色。只需访问 displayList 字段,并在您想更改颜色的基础显示上设置 textColor

自定义命令

您可以定义自己的命令,这些命令尚未预定义。这与 LaTeX 中的宏类似。要定义自己的命令,使用

[MTMathAtomFactory addLatexSymbol:@"lcm"
                            value:[MTMathAtomFactory operatorWithName:@"lcm" limits:NO]];

这创建了一个 \lcm 命令,可以在 LaTeX 中使用。

内容内边距

MTMathUILabelcontentInsets 以对方程相对于视图的放置进行更精细的控制。

如果您需要设置它,可以按照以下方式操作

label.contentInsets = UIEdgeInsetsMake(0, 10, 0, 20);
错误处理

如果给MTMathUILabel提供的LaTeX文本无效,或者其中包含当前不支持的功能,则将显示错误消息而不是标签。

该错误可以像label.error那样编程检索。如果您不想显示任何内容,则设置

label.displayErrorInline = NO;

未来增强

请注意,这并不是LaTeX数学模式的完整实现。有一些重要的部分尚未包含,将在未来的更新中包含。这包括

  • 对显式大括号的(大左括号、大右括号等)支持
  • 添加缺失的TeX基本命令

相关项目

对于寻找不仅仅只是渲染数学内容的人来说,有两个相关项目

  • MathEditor:iOS上的数学方程式所见即所得编辑器。
  • MathSolver:用于解决数学方程式的库。

许可协议

iosMath可在MIT许可协议下获得。有关更多信息,请参阅许可协议文件

字体

此发行版包含以下字体。以下字体的许可协议如下: