Skip to content

[0804] Julia 会话支持符号计算#3752

Open
AXeonV wants to merge 4 commits into
mainfrom
ty/0804
Open

[0804] Julia 会话支持符号计算#3752
AXeonV wants to merge 4 commits into
mainfrom
ty/0804

Conversation

@AXeonV

@AXeonV AXeonV commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

[0804] Julia 会话支持符号计算

如何测试

  • 打开 Julia 会话,使用如下命令安装 package:
using Pkg
Pkg.add("Symbolics")
Pkg.add("Latexify")
Pkg.add("LaTeXStrings")
  • 输入命令加载环境 packages:
using Symbolics, Latexify, LaTeXStrings
  • 分别复制粘贴以下代码并执行:
@variables x
x^2

应输出一个渲染好的下x^2

@variables a b c
formula = (a + b)^2 / c

应输出一个渲染好的此单行公式

@variables a b
[a^2, b]

应输出一个渲染好的列向量

@variables a b
(a^2, b)

应输出一个渲染好的列向量

@variables a b c d
M = [a b; c d]

应输出一个渲染好的矩阵

@variables a b
Dict(a => b)

应输出一个矩阵形势的字典

L"\int_{0}^{\infty} e^{-x^2} dx = \frac{\sqrt{\pi}}{2}"

应输出一个渲染好的行内 latex 公式

@variables x
D = Differential(x)
expand_derivatives(D(sin(x) * x^2))

应输出一个渲染好的 $2x\sin(x) + x^2\cos(x)$

@variables x y
expr = (x^2 - y^2) / (x - y)
simplify(expr)

应输出一个渲染好的 $x + y$

@variables x y
expr = (x + y)^2
expand(expr)

应输出一个渲染好的 $x^2 + 2xy + y^2$

1 + 2

非符号计算,应输出一个普通的数字 3

[1, 2, 3]

非符号计算,应输出一个普通的提示信息文本

2026/6/17

What

支持 Julia 会话的符号计算,可以直接在会话中生成公式,类似于 Python 的 SymPy

How

  1. 提升 MoganJulia.jl 交互式会话中 text/latex MIME 类型的匹配优先级,确保 text/latex 优先于 text/html / text/markdown 导出
  2. 实现符号对象侦测器 is_symbolic_object(x),通过动态反射检查并自适应对象的类型,并在非原生 LaTeX 格式的容器上自适应激活 Latexify 转换
  3. 对输出的 LaTeX 文本进行统一化边界脱壳:自动过滤并剥离多余的 $$$\[ \]\( \) 等外部数学边界符,对非 \begin 起始的代数公式两端注入标准的 $\rmfamily{...}$ 包裹

Copilot AI review requested due to automatic review settings June 17, 2026 09:26

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

为 Mogan STEM 的 Julia 交互式会话增加对符号计算对象(Symbolics / SymbolicUtils / SymPy 等)的 LaTeX 优先渲染与容器自适应转换能力,使符号表达式在会话中能以公式形式输出。

Changes:

  • 调整 tm_mimetypes 顺序并优先处理 text/latex,同时对 LaTeX 输出做外层数学定界符剥离与包装。
  • 新增符号对象侦测 is_symbolic_object / is_symbolic_type,并在容器对象不支持原生 text/latex 时尝试 Latexify.latexify
  • 新增开发文档 devel/0804.md,记录测试步骤与用例。

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.

File Description
TeXmacs/plugins/julia/julia/MoganJulia.jl 提升 LaTeX 渲染优先级、规范化 LaTeX 文本边界,并对符号对象/容器启用 Latexify 转换路径
devel/0804.md 增加该功能的手工测试说明与示例

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread TeXmacs/plugins/julia/julia/MoganJulia.jl
Comment thread devel/0804.md Outdated
Comment thread devel/0804.md Outdated
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants