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.

alt text

Ö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, 15:34

cis's gravatar image

cis
9.0k17190302
Akzeptiert: 70%

bearbeitet 28 Mär, 15:36

1

Der Unterschied ist die zusätzliche Klammer. \xdef\NewArray{{\List}} sollte funktionieren.

(28 Mär, 18:06) Skillmon

Die Lösung von @Skillmon scheint am einfachsten und funktioniert. Komisch, ich dachte, ich hätte das versucht.

(29 Mär, 07:17) cis

@cis alternativ hätte auch \xdef\List{{5,6,7,8}} und anschließend \xdef\NewArray{\List} geholfen.

(29 Mär, 10:27) Skillmon

@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.

(29 Mär, 10:43) cis

Wie sich rausstellte musste ich die Lösung von @Henri verweden...

(29 Mär, 11:50) 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]}
Permanenter link

beantwortet 28 Mär, 16:29

Henri's gravatar image

Henri
14.2k42937

bearbeitet 02 Apr, 01:27

Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs füge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×22
×9
×3

Frage gestellt: 28 Mär, 15:34

Frage wurde angeschaut: 163 Mal

Zuletzt aktualisiert: 02 Apr, 01:27