PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Font in Formular wählen



vboehm
04-04-2014, 19:11
Hallo,
ich versuche gerade einen Vertrag, der in XeLaTeX geschrieben ist, in ein ausfüllbares Formular zu verwandeln.

Dazu habe ich mir erstmal eines der netten Formular-Beispiele gegriffen und versuche, es für meine Zwecke anzupassen:


\documentclass[a4paper]{scrartcl}
\usepackage{xltxtra}
\usepackage[ngerman]{babel}
\usepackage[xetex]{hyperref}
\usepackage[xetex]{insdljs}

\begin{insDLJS}[exaaae]{exaaae}{JavaScript auf Document Level}
done = 0;

function initfont(){
this.getField("Name").textFont = 'Courier';
this.getField("Staat").textFont = 'FreeMono';
}

function los(){
if (!done){
done = 1;
initfont();
}
}
\end{insDLJS}

\OpenAction{/S /JavaScript /JS (los();)}

\begin{document}
\selectfont
\begin{Form}

\TextField[
name=Name,
width=5cm,
bordercolor=.4 .4 1,
backgroundcolor=.9 .9 1,
bordersep=1,
charsize=8pt]
{Name:}

\ChoiceMenu[radio,
radiosymbol=\ding{54},
bordercolor=.4 .4 1,
backgroundcolor=.9 .9 1]
{Geschlecht:}{männlich,weiblich}

\ChoiceMenu[combo,
name=Staat,
bordercolor=.4 .4 1,
backgroundcolor=.9 .9 1]
{Staat:}{Deutschland,Frankreich,Niederlande,Schwei z}

\end{Form}
\end{document}

Es sieht auch alles schon sehr schön aus; nur ein Problem habe ich noch:
Ich möchte, dass die Schrift in den Feldern eine Schreibmaschinenschrift (Courier o.Ä.) ist. Wenn ich dafür
feld.textFont = 'FreeMono'; verwende, sieht es bei mir (unter Linux) auf dem Bildschirm und im Druck wie gewollt aus.
Aber wenn jemand auf einem Windows-Rechner oder Mac dieses Dokument aufruft, wird der wohl kaum wissen, was 'FreeMono' für eine Schrift ist. Wenn ich stattdessen
feld.textFont = 'Courier'; oder
feld.textFont = font.HelvB;oder Ähnliches (wie heißt eigentlich Courier in dem JavaScript-Modell) verwende, bleibt bei mir auf dem Schirm und im Druck die standardmäßige Schrift (ich glaube das ist eine 'Helvetica') erhalten.

Ich müsste also entweder - wie in CSS - eine Kette von Schriften angeben können, die der Reihe nach versucht wird, oder es müsste - wie bei CSS 'monospace' - einen universellen Platzhalter für 'nimm eine Schreibmaschinenschrift' geben.

Gibt es dafür in (Xe)LaTex eine Lösung?

mfg Volker

u_fischer
04-04-2014, 20:02
Vielleicht kannst du über ein Javascript die Schrift ändern. Abgesehen davon, heißt courier möglicherweise CourierStd.