Um JavaScript auf Dokument-Ebene einzufügen, wird das Package insdljs benutzt, dabei muss der benutzte Ausgabetreiber angegeben werden. \begin{lstlisting} \usepackage[pdftex]{insdljs} \end{lstlisting} Der einzufügende JavaScript-Code wird in eine insDLJS-Umgebung geschrieben. Für das optionale und das erste geforderte Argument wird ein \LaTeX-Identifier benötigt (am besten einen String aus lauter Buchstaben verwenden, \emph{keine} Zahlen). Das zweite geforderte Argument ist ein Kommentar. \begin{lstlisting} \begin{insDLJS}[exaaaa]{exaaaa}{JavaScript auf Document Level} // ... Place Java source code here ... \end{insDLJS} \end{lstlisting} Der Identifier wird verwendet, um einen Dateinamen zu bilden ("`exaaaa.djs"'), in dem der JavaScript-Code temporär gepackt abgespeichert wird. Die Funktion, die beim Öffnen des Dokumentes -- genauer gesagt beim Öffnen der ersten Seite -- gestartet wird, wird mit dem OpenAction-Makro angegeben. \begin{lstlisting} \OpenAction{/S /JavaScript /JS (myFirstJavaScriptFunction();)} \end{lstlisting} Wie für \textsc{pdf} üblich, steht der String in Klammern. Der String enthält den auszuführenden Befehl, also den Funktionsnamen mit Klammern, möglichen Parametern und abschließendem Semikolon. Die hier angegebene Funktion wird jedesmal aufgerufen, wenn die erste Seite geöffnet wird. Um die beim Öffnen des Dokumentes notwendigen Schritte nur einmal auszuführen, wird in einer Variable gespeichert, ob die Funktion bereits aufgerufen wurde. \lstinputlisting{../examples/ex0006.tex} Beim Öffnen der \textsc{pdf}-Datei ex0006.pdf erscheint eine Message-Box. In dieser ist das Zeichen "o falsch dargestellt. Ursache hierfür ist die Verwendung des Packages inputenc mit der Einstellung latin1. Dies wandelt Umlaute und ß in \LaTeX{}-gerechte Folgen wie "`\textquotedbl{}o"' um, konsequenterweise auch für JavaScript.\\ Es gibt zwei Möglichkeiten, dieses Problem zu lösen: \begin{itemize} \item Das Paket inputenc wird nicht verwendet. Alle Umlaute\ldots im Text werden durch ihre jeweilige \LaTeX{}-Codierung ersetzt.\\ Ein Beispiel hierfür wird im Listing am Ende dieses Abschnittes dargestellt. \item Im JavaScript-Code werden die Umlaute nicht direkt sondern als JavaScript-Unicode-Zeichen eingegeben. Dieses Verfahren wird in Abschnitt~\vref{sec:fde0020} dargestellt. \end{itemize} \lstinputlisting{../examples/ex0007.tex}