当前位置: 首页 > news >正文

Python 代码生成 LaTeX 数学公式:latexify 参数 parameters

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接和本声明。

latexify 是一个用于将 Python 源代码片段编译为对应 LaTeX\LaTeXLATEX 表达式的 Python 包:

latexify 使用示例

latexify 提供以下功能:

  • 将 Python 源代码或其 AST 编译为 LaTeX\LaTeXLATEX 的库。
  • 用于美观打印已编译函数的 IPython 类。

入门指南

本文档介绍了如何在你的 Python 代码中使用 latexify

安装

目前 latexify 仅依赖 Python 标准库。你可以通过 pip 直接安装:

pip install latexify-py

注意:必须安装 latexify-py,而不是 latexify

在 Jupyter 中使用 latexify

latexify.function 装饰器会将你的函数包装起来,并以对应的 LaTeX 公式进行美观打印。Jupyter 会识别这种包装,并尝试输出 LaTeX 而非原始函数。

以下示例:

@latexify.function
def solve(a, b, c):return (-b + math.sqrt(b**2 - 4 * a * c)) / (2 * a)solve

将会在输出中打印以下公式:

solve(a,b,c)=−b+b2−4ac2a \mathrm{solve}(a, b, c) = \frac{-b + \sqrt{b^2 - 4ac}}{2a} solve(a,b,c)=2ab+b24ac

调用被包装的函数时,其行为与原始函数完全一致:

solve(1, 2, 1)
-1.0

对包装后的函数使用 str 会返回底层 LaTeX 源码:

print(solve)
f(n) = \\frac{-b + \\sqrt{b^{2} - 4ac}}{2a}

latexify.expressionlatexify.function 类似,但不会打印函数签名:

@latexify.expression
def solve(a, b, c):return (-b + math.sqrt(b**2 - 4 * a * c)) / (2 * a)solve

−b+b2−4ac2a \frac{-b + \sqrt{b^2 - 4ac}}{2a} 2ab+b24ac

直接获取 LaTeX 表达式

你也可以使用 latexify.get_latex,它接收一个函数并直接返回对应的 LaTeX 表达式。

latexify.get_latex 支持与 latexify.function 相同的参数。

def solve(a, b, c):return (-b + math.sqrt(b**2 - 4 * a * c)) / (2 * a)latexify.get_latex(solve)
f(n) = \\frac{-b + \\sqrt{b^{2} - 4ac}}{2a}

latexify 参数

本文档列出了用于控制 latexify 行为的参数列表。

identifiers: dict[str, str]

用于替换的标识符键值对。

identifiers = {"my_function": "f","my_inner_function": "g","my_argument": "x",
}@latexify.function(identifiers=identifiers)
def my_function(my_argument):return my_inner_function(my_argument)my_function

f(x)=g(x) f(x) = \mathrm{g}\left(x\right) f(x)=g(x)

reduce_assignments: bool

是否在 return 语句之前,将所有已定义的变量进行合并。

当前版本的 latexify 仅识别赋值语句。分析包含其他控制流程的函数时,可能会引发错误。

@latexify.function(reduce_assignments=True)
def f(a, b, c):discriminant = b**2 - 4 * a * cnumerator = -b + math.sqrt(discriminant)denominator = 2 * areturn numerator / denominatorf

f(a,b,c)=−b+b2−4ac2a f(a, b, c) = \frac{-b + \sqrt{b^{2} - 4 a c}}{2 a} f(a,b,c)=2ab+b24ac

use_math_symbols: bool

是否自动将具有符号名称的变量转换为 LaTeX 符号。

@latexify.function(use_math_symbols=True)
def greek(alpha, beta, gamma, Omega):return alpha * beta + math.gamma(gamma) + Omegagreek

greek(α,β,γ,Ω)=αβ+Γ(γ)+Ω \mathrm{greek}({\alpha}, {\beta}, {\gamma}, {\Omega}) = {\alpha} {\beta} + \Gamma\left({{\gamma}}\right) + {\Omega} greek(α,β,γ,Ω)=αβ+Γ(γ)+Ω

use_set_symbols: bool

是否使用集合运算的二元运算符。

@latexify.function(use_set_symbols=True)
def f(x, y):return x & y, x | y, x - y, x ^ y, x < y, x <= y, x > y, x >= yf

f(x,y)=(x∩y , x∪y , x∖y , x△y , x⊂y , x⊆y , x⊃y , x⊇y) f(x, y) = \left( x \cap y\space,\space x \cup y\space,\space x \setminus y\space,\space x \mathbin{\triangle} y\space,\space {x \subset y}\space,\space {x \subseteq y}\space,\space {x \supset y}\space,\space {x \supseteq y}\right) f(x,y)=(xy , xy , xy , xy , xy , xy , xy , xy)

use_signature: bool

是否输出函数签名。

该标志的默认值取决于前端函数。latexify.function 中默认为 True,而 latexify.expression 中默认为 False

@latexify.function(use_signature=False)
def f(a, b, c):return (-b + math.sqrt(b**2 - 4 * a * c)) / (2 * a)f

−b+b2−4ac2a \frac{-b + \sqrt{b^{2} - 4 a c}}{2 a} 2ab+b24ac

风险提示与免责声明
本文内容基于公开信息研究整理,不构成任何形式的投资建议。历史表现不应作为未来收益保证,市场存在不可预见的波动风险。投资者需结合自身财务状况及风险承受能力独立决策,并自行承担交易结果。作者及发布方不对任何依据本文操作导致的损失承担法律责任。市场有风险,投资须谨慎。

http://www.xdnf.cn/news/1148203.html

相关文章:

  • 【C语言进阶】结构体
  • Linux常用指令大全
  • 力扣经典算法篇-26-长度最小的子数组(暴力求解法,左右指针法)
  • Java 大视界 -- Java 大数据机器学习模型在自然语言处理中的对话系统多轮交互优化与用户体验提升(351)
  • ROS2 通过相机确定物品坐标位置
  • 在非Spring Boot的Spring项目中使用Lock4j
  • 开疆智能Profinet转ModbusTCP网关连接康耐视InSight相机案例
  • SPARKLE:深度剖析强化学习如何提升语言模型推理能力
  • 智慧资产管理系统需求文档
  • uniapp中腾讯地图SDK-安装及配置(自动定位回显城市)
  • Validation - Spring Boot项目中参数检验的利器
  • 打造高效订单处理!ZKmall开源商城的统一履约中心架构解析
  • UGUI 性能优化系列:第三篇——渲染与像素填充率优化
  • Vue3生命周期函数
  • ABP VNext + Kubernetes Istio:微服务网格实战指南
  • Word快速文本对齐程序开发经验:从需求分析到实现部署
  • 深度学习Depth Anything V2神经网络实现单目深度估计系统源码
  • Spring AI 项目实战(十八):Spring Boot + AI + Vue3 + OSS + DashScope 实现高效语音识别系统(附完整源码)
  • 市场数据+幸存者偏差提问,有趣的思考?
  • [论文阅读] 人工智能 + 软件工程 | 强化学习在软件工程中的全景扫描:从应用到未来
  • 异世界历险之数据结构世界(二叉树-leetcode)
  • 【2025最新】 .NET FrameWork微软离线运行库合集,一键安装版
  • 【C# in .NET】19. 探秘抽象类:具体实现与抽象契约的桥梁
  • 《Electron应用性能深耕:资源加载与内存治理的进阶路径》
  • 辛普森悖论
  • 用虚拟机体验纯血鸿蒙所有机型!
  • OpenCV 官翻7 - 对象检测
  • 13.5 Meta LLaMA 2核心技术拆解:4T数据训练+30%显存优化,70B模型准确率82.6%
  • 文件搜索的工具
  • Rust Web 全栈开发(十):编写服务器端 Web 应用