![l3prop 中的空格](https://rvso.com/image/353026/l3prop%20%E4%B8%AD%E7%9A%84%E7%A9%BA%E6%A0%BC.png)
一間店如何逐字LaTeX3 屬性清單中的程式碼?
我的目標是將人名儲存在屬性清單內的屬性中。這意味著重音符號和空格都必須儲存在 key 中name
。這是我的程式碼:
\ExplSyntaxOn
\prop_new:N \aaa
\prop_put:Nnn \aaa {name} {Alfr\'ed R\'enyi}
\prop_item:Nn \aaa {name}
\ExplSyntaxOff
輸出不顯示“Alfréd”和“Rényi”之間的空格。我懷疑這是由於\ExplSyntaxOn
LaTeX 忽略空間造成的。我被困在這裡了。有任何想法嗎?
答案1
要麼使用\space
或~
,否則空間會被expl3
政權吞噬。
\prop
我還根據命名約定更改了 -list 變數的“錯誤”名稱expl3
,\l_jaeya_name_prop
例如 ie 。
\documentclass{article}
\usepackage{expl3}
\begin{document}
\ExplSyntaxOn
\prop_new:N \l_jaeya_name_prop
\prop_put:Nnn \l_jaeya_name_prop {name} {Alfr\'ed\space R\'enyi}
\prop_put:Nnn \l_jaeya_name_prop {othername} {Arthur~Gumby}
\prop_item:Nn \l_jaeya_name_prop {name}~and~\prop_item:Nn \l_jaeya_name_prop {othername}
\ExplSyntaxOff
\end{document}
更好的方法是使用包裝器儲存和檢索內容:
\documentclass{article}
\usepackage{expl3}
\ExplSyntaxOn
\prop_new:N \l_jaeya_name_prop
\cs_new:Npn \storename #1#2{% The % isn't necessary, just for convenience for more complicated macros to remember where which bracket starts.
\prop_put:Nnn \l_jaeya_name_prop {#1} {#2}
}
\cs_new:Npn \retrievename #1{%
\prop_item:Nn \l_jaeya_name_prop {#1}
}
\ExplSyntaxOff
\begin{document}
\storename{name}{Alfr\'ed R\'enyi}
\storename{othername}{Arthur Gumby}
\retrievename{name} and \retrievename{othername}
\end{document}