Nächste: , Vorige: , Nach oben: Laufzeitumgebung   [Inhalt][Index]

26.1 Initialisierung von Maxima

Wenn Maxima startet, werden die beiden Dateien maxima-init.mac und maxima-init.lisp automatisch geladen, sofern diese vorhanden sind. Die Datei maxima-init.mac wird mit der Funktion batchload von Maxima geladen und kann beliebige Maxima-Ausdrücke enthalten, die beim Starten von Maxima ausgeführt werden. Die Datei maxima-init.lisp wird mit der Funktion load geladen und kann entsprechende Lisp-Anweisungen enthalten. Beide Dateien erlauben es dem Nutzer, globale Variablen zu setzen, Funktionen zu definieren oder sonstige Aktionen auszuführen, um zum Beispiel die Maxima-Umgebung anzupassen.

Die Dateien maxima-init.mac und maxima-init.lisp können in jedem Verzeichnis abgelegt werden, das von der Funktion file_search gefunden wird. Üblicherweise wird das Verzeichnis gewählt, das in der Optionsvariablen maxima_userdir enthalten ist und die von Maxima beim Starten entsprechend dem Betriebssystem mit einem Standardwert initialisiert wird.

Beispiel:

Im Folgenden wird ein Beispiel für den Inhalt einer Datei maxima-init.mac gezeigt. In diesem Beispiel werden einige globale Werte auf neue Anfangswerte gesetzt.

/* maxima-init.mac */
print(" Lade ", file_search("maxima-init.mac"), " ...")$
linel:65$      /* 65 Zeichen pro Zeile */
leftjust:true$ /* Linksbündige Ausgabe */
algebraic:true$ /* Vereinfache algebraische Zahlen */
fpprec:25$      /* große Gleitkommazahlen mit 25 Stellen */
print (" maxima-init.mac ist geladen.")$

Die Optionsvariable maxima_userdir enthält ein geeignetes Verzeichnis, um die Datei maxima-init.mac abzulegen. Mit der Funktion file_search kann geprüft werden, ob die Datei von Maxima gefunden wird.

(%i1) maxima_userdir;
(%o1)                 /home/dieter/.maxima
(%i2) file_search("maxima-init.mac");
(%o2)         /home/dieter/.maxima/maxima-init.mac

Im Folgenden wird Maxima mit einer Datei maxima-init.mac gestartet, die die oben angegebenen Maxima Kommandos enthält.

dieter@dieter:~/Maxima/maxima$ rmaxima
Maxima 5.25.1 http://maxima.sourceforge.net
Mit Lisp SBCL 1.0.53
Lizensiert unter der GNU Public License. Siehe die Datei COPYING.
Gewidmet dem Andenken an William Schelter.
Die Funktion bug_report() gibt Informationen zum Berichten von Fehlern.
 Lade  /home/dieter/.maxima/maxima-init.mac  ... 
 maxima-init.mac ist geladen. 
(%i1) 

Die Sitzung wird fortgesetzt, die Variablen enthalten die gewünschten neuen Standardwerte und die Anzeige ist linksbündig formatiert.

(%i1) linel;
(%o1) 65
(%i2) algebraic;
(%o2) true
(%i3) fpprec;
(%o3) 25

Hinweis:

Mit dem Kommando reset werden die Optionsvariablen nicht auf die Werte der Datei maxima-init.mac zurückgesetzt, sondern auf die ursprünglichen in Maxima festgelegten Standardwerte. Wird das Kommando kill ausgeführt, gehen weiterhin alle in der Initialisierungsdatei definierten Variablen und Funktionen verloren. In beiden Fällen muss die Datei maxima-init.mac erneut zum Beispiel mit der Funktion load geladen werden.

Die obige Sitzung wird fortgesetzt. Die Variablen werden mit reset zurückgesetzt. Dann wird die Datei maxima-init.mac mit der Funktion load geladen.

(%i4) reset();
(%o1) [features, fpprec, _, __, labels, %, linenum, algebraic, 
                                   tr-unique, leftjust, lispdisp]
(%i2) fpprec;
(%o2)                          16
(%i3) load("maxima-init.mac");
 Lade  /home/dieter/.maxima/maxima-init.mac  ... 
 maxima-init.mac ist geladen. 
(%o3) /home/dieter/.maxima/maxima-init.mac
(%i4) fpprec;
(%o4) 25

Die obigen Ausführungen treffen auf gleiche Weise auf die Datei maxima-init.lisp zu, wobei in diesem Fall die Datei Lisp-Anweisungen enthält.

Beispiel:

Das folgende Beispiel zeigt die Übersetzung des obigen Beispiels für die Datei maxima-init.mac in Lisp-Anweisungen.

;;; maxima-init.lisp
(format t " Lade ~A ...~%" ($file_search "maxima-init.lisp"))
(setq $linel 65)
(setq $leftjust t)
(setq $algebraic t)
(setq $fpprec 25)
(fpprec1 nil $fpprec)
(format t " maxima-init.lisp ist geladen.~%")

Die Datei maxima-init.lisp ist im besonderen dazu geeignet, einen Patch in Maxima einzuspielen, um einen Programmierfehler zu beheben.


Nächste: , Vorige: , Nach oben: Laufzeitumgebung   [Inhalt][Index]