Hallo, mein Name ist Oliver.
Ich habe das Forum schon eifrig studiert und Nächte mit dem Wälzen des Buches (Koma-Script) zugebracht, ich komme aber leider nicht weiter.
Nutze scrlttr2 + persönliche.lco + infoblck.lco,
habe die Geschäftszeileneinträge neu geordnet...
Folgendes Problem:
- wie zentriere ich die Variablen-Bezeichner linksbündig
- wie füge ich variablen vertikalen Abstand zwischen die
Geschäftszeileneinträge ein
- wie füge ich Zusatztext in die Absenderabgabe ein: z. B.
unter die Variable "customer" den Text "Ihre Kundennummer
(bei Rückfragen immer angeben:)
Ich danke euch
Kannst du Frage nochmal genauer formulieren?
Kannst du die Frage nochmal etwas genauer stellen und dabei auch ein vollständiges Minimalbeispiel dessen, was du genau gemacht hast, angeben? Ich kann mir beispielsweise nichts unter »linksbündig zentrieren« vorstellen. Normalerweise ist etwas entweder linksbündig oder zentriert. Mir ist auch nicht klar, ob vertikaler Abstand zwischen allen oder zwischen bestimmten Einträgen eingefügt werden soll.
Wie man die Bezeichner von Variablen ändert, steht in der KOMA-Script-Anleitung, beispielsweise:
1. Nachtrag zu meiner Frage vom 01.07.06
Hallo,
möchte folgende Ergänzung zu o.g. Problemstellung geben:
Systemmerkmale:
Suse 10.0
LaTeX2e
scrlttr2 2004/09/16 v2.9t LaTeX2e KOMA document class
Zeichenkodierung: utf8, babel
Zu deinem Bsp. vom 08.01.06:
habe das Kapitel (Stichwort Variablen) in deinem Buch mehrfach gelesen (Seiten 202 ff.)... wenn ich die Var. wie beschrieben ohne Bez. def., erscheint dennoch der Trenner (in meinem Fall ein Doppelpkt.) und auch die Anordnung der Var.inhalte ist nicht so, wie ich es benötige... somit kommen wir zu dem Minimalbsp.:
\documentclass[ngerman]{scrlttr2}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{graphicx}
\KOMAoptions{paper=a4}
\LoadLetterOption{cysig} % lädt pers. Signatur + 2. lco mit weiteren
% pers. Absenderangaben etc.
\LoadLetterOption{infoblck}
\begin{document}
\sffamily{
\begin{letter}{}
%***GESCHÄFTSZEILE***
%Löscht die Einträge in der GZ
\removereffields
%***Fügt die Rechnungsnr. ein***
\newkomavar[Rechnungsnummer]{invoice2}
\addtoreffields{invoice2}
\setkomavar{invoice2}{1234} %RECHNUNGSNUMMER
%***Fügt die Kundennr. ein***
\newkomavar[Kundennummer]{customer2}
\addtoreffields{customer2}
\setkomavar{customer2}{5678} %KUNDENNUMMER
- Fine -
Erscheinugsbild u. Problembeschreibung:
- die Var.-Bezeichner erscheinen nun rechtsbündig
-Folgendes Druckbild möchte ich im Bereich der Absenderergänzung
erreichen:
Rechnungsnummer: 12345 (Variable)
Seite 1 von x
Ihre Kundennummer (bei Rückfragen bitte immer...
Kundennummer: 67890 (Variable)
Haben Sie Frage ... (Blindtext)
- Fine -
Die Leerzeilen stellen den gewünschten vert. Abstand dar, der variabel sein sollte.
Die Var.-Bezeichner erscheinen linksbündig ausgerichtet.
Ich danke dir schon im Vorab für deine Bemühungen
Gruß
Oliver
Alles andere als trivial
Eine komplette Lösung für das, was du skizziert hast, ist nicht trivial, und ich habe momentan leider nicht die Zeit, sie auszuarbeiten (außerdem hast du eben wieder kein vollständiges Minimalbeispiel, sondern nur einen Codeschnippsel geliefert, was mich zusätzlich Zeit kosten würde). Ich empfehle daher meinen Artikel aus DTK 2/2003 bzw. den Anhang des KOMA-Script-Buches bzw. meine Präsentation von Linuxtag 2005. Was dort ausgeführt wird, kommt dem, was du haben willst, recht nahe und sollte leicht anpassbar sein. Ansonsten ein paar Hinweise für den fortgeschrittenen LaTeX-Anwender, um selbst eine mögliche Lösung zu finden:
\sffamily
irgendwo am Anfang des Dokuments erreicht man serifenlos gesetzte Dokumente besser so, wie in der DE-TeX-FAQ (»Wie kann ich ein ganzes Dokument in serifenloser Schrift (z. B. Helvetica) setzen?«) beschrieben.\label
(und\pageref
) arbeiten.Deine Antwort vom 01.10.06
Hallo Markus,
für deine Antwort und die genannten Hinweise danke ich dir, sie haben mir schon sehr weitergeholfen; bis auf ein Problem:
Der generierte Abstand zwischen der Variablen in der infoblck.lco...
Wenn ich es richtig verstanden habe, wird er über \newkomavar{vspacemarkerfield} definiert innerhalb der erzeugten tabular-Umgebung, welche die Var. aufnimmt. Der Abstand ist von Hause auf \@setplength{refvspace}{-0.5\baselineskip} eingestellt, d.h. einen halben Zeilenabstand in Abhängihkeit des gewählten Fonts.
Wie lösche ich diesen Abstand, dass die Zeilen (Variablen der Geschäftszeile) direkt untereinander stehen?
refvspace
Die Voreinstellung ist nicht
-0.5\baselineskip
, sondern.5\baselineskip
. Man kann diesen mit\@setplength
(siehe KOMA-Script-Anleitung) auch auf 0pt einstellen. Mir erscheint das aber nicht sinnvoll. Sinnvoller wäre sicher, einfach nichtvspacemarkerfield
einzufügen, wenn man keinen vertikalen Abstand haben will. Die Sache ist doch so. Verwendet man:dann wird im Infofeld zwischen der Ausgabe der Variablen
foo
und der Variablebar
ein vertikaler Abstand eingefügt, der über die Pseudolängerefvspace
bestimmt ist. Verwendet man hingegenso wird zwischen der Ausgabe der beiden Variablen kein zusätzlicher vertikaler Abstand eingefügt.
Mir ist da übrigens noch etwas eingefallen. Wenn du nur eine begrenze Anzahl unterschiedlicher Abstände haben willst, also beispielsweise einen kleinen und einen großen, dann kannst du den Mechanismus von
vspacemarkerfield
natürlich einfach kopieren und so zusätzlich beispielsweisebigvspacemarkerfield
mit einer Pseudolängebigrefvspace
definieren.Deine Antwort: revspace...
Hallo,
leider funktioniert es nicht so wie in deinem Kommentar angegeben bzw. ich stelle mich zu dämlich an...
Ich verdeutliche meine Problemstellung anhand folgender Fragmente:
Bildschirmausgabe:
(unter dem Logo, innerhalb der Absenderergänzung)
...
Rechnungsnr.
Seite von bis
Hinweistext 1
(ABSTAND)
Fortsetzung Hinweistext
Kundennr.
...
---FINE---
brief.tex:
\documentclass[ngerman]{scrlttr2}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{graphicx}
\usepackage{scrpage}
\usepackage{lastpage}
\KOMAoptions{paper=a4}
\LoadLetterOption{cysig}
\LoadLetterOption{infoblck}
\renewcommand{\familydefault}{\sfdefault}
\begin{document}
\begin{letter}{}
%***GESCHÄFTSZEILE***
%Löscht die Einträge in der GZ
\removereffields
%***RECHNUNGSNUMMER**
\newkomavar[]{invoice2}
\addtoreffields{invoice2}
\setkomavar{invoice2}{{\scriptsize Rechnungsnummer} 1234}%RECHNUNGSNUMMER
%***SEITENZAHL***
\newkomavar*[]{seitenzahl}
\setkomavar{seitenzahl}{{\scriptsize Seite \thepage\ von \pageref{LastPage}}}
%***HINWEIS KUNDENNUMMER***
\newkomavar*[]{hinweis1}
\setkomavar{hinweis1}{{\scriptsize Ihre Kundennummer (bei Rückfragen\\ \scriptsize bitte immer angeben):}}
%***KUNDENNUMMER***
\newkomavar[]{customer2}
\addtoreffields{customer2}
\setkomavar{customer2}{} %KUNDENNUMMER
...
---FINE---
infoblck.lco:
...
\renewcommand*{\opening}{%
% First we need more room beside the address to set the info
% block. So we change meaning of locfield=wide and
% locfield=narrow. Wide will be 90% instead of 67% and narrow will
% be 75% instead of 50%.
\ifdim \useplength{locwidth}=\z@
\@setplength{locwidth}{\paperwidth}%
\ifdim \useplength{toaddrhpos}>\z@
\@addtoplength[-2]{locwidth}{\useplength{toaddrhpos}}%
\else
\@addtoplength[2]{locwidth}{\useplength{toaddrhpos}}%
\fi
\@addtoplength[-1]{locwidth}{\useplength{toaddrwidth}}%
\if@bigloc
\@setplength[.9]{locwidth}{\useplength{locwidth}}%
\else
\@setplength[.75]{locwidth}{\useplength{locwidth}}%
\fi
% Before we collect the table lines there should be no table lines:
\let\reffieldalllines=\empty
% The original definition of \@set@reffield sets a field of the
% reference line. We change this that ...
\renewcommand*{\@set@reffield}[1]{%
\ifstr{##1}{lastmarkerfield}{%
% ... at lastmarkerfield all collected table lines are put into
% a table set into `location' variable,
\setkomavar{location}{\raggedinfoblock
\begin{tabular}{ll}
\reffieldalllines
\end{tabular}
}%
}{%
\ifstr{##1}{vspacemarkerfield}{%
% ... at vspacemarkerfield a vertical space will be collected,
\l@addto@macro{\reffieldalllines}{%
% \noalign{\addvspace{\useplength{refvspace}}}%
}%
}{%
\typeout{Field: ##1}%
\ifstr{##1}{datemarkerfield}{%
% ... at datemarkerfield the date from variable `date' will
% be moved to to variable `datemarkerfield' ...
\let\scr@datemarkerfield@var=\scr@date@var
\let\scr@datemarkerfield@name=\scr@date@name
% ... and variable `date' becomes empty,
\setkomavar{date}{}%
}{}%
% ... all other variables are collected as table rows.
\ifkomavarempty{##1}{}{%
\l@addto@macro{\reffieldalllines}
{%
\usekomavar{##1}\\
}%
}%
}%
}%
}%
...
---FINE---
FRAGE:
Wie eliminiere ich den (ABSTAND) zwischen dem Hinweistext und seiner Fortsetzung?
Liegt es an dem manuell eingefügten Zeilenumbruch innerhalb der Variable (Hinweistext)... ohne Umbruch geht der Text über den rechten Seitenrand hinaus.
Ich danke dir und verbleibe mit freundlichen Grüßen
Oliver
Vermutung
Mangels vollständigem Minimalbeispiel kann ich nur vermuten, dass du folgendes Problem hast:
Der Abstand zwischen den mit
A
undB
markierten Zeilen ist größer als gewünscht. Das liegt schlicht daran, dass\scriptsize
nur bis zum Ende der Zelle gültig ist. Das Ende der Tabellenzelle liegt in jedem Fall vor dem Ende der Tabellenzeile. Deshalb hat das\scriptsize
auch keine Auswirkung auf den Abstand der Tabellenzeilen.Es gibt nun zwei mögliche Lösungen. Entweder bei
A
nach dem\\
einen negativen Abstand, beispielsweise mit[-2pt]
einfügen. Oder die Tabelle auf Absatzspalten (p
oder eine der Möglichkeiten des array-Pakets oderX
mit tabularx) umstellen. Da hier die letzte Spalte betroffen ist, müsste dann ggf. mit\tabularnewline
gearbeitet werden, um das Ende der Tabellenzeilen anzuzeigen. Dafür kann dann innerhalb der Spalte ein automatischer Umbruch erfolgen.BTW: In deinem Codeschnippsel müsste es wohl eher:
heißen. Anderenfalls dürften Fehlermeldungen auftreten, weil die Gruppe mehr als eine Spalte umfasst.
Wenn du insgesamt
\scriptsize
für den Infoblock verwenden willst, dann solltest du\scriptsize
nicht in die Variablen einbauen, sondern beispielsweise direkt nach\raggedinfoblock
setzen oder dort wo du die Variablen setzte\raggedinfoblock
so umdefinieren, dass es auch noch\scriptsize
enthält, etwa: