2017-10-10 210 views
1

嘿所以我知道由於在Julia中的Unicode支持,可以通過鍵入a\_1<TAB>來寫下例如字母a和下標1。現在,如果我想要做類似如下:在Julia中打印變量下標

for i in [1 2 3] 
    println("a\_i") 
end 

,並具有輸出寫成

a₁ 
a₂ 
a₃ 

我怎麼會去這一點沒有寫出所有可能的標自己?

+0

你想要的Unicode字符是'\ u208X'。如果你在'\ u2081 \ u2082 \ u2083''中迭代'我可以得到你想要的,但我不認爲有一個內置的方法來從數字轉換爲unicode下標。 –

+2

你可以爲此寫一個字符串宏。 [LaTeXStrings.jl](https://github.com/stevengj/LaTeXStrings.jl)很接近,但不完全是你想要的。 –

+1

寫一個自定義轉換器應該很簡單'subscript(i :: Integer)= i <0? error(「$ i is negative」):string(('''+ d for d in digit(i))...)' –

回答

8

你可以這樣做(至少在0.6版本):

ltx = Base.REPLCompletions.latex_symbols 

for i in 1:3 
    println("a$(ltx["\\_$i"])") 
end 
+0

這是一個很好的解決方案,謝謝! – Mason

1

博古米爾卡明斯基的答案似乎是最巧妙的,但我需要扭轉,以獲得正確的字符串爲兩個數字:

subscript(i::Integer) = i<0 ? error("$i is negative") : join('₀'+d for d in reverse(digits(i))) 

for i=7:13 println("a"*subscript(i)) end