Anzeige:
Ergebnis 1 bis 9 von 9

Thema: minipage verschieben

  1. #1
    Registrierter Benutzer
    Registriert seit
    23.09.2004
    Beiträge
    76

    minipage verschieben

    Hallo,

    ich habe eine Minipage definiert mit "Überbreite" definiert.
    Code:
    \begin{minipage}{\textwidth+\marginparsep+\marginparwidth}
    ...
    Bei geraden Seiten beginnt diese jedoch auf Höhe des normalen Textes. Ist es möglich die minipage zu verschieben, damit sie bündig mit der Marginalienspalte beginnt?

  2. #2
    Registrierter Benutzer Avatar von blubb
    Registriert seit
    12.08.2004
    Beiträge
    862
    Mal ins blaue gedacht:
    Das Problem kann ja eigentlich nur mit der Option twoside auftreten, oder?
    Und bei twoside sind die Marginalien auch mal rechts, mal links, und soll deine Minipage dann rechts oder links anschlagen.

    Oder als Handlungstipp: Willst du wirklich twoside oder reicht dir oneside (und ist damit dein Problem gelöst?)

    Ansonsten wäre ein Minimalbeispiel zum verständnis ganz gut (zwei Seiten, je mit minipage und Info wo es passt wo nicht, und wo es sein sollte)
    Blubb
    Wer Dokus lesen kann ist im Vorteil :D
    Das Forum hat eine Suchfunktion.
    FAQ: http://www.dante.de/faq/de-tex-faq/html/de-tex-faq.html
    Minimalbeispiel:http://www-users.rwth-aachen.de/Chri...mmer/mini.html

  3. #3
    Registrierter Benutzer
    Registriert seit
    23.09.2004
    Beiträge
    76
    Ja richtig, twoside. Oneside reicht mir leider nicht.

    Code:
    \newcommand{\bsp}[1]{ 	
       \vspace{5mm}			       
       \begin{minipage}
               {\textwidth+\marginparsep+\marginparwidth} 
           \lstinputlisting
                [basicstyle=\ttfamily\footnotesize]{#1}
        \end{minipage}
        \vspace{5mm}	
    }
    Das Problem tritt nur bei ungeraden Seiten auf.

    Hier mal eine kleine Skizze. Ich hoffe das ist verständlich genug
    .
    M=Marginalienspalte
    T =Text
    B = Box / Minipage

    Code:
    So sieht es aus (linke Seite)
    
       MMMMM TTTTTTTTTT 
             TTTTTTTTTT 
             TTTTTTTTTT  
             TTTTTTTTTT   
    
             BBBBBBBBBBBBBBBB
             BBBBBBBBBBBBBBBB
             BBBBBBBBBBBBBBBB
    // <==== soll jeweils nach links verschoben werden
    
             TTTTTTTTTT 
             TTTTTTTTTT  
             TTTTTTTTTT  
    
    
    So soll es aussehen:
    
       MMMMM TTTTTTTTTT 
             TTTTTTTTTT 
             TTTTTTTTTT  
             TTTTTTTTTT   
    
       BBBBBBBBBBBBBBBB
       BBBBBBBBBBBBBBBB
       BBBBBBBBBBBBBBBB
    
             TTTTTTTTTT 
             TTTTTTTTTT  
             TTTTTTTTTT

  4. #4
    Registrierter Benutzer Avatar von blubb
    Registriert seit
    12.08.2004
    Beiträge
    862
    Ahhhh,
    ok, das war mir jetzt zwar kein Minimalbeispiel, aber ich hab glaub das Problem:

    Mein Minimalbeispiel:
    Code:
    \documentclass[twoside,parskip]{scrartcl}
    \newlength{\mysize}
    \newcommand{\bsp}{
        Vorher\\
        \setlength{\mysize}{\textwidth}
        \addtolength{\mysize}{\marginparsep}
        \addtolength{\mysize}{\marginparwidth}
       \begin{minipage}{\mysize}
               -\hrulefill-
        \end{minipage}\\
        Nachher
    }
    \begin{document}
    \bsp
    \clearpage
    \bsp
    \end{document}
    Wenn ich dein \bsp kommen bei mir ++ im Text (Überbleibsel von {\textwidth+\marginparsep+\marginparwidth} )
    Ich definiere mir mal eine eigene Länge.

    Wenn du jetzt mein Minimalbeispiel übersetzt, siehst du, das die Breite wirklich angepasst wird (\hrulefill füllt die minibox aus).
    Du willst aber zusätzlich eine Linksverschiebung auf ungeraden Seiten.

    Als Lösungsansatz:
    Code:
    \newlength{\fullwidth}
    \newcommand{\bsp}{
        -\hrulefill-
        Vorher\par
        \setlength{\fullwidth}{\textwidth}
        \addtolength{\fullwidth}{\marginparsep}
        \addtolength{\fullwidth}{\marginparwidth}
       \begin{list}{}{\textwidth=\fullwidth
                        \leftmargin=-\marginparwidth%Nur ungerade Seiten
                        }
       \item
               -\hrulefill-%Hier Inhalt
        \end{list}\par
        Nachher
    }
    Die Einstellung zu leftmargin sollte nur bei ungeraden Seiten sein. Das bekomme ich auf die schnelle nicht hin.

    Vielleicht hat da jemand eine Idee. ( In http://www.mrunix.de/forums/showthre...light=ungerade gab es zumindest keine Antwort).

    Ich hoffe du kannst den Faden hier aufnehmen oder jemand anders kann weiterhelfen.
    Wer Dokus lesen kann ist im Vorteil :D
    Das Forum hat eine Suchfunktion.
    FAQ: http://www.dante.de/faq/de-tex-faq/html/de-tex-faq.html
    Minimalbeispiel:http://www-users.rwth-aachen.de/Chri...mmer/mini.html

  5. #5
    Registrierter Benutzer
    Registriert seit
    23.09.2004
    Beiträge
    76
    Zitat Zitat von blubb
    Wenn ich dein \bsp kommen bei mir ++ im Text (Überbleibsel von {\textwidth+\marginparsep+\marginparwidth} )
    Sorry, hab das Package vergessen.
    Code:
    \usepackage{calc}

  6. #6
    Registrierter Benutzer
    Registriert seit
    23.09.2004
    Beiträge
    76

    Arrow \ifthispageodd-Anweisung

    Also, ich hab inzwischen herausgefunden, dass man die minipage mit dem Befehl \hspace{} verschieben kann.
    Code:
    \hspace{-50mm}
    Desweiteren kann man mit dem Befehl \ifthispageodd{}{} heraus bekommen, ob es sich um eine gerade oder ungerade Seite handelt. (Funktioniert auch im Makro.)
    Bsp.
    Code:
    \ifthispageodd{Ungerade}{Gerade}Seite
    Wenn ich beides kombinier funktioniert es beim ersten Auftreten in meinem Dokument (gerade Seine / links). Auf der darauffolgenden Seite (ungerade Seite / rechts) wird die minipage allerdings auch um -50mm verschoben.
    Akuteller Code:
    Code:
    \usepackage{calc}
    \usepackage{ifthen}
    
    \newcommand{\bsp}[1]{ 
       \par
       \vspace{5mm}
       \ifthispageodd{\hspace*{-50mm}}{\hspace*{0mm}}
       \begin{minipage}{\textwidth+\marginparsep+\marginparwidth}
          \ifthispageodd{Ungerade}{Gerade}Seite %nur zum Test
          \lstinputlisting[basicstyle=\ttfamily\footnotesize]{#1}
       \end{minipage}
       \vspace{5mm}	
    }

    Vielleicht weiß ja noch jemand was.

    Gute Nacht

  7. #7
    Registrierter Benutzer Avatar von blubb
    Registriert seit
    12.08.2004
    Beiträge
    862
    \ifthispageodd fehlte mir zur Lösung.
    Code:
    \documentclass[twoside,parskip]{scrartcl}
    \newlength{\fullwidth}
    \newcommand{\bsp}[1]{
    
        \setlength{\fullwidth}{\textwidth}
        \addtolength{\fullwidth}{\marginparsep}
    %    \addtolength{\fullwidth}{\marginparwidth}
       \begin{list}{}{\textwidth=\fullwidth
                    \ifthispageodd{
                        \leftmargin=-\marginparwidth%Nur ungerade Seiten
                    }{
    %                    \leftmargin=-\marginparwidth%Nur gerade Seiten
                    }
                }
       \item #1
        \end{list}\par
    }
    
    
    \begin{document}
    ungerade\hrulefill
    \bsp{-\hrulefill-}
    ungerade\hrulefill
    \clearpage
    gerade\hrulefill
    \bsp{-\hrulefill-}
    gerade\hrulefill
    \end{document}
    Die Breiten passen nicht, aber das grundprinzip stimmt glaub.

    Blubb

    Nachtrag:
    Ich verzichte hier auf eine Minibox, d.h. es ist ein Seitenumbruch innerhalb des Textes möglich. Falls das explizit verhindert werdn soll. musst du noch eine minibox um die "Liste" machen.
    Geändert von blubb (08-12-2004 um 08:22 Uhr)
    Wer Dokus lesen kann ist im Vorteil :D
    Das Forum hat eine Suchfunktion.
    FAQ: http://www.dante.de/faq/de-tex-faq/html/de-tex-faq.html
    Minimalbeispiel:http://www-users.rwth-aachen.de/Chri...mmer/mini.html

  8. #8
    Registrierter Benutzer
    Registriert seit
    23.09.2004
    Beiträge
    76

    :-))))

    Ok, ich habs. Danke dir.

    Nur das mit den Listenerklärungen hat bei mir nicht geklappt. Ich habe es halt mit festen Werten eingerichtet, ist zwar nicht so fein, aber was keiner sieht...

    Hier mein (endgültige) Lösung:
    Code:
    \newcommand{\bsp}[1]{
       \begin{list}{}{\ifthispageodd{\rightmargin=-40mm \leftmargin=5mm}{\leftmargin=-40mm}}
       \item \lstinputlisting[basicstyle=\ttfamily\footnotesize]{#1}
        \end{list}\par
    }

  9. #9
    Registrierter Benutzer
    Registriert seit
    09.07.2004
    Beiträge
    2.365
    Lösung ohne minipage ... Vielleicht kannst du dies auf deine Belange adaptieren.
    \documentclass{scrbook}
    \usepackage{blindtext}
    %--- macro Texterweiterung -------------------------------------------
    \newenvironment{myQuote}[2]% % odd pages
    {\begin{list}{}{\leftmargin#1\rightmargin#2}\item{ }}%
    {\end{list}}
    %---------------------------------------------------------------------
    ...
    \begin{myQuote}{-3cm}{0cm}
    \blindtext[1]
    \end{myQuote}
    ...
    edico
    Geändert von edico (09-12-2004 um 11:35 Uhr)

Lesezeichen

Berechtigungen

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