在 Julia 中将符号变量名称显示为 LaTeX

问题描述 投票:0回答:1

我正在使用 Julia 和 Symbolics 包将变量名称显示为 LaTeX。我使用

@variables
宏定义了一个类似 LaTeX 的名称的变量:

Pkg.add("Symbolics")
using Symbolics

@variables var"\frac{\partial y}{\partial x}"

我想将此变量名称显示为 LaTeX,但是当我使用

display(var"\frac{\partial y}{\partial x}")
时,它显示变量的值而不是 LaTeX 表达式。我想像使用
L""
字符串一样显示变量名称:

L"\frac{\partial y}{\partial x}" |> display

有没有办法将这个符号变量名称显示为LaTeX,以便它显示变量名称本身。

我尝试了以下方法将符号变量

var"\frac{\partial y}{\partial x}"
显示为LaTeX:

我尝试显示变量:

front = "L\""
back = '"'
eval(print(front, :(var"\frac{\partial y}{\partial x}") ,back)) |> display

但是没有成功。

我希望我可以使用元编程将符号变量

var"\frac{\partial y}{\partial x}"
显示为LaTeX,即作为
L"\frac{\partial y}{\partial x}" |> display
的输出,显示变量名称本身,
var"\frac{\partial y}{\partial x}"

我的期望是找到一种解决方案或替代方法,允许我将符号变量名称显示为 LaTeX,保留变量的类似 LaTeX 的格式。

julia latex symbolic-math
1个回答
0
投票

您有两个选择。

首先,通过指定输出的 MIME,您可以将变量显示为 LaTeX 方程:

julia> x = (@variables var"\frac{\partial y}{\partial x}")[1]
var"\\frac{\\partial y}{\\partial x}"

julia> display("text/latex", x)
$$ \begin{equation}
\frac{\partial y}{\partial x}
\end{equation}
 $$

您还可以手动拉开

Num
,即
x
要获取其底层的
Symbol
,您可以使用它来获取内联形式的LaTeX。

julia> x.val.metadata
Base.ImmutableDict{DataType, Any} with 1 entry:
  VariableSource => (:variables, Symbol("\\frac{\\partial y}{\\partial x}"))

julia> latexstring(first(values(x.val.metadata))[end])
L"$\frac{\partial y}{\partial x}$"
© www.soinside.com 2019 - 2024. All rights reserved.