Anzeige:
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 15 von 25

Thema: \setmargins abhängig von Seite

  1. #1
    Registrierter Benutzer
    Registriert seit
    15.12.2009
    Beiträge
    59

    \setmargins abhängig von Seite

    Hallo zusammen,

    ich würde gerne abhängig von der Seitenzahl verschiedene Einstellungen für \setmargin vornehmen (Seite 1 soll individuelle Maße haben, alle anderen die gleichen).

    Ich hätte es so versucht:

    Code:
    \ifnum
    \thepage = 1
    	\setmargins{2.0cm}{2.3cm}{16.7cm}{22.5cm}{12pt}{25pt}{0pt}{30pt}
    \else
    	\setmargins{2.0cm}{0.0cm}{16.7cm}{22.5cm}{12pt}{25pt}{0pt}{30pt}
    \fi
    Leider funktioniert das aber nicht (es wird keine Fehlermeldung ausgegeben, aber die Änderung wird auch nicht angewandt).

    Kann mir da jemand weiterhelfen?

    Vielen Dank, Andi

  2. #2
    Registrierter Benutzer
    Registriert seit
    31.03.2010
    Beiträge
    1.039
    \setmargins? Ist das nicht das vmargin-Paket, das ungeschickt an \hoffset und \voffset herumpfuscht, um die Ränder einzustellen? Das kann so etwas AFAIK nicht. geometry (seit Version 5) und typearea (seit Jahren) können die Ränder innerhalb des Dokuments ändern. Je nachdem, welcher Rand geändert werden soll, genügt auch ein \vspace oder \hspace (ggf. auch mit negativem Wert) oder ein \enlargethispage oder eine Umgebung wie addmargin (KOMA-Script-Klasse oder Paket scrextend)..

  3. #3
    Registrierter Benutzer Avatar von voss
    Registriert seit
    10.04.2005
    Beiträge
    5.045
    Zitat Zitat von andi25 Beitrag anzeigen
    ich würde gerne abhängig von der Seitenzahl verschiedene Einstellungen für \setmargin vornehmen (Seite 1 soll individuelle Maße haben, alle anderen die gleichen).
    \thepage muss nicht unbedingt eine Zahl sein, es könnte auch -1- sein.
    Unabhängig davon kannst du für eine Seite mit

    Code:
    \vspace*{-...}%Platz nach oben
    \hspace*{-...}% Platz nach links
    \enlargethispage{..}% Platz nach unten arbeiten
    Übder den rechten Rand kann man schreiben, in dem man eine minipage verwendet.

    Herbert

  4. #4
    Registrierter Benutzer
    Registriert seit
    15.12.2009
    Beiträge
    59
    Hallo ihr zwei,

    vielen Dank für euere schnellen Antworten!

    Dank dem Hinweis von Schweinebacke ist mir aufgefallen, dass setmargins wohl wirklich sehr veraltet ist :-) Ich bin gerade dabei einen Code von vor einigen Jahren zu überarbeiten. Da werd ich mir jetzt gleich mal geometry.sty anschauen!

    Aber unabhängig davon, wie man die Maße setzt: Ich habe auch gemerkt, dass meine Schleife so garnicht beachtet wird. Dieser Code

    Code:
    \ifnum
    \thepage > 1
    HALLO
    \fi
    sollte ja eigentlich HALLO ab der zweiten Seite drucken. Aber wie voss schon erwähnt hat, ist das wohl nicht sehr zuverlässig so. Gibt es denn eine andere Möglichkeit, wie ich etwas ab Seite zwei tun kann?

  5. #5
    Registrierter Benutzer Avatar von voss
    Registriert seit
    10.04.2005
    Beiträge
    5.045
    Zitat Zitat von andi25 Beitrag anzeigen
    Aber unabhängig davon, wie man die Maße setzt: Ich habe auch gemerkt, dass meine Schleife so garnicht beachtet wird. Dieser Code

    Code:
    \ifnum
    \thepage > 1
    HALLO
    \fi
    sollte ja eigentlich HALLO ab der zweiten Seite drucken. Aber wie voss schon erwähnt hat, ist das wohl nicht sehr zuverlässig so. Gibt es denn eine andere Möglichkeit, wie ich etwas ab Seite zwei tun kann?
    Tut es ja auch, wenn \thepage nicht umdefiniert wurde.
    zeig an einem Beispiel, dass es angeblich nicht geht!

    Herbert

  6. #6
    Registrierter Benutzer
    Registriert seit
    15.12.2009
    Beiträge
    59
    Ah, sorry - ich hatte den Befehl an der falschen Stelle im Code, aber funktionieren tut es grundsätzlich so.

    Gut, dann muss ich wohl mein ganzes Layout nochmal überdenken und das setmargins in geometry ersetzen.

    Vielen Dank für euere Hilfe und ein schönes Wochenende!!

  7. #7
    Registrierter Benutzer
    Registriert seit
    31.03.2010
    Beiträge
    1.039
    Statt \thepage solltest Du bei numerischen Vergleichen \value{page} verwenden. Allerdings kannst Du mehr als eine Seite in einem Dokument haben, bei der der Seitenzähler auf 1 steht. Deshalb wäre ggf. ein nicht numerischer Vergleich eventuell passender.

  8. #8
    Registrierter Benutzer
    Registriert seit
    15.12.2009
    Beiträge
    59
    @Schweinebacke: Hättest Du denn eine Idee, wie ich einen "nicht nummerischen Vergleich" machen könnte?
    Geändert von andi25 (12-10-2010 um 11:01 Uhr)

  9. #9
    Registrierter Benutzer
    Registriert seit
    31.03.2010
    Beiträge
    1.039
    Code:
    \documentclass{scrartcl}
    \usepackage[ngerman]{babel}
    \usepackage{blindtext}
    \pagestyle{myheadings}
    \markright{Seite 1?
      \noexpand\ifstr{\noexpand\thepage}{1}{ja}{nein}\hfill\noexpand\thepage\hfill
               Seite a? \noexpand\ifstr{\noexpand\thepage}{a}{ja}{nein}}
    \begin{document}
    \blinddocument
    
    \clearpage
    \pagenumbering{alph}
    
    \blinddocument
    \end{document}

  10. #10
    Registrierter Benutzer
    Registriert seit
    15.12.2009
    Beiträge
    59
    Hallo Schweinebacke!

    Vielen Dank! Wenn ich Dein Beispiel ausführe, funktioniert es schonmal wie gewünscht.

    Ich hab jetzt versucht, das ganze auf meinen Fall umzumünzen, aber hier klappt es leider noch nicht ganz. Ich möchte ja je nach dem, ob ich auf Seite 1 oder auf Seite<>1 bin ein andere Ränder/Abstände (also einen anderen top-Wert bei geometry) haben.

    Mein Minimalbeispiel

    Code:
    \documentclass{scrartcl}
    \usepackage[ngerman]{babel}
    \usepackage{geometry}
    
    \pagestyle{myheadings}
    
    % geometry setzen je nach Seite=1 oder Seite<>1
    \markright{
      \noexpand\ifstr{\noexpand\thepage}{1}{\geometry{a4paper,left=40mm,right=30mm, top=10cm, bottom=2cm}
    		 {\geometry{a4paper,left=40mm,right=30mm, top=10cm, bottom=2cm}}
    }
    
    
    \begin{document}
    1.Seite
    
    \clearpage
    \pagenumbering{alph}
    
    2. Seite
    
    \end{document}
    bringt jedoch nur den Fehler
    Code:
    Runaway argument?
    { \noexpand \ifstr {\noexpand \thepage }{1}{\geometry {a4paper,left=4\ETC.
    ! Paragraph ended before \markright was complete.
    Ich versuch schon die ganze Zeit herauszukriegen warum, aber ich seh es einfach nicht...

  11. #11
    Registrierter Benutzer
    Registriert seit
    31.03.2010
    Beiträge
    1.039
    Die Änderung der Ränder ist ja nur sinnvoll, wenn die erste Seite insgesamt anders aufgebaut ist, also es keinen automatisch Seitenumbruch gibt. Deshalb brauchst Du in dem Fall nicht lange rumzudoktern, sondern rufst nach dem manuellen Seitenumbruch einfach \newgeometry (siehe geometry-Anleitung) oder \typearea bzw. \KOMAoptions mit passenden Satzspiegeloptionen (siehe KOMA-Script-Anleitung) auf.

    BTW: Falls ich es noch nicht erwähnt habe. Auf komascript.de gibt es das titlepage-Projekt. Das dort enthaltene Paket bietet u. a. auch eine Titelseiten-Umgebung ohne Ränder an. Alternativ kann man auch mit \vspace* mit negativem Argument \enlargethispage und der addmargin-Umgebung (siehe KOMA-Script-Anleitung) o. ä. auf der ersten Seite arbeiten. Ich hatte letzteres eigentlich schon in meinem letzten Beitrag erwähnt.

  12. #12
    Registrierter Benutzer
    Registriert seit
    15.12.2009
    Beiträge
    59
    (Beitrag zurückgenommen)
    Geändert von andi25 (14-10-2010 um 16:39 Uhr) Grund: Beitrag war nicht sinnvoll :-)

  13. #13
    Registrierter Benutzer
    Registriert seit
    15.12.2009
    Beiträge
    59
    Hallo zusammen,

    leider bin ich mit meinem Problem immernoch nicht weiter. Hier nochmal zusammengefasst die Dinge, die ich versucht habe:

    vspace / newgeometry

    Wenn ich es mit \newpage und dann mit \newgeometry versuche, werden die neuen Seitenränder akzeptiert. Das Problem ist jedoch, dass mein Dokument dynamisch aufgebaut wird (vereinfacht gesagt wie eine Rechnung, bei der der Titelseiter dann einzelne - verschieden viele - Rechnungsposten aus einer Datenbank folgen). Ich weiß also nicht, wann die zweite Seite beginnt. Deshalb wäre mein Versuch gewesen:

    Code:
    \documentclass{scrartcl}
    \usepackage[ngerman]{babel}
    \usepackage{blindtext}
    \usepackage{geometry}
    \pagestyle{myheadings}
    \geometry{top=10cm}
    
    
    \begin{document}
    \blinddocument
    
    
    \ifnum
    \thepage = 1
    %\newgeometry{top=1cm}
    \vspace*{-6cm}
    \fi
    
    \clearpage
    \pagenumbering{alph}
    
    \blinddocument
    \end{document}
    ...was jedoch leider nicht funktioniert (der top-Rand ist immer gleich). Ich vermute mal mit typearea statt vspace oder newgeometry wäre es das selbe.


    markright / noexpan

    In Anlehnung an das Posting #9 von Schweinebacke, hätte ich genau diesen Code genommen und das "ja" und "nein" (als Abfrage für Seite?) durch \newgeometry ersetzt. Hier bekomme ich jedoch die Fehlermeldung:

    Code:
    ! Undefined control sequence.
     ... {\noexpand \thepage }{1}{\geometry 
                                                      {}}{nein}\hfill \noexpand ...
    l.7 ...pand\ifstr{\noexpand\thepage}{a}{ja}{nein}}
    (Minimalbeispiel ist genau der Code von Schweinebacke aus #9 nur mit "\newgeometry{top=1cm}" für "ja" bei "Seite 1?")


    KOMA-Skript titelpage projekt

    Diesen Weg habe ich ehrlich gesagt noch nicht versucht. Lieber wäre es mir wie in den oberen beiden Möglichkeiten z.B. "newgeometry" aufzurufen, wenn die zweite Seite beginnt. Aber wenn das alles garnicht funktioniert, werde ich mir wohl mal das titelpage-projekt ansehen müssen...

  14. #14
    Registrierter Benutzer
    Registriert seit
    31.03.2010
    Beiträge
    1.039
    Moment mal: Es geht Dir also gar nicht um eine Titelseite? Es geht Dir auch nicht darum, alle möglichen Ränder zu ändern? Kann es sein, dass Du lediglich den Titelkopf weiter oben auf der Seite haben willst? Verwendest Du \maketitle? Dann müsste man das umdefinieren, weil es AFAIK immer eine neue Seite beginnt und deshalb etwaige \vspace*{-3cm} davor nichts bewirken. Alternativ könnte man einfach den Titelkopf selbst frei gestalten, etwa in der Art:
    Code:
    \begingroup
      \vspace*{-3cm}
      \centering
      \LARGE\textbf{Meine Arbeit}\par
      \vspace{.5\baselineskip}
      \large Mein Name\par
      \vspace{.5\baselineskip}
      \normalsize \today\par
    \endgroup
    Falls Dein Dokument doppelseitig ist, sollte man das ggf. in das optionale Argument einer \twocolumn-Anweisung packen, damit der Titel einspaltig gesetzt wird.

  15. #15
    Registrierter Benutzer
    Registriert seit
    15.12.2009
    Beiträge
    59
    Hallo Schweinebacke,

    ja, stimmt, im Wesentlichen geht es mir um den oberen Abstand. Und ich glaub ich komm dem Problem langsam auch näher. Ich hab mal versucht es in einem Minimalbeispiel zu verdeutlichen:

    Code:
    \documentclass[a4paper]{letter}
    \usepackage{ngerman}
    \usepackage[latin1]{inputenc}
    \usepackage{fancyhdr}
    \usepackage{a4}
    \usepackage{marvosym}
    \usepackage{geometry}
    
    \geometry{a4paper,left=40mm,right=30mm, top=2cm, bottom=2cm}
    \pagestyle{fancy}
    
    
    \fancyhead{
    	\fancyhf{}
    	\ifnum
    	\thepage=1
    	\fontfamily{phv}\fontsize{10pt}{10pt}\selectfont
    	\begin{tabular}{p{6cm}p{4.5cm}l} \
    	\\[0.5cm]
    	& & Briefkopf im Header\\
    	& & Briefkopf im Header\\
    	& & Briefkopf im Header\\
    	& & Briefkopf im Header\\
    	& & Briefkopf im Header\\
    	\end{tabular}
    	\fi
    }
    
    
    \renewcommand{\headrulewidth}{0.0pt}
    
    \begin{document}
    
    Text auf Seite 1
    
    \newpage
    
    Text auf Seite 2
    
    \end{document}
    Das Problem ist hier, dass "Text auf Seite 2" auf der zweiten Seite relativ weit unten beginnt. Schuld ist der Header. Kommentiert ihn aus (oder auch nur die Zeilen "& & Briefkopf im Header\\" fängt mein "Text auf Seite 2" oben auf Seite 2 an, so wie es sein soll. Genau das ist auch mein Ausgangsproblem für diesen Threat.

    Könnte ich dieses Problem denn mit \beginngroup ... \endgroup lösen? "\maketitle" verwende ich übrigens nicht ...
    Geändert von andi25 (19-10-2010 um 15:22 Uhr) Grund: setmargins in geometry geändert

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •