Next: Interrupts, Previous: Laufzeitumgebung, Up: Laufzeitumgebung [Contents][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.

Next: Interrupts, Previous: Laufzeitumgebung, Up: Laufzeitumgebung [Contents][Index]