PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : TextField in Hyperref Form



philharmony
03-07-2009, 17:21
Moin
Ich würde gerne bei den Textfeldern das Label entweder weglassen oder das Feld eine Zeile unter das Label setzen. Bekomme das aber nicht hin.
Wenn ich den Beschriftungstext einfach leer Lasse

\TextField[width=3cm]{}
dann wird das Feld erst gar nicht erzeugt.
Desweiteren möchte ich ein Feld zum eintragen eines Datums definieren, also entweder
[][].[][].[][][][] oder ein einzelnes Feld das entsprechend vorformatiert ist.
Wer kann helfen?

mechanicus
03-07-2009, 18:03
Hallo,

meinst du sowas:

\documentclass{scrreprt}
\usepackage{hyperref}
\begin{document}
\begin{Form}
\TextField{\mbox{}}
\end{Form}
\end{document}
Ansonsten mache bitte erstmal ein Minimalbeispiel.

Gruß
Marco

philharmony
03-07-2009, 20:33
Dein Beispiel erzeugt bei mir auch nichts.
Ich habe in etwa so


\documentclass{scrreprt}
\usepackage{hyperref}
\begin{document}
\begin{Form}
\TextField[width=3cm,value={d}]{ }
\end{Form}
\end{document}


So lange ich dem TextField irgendeinen String, und sei es nur ein Leerzeichen, übergebe wird die box erzeugt. Wenn ich aber schreibe

\TextField[width=3cm,value={d}]{}
wird die box im PDF nicht angezeigt. Keine Fehlermeldung, der übrige Text wird normal erzeugt.
Ich kann aber auch kein Leerzeichen gebrauchen da die Felder teilweise einfach im Text stehen (im Prinzip wie ein Lückentext).

u_fischer
04-07-2009, 17:08
Einen Label braucht so ein Feld schon, und zwar einen eindeutigen (gib mal in Feld ein was ein und drücke enter oder tab, dann merkst du warum), du kannst aber den Druck des Labels unterdrücken.




\documentclass[parskip]{scrreprt}
\usepackage{hyperref}
\def\LayoutTextField#1#2{% label, field
\leavevmode#2%
}
\begin{document}
abc

\begin{Form}
\TextField[width=3cm]{Feld1}

\TextField[width=3cm]{Feld2}

\TextField[width=3cm]{Feld1}
\end{Form}
\end{document}

Ulrike Fischer

philharmony
09-07-2009, 13:10
Ok werd ich mal versuchen, danke.
Kann ich das Label alternativ auch einfach ÜBER dem Feld platzieren? Würde evtl auch helfen.

Wenn ich das selbe mit den Checkfields versuche klappt das nicht, dazu ne Idee?

u_fischer
09-07-2009, 13:22
Selbstverständlich. Wenn der Original \LayoutTextField die beiden Argumente #1 und #2 nebeneinander druckt, und mein \LayoutTextField #1 gar nicht druckt, dann wird es wohl auch möglich sein, die beiden übereinander zu drucken.


\def\LayoutTextField#1#2{% label, field
#1\\[1ex]
#2%
}

Ulrike Fischer

philharmony
09-07-2009, 14:27
Sorry für die blöden Fragen. Bin eigentlich Lyx-User und arbeite mich grade so Stückchen für Stückchen in LaTex ein. Bei manchem habe ich schlicht noch zu viele Fragezeichen.
Zum Beispiel der o.g. Synthax.
Ich hole mir doch damit quasi den #1. und #2. "Teil" dessen was da erzeug wird und "baue" ihn neu zusammen? Wenn ich Schlichtweg

\def\LayoutTextField#1#2{% label, field
#2#1
}
schreibe, müßte er doch einfach die beiden Teile vertauschen? Das klappt aber wieder nicht, sondern habe ich nach dem Tip in einem anderen Beitrag so gemacht


\renewcommand{\LayoutCheckField}[2]{\mbox{#2}\,#1}

Wobei sich mir auch hier der Synthax nicht so ganz erschließt, zb wann denn nu ein backslash kommt und wann nicht und wenn ja warum...

mechanicus
09-07-2009, 14:33
Hallo,

so geht es.

\documentclass[parskip]{scrreprt}
\usepackage{hyperref}
\def\LayoutTextField#1#2{% label, field
\leavevmode#2#1%
}

\begin{document}
\begin{Form}
\TextField[width=3cm]{Feld1}
\end{Form}
\end{document}
Was meinst du mit backslash? Meinst du die Anweisung \, ? Das ist nur ein vordefinierter Freiraum.

Gruß
Marco

u_fischer
09-07-2009, 14:34
#2, also das "Feld", darf nicht im vertikalen Modus benutzt werden, dh. nicht zwischen Absätzen. Du musst zuerst eine Zeile beginnen, zB. durch beliebigen Text, #1, \leavevmode (=verlasse vertikalen Modus), \indent, \mbox{}...

Ulrike Fischer

philharmony
09-07-2009, 14:52
Dh daß das Feld nicht an Stelle 1 nach einem Absatz kommen darf? Weil das wiederrum ging mit dem anderen Befehl...
Hätt ich doch nur Zeit mich dem Dicken LateX Buch aus der Bib zu widmen ;)