我使用表格z={}
:鍵是點的名稱,值在我的範例座標中。
範例:z.a = {0,1}
與現有的表示法相比,我更喜歡這種表示法z[a]
。我嘗試使語法盡可能簡單,因為我知道鍵最終將成為 TikZ 中的座標名稱。
所以我測試z.O_0 = {0,0}
暫時沒有問題,除了稍後一點。
然後透過 Tikz 就可以使用a'
.閱讀文件後,我意識到我無法使用糖語法.
,我也測試了 z["a'"]
。這是正確的,但寫起來很痛苦。新的測試ap = "a'"
如我所料z[ap]
被接受,但z.ap
也令人驚訝。
——第一個問題:為什麼被z.ap
接受?ap
具有“字串”類型,但這裡它是一個變數?
現在為了再次簡化語法,我嘗試a = z.a
b=z.b
ap = z[ap]
c_a = z.c_a
並bp = z.bp
成功了。這看起來很合乎邏輯,因為它指向同一個表。
-- 第二個問題:我想使用一個函數來iso
一次獲得所有相等性。
我嘗試過類似的事情:
for k,v in pairs(z) do
k = ...
end
但我還沒找到解決方法。
當我想測試坐標的存儲時,最後一個問題。我之前沒有看到這個問題,因為程式碼被注入到 TikZ 程式碼中,但在這種情況下,您可以_
在座標或節點名稱中使用。當簡化程式碼來提出我的問題時,我發現我必須使用$$
來顯示類似的內容c_a
,但現在我$$
在tex.print
.
我曾經z.c_a=nil
把它從循環中解脫出來
-- 最後一個問題:如何列印for loop
.我不能\\_
像以前那樣使用了。
\documentclass{article}
\usepackage{luacode}
\begin{document}
\parindent = 0pt
\begin{luacode}
tp=tex.print
z = {}
z.a = {5,2}
z.b = {3,-2}
z.c_a = {3,2}
ap = "a'"
bp = "b'"
tex.print("type of ap is :".. type(ap)) -- > string
tex.print('\\\\')
z[ap] = {99,0} -- z."a'" = {1,1} -- > error it's ok
z.bp = {66,55} --
tex.print("x coordinate for z[ap] is ".. z[ap][1])
tex.print('\\\\')
tex.print("x coordinate for z.bp= \\{66,0\\} is ".. "z.bp[1] = " ..z.bp[1])
tex.print('\\\\')
bp = z.bp -- but "a'" = z["a'"] is not possible
--tex.print(" ap works like :" .. z[ap][1])
tex.print('\\\\')
tp("Sugar syntax : a=z.a b=z.b ap =z[ap] bp=z.bp")
a=z.a
b=z.b
bp = z.bp
ap = z[ap]
c_a = z.c_a
tex.print('\\\\')
tp("Test with sugar syntax :"..'\\\\')
tp("y coordinate for a[2] is ".. "a[2]= "..a[2])
tp('\\\\')
tp("y coordinate for ap[2] is ".. "ap[2]= "..ap[2])
tp('\\\\')
tp("y coordinate with bp[2]= "..bp[2])
tp('\\\\')
tp("y coordinate with c\\_a[1]= "..c_a[1])
tp('\\\\')
tex.print("The stored coordinates are : "..'\\\\')
z.c_a = nil. -- when `k=c_a` $$ are required but `$k$`does not work
for k,v in pairs(z) do
tp(k) tp(tostring(" represents :")) tp(tostring("(" .. v[1]..","..v[2]..")"))
tex.print('\\\\')
end
\end{luacode}
\end{document}
答案1
網站在每個問題一個問題的情況下效果最好:-) 但要找出我認為主要的困惑;
bp = z.bp
之間不存在任何關係bp
。第一個是變數 bp,但z.bp
它是語法糖,z["bp"]
因此使用 key 存取表格條目bp
。
"a'" = z["a'"] is not possible
您不能將任何內容分配給字串文字,因此在=
我發現我必須使用 $$ 來顯示類似 c_a 的內容
僅當您想將其顯示為數學下標時。這裡你只想c_a
當變數名,所以使用\texttt{\detokenize{c_a}}
或類似的。
第二個問題:我想使用像 iso 這樣的一個函數來一次得到所有相等性。
我在這裡看不到你想要什麼。