Grafiken bevorzugt auf der linken Seite setzen

Tabellen und Grafiken erstellen und anordnen


mybuechse
Forum-Anfänger
Forum-Anfänger
Beiträge: 36
Registriert: Mi 21. Apr 2010, 14:45

Grafiken bevorzugt auf der linken Seite setzen

Beitrag von mybuechse »

Hallo,

ich habe eine Frage: Kann ich es irgendwie erreichen, dass eine Grafik bei einem zweiseitigen Dokument bevorzugt links ausgegeben wird?
zum Hintergrund: ich habe einige ganzseitige Grafiken und finde, man kann auf der rechten Seite einfach etwas besser lesen. daher würde ich die Grafiken lieber auf der linken Seite positionieren.

Grüße

mybuechse

Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2958
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Beitrag von KOMA »

Wenn Du die ganzseitigen Abbildungen nicht als Gleitumgebungen setzt, kannst Du das mit dem afterpage-Paket lösen. Etwas in der Art (ungetestet):
\newcommand{\afteroddpage}[1]{%
  \afterpage{\clearpage\ifodd\value{page}\afterpage{#1}\else #1\fi}%
...
\afteroddpage{%
  \includegraphics{Bild}\clearpage
}
Eigentlich müsste man etwas wie \ifthispageodd (KOMA-Script-Anweisung) verwenden. In dem speziellen Fall geht es aber auch mit \ifodd\value{page}.

mybuechse
Forum-Anfänger
Forum-Anfänger
Beiträge: 36
Registriert: Mi 21. Apr 2010, 14:45

Beitrag von mybuechse »

Hi,

Besten Dank.
\newcommand{\afteroddpage}[1]{%
  \afterpage{\clearpage\ifodd\value{page}\afterpage{#1}\else #1\fi}}%
Bis auf die Tatsache, dass eine Klammer am Ende gefehlt hat :wink: funktioniert das schon mal. Leider würde ich die Gleitumgebung viel zu sehr vermissen. Ich benutze übrigens KOMA Script. Ich nehme an selbst da gibt es keine Möglichkeit eine Umgebung auf eine gerade Seite gleiten zu lassen.

Grüße

mybuechse

mybuechse
Forum-Anfänger
Forum-Anfänger
Beiträge: 36
Registriert: Mi 21. Apr 2010, 14:45

Beitrag von mybuechse »

Die idee nicht nach Bildern sondern nach Float umgebungen zu suchen hat den Erfolg gebracht mit dem Package dpfloat kann man das angeben.
Eigentlich ist es wohl gedacht um eine Doppelseite zur Darstellung einer zweiseitigen Grafik zu benutzen, aber man kann auch nur eine linksseitige Grafik darstellen.
\usepackage{dpfloat}%

\begin{figure}[p]%
  \begin{leftfullpage}%
    \includegraphics{...}%
  \end{leftfulllpage}%
\end{figure}%
Was das für Seiteneffekte haben mag, habe ich noch nicht untersucht. Und es bietet sich wohl nur für Vollbild Grafiken an, aber das war eh Sinn und Zweck der aktion.

Besten Dank für die Erleuchtung

mybuechse

Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2958
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Beitrag von KOMA »

mybuechse hat geschrieben:Leider würde ich die Gleitumgebung viel zu sehr vermissen. Ich benutze übrigens KOMA Script. Ich nehme an selbst da gibt es keine Möglichkeit eine Umgebung auf eine gerade Seite gleiten zu lassen.
Mit dem Beispielcode gleitet das bereits, nämlich auf die nächste gerade Seite (wenn man das \clearpage bei Anwendung der neuen Anweisung entfernt, kann sogar noch Text mit auf der Seite stehen). Und da Du KOMA-Script verwendest hast Du \captionof{figure}[LOF-Eintrag]{Bildunterschrift}, um eine Bildunterschrift dazu zu bekommen.

Das Paket dpfloat hängt sich übrigens schlicht in das Ende der float-Umgebung und in die float-Ausgabe ein. Einziger mir bekannter Nachteil des Pakets ist, dass es nicht mit dem KOMA-Script-Feature zurecht kommt, dass man noch nach dem Laden der Klasse twoside umschalten kann. Ob es mit Paketen wie float oder floatrow funktioniert, kann ich ohne nähere Begutachtung nicht sagen.

mybuechse
Forum-Anfänger
Forum-Anfänger
Beiträge: 36
Registriert: Mi 21. Apr 2010, 14:45

Beitrag von mybuechse »

Ja das Objekt mag ja auf die nächste freie Seite gleiten, aber "es rückt kein Text nach" also sprich vor dem Objekt ist beispielsweise eine halbe Seite frei.
Nebenbei bemerkt hat das sogar den positiven effekt, dass ich beispielsweise die Beschreibung rechts stehen lassen kann. Ich denke ich werde teils teils arbeiten.
Ich habe das KOMA Buch noch nicht ganz gelesen, daher benutze ich bisher noch nicht captionof.

Grüße
mybuechse

Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2958
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Beitrag von KOMA »

Du hast offenbar die Funktion von afterpage nicht verstanden. Selbstverständlich rückt Text nach, wie ein einfacher kleiner Test zeigt:
\documentclass[twoside]{scrartcl}
\usepackage[ngerman]{babel}
\usepackage{blindtext}
\usepackage{afterpage}
\newcommand{\afteroddpage}[1]{%
  \afterpage{%
    \clearpage% alle Gleitobjekte ausgeben
    \ifodd\value{page}% Wenn dies eine ungerade Seite ist
      \afteroddpage{#1}% probieren wir es noch einmal
    \else% Wenn das eine gerade Seite ist
      #1% geben wir das Material aus
    \fi
  }%
}

\begin{document}
\blindtext

\afteroddpage{%
  \begin{center}% In dem Fall will ich den zusätzlichen vertikalen Abstand.
    \rule{.5\textwidth}{.5\textheight}
    \captionof{figure}{Die erste Testabbildung}
  \end{center}
}

Dieser Text rutscht nach: \blindtext[5]

\afteroddpage{%
    \centering% Jetzt will ich keinen zusätzlichen vertikalen Abstand.
    \rule{.5\textwidth}{.5\textheight}
    \captionof{figure}{Die zweite Testabbildung}
    \newpage
}

Und auch dieser Text rutscht nach: \blindtext[5]

\end{document}
Die erste Abbildung zeigt dabei die Version, bei der auch noch Text auf der Seite mit der Abbildung steht, während die zweite Abbildung in der Form realisiert ist, dass eine reine Abbildungsseite erzeugt wird. Natürlich kann man in dem Fall auch noch Dinge wie \vspace*{\fill} hinzufügen, falls man eine vertikal zentrierte Abbildungsseite haben will. Man kann auch ein \newpage zwischen Abbildung und \captionof setzen. Theoretisch könnte man sogar eine ganz normale \begin{figure}...\end{figure}\clearpage innerhalb von \afteroddpage oder \afterpage verwenden (AFAIR wird das so sogar in der Anleitung zu afterpage gezeigt). Will man dann Abbildung und Bildunterschrift trennen muss man aber zweimal zu figure greifen. Deshalb bevorzuge ich die Lösung mit \captionof.

mybuechse
Forum-Anfänger
Forum-Anfänger
Beiträge: 36
Registriert: Mi 21. Apr 2010, 14:45

Beitrag von mybuechse »

Stimmt wenn ich es jetzt teste, dann rückt der Text nach.
Vermutlich lag es an etwas anderem. Leider habe ich das Beispiel gerade nicht zur Hand, aber afterpage hatte ich wirklich nicht gekannt.
Nochmal eine Frage:
Ich bin mit Latex ja noch recht neu. Zudem tue ich mir mit der Syntax etc. noch ein wenig schwer, da ich anderes gewohnt bin.
Was genau passiert eigentlich in diesem Codebeispiel anderes als bei einer figure umgebung? Also vom Ergebnis. Mit ausnahme, dass die Grafik immer links steht?
Ich versuch es einfach nur besser zu verstehen.
könnte ich auch statt
\begin{figure}
  \begin{center}
    \caption{Tolle Grafik}
    \includegraphics{tollegrafik}
  \end{center}
\end{figure}
einen Ähnlichen Code wie den von dir etwa so verwenden:
\begin{center}
  \includegraphics{tollegrafik}
  \captionof{figure}{Tolle Grafik}
\end{center}
Sorry ich glaub ich steh grad so ein wenig auf dem Schlauch, aber ich versuchs einfach besser zu verstehen.

grüße
mybuechse

Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2958
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Beitrag von KOMA »

Eine center-Umgebung gleitet nicht. Das gleiten besorgt die figure-Umgebung bzw. die \afterpage-Anweisung, wobei die \afterpage-Anweisung eben nur bis nach der Ausgabe der aktuellen Seite(n) gleiten kann, während Gleitumgebungen wie figure und table sehr viel flexibler gleiten und sich beispielsweise auch gegenseitig überholen können.

BTW: Du solltest keine center-Umgebung innerhalb einer figure- oder table-Umgebung verwenden, weil center als verkappte Listenumgebung immer zusätzlichen vertikalen Abstand einfügt. Im \afterpage-Beispiel will ich diesen zusätzlichen Abstand explizit haben, damit der Text auf der Seite nicht direkt unter der Bildunterschrift klebt. Im Normalfall will man diesen zusätzlichen Abstand nicht haben, weil figure und table bereits ihrerseits einen vertikalen Abstand einfügen. Die Abstände würden sich addieren.

mybuechse
Forum-Anfänger
Forum-Anfänger
Beiträge: 36
Registriert: Mi 21. Apr 2010, 14:45

Beitrag von mybuechse »

Ok vielen Dank. So langsam verstehe ich es glaube ich.
Vereinfacht passiert also folgendes: Wir warten ab bis die Seite zuende ist und wenn es eine "gerade" seite ist, zwingen wir ihn die Grafik auszugeben. Sonst warten wir auf die nächste "neue" Seite.
Das Problem wäre, wenn wir das Bild dann noch gleiten lassen, könnte es eventuell sein, es dann nicht auf eben jener Seite steht.

Gut hervorragend. Ich bin glücklich :D

mybuechse

Antworten