Hallo, ich möchte ein Formular, was bei uns nur analog vorliegt digital mit LaTeX reproduzieren. Folgendes Beispiel waren meine ersten Gehversuche:

Open in writeLaTeX
\documentclass{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[a4paper,pdftex]{hyperref}
\usepackage{xcolor}
\usepackage[pdftex]{graphicx}

\renewcommand{\LayoutChoiceField}[2]{%
    #2\\{\footnotesize#1}%
}
\renewcommand{\LayoutTextField}[2]{% label, field
  #2\\\vspace{-5pt}{\footnotesize#1}%
}
\begin{document}
\section*{Angaben zu einem Neueintritt}
\rule{\textwidth}{2pt}
\begin{Form}
    \subsection*{Angaben zur Person}
    \TextField[name=NAME]{Name, Vorname Titel}
    \ChoiceMenu[radio,name=GENDER]{Geschlecht}{F,M}
\end{Form}
\end{document}

Wie ihr vielleicht sehen könnt, versuche ich das Label eines Felds unter dem Feld selbst darzustellen. Das funktioniert so wie ich es gemacht habe aber nicht, da das Choice-Feld dann nicht auf gleicher Höhe mit dem Textfeld gesetzt wird sondern auf gleicher Höhe mit dem Label des Textfeldes. Außerdem hätte ich gern statt einen durchgezogenen roten Rahmen nur links und unten einen Rahmen um das Textfeld. Außerdem möchte ich das Textfeld gern so breit machen, dass die Zeile damit gefüllt wird. Im Grunde soll es so aussehen, wie im angehangenen Screenshot mal nachgebaut.

alt text

edit: sorry, ich habe es nicht hinbekommen, die bildgröße auf die Breite zu setzen

gefragt 31 Jul '14, 18:37

ErnstZ's gravatar image

ErnstZ
611132833
Akzeptiert-Rate: 62%

bearbeitet 31 Jul '14, 19:22

cis's gravatar image

cis
9.5k93459491

a) Auf den Geschmack gekommen? ^^

b) Bild (ganz einfach in "paint") auf 66% der Originalgröße verkleinert.....

(31 Jul '14, 19:23) cis

a) Auf den Geschmack gekommen? ^^ Was genau meinst du?

b) Bild (ganz einfach in "paint") auf 66% der Originalgröße verkleinert..... Ok, ich bin davon ausgegangen, dass man Bilder hier auch skalieren kann.

(31 Jul '14, 19:32) ErnstZ

zu a. Ich bezog mich nur auf die kürzliche Häufung von "Formularfragen", deren ich nicht ganz mitunschuldig bin.

zu b. Skalierung etwa mit HTML-Befehlen ist m.W. mit Vorsicht zu genießen, da nicht alle Browser sie umsetzen.

(31 Jul '14, 19:38) cis

@cis Dann bist Du ja als Antworter gut geeignet :-) Ich habe auch schon Formulare nachgebaut, aber ohne Eingabefelder, nur den Druck.

(31 Jul '14, 19:49) stefan ♦♦

In der Tat hab ich für das Problem "Unterschiedliche Höhe von Formularfeld und Formularfeldtitel" eine Lösung in einem Skript gefunden - diese ist aber wirklich unschön! (Es müssen zwei Formularfelder verschachtelt werden o.s.ä.). Daher hoffe ich auf eine bessere Lösung durch die Profis. Mich hat dieser Effekt jetzt nicht so sehr gestört, aber wenn man es einfach besser machen kann, mach ich das natürlich auch.

(31 Jul '14, 19:52) cis

@ErnstZ: Falls Du weitere Formular-Ideen hast, gern. Ich habe schon erfolglos gegoogelt nach guten Formularen. Hier gefallen mir die runden Ankreuzfelder - ich denke, so wie ich sie jetzt habe, kann man damit leben.

(01 Aug '14, 01:51) cis
Ergebnis 5 von 6 show 1 more comments

Ok, mit Hilfe von Ulrikes Hinweis habe ich nun eine Lösung meiner beiden Fragen aus dem Titel gefunden:

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={white}, backgroundcolor=white, borderwidth=1pt}

\renewcommand*{\DefaultOptionsofRadio}{print,radio, radiosymbol=6, width=\baselineskip, bordercolor={black}}

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

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

\subsection*{Angaben zur Person}
\TextField[name=NAME]{Name, Vorname Titel}
\ChoiceMenu[radio,name=GENDER]{Geschlecht}{F,M}

\TextField[name=TEST]{Name, Vorname}
\ChoiceMenu[radio,name=BLA]{Foo}{F,B}

\TextField[name=TEST2,width=0.5\linewidth]{Name, Vorname}
\ChoiceMenu[radio,name=BLA2]{Foo}{F,B}

\ChoiceMenu[radio,name=BLA3]{Foo}{F,B}  
\TextField[name=TEST3,width=0.5\linewidth]{Name, Vorname}

\end{Form}
\end{document}

Für die neu aufgekommenen Fragen eröffne ich neue Diskussionen :) Vielen Dank an alle! Obiger Code produziert nun ein Formular was so aussieht: alt text

Permanenter link

beantwortet 02 Aug '14, 13:09

ErnstZ's gravatar image

ErnstZ
611132833
Akzeptiert-Rate: 62%

bearbeitet 02 Aug '14, 13:12

So, dank deiner Vorlage, konnte ich es nun besser auf meine Bedürfnisse anpassen. Und ich nähere mich einer akzeptablen Lösung.

Hier mal mein Code:

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={white},borderstyle=U, backgroundcolor=white, borderwidth=1pt}

\renewcommand*{\DefaultOptionsofRadio}{print,radio, radiosymbol=6, width=\baselineskip, bordercolor=   {black}}

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

\renewcommand{\LayoutChoiceField}[2]{% label, field
    \begin{tikzpicture}
        \node[font=\footnotesize\sffamily] at (0.75\linewidth,3ex) {#2};
        \node[font=\footnotesize\sffamily] at (0.75\linewidth,-1.25ex) {#1};
    \end{tikzpicture}
}
\section*{Angaben zu einem Neueintritt}
\subsection*{Angaben zur Person}
    \TextField[name=NAME]{Name, Vorname Titel}
    \ChoiceMenu[radio,name=GENDER]{Geschlecht}{F,M}

    \TextField[name=TEST]{Name, Vorname}
    \ChoiceMenu[radio,name=BLA]{Foo}{F,B}

    \TextField[name=TEST2,width=0.5\linewidth]{Name, Vorname}
    \ChoiceMenu[radio,name=BLA2]{Foo}{F,B}

\end{Form}
\end{document}

Der Output sieht dann so aus: alt text Bei dieser Variante gibt es aber trotzdem noch ein paar Probleme, die ich gern mit eurer Hilfe lösen möchte.

  1. warum sind die Labels sowohl bei Text als auch bei Choice aber der 2. Zeile nach rechts verschoben und wie kann man das beheben?
  2. wie bekommt man es hin, dass die horizontale Linie bei den Textfeldern so lang wie das Eingabefeld selbst ist?
  3. warum ist der "Rahmen" beim 3. Textfeld nach rechts verschoben? Das Eingabefeld selbst wurde auf eine Breite gesetzt, die nur ein klein wenig schmaler als der Rahmen ist, wie kommt die Verschiebung zustande und wie vermeidet man das?
Permanenter link

beantwortet 01 Aug '14, 11:09

ErnstZ's gravatar image

ErnstZ
611132833
Akzeptiert-Rate: 62%

bearbeitet 01 Aug '14, 11:11

Aber die Ankreuzfelder sind jetzt nicht mehr rund :( Da hab ich doch extra so ein super Trick angewendet, man kann nämlich mehrere Felder mit dem gleichen Namen benennen.

(01 Aug '14, 16:12) cis
1

Das letzte Feld ist verschoben, weil die node standardmäßig ihren Anker in der Mitte haben. Benütze z.B. \node[anchor=south west].

(01 Aug '14, 19:41) Ulrike Fischer

@ErnstZ: Bitte keine Fragen als Antworten tarnen. Das ist hier kein Diskussionsforum. Neue Fragen solltest Du als neue Fragen, nicht als Antworten stellen. Natürlich darfst Du auch Eigenantworten geben. Das ist sogar gern gesehen, Aber bitte darin dann keine neuen Fragen stellen, da man zu einer Antwort allenfalls einen Kommentar aber keine neue Antwort verfassen kann.

(01 Aug '14, 20:16) gast3

@ErnstZ Vllt. kennst Du den Mechanismus der TeXwelt-Seite noch nicht - nicht schlimm, daher Infos: Neue Fragen und Folgefragen bitte als neue Frage posten, nicht in Antworten. Hier sind Antworten stets Lösungen. Lieber mehrere spezifische Fragen (hier ist Platz für Millionen :-) Alles zusammen ergibt das besseres, sortiertes Archiv, sortiert nach Themen und Qualität. Nicht nach Fragesteller-Problemsammlungsthreads. ;-) So findet man später konkrete Lösungen wieder. Klick rechts oben mal auf "FAQ" und "über". Die Antwort kannst Du gern als Lösung verbessern - wie sehen uns bei nächster Frage.

(01 Aug '14, 20:45) stefan ♦♦

Aber es gibt doch noch keine zufriedenstellende Antwort auf meine Frage. Wie soll ich nun weitermachen? Eigentlich würde ich jetzt hier weiter Code posten. Ist es denn so gedacht, dass ich meine "Antwort" oben editiere? Ich habe es so verstanden, dass eine korrekte Antwort dann als solche markiert wird (durch Aktivieren des Häkchens links daneben). Bisher hat mich aber noch keine Antwort überzeugt.

(02 Aug '14, 12:51) ErnstZ

Da Du ja nach dem Bild egtl. kein besonderes Zusammenspiel von "Formularfeldinhalt" und "Formularfeldtitel" brauchst und sich das Problem der verschiedenen Höhen beider nicht auftut (dessen Lösung trotzdem interessant wäre), bin ich tatsächlich als Antworter geeignet.

Es ist aber ein wenig ein Gefrimel, deshalb überlasse ich weitere Feinschliffe auch ganz Dir ;)

alt text

€: Ein paar Verbesserungen / Vereinfachungen vorgenommen. Da es für diesen Formularkram kaum Einstellmöglichkeiten gibt bzw. diese gut versteckt sind, wird man hier wahrscheinlich rigoros mit TikZ arebeiten müssen.

PS: Ich habe hier bereits Probleme, da ein gescheites Kreuzsymbol einzustellen. Im TeXWorkseditor ist es ein dickes Kreuz, im AdobeReader ist es so ein geschwungenes Kreuz, naja.... Ich weiß nicht wie das mit diesem Dingbatz-Zeug da funktioniert, ich wähle z.B. ding{44}, es zeigt aber irgendwas anderes an :( Wer es weiß, kann es mir sagen.

Open in writeLaTeX
\documentclass[parskip=half, a5paper, landscape]{scrartcl}
\pagestyle{empty}
\usepackage{selinput}
\SelectInputMappings{adieresis={ä},  germandbls={ß}}
\usepackage[ngerman]{babel}
\usepackage[margin=0.5cm, left=1cm]{geometry}
\usepackage{xcolor}
%    \pagecolor{yellow!40}

\usepackage{tikz}

\usepackage{hyperref}
\begin{document}
\begin{Form}[action=mailto:forms@stackexchange.invalid?subject={The submitted form},method=post]

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

\textsf{\textbf{Angaben zur Person:}} \\[2ex]
\begin{tikzpicture}[overlay]
\draw[very thick] (0,4ex)  -- (0,0) -- (0.6\linewidth,0);
\node[] at (1.5cm,2ex) {\TextField[name=NAME, value={Muster, Martina}]{}};
\node[font=\footnotesize\sffamily] at (1.15cm,-1.25ex) {Name, Vorname};

\node[label={below:m}, draw, thick, circle, inner sep=1.5pt] at (0.75\linewidth,4ex) {$\!\!\!\!$\ChoiceMenu[radio, radiosymbol=6, width=2.5mm, bordercolor={white},  default=m, name=Geschlecht]{}{=maenl}};

\node[label={below:w}, draw, thick, circle, inner sep=1.5pt] at (0.85\linewidth,4ex) {$\!\!\!\!$\ChoiceMenu[radio, radiosymbol=6, width=2.25mm, bordercolor={white},  name=Geschlecht]{}{=weibl}};

\node[font=\footnotesize\sffamily] at (0.805\linewidth,-1.25ex) {Geschlecht};
\end{tikzpicture} \\ \\ \\ \\

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

beantwortet 31 Jul '14, 21:13

cis's gravatar image

cis
9.5k93459491
Akzeptiert-Rate: 29%

bearbeitet 01 Aug '14, 00:49

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:

×62
×17

gestellte Frage: 31 Jul '14, 18:37

Frage wurde gesehen: 21,057 Mal

zuletzt geändert: 02 Aug '14, 13:12