Link-Konstrukte

<label|name>
(Referenzziel)

Der Operand muss zu einer Zeichenkette evaluieren. Dieser wird als Zielname einer der folgenden Referenztypen, reference, pageref und hlink verwendet.

Der Name eines Labels sollte eindeutig innerhalb eines Dokuments sein und darf daher nur einmal vergeben werden.

Beispiele in diesem Abschnitt verweisen auf das Label, label, mit dem Namen „there” .

<label|there>

<reference|name>
(Verweis auf einen Namen)

Das Argument ist eine Zeichenkette, ein Label, das in einem label-Konstrukt im aktuellen oder einem anderen zum aktuellen Projekt gehörigen Dokument definiert worden ist.

<reference|there>

Der Verweis, reference, wird beim Schriftsetzen durch den Wert der Variablen the-label am Punkt des Ziels label. Die Variable the-label wird in vielen unterschiedlichen Strukturen wie Abschnitte, Abbildungen, nummerierten Gleichungen usw. gesetzt.

Eine Referenz, ein Verweis, reference, reagiert auf Mausklicks wie ein Hyperlink.

<pageref|name>
(Seitenzahl)

Das Argument muss zu einer Zeichenkette evaluieren, die als Label mit dem Konstrukt label innerhalb des aktuellen Dokuments oder einem Dokument des aktuellen Projektes definiert wurde.

<pageref|there>

pageref wird im Schriftsatz durch die Seitenzahl der Seite ersetzt, die das Ziellabel, label, enthält. Man beachte, dass Seitenzahlen nur berechnet werden können, wenn das Dokument mit Seitenumbruch gesetzt wird. Das ist nicht der Fall in den Seitentypen „automatisch” oder „Papyrus”.

pageref reagiert auf Mausklicks wie ein Hyperlink.

<hlink|content|url>
(Hyperlink)

Dieses Konstrukt erzeugt einen Hyperlinks mit dem sichtbaren Text content, der auf url zeigt. url muss zu einer Zeichenkette in URL-Syntax evaluieren und zu einem lokalen Dokument oder einem Dokument auf einem anderen Rechner verweisen. Positionen innerhalb eines Dokuments können mit Labeln definiert werden.

Die folgenden Beispiele verweisen auf das gleiche Dokument, ein Dokument im gleichen Verzeichnis und einem Web-Dokument.

<hlink|Dieses Dokument|./#there>

<hlink|gleiches Verzeichnis|file.tm#there>

<hlink|Im Web|http://example.org/#there>

Das erste Beispiel wird im laufenden Text so Dieses Dokument dargestellt. Wenn das Dokument nicht editierbar ist, wird es mit einem einfachen Klick erreicht. Für editierbare Dokumente ist dagegen ein Doppelklick erforderlich.

<include|url>
(ein anderes Dokument einbinden)

url muss zu einer Zeichenkette in URL-Syntax evaluieren und zu einem lokalen Dokument oder einem Dokument auf einem anderen Rechner verweisen. Er wird als Dateiname interpretiert und der Inhalt der Datei wird anstelle des include-Konstrukts eingefügt. Dafür muss dieser in einem Blockkontext liegen.

<action|content|script>
(ein ausführbares Skript einbinden)

Ein ausführbares Scheme-Skript, script einbinden, dass bei einem doppelten Mausklick auf content ausgeführt wird. Beispielsweise, wenn Sie auf hier doppelklicken, erzeugen Sie ein neues xterm. Der Code dafür ist <action|hier|(system "xterm &")>.

Aus Sicherheitsgründen wird vom Nutzer normalerweise, wenn ausführbare Skripte eingeleitet werden sollen, eine Bestätigung verlangt. Das Sicherheitsniveau kann im Menü BearbeitenEinstellungenSicherheit eingestellt werden. Programmierer können auch bestimmte Scheme-Routinen als „sicher” erklären. Scheme-Programme, die nur sichere Routinen enthalten werden ohne Rückfrage ausgeführt.

<mutator|content|script>
(ein Konstrukt, das sich selbst modifizieren kann)

Der Inhalt, content, eines mutator-Konstrukts wird automatisch durch das Scheme-Skript, script, erzeugt. Genauer, TeXmacs ermittelt periodisch, welche mutator-Konstrukte geöffnet sind. Für jeden setzt es den Mutatorpfad auf den Pfad zu dem Inhalt, content, und ruft dann das zugehörige Scheme-Skript. Dieses Skript kann den Inhalt, content, modifizieren oder auch andere Stellen des Dokuments. Letzteres ist aber wenig effizient und wird deshalb nicht empfohlen. Um den Mutatorpfad aus Scheme zu extrahieren, sollte man den Scheme-Befehl (get-mutator-path)benutzen.

Mutatoren sind sehr nützlich, wenn TeXmacs mit externen Programmen kommuniziert. Die derzeitige Implementierung von Computeralgebra und anderen „Sessions“ benutzt Mutatoren, damit man an einem Dokument arbeiten kann, während extern Berechnungen durchgeführt werden. Da Mutatoren vom Editor automatisch gefunden werden, bleibt ihr Verhalten auch dann korrekt, wenn die Position des Mutators im Dokument geändert wird. Das geschieht beispielsweise, wenn man einen neuen Absatz am Beginn des Dokuments einfügt.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".