Archiv verlassen und diese Seite im Standarddesign anzeigen : minipage verschieben
Hallo,
ich habe eine Minipage definiert mit "Überbreite" definiert.
\begin{minipage}{\textwidth+\marginparsep+\marginp arwidth}
... 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?
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
Ja richtig, twoside. Oneside reicht mir leider nicht.
\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
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
Ahhhh,
ok, das war mir jetzt zwar kein Minimalbeispiel, aber ich hab glaub das Problem:
Mein Minimalbeispiel:
\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:
\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/showthread.php?t=33943&highlight=ungerade gab es zumindest keine Antwort).
Ich hoffe du kannst den Faden hier aufnehmen oder jemand anders kann weiterhelfen.
Wenn ich dein \bsp kommen bei mir ++ im Text (Überbleibsel von {\textwidth+\marginparsep+\marginparwidth} )
Sorry, hab das Package vergessen.
\usepackage{calc}
Also, ich hab inzwischen herausgefunden, dass man die minipage mit dem Befehl \hspace{} verschieben kann.
\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.
\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:
\usepackage{calc}
\usepackage{ifthen}
\newcommand{\bsp}[1]{
\par
\vspace{5mm}
\ifthispageodd{\hspace*{-50mm}}{\hspace*{0mm}}
\begin{minipage}{\textwidth+\marginparsep+\marginp arwidth}
\ifthispageodd{Ungerade}{Gerade}Seite %nur zum Test
\lstinputlisting[basicstyle=\ttfamily\footnotesize]{#1}
\end{minipage}
\vspace{5mm}
}
Vielleicht weiß ja noch jemand was.
Gute Nacht
\ifthispageodd fehlte mir zur Lösung.
\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.
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:
\newcommand{\bsp}[1]{
\begin{list}{}{\ifthispageodd{\rightmargin=-40mm \leftmargin=5mm}{\leftmargin=-40mm}}
\item \lstinputlisting[basicstyle=\ttfamily\footnotesize]{#1}
\end{list}\par
}
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
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.