You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Jupyter中实现多个公式与符号并排渲染

Jupyter 环境下 SymPy 多公式同行渲染方案

常见使用痛点

  • 调用IPython.display模块的display()函数渲染SymPy公式时,默认单元素占一行,多个元素连续调用会被强制拆分为多行展示
  • 直接用Python内置print()函数输出SymPy对象时,LaTeX排版格式会完全丢失,只能输出纯文本形式的公式,可读性差
  • 公开网络资料中很少有针对多元素同行渲染场景的简便实现,自行调试拼接LaTeX的成本较高

开箱即用的实现函数

核心思路是把所有需要同行展示的内容统一转为LaTeX片段,拼接成单个Math对象后一次性交给display渲染,从根源避免多次调用display触发的自动换行:

from IPython.display import display, Math
import sympy

def display_inline(*content, use_inline_math=False):
    """
    同一行渲染多个SymPy公式、文本内容
    :param content: 按传入顺序渲染,支持SymPy表达式、手写LaTeX字符串、普通文本
    :param use_inline_math: 设为True时使用行内公式样式,默认块级公式加标准quad间距
    """
    split_str = " \quad " if not use_inline_math else " "
    latex_segments = []
    for item in content:
        if isinstance(item, str):
            latex_segments.append(item)
        else:
            latex_segments.append(sympy.latex(item))
    display(Math(split_str.join(latex_segments)))

使用示例

按顺序把需要展示的内容传入函数即可,SymPy对象会自动转成标准LaTeX格式,普通文本会原样保留:

x = sympy.symbols('x')
expr1 = sympy.Derivative(sympy.sin(x)*sympy.exp(x), x)
expr2 = sympy.diff(sympy.sin(x)*sympy.exp(x), x)

# 同一行展示导数表达式和计算结果
display_inline("函数求导:", expr1, " = ", expr2)

执行后所有内容会在同一行完成LaTeX渲染,不会出现换行、格式错乱的问题。


内容的提问来源于stack exchange,提问作者Dara O h

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 10:54:23