1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
Um JavaScript auf Dokument-Ebene einzufgen, wird das Package insdljs
benutzt, dabei muss der benutzte Ausgabetreiber angegeben werden.
\begin{lstlisting}
\usepackage[pdftex]{insdljs}
\end{lstlisting}
Der einzufgende JavaScript-Code wird in eine insDLJS-Umgebung
geschrieben. Fr das optionale und das erste geforderte Argument
wird ein \LaTeX-Identifier bentigt (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 temporr 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 fr \textsc{pdf} blich, steht der String in Klammern. Der String
enthlt den auszufhrenden Befehl, also den Funktionsnamen mit Klammern,
mglichen Parametern und abschlieendem Semikolon.
Die hier angegebene Funktion wird jedesmal aufgerufen, wenn die erste
Seite geffnet wird. Um die beim ffnen des Dokumentes notwendigen
Schritte nur einmal auszufhren, 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 hierfr ist die Verwendung des Packages inputenc mit der Einstellung
latin1. Dies wandelt Umlaute und in \LaTeX{}-gerechte Folgen wie
"`\textquotedbl{}o"' um, konsequenterweise auch fr JavaScript.\\
Es gibt zwei Mglichkeiten, dieses Problem zu lsen:
\begin{itemize}
\item Das Paket inputenc wird nicht verwendet. Alle Umlaute\ldots im
Text werden durch ihre jeweilige \LaTeX{}-Codierung ersetzt.\\
Ein Beispiel hierfr 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}
|