Seite 1 von 1

Einzelne Seiten automatisch verändern

Verfasst: Mi 25. Aug 2010, 11:16
von chrizke
Hallo,

wo muss ich ansetzen, wenn ich einzelne Seiten verändern will. Sagen wir ich will zB nur auf geraden Seiten in der Fußzeile etwas einblenden.

Oder im konkreten Fall: Ich möchte ab der 2. Seite den oberen Rand größer haben, da ich sonst in den Druck des Briefpapiers gerate.

Ich denke mal, dass ich über if und den Seitencounter da dran komme, doch wo muss ich das in welcher Form hinsetzen? Wahrscheinlich in die Präambel.


Gruß
chrizke

Verfasst: Mi 25. Aug 2010, 11:24
von Nerd 032F
Dein Briefbogen benötigt tatsächlich einen kleineren oberen Rand als Dein Zweitbogen, so dass Du ab dem Zweitbogen einen größeren Rand benötigst? Bist Du sicher, dass Du nicht einfach generell einen größeren oberen Rand verwenden kannst? Bei scrlttr2 beispielsweise wäre das das übliche Vorgehen, da hier die Elemente des Briefbogens ohnehin unabhängig von den normalen Randeinstellungen gesetzt werden. Bei den meisten anderen Briefklassen ist es eher problematisch, irgend etwas am Satzspiegel zu drehen.

BTW: Änderungen von Randeinstellungen im laufenden Dokument sind nicht unproblematisch. Für den oberen Rand und die Höhe des Satzspiegels ginge das vermutlich noch. Allerdings muss man das erledigen, bevor die entsprechende Seite angefangen wird. Also vermutlich im \shipout der vorherigen Seite.

Verfasst: Mi 25. Aug 2010, 11:29
von chrizke
Ja da bin ich mir sehr sicher ;)

Denn auf der ersten Seite steht noch die Adresse, und die ist nicht so breit, dass sie rechts den Druck des Briefpapiers treffen könnte.
Und tiefer geht auf der ersten Seite auch nicht, da dann die Adresse nicht mehr im Fenster des Umschlages zu sehen wäre.

Man muss ja nicht unbedingt gleich den ganzen Satzspiegel verändern. Von mir aus kann auch einfach ein \vspace eingefügt werden.

EDIT: Achso es geht um keine existierende Briefklasse, sondern wenn um eine eigene, die ich mit diesen Einstellungen erstellen will, die speziell auf unser Briefpapier ausgelegt ist.

Verfasst: Mi 25. Aug 2010, 11:30
von Schweinebacke
In dieser Allgemeinheit ist die Frage kaum zu beantworten. Je nachdem, was geschehen soll, gibt es unterschiedliche Mechanismen dafür. Für die Sache mit den Fußzeilen definiert man beispielsweise in einem doppelseitigen Dokument einfach für gerade und ungerade Seiten unterschiedliche Füße (siehe Anleitung zu Paket scrpage2 im scrguide oder Anleitung zu Paket fancyhdr). Unterschiedliche Ränder für gerade und ungerade Seiten sind nur für den linken Rand vorgesehen. Das wird standardmäßig von allen Klassen im doppelseitigen Druck genutzt. Im laufenden Dokument automatische die Ränder ändern zu lassen wird hingegen eher unpraktisch sein. Wenn man auf der Titelseite einen kleineren oberen Rand haben will, sollte man stattdessen den größeren oberen Rand zum Standard machen und auf der Titelseite am Anfang mit \vspace*{-Irgendwas} in diesen breiteren oberen Rand fahren oder ein Paket wie das titlepage-Projekt nutzen, da auch eine Seite ohne Ränder bereit stellt.

Um eine konkrete Antwort auf ein konkretes Problem geben zu können, wäre es schön, wenn man auch ein paar konkrete Informationen bekommen würde. Dazu gehört min. welche Klasse verwendet werden soll. am besten macht man ein vollständiges Minimalbeispiel, wie das im goLaTeX-Wiki erklärt wird.

Verfasst: Mi 25. Aug 2010, 11:38
von chrizke
Wie ich oben schon schrieb geht es konkret um den automatisierten Druck von Briefen.

Und wie ich im letzten Post schrieb, liegt es an der Beschaffenheit des Briefpapieres, dass wenn ich das Adressfeld auf einer Seite nicht habe, wie zB nach einem automatischen Seitenumbruch auf folgende Seiten, ich bei breitem Text in den Druck des Papieres reinschreiben würde, was natürlich nicht wünschenswert ist.

Wie ich auf den folgenden Seiten den Text nach unten bekomme, ist mir erstmal egal, so lange es automatisch funktioniert, da ich nicht mit \newpage o.ä. umbreche, sondern dies automatisch geschehen soll, wenn die Seite voll ist.

Von der Art her will ich sowas hier haben:
\ifnum\value{page}>1
\vspace{5cm}
\fi
Ich geh mal davon aus, dass das so nicht funktioniert, ist aber nur fürs Verständnis für euch.

Verfasst: Mi 25. Aug 2010, 11:38
von Nerd 032F
chrizke hat geschrieben:EDIT: Achso es geht um keine existierende Briefklasse, sondern wenn um eine eigene, die ich mit diesen Einstellungen erstellen will, die speziell auf unser Briefpapier ausgelegt ist.
Du solltest Dir wirklich scrlttr2 anschauen. Die Klasse kann man über einfache eigene Erweiterungen problemlos an existierendes Briefpapier anpassen. Häufig muss man aber auch gar nichts anpassen, sondern kann sie so verwenden, wie sie ist. In der Voreinstellung ist sie nämlich bereits an DIN-Vorgaben für Fensterbriefe angepasst. Dabei werden Dinge wie Absender und Anschrift unabhängig von den normalen Randeinstellungen gesetzt.

Eine neue Briefklasse zu erfinden, statt einfach nur scrlttr2 an die eigenen Wünsche anzupassen, dürfte ziemlicher Overkill sein. AFAIK stecken in der Entwicklung von scrlttr2 mehrere Jahre Erfahrung aus der Entwicklung von scrlettr und über ein Jahr an Design und Implementierung bis zur ersten Version 2002. Seit damals wurde die Klasse immer weiter entwickelt (u. a. auch an spezielle Bedürfnisse von Schweizern, Japanern, Amerikanern ...) und dürfte nun nur noch wenig Wünsche offen lassen. Mit denen kann man sich dann erfahrungsgemäß an Markus wenden. Oder wir helfen einfach hier damit weiter.

Lies einfach einmal die beiden Kapitel zu scrlttr2 im scrguide oder noch besser im KOMA-Script-Buch.

Verfasst: Mi 25. Aug 2010, 11:43
von Schweinebacke
chrizke hat geschrieben:Von der Art her will ich sowas hier haben:
\ifnum\value{page}>1
\vspace{5cm}
\fi
Ich geh mal davon aus, dass das so nicht funktioniert, ist aber nur fürs Verständnis für euch.
Nein, das geht so nicht. Du solltest nicht so stur an einer Idee festhalten, von der man Dir abrät. Tatsächlich willst Du doch auf allen Seiten bis auf die erste einen großen oberen Rand. Also lautet die Lösung nicht, für die zweite Seite einzugreifen, sondern die hauptsächlich gewünschte Einstellung global fest zu legen und nur für die erste Seite eine Ausnahme zu definieren. Wie das geht, wurde Dir bereits gesagt.

Ich sehe gerade, dass Nerd Dir noch den Tipp gegeben hat, Dir scrlttr2 anzuschauen. Ich schließe mich dem an. Damit ist das Problem mit unterschiedlichem Rand auf Briefbogen und restlichen Seiten keines mehr, weil dort der ganze Teil bis zur Anrede ohnehin unabhängig von den generellen Einstellungen für den oberen Rand platziert wird.

Verfasst: Mi 25. Aug 2010, 11:53
von chrizke
Gut, dann werde ich das mit dieser Briefklasse machen. Die kann ich ja in ne eigene Klasse vererben und dann alles so anpassen, wie ich es brauche.
Doch interessiert mich weniger das Ergebnis, sondern vielmehr, wie man alleine dahin kommen könnte.

Wie kann ich denn Sachen unabhängig vom Rand setzen?

Verfasst: Mi 25. Aug 2010, 12:23
von KOMA
Natürlich steht es jedem frei, seine eigene Briefklasse aus dem Nichts neu aufzubauen. Nützlich ist dafür allerdings, dass man sich zunächst einmal mit LaTeX-Grundlagen beschäftigt. Auch um einige TeX-Grundlagen wird man nicht herum kommen. Nützlich ist auf jeden Fall, wenn man sich mal vorhandene Briefklassen anschaut und ggf. auch im Quelltext nachforscht, wie die das so machen. Wenn der Quelltext dokumentiert ist (bei scrlttr2 findet man den dokumentierten Quelltext in den KOMA-Script-Quellen über mehrere Dateien verteilt, wobei wesentliche Teile für scrlttr2 in scrknpap.dtx enthalten sind), kann das sehr, sehr nützlich sein. Vor dem Quelltextstudium steht aber noch das Studium der Anleitungen.

Du solltest auf jeden Fall nicht davon ausgehen, dass Du der erste bist, der ein bestimmtest Problem hat. Das ist nach mehr als 20 Jahren TeX, rund 20 Jahren LaTeX, 16 Jahren LaTeX2e sehr unwahrscheinlich. Viel wahrscheinlicher ist, dass das Problem bereits in existierenden Klassen oder Paketen gelöst wurde oder so kompliziert ist, dass es Abhandlungen darüber gibt, warum der Aufwand für die Lösung in keiner Relation zum Nutzen steht.

Briefklassen gibt es inzwischen min. ein halbes Dutzend brauchbarer und eine ganze Menge unbrauchbare, die deshalb kaum jemand kennt und noch weniger verwendet werden. Aber auch die eigentlich unbrauchbaren wie letter.cls sind noch nützlich, wenn es darum geht, herauszufinden, wie grundlegende Dinge gelöst werden können. Gerade für Anfänger sind die einfach gestrickten Klassen als Ausgangspunkt für eigenes Werken recht nützlich, um nicht ganz von Null anfangen zu müssen. Schneller zum Ziel kommt man allerdings, wenn man tatsächlich die Flexibilität der KOMA-Script-Klassen, in dem Fall von scrlttr2, nutzt. Ob man das dann über eine lco-Datei oder eine Wrapper-Klasse macht, spielt keine große Rolle.

BTW: Vermutlich gibt es sogar ein paar wenige Leute, die hier selten aber hin und wieder in Forum auftauchen, denen ich geholfen habe, ihre Briefpapier-Probleme mit Hilfe einer lco-Datei für scrlttr2 zu lösen. Beispiele dafür gibt es auch auf den KOMA-Script-Seiten (siehe Logo links). Ausführliche Erklärungen und Herleitungen von Lösungen finden sich auch im Anhang des KOMA-Script-Buchs.

Eine gute Briefklasse ist nicht in wenigen Tagen erstellt. Eine lco-Datei für scrlttr ist hingegen in wenigen Minuten bis wenigen Stunden geschaffen.

Zum Abschluss sei noch auf ein paar Briefklassen abseits von KOMA-Script hingewiesen, die IMHO aber alle weniger flexibel als scrlttr2 sind:
  • dinbrief (Wissen aus dessen Anleitung ist auch in die Entwicklung von scrlttr2 eingeflossen)
  • g-brief (ähnelt in machen Dingen dem alten scrlettr in anderen akletter und ist mir zu unflexibel)
  • akletter (eine Schwester des scrlttr2-Vorgängers scrlettr)
  • beletter (eine minimale Anpassung von letter an belgische Anforderungen)
  • chletter (noch ein Ableger von letter, dieses Mal für die Schweiz mit Französischer Anleitung)
  • fribrief (gleich zwei Briefklassen für Deutsch, die schon sehr alt und sehr unbekannt sind)
  • frletter (ein Ableger von beletter für Frankreich)
  • knuthletter (keine Klasse, sondern plainTeX-Makros für Briefe)
  • lettre (noch eine Französische Briefklasse in Ableitung von letter.cls)
  • mpdinbrief (AFAIK ist diese Entwicklung inzwischen mit dinbrief verschmolzen)
Ich vermute, dass scrlttr2 die am häufigsten verwendete KOMA-Script-Klasse noch weit vor scrbook ist. Mir selbst war das lange nicht klar, weil ich selbst nur sehr selten Briefe schreibe - und dann eher von Hand. Aber ich habe von vielen Anwendern erfahren, dass sie täglich Briefe aber nur selten andere Dokumente schreiben. Support-Anfragen aus anderen Ländern bekomme ich hauptsächlich zu scrlttr2, was inzwischen zu diversen Erweiterungen und beispielsweise zu offiziellen lco-Dateien für die Schweiz, Frankreich, Japan und Amerika geführt hat. Dazu kommen unzählige nicht offizielle lco-Dateien, von denen es min. die Finnische Version auch auf CTAN geschafft hat.

Verfasst: Mi 25. Aug 2010, 12:36
von Nerd 032F
chrizke hat geschrieben:Wie kann ich denn Sachen unabhängig vom Rand setzen?
Dafür gibt es mehrere Möglichkeiten.
  • Man kann sich in den Seitenstil einklinken und dort Wissen um oberen Rand etc. nutzen.
  • Man kann sich an Anweisungen hängen, von denen man weiß, dass sie als erstes auf der Seite Inhalt produzieren. Die meisten Briefklasse nutzen beispielsweise die Tatsache, dass jeder Brief mit \begin{letter} im Quelltext startet und \opening die erste Anweisung ist, die eine Ausgabe produziert.
  • Man kann Pakete wie eso-pic oder textpos (oder sogar tikz) verwenden. Hier bestätigt sich KOMAs Aussage, dass es kaum neue Probleme gibt und fast alles schon in irgendwelchen Paketen oder Klassen gelöst wurde.
  • Man kann verschiedene Lösungen kombinieren, beispielsweise Seitenstil mit tikz-Seitenknoden.
  • Man kann das Rad irgendwie neu erfinden.
Wie das bei scrlttr2 gemacht ist, erfährt man aus den Quellen. Auch darauf hat KOMA ja bereits hingewiesen.