Ausrichtung/Verschiebung des Textes im Textfield auf Basislinie des Labels

Redefinition von Makros, Definition eigener Befehle sowie neuer Umgebungen


Investment
Forum-Newbie
Forum-Newbie
Beiträge: 9
Registriert: Mo 20. Jun 2016, 16:10

Ausrichtung/Verschiebung des Textes im Textfield auf Basislinie des Labels

Beitrag von Investment »

Guten Morgen,

wie muss ein \LayoutTextField angepasst werden, damit aus

\def\LayoutTextField#1#2{% label, field
	#1 \tikz[baseline = {([yshift = 2.25pt]baseline.base)}]{\node[] (baseline) {#2};}%
}

der Text im Textfield auf das exakt gleiche Niveau des Labeltextes gebracht werden kann. Obige Variante stellt schon einmal eine ungefähre Näherung dar.
Frage 2 in dieser Konstellation - um welchen Betrag muss ein Textfield (Labeltext von C auf exakte Labeltexthöhe von B, sofern sie sich nebeneinander befänden) nach oben verschoben werden, damit die Höhe der Basislinie des Labels (hier Unterschrift in B) deckungsgleich mit des angepassten Unterschriftenfeldes (hier C) ist, wobei der Labeltext durch ein Textfield ersetzt wird (und durch dieses Textfeld die Verschiebung des "Labels" nach unten zustande kommt).

		händisches Unterschriftenfeld\\
		\begin{tikzpicture}
			\node(anchor=north west) (rev1) at (0cm, 2ex) {};
			\node(rev1){\sigField{Unterschrift}{7cm}{0.5cm}};\\
			\draw([yshift=-0.6ex]rev1.north west) -- (rev1.south west) -- (rev1.south east);
			\node[anchor=north west] at (rev1.south west) {Unterschrift};
		\end{tikzpicture}\\

Zur allgemeinen Übersicht hier nun das Minimalbeispiel ...

\documentclass[11pt]{scrartcl}

\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{libertine}
\usepackage[T1]{fontenc}
\usepackage{tikz}
\usepackage{eforms}
\usepackage{hyperref}

% Ausrichtung des Textes im Textfield an die Basisline des außerhalb des Objektes befindlichen Textes
\def\LayoutTextField#1#2{% label, field
	#1 \tikz[baseline={([yshift=2.25pt]baseline.base)}]{\node[] (baseline)       {#2};}%
}

\begin{document}
	\begin{Form}
		Gesucht: exakte Ausrichtung des Textes im Textfield auf die Basislinie des Labels des Textfields (gleiches Höhenniveau)\\
		
	A) \TextField
	[
		name = Labeltext,
		charsize = 11pt,
		value = bitte ändere mich gleich,
		format =
		{
			var f = this.getField('Labeltext');
			f.textFont = 'LinuxLibertineG';
		}
	]{unwichtiges Label}
	\par\noindent\rule{\textwidth}{0.4pt}
	B) händisches Unterschriftenfeld\\
	\begin{tikzpicture}
		\node(anchor = north west) (rev1) at (0cm, 2ex) {};
		\node(rev1){\sigField{UnterschriftEmpfaenger}{7cm}{0.5cm}};\\
		\draw([yshift = -0.6ex]rev1.north west) -- (rev1.south west) -- (rev1.south east);
		\node[anchor = north west] at (rev1.south west) {Unterschrift Empfänger};
	\end{tikzpicture}\\
	\par\noindent\rule{\textwidth}{0.4pt}
	C) sigfield mit Textfield als Label und noch nach unten verschobenen Label\\
	\begin{tikzpicture}
		\node(anchor = north west) (rev2) at (0cm, 2ex) {};
		\node(rev2)
		{
			\sigField{Unterschriftenfeld}{5cm}{0.4cm}
		};\\
		\draw([yshift = -0.6ex]rev2.north west) -- (rev2.south west) -- (rev2.south east);
		\node[anchor = north west] at (rev2.south west)
		{
			\TextField
			[
				name = Labeltext,
				bordercolor = {},
				charsize = 11pt,
				readonly = true,
				format =
				{
					var f = this.getField('Labeltext');
					f.textFont = 'LinuxLibertineG';
				}					
			]{Unterschrift}
		};\\\\
	\end{tikzpicture}\\
\end{Form}
\end{document}

PS: Die Idee, den Betrag für die Verschiebung im \LayoutTextField durch \fboxsep, gemindert um die Schrifttiefe des verwendeten Fonts, exakt zu generieren, sucht noch Erfolg (denn die Differenz aus \fboxsep und \settodepth{Variable}{bitte ändere mich gleich} weicht bereits deutlich von den 2,25pt ab).

Beste Grüße im Voraus, Investment