Leerzeichen in l3prop

Leerzeichen in l3prop

Wie kann man speichernwörtlichCode in einer LaTeX3-Eigenschaftsliste?

Mein Ziel ist es, Personennamen in einer Eigenschaft innerhalb einer Eigenschaftenliste zu speichern. Das bedeutet, dass sowohl Akzente als auch Leerzeichen im Schlüssel gespeichert werden müssen name. Hier ist mein Code:

\ExplSyntaxOn
\prop_new:N \aaa
\prop_put:Nnn \aaa {name} {Alfr\'ed R\'enyi}
\prop_item:Nn \aaa {name}
\ExplSyntaxOff

In der Ausgabe wird das Leerzeichen zwischen „Alfréd“ und „Rényi“ nicht angezeigt. Ich vermute, das liegt daran, \ExplSyntaxOndass LaTeX Leerzeichen ignoriert. Ich stecke hier fest. Irgendwelche Ideen?

Antwort1

Verwenden Sie entweder \spaceoder ~, sonst werden im expl3Regime Leerzeichen verschlungen.

Außerdem habe ich den „falschen“ Namen der \prop-Listenvariable entsprechend der expl3Namenskonvention geändert, also \l_jaeya_name_propbeispielsweise in .

\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}

Besser ist es, den Inhalt mit einem Wrapper zu speichern und abzurufen:

\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}

Bildbeschreibung hier eingeben

verwandte Informationen