KatexUtils

KatexUtils 提供一个 UIView KatexView,用于为 iOS 应用渲染 LaTeX 表达式,它还提供了一个名为 KatexRenderer 的 KaTeX 引擎包装器,用于访问 KaTeX 的 renderToString API。

Version License Platform

注意:KatexUtils 仍在开发中,API 尚不稳定。如有更改,恕不另行通知。

示例

要运行示例项目,请克隆仓库,并首先从 Example 目录运行 pod install

用法

使用 KatexView 创建一个 UIView 来渲染 LaTeX 公式

var katexView = KatexView(latex: "a^2 + b^2 = c^2")

使用自定义渲染选项,就像在 KaTeX 中一样

var katexView = KatexView(latex: #"c = \pm\sqrt{a^2 + b^2}\in\RR"#,
                          options: [
                            .displayMode: true,
                            .macros: [#"\RR"#: #"\mathbb{R}"#]
                          ])

KatexView 的 frame 无法容纳整个公式时,它会自动变为可滚动。您还可以观察 status 属性来处理错误或在渲染成功完成后进行一些自定义更改。

cancellable = katexView.$status.sink { [weak self] status in
    let MAXWIDTH : CGFloat = 300.0
    let MAXHEIGHT : CGFloat = 100.0
    let contentSize = self?.katexView.intrinsicContentSize

    switch status {
    case .finished:
        self?.katexView.frame =
            CGRect(x: 0,
                   y: 0,
                   width: min(contentSize?.width ?? .infinity, MAXWIDTH),
                   height: min(contentSize?.height  ?? .infinity, MAXHEIGHT))
    case .error(let message):
        fatalError(message)
    default:
        return
    }
}

KatexRenderer 使用 KaTeX 将 LaTeX 公式渲染为 HTML 字符串

let str = KatexRenderer.renderToString(latex: "a^2 + b^2 = c^2", options: [.displayMode : true])

有关支持的功能,请查看 KaTeX文档

要求

安装

CocoaPods

KatexUtils 可通过 CocoaPods 获取。要安装它,只需将以下行添加到您的 Podfile

pod 'KatexUtils', '~> 0.3.0'

使用 Swift Package Manager 安装

一旦你设置好你的 Swift 包,添加 KatexUtils 作为依赖项就像将其添加到你的 Package.swiftdependencies 值中一样简单

dependencies: [
    .package(url: "https://github.com/nks5117/KatexUtils.git", .upToNextMinor(from: "0.3.0"))
]

作者

Ni Kesu, 1026001096@qq.com

许可

KatexUtils 在 MIT 许可下可用。有关更多信息,请参阅 LICENSE 文件。