PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Papierformular



gurkenhals
10-11-2013, 19:39
Hallo Leute!

Ich möchte ein Papierformular erstellen in dem u.a. Laborwerte und Daten eingetragen werden sollen. Dafür benötige ich Textfelder mit einer definierten Anzahl von Zeichen und ggf. ein Komma.

Und zwar würde ich gerne nach oben offene oder komplett geschlossene Boxen verwenden. Ein Textfeld besteht dann z.B. aus drei Boxen vor und zwei Boxen nach dem Komma: "_ _ _ , _ _". Damit ist dem "Ausfüller" nachher eindeutig in welchem Format er das Feld auszufüllen hat. Ein solches Vorgehen ist mir wichtig, da die Werte später in eine Datenbank eingetragen werden sollen.

Des Weiteren benötige ich noch einfache "Checkboxen" (also ohne das Kreuz).

Alles in allem soll das Formular auf eine A4-Seite gedruckt und mit einem ordinären Stift ausgefüllt werden. Eine PDF-Formularfunktion benötige ich nicht. Lieber wäre mir eine möglichst einfache Lösung mit gerne fielen Designvarianten.

Über Hilfe und Tipps würde ich micht sehr freuen!

hakaze
10-11-2013, 21:30
Unterstriche variabler Größe lassen sich recht einfach über \rule{Breite}{Höhe} erzeugen. Der Einfachheit halber (und für spätere Anpassungen, z.B. der Breite) würde ich dafür ein eigenes Makro definieren. Anbei auch ein Vorschlag für die Box… weitere Boxen gibt es auch schon in diversen (Mathe-)Pakete vordefiniert (siehe symbols-a4.pdf (http://texdoc.net/texmf-dist/doc/latex/comprehensive/symbols-a4.pdf)).


\documentclass{scrartcl}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}

\usepackage{booktabs} % rules in Tabellen
\usepackage{xcolor} % color

\newcommand{\meinezahl}{\rule{1em}{1pt}\,\rule{1em }{1pt}\,\rule{1em}{1pt}\,{},\,\rule{1em}{1pt}\,\ru le{1em}{1pt}}
\newcommand{\meinebox}{\fbox{\color{white}X}}

\begin{document}
\begin{tabular}{lcr}
\toprule
Bezeichnung & Wert & Richtig? \\
\midrule
Ein Wert & \rule{1em}{1pt}\,\rule{1em}{1pt}\,\rule{1em}{1pt}\ ,{},\,\rule{1em}{1pt}\,\rule{1em}{1pt} & \fbox{\color{white}X} \\
Zweiter Wert & \meinezahl & \meinebox \\
Dritter Wert & \meinezahl & \meinebox \\
\bottomrule
\end{tabular}
\end{document}

klops
11-11-2013, 14:35
Für einzelne Buchstaben oder Ziffern zum Ausfüllen kann man auch mit \textvisiblespace nehmen. In der Voreinstellung sind die meist zu klein, aber zusammen mit \huge oder \Huge dürfte es passen:
\documentclass{article}
\usepackage{etoolbox}
\newcounter{Stelle}
\newcommand*{\Stelle}[1][1]{%
\setcounter{Stelle}{0}%
\whileboolexpr{test {\ifnumcomp{\value{Stelle}}{<}{#1}}}{%
\stepcounter{Stelle}%
{\Huge\textvisiblespace}%
}%
}
\usepackage[ngerman]{babel}
\makeatother

\begin{document}

Geben Sie das Wort "`Wort"' ein: \Stelle[4]

\end{document}
Zu \whileboolexpr und \ifnumcomp siehe die Anleitung zu etoolbox (http://www.ctan.org/pkg/etoolbox). Natürlich kann man \Huge\textvisiblespace in obigem Beispiel auch durch etwas wie:
\fbox{\raisebox{\dp\strutbox}{\phantom{\strut M}}}% oder was auch immer sonst ersetzen.

cgnieder
11-11-2013, 17:41
\documentclass{article}
\usepackage{etoolbox}
\newcounter{Stelle}
\newcommand*{\Stelle}[1][1]{%
\setcounter{Stelle}{0}%
\whileboolexpr{test {\ifnumcomp{\value{Stelle}}{<}{#1}}}{%
\stepcounter{Stelle}%
\Huge\textvisiblespace
}%
}
\usepackage[ngerman]{babel}
\makeatother

\begin{document}

Geben Sie das Wort "`Wort"' ein: \Stelle[4]

\end{document}
Sicher keine Absicht, aber so ist natürlich der Text nach \Stelle auch \Huge. Da hast Du wohl eine Gruppe vergessen :)

Grüße

klops
12-11-2013, 08:02
Ja, danke, ich habe es korrigiert.

gurkenhals
12-11-2013, 12:24
Vielen Dank für eure Antworten.

Mit "\textvisiblespace" komme ich meiner Vorstellung schon sehr nahe. Ich würde jetzt noch gerne die Breite und die Höhe genau definieren. Auch der Abstand zwischen den Boxen sollte definierbar sein. Wäre sowas möglich? Und wenn ja, wie?

Etwas verdutzt bin ich jedoch, dass ich zu diesem Thema (vor meinem Posting in diesem Forum) recht wenig (eigentlich gar nichts) im Internet gefunden habe. Das Erstellen von Papierformularen sollte doch gar nicht eine so seltene Sache sein.

Auf Formularen von Behörden oder Banken finden sich häufig auch weiße Boxen auf einfarbigen Hintergrund. Für jede Ziffer gibt es eine Box. Die Boxen sind dann durch den Hintergrund ein paar Pixel/Millimeter voneinander getrennt. Wie macht man denn sowas?

gurkenhals
12-11-2013, 12:43
Was ich eigentlich suche ist sowas wie in diesem Formular "http://www.elterngeld.net/schleswig-holstein/Elterngeldantrag.pdf" unter "Steuer-Identifikationsnummer" auf Seite 1 oder "IBAN/BIC" auf Seite 2.

Man sollte die Anzahl der Boxen, sowie deren Breite und Höhe definieren können. Für Dezimalwerte würde ich dann sowas machen wie /boxen[3] , /boxen[2] oder vielleicht auch in die vierte von sechs Boxen direkt ein Komma reinsetzen. Das müsste man sich dann nochmal genau anschauen.

klops
12-11-2013, 13:42
Es gibt auch noch immer die picture-Umgebung, mit der man so etwas so genau definieren kann, wie man nur wollen kann.

esdd
12-11-2013, 14:42
Man kann auch tikz dafür nutzen:

\documentclass{scrartcl}

\usepackage{tikz}
\newcommand\Boxenbreite{1em}
\newcommand\Boxenabstand{0.5mm}
\newcommand\Boxenhoehe{1em}

\newcommand{\Stellen}[1]{%
\tikz{
\foreach \x in {0,...,#1}{%
\draw(\Boxenbreite*\x,0)--+(0,\Boxenhoehe);}
\draw(0,0)--(\Boxenbreite*#1,0);}}
\newcommand{\KStellen}[2]{\Stellen{#1}\,,\,\Stellen{#2}}

\begin{document}
\Stellen{10} und \KStellen{3}{2}
\end{document}

Oder als weiße Boxen auf farbigem Hintergrund:

\documentclass{scrartcl}
\usepackage{tikz}
\usetikzlibrary{fit,backgrounds}

\newcommand\Stellenbreite{1em}
\newcommand\Stellenabstand{0.5mm}
\newcommand\Stellenhoehe{1.5em}

\newcommand{\Stellen}[1]{%
\begin{tikzpicture}[baseline=(#1.south)]%
\foreach\i in {1,...,#1}{%
\pgfmathsetlengthmacro\x{(\i-1)*(\Stellenbreite+\Stellenabstand)}
\node[fill=white,
minimum width=\Stellenbreite,minimum height=\Stellenhoehe]
(\i)at(\x,0){};}
\begin{scope}[on background layer]%
\node[fill=green!50!black!10,fit=(1)(#1),align=none]{};
\end{scope}%
\end{tikzpicture}%
}

\newcommand{\KStellen}[3][\Stellenhoehe]{\Stellen{#2}\,,\,\Stellen{#3}}

\begin{document}
\Stellen{10} und \KStellen{3}{2}
\end{document}

Gruß
Elke

gurkenhals
13-11-2013, 11:55
@esdd: vielen lieben Dank! Das wird für meine Zwecke reichen. Muss mir den Code mal in Ruhe zu Gemüte führen ... schaut wild aus ;-)

@klops: die picture-Umgebung werdeich mir auch mal anschauen, vielleicht lässt sich damit mein nächstes Problem lösen ... wer weiß ;-)