PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : erster Versuch: scrletttr2



jonathan
27-10-2010, 23:57
Hey,

ich versuche mich gerade an meinem ersten Musterbrief. Vorab eine ganz einfache Frage:

\documentclass[
fontsize=12ptDIN,
pagenumber=false,
parskip=half,
fromalign=left,
fromphone=true,
fromemail=true]
{scrlttr2}

Gebe ich die Optionen nicht an, werden die Variablen auch nicht ausgegeben. Was aber mit selbst gesetzten , wie z.B.:

\newkomavar{frommobile}
\setkomavar{frommobile}[Mobil:]{234523452345}

Gebe ich dies in den optionen mit an, gibt mir mein Programm zu Recht ein Fehler aus: Variable existiert noch nicht.

Danke für Eure Hilfe!

VG

Schweinebacke
28-10-2010, 08:46
Woher soll scrlttr2 wissen, wo die Variablen ausgegeben werden sollen? Wenn die in den Kopf sollen, musst Du Dir mir \firsthead einen eigenen Briefkopf definieren, in dem sie einen Platz haben (in den vordefinieren Köpfen ist IMHO kein Platz mehr für zusätzliche Angaben). Wenn die in der Absenderergänzung ausgegeben werden sollen, musst Du die Variable locfield entsprechend definieren. Wenn die in den Fuß sollen, musst Du mit \firstfoot einen entsprechenden Brieffuß definieren. Wenn die in die Geschäftszeile sollen, kannst Du einfach \newkomavar* statt \newkomavar verwenden.

Wenn man alle möglichen Informationen auf dem Briefbogen unterbringen will, empfehle ich einen Infoblock statt einer Geschäftszeile oder besser gleich etwas wie asymTypB.lco (siehe Anhang des KOMA-Script-Buches, bzw. Beispiele aus dem KOMA-Script-Buch auf der KOMA-Script-Homepage).

jonathan
28-10-2010, 23:49
Oh man, das ist gar nicht so einfach! Mein erster Test (Vorlage war geklaut):


\documentclass%%
%---------------------------------------------------------------------------
[fontsize=12pt,%% Schriftgroesse
%---------------------------------------------------------------------------
% Satzspiegel
paper=a4,%% Papierformat
enlargefirstpage=on,%% Erste Seite anders
pagenumber=headright,%% Seitenzahl oben mittig
%---------------------------------------------------------------------------
% Layout
headsepline=on,%% Linie unter der Seitenzahl
parskip=half,%% Abstand zwischen Absaetzen
locfield=wide,%% zusaetzliches Feld fuer Absender
]{scrlttr2}
%---------------------------------------------------------------------------
\usepackage{german}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage{url}

\usepackage{lipsum}
%---------------------------------------------------------------------------
% Fonts
\setkomafont{location}{\LARGE}%

%---------------------------------------------------------------------------
\begin{document}
%---------------------------------------------------------------------------
% Briefstil und Position des Briefkopfs
\LoadLetterOption{DIN} %% oder: DINmtext, SN, SNleft, KOMAold.
\makeatletter
\@setplength{firstheadvpos}{20mm}
\@setplength{firstheadwidth}{\paperwidth}
\ifdim \useplength{toaddrhpos}>\z@
\@addtoplength[-2]{firstheadwidth}{\useplength{toaddrhpos}}
\else
\@addtoplength[2]{firstheadwidth}{\useplength{toaddrhpos}}
\fi
\@setplength{foldmarkhpos}{6.5mm}
\makeatother%---------------------------------------------------------------------------
% Absender
\setkomavar{fromname}{Max Mustermann}
\setkomavar{fromaddress}{Str \\ 00000 Ort}
\setkomavar{fromphone}{0111 111\,22\,33}
\newkomavar{fromhandy}
\setkomavar{fromhandy}{1011 12\,12\,12\,12}
\setkomavar{fromfax}{}
\setkomavar{fromemail}{mail@test.de}
\setkomavar{backaddressseparator}{ - }
\setkomavar{signature}{Max}
%\setkomavar{frombank}{}
\setkomavar{location}
{\raggedleft{
Telefon: \usekomavar{fromphone}\\
Mobil: \usekomavar{fromhandy}\\
Fax: \usekomavar{fromphone}\\
\mbox{E-Mail: \usekomavar{fromemail}}}}
%---------------------------------------------------------------------------
\firsthead{\raggedleft{\usekomavar{fromname}\\
\usekomavar{fromaddress}}
}
%---------------------------------------------------------------------------
%\firstfoot{Fu?zeile}
%---------------------------------------------------------------------------
% Geschaeftszeilenfelder
\setkomavar{place}{Ort}
\setkomavar{placeseparator}{, }
\setkomavar{date}{\today}
\setkomavar{yourmail}{1. 1. 2003}%% 'Ihr Schreiben...'
%\setkomavar{yourref} {abcdefg}%% 'Ihr Zeichen...'
%\setkomavar{phoneseparator}{phones}
%---------------------------------------------------------------------------
% Versendungsart
%\setkomavar{specialmail}{Einschreiben mit Rückschein}
%---------------------------------------------------------------------------
% Anlage neu definieren
\renewcommand{\enclname}{Anlage}
\setkomavar{enclseparator}{: }
%---------------------------------------------------------------------------
% Seitenstil
\pagestyle{plain}%% keine Header in der Kopfzeile
%---------------------------------------------------------------------------

\begin{letter}{
Name\\
Strasse\\
PLZ Ort
}

\setkomavar{title}{
Testtitel
}

\setkomavar{subject}{
Betreff
}

\opening{
Sehr geehrte Damen und Herren,
}

\lipsum[1]
\lipsum[1]
\lipsum[1]
\lipsum[1]
\lipsum[1]

\closing{
Mit freundlichen Grüßen
}

%---------------------------------------------------------------------------
%\ps{PS:}
%\encl{}
%\cc{}
%---------------------------------------------------------------------------

\end{letter}
\end{document}
%---------------------------------------------------------------------------

Dazu habe ich jetzt insbesondere zwei Frage:

Ich hätte unter firsthead eine Linie.

Warum wirkt sich \setkomafont{location}{\LARGE} nicht aus?

Ich habe lange und immer wieder in der KOMA Anleitung geblättert - aber bin nicht wirklich fündig geworden.

Danke für Eure Hilfe!

Schweinebacke
29-10-2010, 10:02
Ich hätte unter firsthead eine Linie.
Dann baue doch eine ein. Die Anweisung für Linien heißt \rule. Alternativ kannst Du auch beispielsweise den ganzen Kopf als Tabelle definieren und dann eine Tabellenlinie verwenden.


Warum wirkt sich \setkomafont{location}{\LARGE} nicht aus?
Das wirkt sich durchaus aus:
! Package scrkbase Error: font of element `location' can't be set.

See the scrkbase package documentation for explanation.
Type H <return> for immediate help.
...

l.24 \setkomafont{location}{\LARGE}
%
You've told me to redefine the font selection of the element,
but either no such element is known by KOMA-Script
or the element does not use a special font selection</return></pre>
Das wundert mich auch wenig, da in Tabelle 4.2 in scrguide.pdf kein solches Element erwähnt wird. Du musst das \LARGE also beim Setzen der Variablen location einfügen, falls das dort angewendet werden soll. Ich sehe darin auch kein Problem, da dies keine allgemeine Variable ist, sondern eine Variable, die nur an einem ganz bestimmten Ort zur Verwendung kommt. Aber Du kannst den KOMA-Script-Autor ja mal fragen, ob er Dir ein solches Element einbaut, falls Du eine gute Begründung dafür hast. Oder wird dieses Font-Element an einer anderen Stelle erwähnt? Falls dem so ist, wäre ein Bug-Report angebracht.

jonathan
29-10-2010, 21:09
Danke für deine Hilfe! Habs jetzt anders gemacht und es funktioniert dank deiner Tipps! Juhu! ;-)

Noch eine frage zu \nexthead: Ich möchte auf den Folgeseiten den Betreff und die Seitenzahl ausgegeben haben, zudem die Linienstärke ändern (in den Optionen ist headsepline=on). Ich habe es mit headsepline=off und einer Linie in \nexthead versucht (\nexthead{\usekomavar{subject}\\\rule[1ex]{\textwidth}{1.5pt}}) - dann wird gar keine ausgegeben.

Mit dem o.g. Code wird zwar der Betreff angezeigt, jedoch ohne die eingestellten Zeilenumbrüche. Auch weiß ich nicht, wie ich jetzt die Seitenzahl (würde dafür ne Tabelle basteln, damit die Werte nebeneinander stehen) ausgegeben bekomme.

Hoffe, Ihr könnt mir noch mal weiter helfen?!

VG

jonathan
29-10-2010, 21:28
Ergänzung:

Der Head der ersten Seite ist ja deutlich breiter als der der zweiten Seite. Wie bekomme ich auch die Breite auf der zweiten Seite gleich der ersten? Ist dies bekannt, oder soll ich mein MB posten?

jonathan
29-10-2010, 22:52
Mhhh...

ich habe viel ausprobiert - aber nichts passendes geschafft! ;-(

Ich nutze \pagestyle{headings} und möchte einfach nur mein nexthead gleich dem firsthead haben.

Kann das so schwer sein?! Ich verstehs jedenfalls gar nicht.

Schweinebacke
30-10-2010, 12:06
Du kannst Satzspiegel und Ränder auf der zweiten Seite mit Hilfe von geometry frei gestalten. Der linke und rechte Rand wird dabei dann auch auf den Text der ersten Seite angewendet.

Da man bei scrlttr2 AFAIK de Breite des mit \nexthead gesetzten Kopfes nicht abweichend von der Satzspiegelbreite einstellen kann, würde ich dafür schlicht scrpage2 verwenden. In der Anleitung steht ja extra, dass scrpage2 und scrlttr2 miteinander verwendet werden können.

Die Änderungen markiere ich mal fett, damit Du sie besser findest. Dazu gehört auch die Verschiebung von \begin{document}. Linie in den Kopf des Briefbogens habe ich noch nicht eingebaut. Das musst Du noch selbst machen.

\documentclass%%
%---------------------------------------------------------------------------
[fontsize=12pt,%% Schriftgroesse
%---------------------------------------------------------------------------
% Satzspiegel
paper=a4,%% Papierformat
enlargefirstpage=on,%% Erste Seite anders
pagenumber=headright,%% Seitenzahl oben mittig
%---------------------------------------------------------------------------
% Layout
headsepline=on,%% Linie unter der Seitenzahl
parskip=half,%% Abstand zwischen Absaetzen
locfield=wide,%% zusaetzliches Feld fuer Absender
]{scrlttr2}
%---------------------------------------------------------------------------
\usepackage{german}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage{url}

\usepackage{lipsum}
%---------------------------------------------------------------------------
% Fonts
%\setkomafont{location}{\LARGE}%

%---------------------------------------------------------------------------
% Briefstil und Position des Briefkopfs
% Falls Du nicht weißt, was Du hier tust, solltest Du diesen Teil komplett
% weglassen. Falls Du weißt, was Du hier tust, solltest Du das in eine
% lco-Datei verlagern, wie das in der KOMA-Script-Anleitung empfohlen wird.
\makeatletter
\@setplength{firstheadvpos}{20mm}
\@setplength{firstheadwidth}{\paperwidth}
\ifdim \useplength{toaddrhpos}>\z@
\@addtoplength[-2]{firstheadwidth}{\useplength{toaddrhpos}}
\else
\@addtoplength[2]{firstheadwidth}{\useplength{toaddrhpos}}
\fi
\@setplength{foldmarkhpos}{6.5mm}
\makeatother
%---------------------------------------------------------------------------
% Absender
% Auch die Absenderangaben sind in einer lco-Datei sehr gut aufgehoben. Dann
% muss man die nicht in jedem Brief neu setzen, sondern kann einfach die
% lco-Datei laden.
\setkomavar{fromname}{Max Mustermann}
\setkomavar{fromaddress}{Str \\ 00000 Ort}
\setkomavar{fromphone}{0111 111\,22\,33}
\newkomavar{fromhandy}
\setkomavar{fromhandy}{1011 12\,12\,12\,12}
\setkomavar{fromfax}{}
\setkomavar{fromemail}{mail@test.de}
\setkomavar{backaddressseparator}{ - }
\setkomavar{signature}{Max}
%\setkomavar{frombank}{}
\setkomavar{location}
{\raggedleft{
Telefon: \usekomavar{fromphone}\\
Mobil: \usekomavar{fromhandy}\\
Fax: \usekomavar{fromphone}\\
\mbox{E-Mail: \usekomavar{fromemail}}}}
%---------------------------------------------------------------------------
% Wir verwenden einen eigenen Briefkopf auf der ersten Seite:
\firsthead{\raggedleft{\usekomavar{fromname}\\
\usekomavar{fromaddress}}
}
%---------------------------------------------------------------------------
% Wir wollen, dass die Ränder auf den Folgeseiten genauso sind, wie auf dem
% Briefbogen. Zwar ist es üblich für Folgeseiten keinen Briefbogen zu
% verwenden, sondern nur einen verkürzten Kopf, aber wir sind dickköpig und
% wollen das nun einmal so. Also verwenden wir geometry um das mit Gewalt
% zurecht zu biegen. Glücklicherweise ist scrlttr2 im Gegensatz zu den meisten
% anderen Briefklassen so tolerant, die Verwendung von geometry klaglos zu
% akzeptieren und zu verdauen:
\usepackage{geometry}
\geometry{top=2cm,includehead,% Rand über dem Kopf
head=3\baselineskip,% Höhe des Kopfs
textwidth=34em,% das ergibt ca. 68 Zeichen/Zeile (ggf. anpassen)
textheight=\dimexpr 48em+3\baselineskip\relax,% 48em = srqt{2} * 34 em
% (ggf. anpassen)
}
% Die eigentliche Kopfdefinition machen wir jetzt nicht mehr mit \nexthead,
% weil wir dabei die Breite des Kopfes nicht unabhängig von der
% Satzspiegelbreite definieren können. Stattdessen nehmen wir scrpage2, das
% dieses erlaubt:
\usepackage[headsepline]{scrpage2}
\setheadwidth{\useplength{firstheadwidth}}
\setkomafont{pageheadfoot}{}
\ohead{\usekomavar{fromname}\\
\usekomavar{fromaddress}}
\pagestyle{scrheadings}
%---------------------------------------------------------------------------
% Geschaeftszeilenfelder
\setkomavar{place}{Ort}
\setkomavar{placeseparator}{, }
\setkomavar{date}{\today}
\setkomavar{yourmail}{1. 1. 2003}%% 'Ihr Schreiben...'
%\setkomavar{yourref} {abcdefg}%% 'Ihr Zeichen...'
%\setkomavar{phoneseparator}{phones}
%---------------------------------------------------------------------------
% Versendungsart
%\setkomavar{specialmail}{Einschreiben mit Rückschein}
%---------------------------------------------------------------------------
% Anlage neu definieren
\renewcommand{\enclname}{Anlage}
\setkomavar{enclseparator}{: }
%---------------------------------------------------------------------------

%---------------------------------------------------------------------------
\begin{document}
\begin{letter}{
Name\\
Strasse\\
PLZ Ort
}

\setkomavar{title}{
Testtitel
}

\setkomavar{subject}{
Betreff
}

\opening{
Sehr geehrte Damen und Herren,
}

\lipsum[1]
\lipsum[1]
\lipsum[1]
\lipsum[1]
\lipsum[1]

\closing{
Mit freundlichen Grüßen
}

%---------------------------------------------------------------------------
%\ps{PS:}
%\encl{}
%\cc{}
%---------------------------------------------------------------------------

\end{letter}
\end{document}
%---------------------------------------------------------------------------
Wenn die Positionierung noch nicht 100% stimmt, dann spiel einfach ein wenig mit den Parametern für top und head bei \geometry.

BTW: Es gibt Leute, die sich darüber beschweren, dass bei scrlttr2 der Satzspiegel und der Briefbogen unabhängig voneinander sind. Wie man hier sieht, ist das aber eigentlich eine Stärke von scrlttr2, weil man dadurch Pakete wie geometry verwenden kann. Man kann das letztlich dann auch verwenden, um die Unabhängigkeit wieder auszugeben. Dazu muss man dann eben beispielsweise textwidth auf \useplength{firstheadwidth} setzen oder auch die Ränder via \useplength{firstheadhpos} o. ä.

jonathan
02-11-2010, 22:15
Hey,

danke für deine ausführlichen Erklärungen! ;-)

Zum ersten Teil: ne, ich weiß nicht was ich da mache - sehe nur, dass der Head auf der ersten Seite weiter unten ist; und das gefällt mir besser!

Ich bin jetzt deiner unterschwelligen Empfehlung gefolgt und habe den Satzspiegel auf der zweiten Seite gelassen wie er ist - lediglich den Abstand zum Head habe ich etwas vergrößert.

Danke für Eure Hilfe!!!

VG