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, 17:17

ErnstZ's gravatar image

ErnstZ
611122833
Akzeptiert-Rate: 62%


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, 17:54

cis's gravatar image

cis
9.5k92459491
Akzeptiert-Rate: 29%

bearbeitet 03 Aug '14, 21: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, 20:49) ErnstZ

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

(03 Aug '14, 20: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, 21:04) ErnstZ
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:

×730
×62
×17

gestellte Frage: 03 Aug '14, 17:17

Frage wurde gesehen: 10,417 Mal

zuletzt geändert: 03 Aug '14, 21:41