在 Julia 变量名中下标多个字符?
Posted
技术标签:
【中文标题】在 Julia 变量名中下标多个字符?【英文标题】:Subscript multiple characters in Julia variable name? 【发布时间】:2016-07-21 08:38:15 【问题描述】:我会写:
x\_m<TAB> = 5
在 Julia 中获取 x
下标 m
作为变量名。如果我想下标一个单词而不是单个字符怎么办?这个
x\_max<TAB> = 5
不起作用。然而,
x\_m<TAB>\_a<TAB>\_x<TAB> = 5
确实有效,只是很不舒服。有没有更好的办法?
【问题讨论】:
不幸的是,并非所有的 ASCII 字符都以 unicode 子脚本或超级脚本的形式存在,因此通常这不起作用。值得注意的是缺少上标CFQSXYZq
和所有下标大写字母,以及下标bcdfgqwyz
。不要问我为什么 unicode 联盟决定 Fₓ
应该工作,而不是 Fy
或 Fz
。疯狂的unicode。 en.wikipedia.org/wiki/…
@MattB。也许他们只能选择有限数量的字符,因此不得不删除一些被认为不太有用的字符,例如下标 y。无论如何,我想要的是在下标中放置几个支持的字符。
x_max
似乎没有那么不好。
@imaluengo 你可以对x\_1<TAB>
说同样的话......它只是更酷;)
@becko:我的理解是,它实际上是故意拒绝拥有完整的集合,以免人们开始将其用作标记机制。当然,这引出了一个问题,为什么有任何?
【参考方案1】:
正如我在评论中指出的,并非所有 ASCII 字符都作为 unicode 上标或下标存在。此外,推广此选项卡完成的另一个困难将是确定 \_phi<TAB>
应该是什么意思:是 ₚₕᵢ
还是 ᵩ
?最后,我要注意的是,由于这些字符是从不同的范围拼凑在一起用于不同的用途,所以它们一起使用时看起来很糟糕。
支持常用词的一个简单技巧是将它们逐个添加到Base.REPLCompletions.latex_symbols
字典中:
Base.REPLCompletions.latex_symbols["\\_max"] = "ₘₐₓ"
Base.REPLCompletions.latex_symbols["\\_min"] = "ₘᵢₙ"
您可以将这些添加到您的.juliarc.jl
文件中,以便在每次启动时加载它们。虽然有可能获得一个全面的解决方案,但这需要更多更多的工作。
【讨论】:
我认为这不是模棱两可的。ₚₕᵢ
是 \_phi<TAB>
,ᵩ
应该是 \_\phi<TAB>
这种定义能否成为脚本的一部分,而不是在.juliarc.jl
文件中并每次运行,以确保代码跨机器的可移植性和跨用户共享?谢谢。
***.com/a/17909597/565879 好像不是所有字符都可以用作下标。这是 Unicode 限制,而不是 Julia 限制。另见:***.com/questions/6613197/…【参考方案2】:
从 Julia 1.6 开始,这适用于 Julia REPL 中的下标 (\_) 和上标 (\^)。
x\_maxTAB 会像这样打印出来:xₘₐₓ
。
x\^maxTAB 会像这样打印出来:xᵐᵃˣ
。
【讨论】:
以上是关于在 Julia 变量名中下标多个字符?的主要内容,如果未能解决你的问题,请参考以下文章