Kann man irgendwie eine Liste in ein Array umwandeln? Zielgriff: Auf Listenelemente bestimmten Platzes / Nummer. Öffne in Overleaf
\xdef\List{5,6,7,8} \xdef\NewArray{\List} \pgfmathsetmacro{\NewValue}{\NewArray[0]} \NewValue geht nicht. Öffne in Overleaf
\documentclass[margin=45pt, varwidth]{standalone} \usepackage{tikz} \begin{document} Geht: \xdef\MyArray{{1,2,3,4}} \pgfmathsetmacro{\Value}{\MyArray[2]} \Value Geht nicht: %\xdef\List{5,6,7,8} %\xdef\NewArray{\List} %\pgfmathsetmacro{\NewValue}{\NewArray[0]} %\NewValue \end{document} gefragt 28 Mär '19, 20:34 cis |
Wie im ersten Beispiel braucht man für den Indexzugriff ein extra Klammerpaar. Dieses kann man ad-hoc hinzufügen: Öffne in Overleaf
\pgfmathsetmacro{\NewValue}{{\NewArray}[0]} beantwortet 28 Mär '19, 21:29 Henri |
Der Unterschied ist die zusätzliche Klammer.
\xdef\NewArray{{\List}}
sollte funktionieren.Die Lösung von @Skillmon scheint am einfachsten und funktioniert. Komisch, ich dachte, ich hätte das versucht.
@cis alternativ hätte auch
\xdef\List{{5,6,7,8}}
und anschließend\xdef\NewArray{\List}
geholfen.@Skillmon Ja, das ist klar; das entspricht ja meinem 1. Beispiel. Bei mir geht es um eine kompliziert erstellte Liste, die ich ggf. später als Array brauchen könnte. Und da möchte ich ungern den ganzen Code der Listenerstellung ändern.
Wie sich rausstellte musste ich die Lösung von @Henri verweden...