![l3prop의 공백](https://rvso.com/image/353026/l3prop%EC%9D%98%20%EA%B3%B5%EB%B0%B1.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" 사이의 공백이 표시되지 않습니다. 나는 이것이 LaTeX가 공간을 무시하게 만들기 때문이라고 생각합니다 \ExplSyntaxOn
. 나는 여기에 갇혀있다. 어떤 아이디어가 있나요?
답변1
또는 을 사용 \space
하거나 ~
그렇지 않으면 공백이 정권에 먹혀버립니다 expl3
.
또한 예 를 들어 명명 규칙에 \prop
따라 -list 변수 의 '잘못된' 이름을 변경했습니다 . 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}