Anzeige:
Ergebnis 1 bis 3 von 3

Thema: Seitenränder auslesen - komisches Verhalten von geometry

  1. #1
    Registrierter Benutzer Avatar von AureusPhoenix
    Registriert seit
    20.02.2010
    Beiträge
    91

    Seitenränder auslesen - komisches Verhalten von geometry

    Hi Leute,
    bin grad dabei mir mithilfe von marginpar einen kleinen Notizbefehl zu schreiben. Nun möchte ich, das dieser Befehl immer die richtige marginparwidth verwendet und ich das nicht jedes mal vorher einstellen muss.

    Also hab ich mir gedacht ... ok, einfach den Wert "outer" bzw. "right" von geometry auslesen. Aber irgendwie scheint das nicht zu gehen.

    Die einzigen Werte die es zu geben scheint (soweit ich das bei google gefunden habe) sind oddsidemargin und evensidemargin. Aber die Werte ergeben für mich einfach keinen Sinn.

    Hier ein Minimalbeispiel bei dem ich das Paket printlen benutze um mir diverse längen anzeigen zu lassen:
    Code:
    \documentclass[a4paper,twoside]{scrartcl}
    \usepackage[paper=a4paper,inner=20mm, outer=25mm,top=20mm,bottom=40mm]{geometry}
    
    \usepackage{printlen}
    \usepackage{xifthen}
    
    %------------------------------------------------------------------------------%
    
    
    \begin{document}
    
    \setlength{\marginparwidth}{0.5\paperwidth-0.5\textwidth}
    
    \noindent
    Textwidth: \uselengthunit{mm}\printlength{\textwidth}\\
    Paperwidth: \uselengthunit{mm}\printlength{\paperwidth}\\
    Oddsidemargin: \uselengthunit{mm}\printlength{\oddsidemargin}\\
    Evensidemargin: \uselengthunit{mm}\printlength{\evensidemargin}\\
    Marginparwidth:\uselengthunit{mm}\printlength{\marginparwidth}\\
    
    \end{document}
    Wenn man ein wenig mit inner und outer rum spielt, sieht man, das die Werte praktisch nie mit evensidemargin und oddsidemargin übereinstimmen. Auch der Versuch (paperwidth-textwidth)/2 kann nicht zum Erfolg führen, da innen und außen ja sehr unterschiedliche Ränder sein könnten.

    Kann mir jemand sagen, ob es irgend eine andere Möglichkeit gibt, die Breite des rechten/äußeren Randbereiches auszulesen?

    Vielen Dank im Voraus!
    Beste Grüße,
    AureusPhoenix

  2. #2
    Registrierter Benutzer
    Registriert seit
    21.08.2009
    Beiträge
    496
    Das Seitenlayout kannst du dir mit dem Paket layout anschauen:

    Code:
    \documentclass[a4paper,twoside]{scrartcl}
    \usepackage[paper=a4paper,inner=20mm,outer=25mm,top=20mm,bottom=40mm
    ]{geometry}
    \usepackage{layout}
    \usepackage{printlen}
    
    \begin{document}
      \layout
     Marginparwidth:\uselengthunit{mm}\printlength{\marginparwidth}
    \end{document}
    Gruß
    Elke

    Auf Seite 3 steht dann Marginparwidth:31.49963mm, was, wie man auf der Abbildung auch sieht, breiter als der Rand ist. In der Abbildung siehst du auch, was oddsidemargin ist.




    Über das Paket geometry kannst du doch aber marginparsep und marginparwidth direkt vorgeben?

    Code:
    \usepackage[paper=a4paper,inner=20mm,outer=25mm,top=20mm,bottom=40mm,
      marginparsep=2.5mm, marginparwidth=20mm
    ]{geometry}



    Auf Seite 3 steht dann Marginparwidth:19.99976mm

  3. #3
    Registrierter Benutzer Avatar von AureusPhoenix
    Registriert seit
    20.02.2010
    Beiträge
    91
    Hi Elke,
    vielen Dank! Das Paket hat mir echt weiter geholfen. Nach ein klein wenig "Mathematik" ist folgendes raus gekommen:

    Code:
    \setlength{\marginparwidth}{\evensidemargin+\hoffset+1in-2\marginparsep}
    \setlength{\marginparwidth}{\paperwidth-\hoffset-1in-\oddsidemargin-\textwidth-2\marginparsep}
    Beide Zeilen sind vollkommen äquivalent und geben bei jeder getesten Einstellung die korrekte Breite für marginparwidth zurück.


    Zu deiner Frage, warum ich es nicht einfach von Hand einstelle ...
    Das ist schon richtig. Wenn ich selber was schreibe, dann ist das auch kein Problem. Ich geb meine kleinen Pakete aber gerne auch an Kollegen weiter. Wenn ich denen erst 5 Minuten erklären muss, was sie alles einzustellen haben, sind die sofort abgeschreckt. Der Code der meisten ist ein Sammelsurium zurecht kopierter Headerbestandteile verschiedener Webseiten und Anleitungen. Meist wissen sie nicht mal was die einzelnen Pakete tun oder haben gar Pakete drin, die sich gegenseitig nicht wirklich vertragen.


    Nochmals vielen Dank!
    Grüße,
    AureusPhoenix

Lesezeichen

Berechtigungen

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