TeXwelt wurde neu installiert. Es funktionieren noch nicht alle Features und auch an den deutschsprachigen Formulierungen wird verbessert. Danke für eure Geduld.

Ich habe das Layout von \TextField mittels TiKz derart definiert, dass unter dem Textfeld eine Linie gezogen wird. Schaut's euch an:

Open in writeLaTeX
\documentclass[parskip=half, a5paper, landscape]{scrartcl}

\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[margin=0.5cm, left=1cm]{geometry}
\usepackage{xcolor}
\usepackage{tikz}
\usepackage{hyperref}

\pagestyle{empty}

\addtokomafont{subsection}{\rule{\textwidth}{1pt}\newline}

\begin{document}
\begin{Form}

\renewcommand*{\DefaultOptionsofText}{print,bordercolor={red}, backgroundcolor=white, borderwidth=1pt}

\newlength{\textfield}
\setlength{\textfield}{0.6\linewidth}

\renewcommand{\LayoutTextField}[2]{% label, field
\begin{tikzpicture}
    \draw[very thick] (0,4ex)  -- (0,0) -- (\textfield,0);
    \node[anchor=west] at (0cm,2ex) {#2};
    \node[anchor=west,font=\footnotesize\sffamily] at (0cm,-1.25ex) {#1};
\end{tikzpicture}
}

\subsection*{Angaben zur Person}
\setlength{\textfield}{\linewidth}
\TextField[name=NAME,width=\textfield]{Name, Vorname}

\setlength{\textfield}{0.2\linewidth}   
\TextField[name=TEST2,width=\textfield]{Name, Vorname}

\setlength{\textfield}{\fill}
\TextField[name=TEST3,width=\textfield]{Name, Vorname}  
\TextField[name=TEST4,width=\textfield]{Name, Vorname}

\end{Form}
\end{document}

Ich habe in diesem Szenario 2 Probleme:

  1. Die Breite des Textfelds und der Linie sind unabhängig voneinander. Ich möchte, dass die Linie genauso breit ist wie das Textfeld.
  2. Wie kann ich \fill als Breitenangabe nutzen?

Zu 1.: meine Variante mit einer neuen Länge geht so recht gut, aber elegant ist sie nicht, da die Breite an zwei verschiedenen Stellen angegeben werden muss. Ist es möglich, \setlength nicht ausführen zu müssen und die Breite, die als Parameter von \TextField übergeben wird zu nutzen? Diese Frage hat weniger Priorität als die 2. Frage. Hier würde ich durchaus auch die aktuelle Variante verwenden, wenn es nichts anderes gibt.

Zu 2.: Im dritten Beispiel sieht man, dass beide Textfelder die Breite von 0 haben. Wie kann ich es anstellen, dass sie beide die Zeile füllen. Warum ist also \fill vermeintlich 0?

gefragt 02 Aug '14, 13:57

ErnstZ's gravatar image

ErnstZ
60112133
Akzeptiert-Rate: 62%

1

fill ist 0pt plus unendlicher Stretchanteil. Das kannst du nicht als Länge benutzen. Du wirst die richtige Länge berechnen müssen. Was die Linie angeht: gibt deinem Knoten einen Namen und zeichne sie dann entlang der diversen Ankerpunkte. Z.B. \node[anchor=west] (A) at (0cm,2ex) {#2}; und \draw[very thick] ([xshift=-1ex]A.north west) -- ([xshift=-1ex]A.south west) -- (A.south east);.

(02 Aug '14, 14:37) Ulrike Fischer

Würde Dir, für das erste Problem, eine Handkorrektur reichen?

\begin{tikzpicture} \draw[very thick] (0,4ex) -- (0,0) -- (\textfield+1ex,0);

Hab es gerade mit verschiedenen Längen getestet, für mich sieht das gut aus.

(02 Aug '14, 18:37) cis

Dank Ulrike Fischer (wie kann ich eigentlich Mitglieder in einem Beitrag verlinken?) hier nochmal die vollständige Lösung für den ersten Teil meiner Frage.

Open in writeLaTeX
\documentclass[parskip=half, a5paper, landscape]{scrartcl}

\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[margin=0.5cm, left=1cm]{geometry}
\usepackage{xcolor}
\usepackage{tikz}
\usepackage{hyperref}

\pagestyle{empty}

\addtokomafont{subsection}{\rule{\textwidth}{1pt}\newline}

\begin{document}
\begin{Form}

\renewcommand*{\DefaultOptionsofText}{print,bordercolor={red}, backgroundcolor=white, borderwidth=1pt}

\renewcommand{\LayoutTextField}[2]{% label, field
\begin{tikzpicture}
    \node[anchor=west] (TextFieldNode) at (0cm,2ex) {#2};
    \draw[very thick] ([yshift=-0.6ex]TextFieldNode.north west) -- (TextFieldNode.south west) -- ([xshift=-0.6ex]TextFieldNode.south east);
    \node[anchor=west,font=\footnotesize\sffamily] at (0cm,-1.75ex) {#1};
\end{tikzpicture}
}

\subsection*{Angaben zur Person}
\TextField[name=NAME,width=\linewidth]{Name, Vorname}

\TextField[name=TEST2,width=0.2\linewidth]{Name, Vorname}

\end{Form}
\end{document}
Permanenter link

beantwortet 03 Aug '14, 15:10

ErnstZ's gravatar image

ErnstZ
60112133
Akzeptiert-Rate: 62%

Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×668
×53
×16

gestellte Frage: 02 Aug '14, 13:57

Frage wurde gesehen: 5,541 Mal

zuletzt geändert: 03 Aug '14, 15:10