Ich bräuchte sowas wie

Öffne in Overleaf
\foreach \i in \sage{<Mit Sage erzeugte Liste>}{
    <Ausdruck von \i>
    }

konkret benötige z.B. \def\Liste{5,4,2,1,3} um daraus ein TikZ-Bild zu zeichnen. Deshalb ist es möglicherweise auch unpraktisch komplett bei Sage Variablen zu bleiben.

Etwa

sage: def P(n,k): return (list(Permutations(n)[k-1])) # Syntax: P(3,2)

erzeugt eine Liste von Zahlen 1,2,3, bloß wie kann ich diese mit TeX weiterverarbeiten?

Öffne in Overleaf
%\documentclass[]{article}
\documentclass[border=5mm, varwidth]{standalone}
\usepackage{sagetex}
\usepackage{tikz}
\usepackage{amsmath}

\begin{sagesilent}
def P(n,k): return (list(Permutations(n)[k-1])) # Syntax: P(3,2)
def Q(n, k): return matrix([range(1, n + 1), list(Permutations(n)[k-1])]) #Syntax: Q(3,1)
\end{sagesilent}

Test: \\ 
Tut:\\
$\sage{P(3,1)}$ \\

\foreach \i in {1,...,3}{
\i
}

Tut nicht: \\

\foreach \i in \sage{P(3,1)}{
\i
}

Weitere -positive- Tests: 
$\sigma_1 = \sage{Q(3,1)}$

\foreach \i in {1,...,6}{
$\sigma_\i = \sage{Q(3,\i)}$
}
\end{document}

gefragt 09 Mär, 09:30

cis's gravatar image

cis
8.5k16175276
Akzeptiert: 68%

geschlossen 12 Mär, 04:49

Das ist IMHO das immer gleiche Problem mit \sage, das wir hier schon mehrfach hatten: \sage ist nicht voll expandierbar. Wo immer man also das vollständig expandierte Ergebnis davon haben muss, bekommt man ein Problem.

(11 Mär, 06:59) saputello

Verdammt! Ich hatte eine Idee, vielleicht könnte man die Werte der Liste, die z.B. P(3,1) liefert einzeln auslesen. An sich sowas wie P(3,2)[0], P(3,2)[1], P(3,2)[2] (ich glaube so einfach ging es nicht) und die dann wieder zu einer LaTeX-Liste zusammenfassen. Da werde ich mal weiterforschen.

(11 Mär, 09:08) cis

Die Frage wurde aus folgenden Grund geschlossen: "Anderes Geht nicht!" durch cis 12 Mär, 04:49

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:

×10
×7
×7

Frage gestellt: 09 Mär, 09:30

Frage wurde angeschaut: 375 Mal

Zuletzt aktualisiert: 12 Mär, 04:49