![l3prop のスペース](https://rvso.com/image/353026/l3prop%20%E3%81%AE%E3%82%B9%E3%83%9A%E3%83%BC%E3%82%B9.png)
どのように保管するか逐語的にLaTeX3 プロパティ リスト内のコードですか?
私の目標は、プロパティ リスト内のプロパティに人名を保存することです。つまり、アクセントとスペースの両方をキーに保存する必要があります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
に従って、リスト変数の「間違った」名前も変更しました。たとえば、 expl3
\l_jaeya_name_prop
\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}