Aufbauend auf meine letzten beiden Fragen bzgl. Formulare bin ich nun auf ein Problem gestoßen, was wahrscheinlich der Verwendung von TiKz zuzuschreiben ist. Ich kann Textfelder und Auswahlfelder nun sehr schön anordnen. Jedoch wird normaler Text, der nicht zu einem Eingabefeld gehört, zu tief angezeigt. Ich würde ihn gern auf Höhe des Eingabefeldes ausgeben. Folgender Code zeigt mein Problem:

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}

\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}
}

\newcommand{\Text}[2][]{%
\begin{tikzpicture}
    \node[#1] at (0cm,2.25ex) {#2};
\end{tikzpicture}
}

\renewcommand*{\familydefault}{\sfdefault}

\begin{document}
\begin{Form}

\subsection*{Formular}
\TextField[name=ID, width=0.15\linewidth]{Nummer}
\Text{Mit Command}
\TextField[name=FOO, width=0.15\linewidth]{Foo}
Ohne Command
\TextField[name=BAR, width=0.15\linewidth]{Bar}

\end{Form}
\end{document}

Wie ihr seht, habe ich schon versucht mit einem neuen Befehl \Text zu platzieren, doch Änderungen bei den Koordinaten dort ergeben leider keinen Effekt. Brauche ich ein extra Command, und wenn ja, wie kann ich das realisieren, oder geht es auch komplett ohne Command?

gefragt 03 Aug '14, 11:17

ErnstZ's gravatar image

ErnstZ
541425
Akzeptiert: 83%


Theoretisch irgendwie so (praktisch vll. noch etwas einfacher):

alt text

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}
     \usetikzlibrary{positioning}
\usepackage{hyperref}

\pagestyle{empty}

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

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

\def\Titel{foo}
 \def\empty{}
\newlength{\TitelBreite}
%\settowidth{\TitelBreite}{\Titel}
\renewcommand{\LayoutTextField}[2]{% label, field
\ifx\Title\empty
% --------------------------------------
\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}
% --------------------------------------
\else
% --------------------------------------
\settowidth{\TitelBreite}{\Titel}
\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};
\node[left = \TitelBreite+2ex of TextFieldNode, anchor=west,font=\sffamily]  {\Titel};
\end{tikzpicture}
% --------------------------------------
\fi
}

\renewcommand*{\familydefault}{\sfdefault}

\begin{document}
\begin{Form}

\subsection*{Formular}
\edef\Titel{Titel:}
\TextField[name=ID, width=0.15\linewidth]{Nummer}
\edef\Titel{Anderer Titel:}
\TextField[name=FOO, width=0.15\linewidth]{Foo}
\edef\Titel{} % hier kein Titel
\TextField[name=BAR, width=0.15\linewidth]{Bar}

\end{Form}
\end{document}






Permanenter link

beantwortet 03 Aug '14, 11:54

cis's gravatar image

cis
5.4k861169

bearbeitet 03 Aug '14, 15:41

Danke cis. Habe es noch so abgewandelt, dass die neue Node nur eingefügt wird, wenn \Titel nicht leer ist, um unnötigen Leeraum zu vermeiden.

(03 Aug '14, 14:49) ErnstZ

@ErnstZ: Du kannst diesen sinnvollen Zusatz bei mir rein-editieren, das darf man in einem Community-Forum machen.

(03 Aug '14, 14:55) cis

Ich finde keinen Editier-Link. Ich vermute mal, dass ich noch nicht genügend Punkte dafür habe. Vielleicht kannst du das machen? Einfach ins \renewcommand{\LayoutTextField} folgendes ändern:

Open in writeLaTeX
\ifx\Title\empty
% hier den Code aus meinem Beispiel rein
\else
% hier den Code aus deinem Beispiel rein
\fi

Und vorher noch das hier für den Vergleich: \def\empty{}.

(03 Aug '14, 15:04) ErnstZ
Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Aktuelle Buch-Infos

LaTeX Cookbook

LaTeX Beginners Guide

Limitierter Rabatt ebook
50% Coupon code tDRet6Y

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üge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×492
×41
×14

Frage gestellt: 03 Aug '14, 11:17

Frage wurde angeschaut: 2,454 Mal

Zuletzt aktualisiert: 03 Aug '14, 15:41