This is documentation for Mathematica 4, which was
based on an earlier version of the Wolfram Language.
View current documentation (Version 11.1)

 Documentation /  Mathematica /  Das Mathematica Buch /  Die Prinzipien von Mathematica /  Textförmige Eingabe und Ausgabe /

Ändern von Details der FormatierungWandlung zwischen Zeichenketten, Boxen und Ausdrücken

2.8.12 Zeichenkettendarstellung von Boxen

Boxen lassen sich in Mathematica auf kompakte Weise mit Zeichenketten darstellen. Dies ist besonders dann vorteilhaft, wenn Sie Spezifikationen von Boxen als normalen Text im- oder exportieren wollen.

Dies erzeugt eine InputForm-Zeichenkette, die die SuperscriptBox darstellt.

In[1]:= ToString[SuperscriptBox["x", "2"], InputForm]

Out[1]=

Dies erzeugt die SuperscriptBox.

In[2]:= \( x \^ 2 \)

Out[2]=

ToExpression interpretiert die SuperscriptBox als Potenz.

In[3]:= ToExpression[%] // FullForm

Out[3]//FullForm=

Es ist wichtig, zwischen Formen zu unterscheiden, die rohe (uninterpretierte) Boxen darstellen, und Formen, die die Bedeutung der Boxen darstellen.

Dies entspricht einer rohen SuperscriptBox.

In[4]:= \( x \^ 2 \)

Out[4]=

Dies entspricht der Potenz, die die SuperscriptBox darstellt.

In[5]:= \!\( x \^ 2 \)

Out[5]=

Der hier erzeugte Ausdruck ist eine Potenz.

In[6]:= FullForm[ \!\( x \^ 2 \) ]

Out[6]//FullForm=

Unterscheiden zwischen rohen Boxen und den Ausdrücken, die sie darstellen

Wenn Sie den Inhalt einer StandardForm-Zelle in ein anderes Programm kopieren wollen, zum Beispiel in einen Texteditor, wird Mathematica automatisch eine \!\( ... \)-Form erzeugen. Dies geschieht, damit der ursprüngliche Inhalt der StandardForm-Zelle automatisch wiederhergestellt wird, wenn Sie nachfolgend die Form wieder in Mathematica einfügen. Ohne das \! würden sich nur die rohen Boxen, die diesen Inhalten entsprechen, ergeben.

Mit den Voreinstellungen für Optionen werden \!\( ... \)-Formen, die in Mathematica-Notebooks eingefügt wurden, automatisch in zweidimensionaler Form dargestellt. \!\( ... \)-Formen, die direkt über die Tastatur eingegeben werden, können mit dem Menübefehl In 2D-Format umwandeln (Make 2D) im Menü Bearbeiten (Edit) in zweidimensionaler Form dargestellt werden.

Einbettung zweidimensionaler Box-Strukturen in Zeichenketten

Mathematica wird normalerweise eine \( ... \)-Form, die innerhalb einer Zeichenkette erscheint, wie jede andere Zeichenfolge behandeln. Durch Einfügen eines \! können Sie Mathematica anweisen, diese Form wie die Boxen zu behandeln, die sie darstellt. Auf diese Weise können Sie deshalb Box-Strukturen in gewöhnlichen Zeichenketten einbetten.

Mathematica behandelt dies als eine gewöhnliche Zeichenkette.

In[7]:= "\( x \^ 2 \)"

Out[7]=\( x \^ 2 \)

Das Zeichen \! teilt Mathematica mit, daß diese Zeichenkette Boxen enthält.

In[8]:= "\!\( x \^ 2 \)"

Out[8]=

Sie können Boxen und gewöhnlichen Text mischen.

In[9]:= "box 1: \!\(x\^2\); box 2: \!\(y\^3\)"

Out[9]=

Eingabeformen für Boxen

Mathematica verlangt, daß alle Eingabeformen, die Sie für Boxen geben, in \( und \) eingeschlossen sind. Zwischen diesen äußersten \( und \) können Sie zur Angabe der Gruppierung zusätzliche \( und \) einfügen.

Hier werden gewöhnliche runde Klammern zur Kennzeichnung der Gruppierung verwendet.

In[10]:= \( x \/ (y + z) \) // DisplayForm

Out[10]//DisplayForm=

Ohne runde Klammern wäre die Gruppierung anders.

In[11]:= \( x \/ y + z \) // DisplayForm

Out[11]//DisplayForm=

\( und \) spezifizieren Gruppierung, werden jedoch nicht als explizite runde Klammern dargestellt.

In[12]:= \( x \/ \(y + z\) \) // DisplayForm

Out[12]//DisplayForm=

Die inneren \( und \) führen zur Konstruktion einer RowBox.

In[13]:= \( x \/ \(y + z\) \)

Out[13]=

Wenn Sie in Mathematica aa+bb eingeben, werden zuerst aa, + und bb als separate „Token" erkannt. Dieselbe Zerlegung in Token geschieht, wenn Boxen aus Eingabe konstruiert werden, die in \( ... \) eingeschlossen ist. In diesen Boxen wird jedes Token als Zeichenkette und nicht in seiner rohen Form angegeben.

RowBox hat aa, + und bb in separate Zeichenketten zerlegt.

In[14]:= \( aa+bb \) // FullForm

Out[14]//FullForm=

Die Leerzeichen um die + werden in der Voreinstellung nicht berücksichtigt.

In[15]:= \( aa + bb \) // FullForm

Out[15]//FullForm=

Backslash-Leerzeichen fügt ein richtiges Leerzeichen ein.

In[16]:= \( aa \ + \ bb \) // FullForm

Out[16]//FullForm=

Hier werden zwei verschachtelte RowBox-Objekte gebildet.

In[17]:= \( aa+bb/cc \) // FullForm

Out[17]//FullForm=

Dieselbe Box-Struktur wird gebildet, auch wenn die eingegebene Zeichenkette keinem vollständigen Mathematica-Ausdruck entspricht.

In[18]:= \( aa+bb/ \) // FullForm

Out[18]//FullForm=

In \( ... \)-Sequenzen lassen sich gewisse Arten von Boxen mit Backslash-Schreibweisen wie zum Beispiel \^ und \@ konstruieren. Für andere Arten von Boxen ist jedoch gewöhnliche Mathematica-Eingabe erforderlich, der \* vorangestellt ist.

Dies konstruiert eine GridBox.

In[19]:= \( \*GridBox[{{"a", "b"}, {"c", "d"}}] \) // DisplayForm

Out[19]//DisplayForm=

Dies konstruiert eine StyleBox.

In[20]:= \( \*StyleBox["text", FontWeight->"Bold"] \) // DisplayForm

Out[20]//DisplayForm=

\* funktioniert im Grunde wie ein Escape: Damit läßt sich gewöhnliche Mathematica-Syntax sogar innerhalb einer \( ... \)-Sequenz eingeben. Beachten Sie, daß die Eingabe, die nach einem \* folgt, selbst wieder \(... \)-Sequenzen enthalten kann.

Sie können verschachtelte \* und \( ... \) abwechseln. Außerhalb von \( ... \) werden explizite Anführungsstriche benötigt.

In[21]:= \( x + \*GridBox[{{"a", "b"}, {\(c \^ 2\), \(d \/
\*GridBox[{{"x","y"},{"x","y"}}] \)}}] \) // DisplayForm

Out[21]//DisplayForm=

In der Notebook-Benutzeroberfläche wird in der Regel mit ControlKeyLeftModified*RightModified oder ControlKeyLeftModified8RightModified ein Dialogfeld eingeblendet, in dem uninterpretierte Boxen eingegeben werden können—genauso wie nach \*.

Kontrolle der Weise, wie Eingabe interpretiert wird

In einer StandardForm-Zelle wird dies als StandardForm interpretiert und ergibt ein Produkt.

In[22]:= \!\( c(1+x) \)

Out[22]=

Die Backslash-Backquote-Sequenz (Folge der Zeichen inverser Schrägstrich und Gravis) weist Mathematica an, dies als TraditionalForm zu interpretieren.

In[23]:= \!\(TraditionalForm\` c(1+x) \)

Out[23]=

Wenn Sie den Inhalt einer Zelle aus einem Notebook in ein Programm, wie zum Beispiel einen Texteditor, kopieren, wird gewöhnlich keine explizite Backslash-Backquote-Sequenz mitgegeben. Wenn Sie aber das, was Sie zurückerhalten, in eine Zelle eines anderen Typs einfügen wollen, sollten Sie eine Backslash-Backquote-Sequenz einfügen, um sicherzustellen, daß alles korrekt interpretiert werden wird.

Ändern von Details der FormatierungWandlung zwischen Zeichenketten, Boxen und Ausdrücken