Definieren von „Befehlen“ oder „Makros“ mit Unicode-Namen

Definieren von „Befehlen“ oder „Makros“ mit Unicode-Namen

Wie kann ich das ungefähre Äquivalent implementieren, \def\macro{expansion}sodass der Makroname Leerzeichen und andere Unicode-Zeichen enthalten kann? Ich möchte beispielsweise Folgendes tun können:

\defineinsert{qty: β2 activity}{\SI{1.85}{\mega\becquerel}}
[...]
The measured activity was \insert{qty: β2 activity}.
$R_\beta = \insert{qty: β2 activity}$

Produktion

The measured activity was \SI{1.85}{\mega\becquerel}.
$R_\beta = \SI{1.85}{\mega\becquerel}$

Die Motivation besteht darin, viele geordnete „Makros“ in vorab definieren zu können, um sie im gesamten Dokument verwenden zu können, ohne dass die Einschränkung gilt, dass Zeichen nur sein dürfen [a-zA-Z], wie es bei der Verwendung \defzur Definition tatsächlicher Befehle auferlegt wird.


Ich habe keine Ahnung, wie ich das implementieren soll, da ich nicht weiß, wie man mit TeX Schlüssel-Wert-Zuordnungen erstellt … oder ob das der richtige Ansatz wäre.

Gibt es vielleicht eine andere Möglichkeit, diesen Bedarf zu decken? Sollte ich dazu LuaTeX verwenden? (Derzeit verwende ich XeLaTeX.) Vielleicht gibt es dafür ein Paket?

Danke!

Antwort1

Du kannst \csname ...\endcsnamehierfür z.B. mit Hilfe von \@namedef verwenden:

\documentclass{article}
\begin{document}
\makeatletter
\@namedef{\detokenize{qty: β2 activity}}{bllb}

The beta activity \@nameuse{\detokenize{qty: β2 activity}}

The beta activity \@nameuse{\detokenize{qty: β2  activity}}

\end{document}

Der Kürze halber können Sie etwas wie folgt definieren:

\makeatletter
\newcommand\newshortcut[2]{\@namedef{\detokenize{#1}}{#2}}
\newcommand\shortcut[1]{\@nameuse{\detokenize{#1}}}
\makeatother

das wie folgt verwendet werden kann:

\newshortcut{qty: β}{lola}
[...]
Hello \shortcut{qty: β}.

verwandte Informationen