scrlttr2: Zwischen Empfänger und Datum eine Zeile Abstand

Klassen und Pakete zur einfachen Umsetzung individueller Vorstellungen


godi
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 75
Registriert: Mi 11. Feb 2015, 13:49

scrlttr2: Zwischen Empfänger und Datum eine Zeile Abstand

Beitrag von godi »

Hallo,

ich möchte in scrlttr2 zwischen der Empfängeradresse und dem Datum (Geschäftszeile) einen Abstand von einer Leerzeile.

Ich habe folgendes schon probiert, aber irgendwie bekomme ich den Abstand nicht richtig hin:
\documentclass[]{scrlttr2}
\usepackage[utf8x]{inputenc}

\KOMAoptions{
 	DIV=calc, % this will calculate correct margins
 	,backaddress=off
	,fontsize=11pt
	,paper=a4
}

\newcommand{\EmpfaengerAdresse}{
	Max Musterfrau\par
	Institut für Gender\par
	Männerstraße 11\par
	12345 Frauenstadt
}


% Setze die Höhe für die Rücksendeadresse auf 0 da backaddress=off
\makeatletter
\@setplength{backaddrheight}{0pt}
\makeatother


% Setzt den Abstand zwischen der Empfängeradresse und des Datums
\makeatletter
\newcommand{\SetPlaceBetweenAddressAndDate}[2][1\baselineskip]{	
	\newsavebox{\absAdrBox}   
	\savebox{\absAdrBox}{\parbox{\useplength{toaddrwidth}}{#2}}		
		
	\@setplength{toaddrheight}{\ht\absAdrBox}	
	\@addtoplength{toaddrheight}{\useplength{backaddrheight}}	
			
	\@setplength{refvpos}{\useplength{toaddrvpos}}	
	\@addtoplength{refvpos}{\useplength{backaddrheight}}
	\@addtoplength{refvpos}{\ht\absAdrBox}	
	\@addtoplength{refvpos}{#1}	
}
\makeatother

\SetPlaceBetweenAddressAndDate{\EmpfaengerAdresse}



\begin{document}

\begin{letter}{%
\EmpfaengerAdresse
}%
\setkomavar{subject}[Betreff]{Betreff}%
\opening{Sehr geehrte Damen und Herren,}
dies ist ein Test!
\closing{Max Musterfrau}

\end{letter}
\end{document}
Die Position will ich dynamisch haben, denn wenn sich in die Höhe der Empfängeradresse ändert, soll trotzdem nur eine Zeile Abstand sein.

Wäre super wenn mir da wer weiterhelfen könnte!

godi

Besserwisser

Beitrag von Besserwisser »

Boxen haben eine Höhe und eine Tiefe. Außerdem landet dir dann u. U. die Anrede im Adressfenster. Deshalb halte ich das für eine schlechte Idee. Außerdem hast du Anschrift nicht entsprechend der Anleitung formatiert. Und utf8x sollte man nur verwenden, wenn utf8 wirklich nicht ausreicht.

godi
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 75
Registriert: Mi 11. Feb 2015, 13:49

Beitrag von godi »

Ok,

utf8 bzw utf8x ist ja jetzt egal.

Wie könnte ich dies sonst lösen wenn es mit Boxen nicht geht?
Was habe ich denn bei der Anschrift falsch gemacht?

esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Beitrag von esdd »

In der Empfängeradresse sind keine Absätze und kein vertikaler Leerraum erlaubt. Verwende den doppelten Backslash als Trennzeichen zwischen den einzelnen Adressteilen. Das steht eindeutig in den Erklärungen zu \begin{letter} in der Doku.

Mindestens, wenn Du vor hast, Fensterbriefumschläge zu verwenden, solltest Du darauf verzichten, die Geschäftszeile nach oben zu schieben, da wie Besserwisser schon geschrieben hat, der Betreff und die Anrede sonst eventuell im Fensterbereich landen.

Die Gesamthöhe einer Box \box setzt sich aus deren Höhe über der Grundlinie (\ht\box) und deren Tiefe unter der Grundlinie (\dp\box) zusammen. Bei Deiner \parbox liegt die Grundlinie ungefähr in der Mitte der Gesamthöhe.

Und dann würde ich hinter #2 wenigstens noch ein \strut einfügen.

Die Position der Elemente und die Größe des Adressfeldes kannst Du kontrollieren, wenn Du in der Präambel
\LoadLetterOption{visualize}
\showfields{address,refline}
einfügst.

Gruß
Elke

godi
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 75
Registriert: Mi 11. Feb 2015, 13:49

Beitrag von godi »

Herzlichen Dank für eure Antworten.

Jetzt funktioniert es. :)
\documentclass[]{scrlttr2}
\usepackage[utf8]{inputenc}

\KOMAoptions{
 	DIV=calc, % this will calculate correct margins
 	,backaddress=off
	,fontsize=11pt
	,paper=a4
}

%\LoadLetterOption{visualize}
%\showfields{address,refline}

\newcommand{\EmpfaengerAdresse}{
	Max Musterfrau\\
	Institut für Gender\\
	Männerstraße 11\\
	12345 Frauenstadt
}


% Setze die Höhe für die Rücksendeadresse auf 0 da backaddress=off
\makeatletter
\@setplength{backaddrheight}{0pt}
\makeatother


% Setzt den Abstand zwischen der Empfängeradresse und des Datums
\makeatletter
\newcommand{\SetPlaceBetweenAddressAndDate}[2][1\baselineskip]{	
	\newsavebox{\absAdrBox}   
	\savebox{\absAdrBox}{\parbox{\useplength{toaddrwidth}}{#2\strut}}		
	
	\@setplength{toaddrheight}{\ht\absAdrBox}
	\@addtoplength{toaddrheight}{\dp\absAdrBox}	
	\@addtoplength{toaddrheight}{\useplength{backaddrheight}}	
			
	\@setplength{refvpos}{\useplength{toaddrvpos}}	
	\@addtoplength{refvpos}{\useplength{backaddrheight}}
	\@addtoplength{refvpos}{\ht\absAdrBox}	
	\@addtoplength{refvpos}{\dp\absAdrBox}	
	\@addtoplength{refvpos}{#1}	
}
\makeatother

\SetPlaceBetweenAddressAndDate{\EmpfaengerAdresse}


\begin{document}
\begin{letter}{%
\EmpfaengerAdresse
}%
\setkomavar{subject}[Betreff]{Betreff}%
\opening{Sehr geehrte Damen und Herren,}
dies ist ein Test!
\closing{Max Musterfrau}

\end{letter}
\end{document}

Antworten