Unicode 在变量名中下标多个字符?

Unicode 在变量名中下标多个字符?,unicode,julia,Unicode,Julia,我可以写: x\_m<TAB> = 5 不起作用。但是, x\_m<TAB>\_a<TAB>\_x<TAB> = 5 x\\u m\\u a\\u x=5 确实有效,只是很不舒服。有更好的方法吗?正如我在评论中指出的,并非所有ASCII字符都以unicode超级或子脚本的形式存在。此外,推广此选项卡完成的另一个困难是确定\\u phi应该是什么意思:它是ₚₕᵢ或ᵩ?最后,我会注意到,由于这些字符是从不同的范围拼凑而成的,用于不同的用途,所以它

我可以写:

x\_m<TAB> = 5
不起作用。但是,

x\_m<TAB>\_a<TAB>\_x<TAB> = 5
x\\u m\\u a\\u x=5

确实有效,只是很不舒服。有更好的方法吗?

正如我在评论中指出的,并非所有ASCII字符都以unicode超级或子脚本的形式存在。此外,推广此选项卡完成的另一个困难是确定
\\u phi
应该是什么意思:它是
ₚₕᵢ
?最后,我会注意到,由于这些字符是从不同的范围拼凑而成的,用于不同的用途,所以它们在一起使用时看起来非常糟糕

支持常用词的一个简单方法是将它们零碎地添加到
Base.REPLCompletions.latex\u符号
字典中:

Base.REPLCompletions.latex_symbols["\\_max"] = "ₘₐₓ"
Base.REPLCompletions.latex_symbols["\\_min"] = "ₘᵢₙ"

您可以将这些添加内容放入
.juliarc.jl
文件中,以便在每次启动时加载它们。虽然有可能得到一个全面的解决方案,但这需要做更多的工作。

不幸的是,并非所有ASCII字符都以unicode子脚本或超级脚本的形式存在,因此一般来说,这不起作用。明显缺失的是上标
CFQSXYZq
和所有下标大写字母,以及下标
bcdfgqwyz
。不要问我为什么unicode联盟决定
Fₓ应该可以工作,但不能是
Fy
Fz
。疯狂的unicode@马特布。也许他们只能选择有限数量的字符,因此不得不删除一些被认为不太有用的字符,比如下标y。无论如何,我想在下标中添加几个受支持的字符。
x\u max
似乎没有那么糟糕。@imaluengo您可以对
x\u 1
说同样的话。。。只是凉快一点;)@becko:我的理解是,这实际上是一种故意拒绝拥有完整的集合,以免人们开始将其用作标记机制。当然,这就引出了一个问题,那就是为什么会有这样的人呢?我认为这并不含糊<代码>ₚₕᵢ
\\u phi
应该是
\\phi
这种定义是否可以是脚本的一部分,而不是
.juliarc.jl
文件中的一部分,并每次运行,以确保代码跨计算机的可移植性和跨用户的共享?谢谢似乎并非所有字符都可以用作下标。这是一个Unicode限制,而不是Julia限制。另见:
Base.REPLCompletions.latex_symbols["\\_max"] = "ₘₐₓ"
Base.REPLCompletions.latex_symbols["\\_min"] = "ₘᵢₙ"