Discussion:
sidewaysfigure im Fließtext
(zu alt für eine Antwort)
Susanne Wunsch
2010-05-11 06:39:12 UTC
Permalink
Hallo,

ich möchte eine gedrehte Abbildung mit gedrehter Bildunterschrift, die
keine ganze Seite beansprucht.

Ich hänge ein Beispiel mit den von mir getesteten Varianten an.

1. Abschnitt: landscape-Umgebung klappt gut, benötigt allerdings zwei
Seiten

2. Abschnitt: sidewaysfigure-Umgebung funktioniert auch, benötigt
ebenfalls zwei Seiten

3. Abschnitt: figure und sideways funktioniert auf einer Seite,
allerdings fehlt die Drehung der caption

4. Abschnitt: figure und sideways mit rotcaption funktioniert gar nicht,
die caption wird neben statt unter die Abbildung gesetzt

Was habe ich übersehen?

-- Beispiel ---------------------------------------------------------
\listfiles
\documentclass{article}

\usepackage{pdflscape}
\usepackage{rotating}

\begin{document}

\section{Test mit lscape (landscape)}

\begin{landscape}
\begin{figure}
\rule{\linewidth}{\textheight}
\caption{Abbildung mit landscape}
\end{figure}
\end{landscape}

\pagebreak
\section{Test mit rotating (sidewaysfigure)}

\begin{sidewaysfigure}
\rule{\linewidth}{\textheight}
\caption{Abbildung mit sidewaysfigure}
\end{sidewaysfigure}

\pagebreak
\section{Test mit rotating (sideways)}

\begin{figure}[htb]
\begin{sideways}
\rule{.7\textheight}{.7\linewidth}
\end{sideways}
\caption{Abbildung mit sideways und caption}
\end{figure}

\pagebreak
\section{Test mit rotating (sideways)}

\begin{figure}[htb]
\begin{sideways}
\rule{.7\textheight}{.7\linewidth}
\end{sideways}
\rotcaption{Abbildung mit sideways und rotcaption}
\end{figure}
\end{document}

-- File List -------------------------------------------------------
article.cls 2004/02/16 v1.4f Standard LaTeX document class
size10.clo 2004/02/16 v1.4f Standard LaTeX file (size option)
pdflscape.sty 2008/08/11 v0.10 Landscape pages in PDF (HO)
lscape.sty 2000/10/22 v3.01 Landscape Pages (DPC)
graphics.sty 2006/02/20 v1.0o Standard LaTeX Graphics (DPC,SPQR)
trig.sty 1999/03/16 v1.09 sin cos tan (DPC)
graphics.cfg 2005/02/03 v1.3 graphics configuration of teTeX/TeXLive
pdftex.def 2002/06/19 v0.03k graphics/color for pdftex
ifpdf.sty 2010/01/28 v2.1 Provides the ifpdf switch (HO)
ifxetex.sty 2009/01/23 v0.5 Provides ifxetex conditional
rotating.sty 2009/03/28 v2.16a rotated objects in LaTeX
graphicx.sty 1999/02/16 v1.0f Enhanced LaTeX Graphics (DPC,SPQR)
keyval.sty 1999/03/16 v1.13 key=value parser (DPC)
ifthen.sty 2001/05/26 v1.1c Standard LaTeX ifthen package (DPC)
supp-pdf.tex
----------------------------------------------------------------------

Liebe Grüße...
Susanne
Uwe Siart
2010-05-11 07:44:59 UTC
Permalink
Post by Susanne Wunsch
ich möchte eine gedrehte Abbildung mit gedrehter Bildunterschrift, die
keine ganze Seite beansprucht.
Alle Lösungen mit gedrehter Unterschrift, die ich kenne, beginnen eine
neue Seite. Und das aus gutem Grund, wie ich finde. Es ist typografisch
sehr fragwürdig, auf einer Seite zwei verschiedene Schreibrichtungen zu
haben. Du willst vermutlich auf der selben Seite eine waagerechte
Überschrift und darunter eine gedrehte Bildunterschrift. Der Leser kann
also diese Seite nicht in einer einzigen Lage als Ganzes betrachten.
Mein Rat wäre, dieses Vorhaben grundsätzlich fallen zu lassen. Aber
vielleicht kann ja jemand was stricken, wenn du es unbedingt haben
willst.
--
Uwe
Susanne Wunsch
2010-05-11 08:35:42 UTC
Permalink
Hallo Uwe
Post by Uwe Siart
Post by Susanne Wunsch
ich möchte eine gedrehte Abbildung mit gedrehter Bildunterschrift, die
keine ganze Seite beansprucht.
Alle Lösungen mit gedrehter Unterschrift, die ich kenne, beginnen eine
neue Seite. Und das aus gutem Grund, wie ich finde. Es ist typografisch
sehr fragwürdig, auf einer Seite zwei verschiedene Schreibrichtungen zu
haben. Du willst vermutlich auf der selben Seite eine waagerechte
Überschrift und darunter eine gedrehte Bildunterschrift. Der Leser kann
also diese Seite nicht in einer einzigen Lage als Ganzes betrachten.
Danke für Deine Anmerkungen.

Ich habe einen Anhang der große Bilder enthält, nämlich die
ganzseitigen.

Wenn ich diese Bilder mit landscape-Umgebung im Text einbaue, dann
fließt der Text nicht einfach weiter, sondern hört am Bild mit viel
weißem Anteil auf, dann kommt die Seite mit dem gedrehten Bild, dann
fließt der Text weiter. Der Vorteil dieser Umgebung ist das Drehen des
Blattes im PDF-Viewer.

Also setze ich diese Bilder gesammelt in den Anhang. Dort gibt es die
Überschrift \chapter{Abbildungen}, der Rest der Seite bleibt weiß, dann
kommen die Abbildungen auf einzelnen Seiten.

Diese fast weiße Seite wollte ich nun unterbinden, indem ich die erste
der Abbildungen etwas kleiner auf die Seite zusammen mit der Überschrift
setze. Die Abbildung bleibt trotz allem gedreht, so dass die gedrehte
Caption das kleinere Übel ist. Man muss die Seite ohnehin in zwei
Richtungen lesen. Ich finde den Anblick hässlich, wenn die caption nun
gerade ist und die Abbildung einen Großteil des Querformats ausfüllt.

Wofür ist denn sonst sideways da, wenn nicht für zwei Leserichtungen
einer Seite?

Vielleicht kann man ja den landscape-Ansatz im Text weiterführen und
diese Umgebung überreden, den Textfluss nicht zu unterbrechen?

Hast Du dafür vielleicht einen Hinweis?

Liebe Grüße...
Susanne
Uwe Siart
2010-05-11 09:35:10 UTC
Permalink
Post by Susanne Wunsch
Hast Du dafür vielleicht einen Hinweis?
Tut mir leid, keine Idee. Hab jetzt probiert, auf den Float zu
verzichten und das Paket 'capt-of' zu verwenden:

\documentclass{article}
\usepackage{rotating}
\usepackage{capt-of}
\begin{document}
\begin{flushright}
\begin{sideways}
\rule{4cm}{6cm}
\captionof{figure}{Rotated caption}
\end{sideways}
\end{flushright}
\end{document}

Das MB wirft aber einen Fehler über eine forgotten \endgroup. Die
{sideways}-Umgebung (und auch {turn}) ist da wohl ein bisschen
störrisch. Wenn man das \captionof herausholt und nur in {flushright}
gibt, funktioniert das MB, liefert aber natürlich nicht das gewünschte
Ergebnis.
--
Uwe
Susanne Wunsch
2010-05-11 09:54:04 UTC
Permalink
Hallo Uwe,

danke fürs Probieren.
Post by Uwe Siart
Tut mir leid, keine Idee. Hab jetzt probiert, auf den Float zu
\documentclass{article}
\usepackage{rotating}
\usepackage{capt-of}
\begin{document}
\begin{flushright}
\begin{sideways}
\rule{4cm}{6cm}
\captionof{figure}{Rotated caption}
\end{sideways}
\end{flushright}
\end{document}
Das MB wirft aber einen Fehler über eine forgotten \endgroup. Die
{sideways}-Umgebung (und auch {turn}) ist da wohl ein bisschen
störrisch. Wenn man das \captionof herausholt und nur in {flushright}
gibt, funktioniert das MB, liefert aber natürlich nicht das gewünschte
Ergebnis.
Das kommt offensichtlich aufs Gleiche raus, wie mein Ergebnis mit figure
und sideways. Dort darf ich aus gleichem Grund keine caption in die
sideways-Umgebung setzen. Sonst wäre ich dort schon zufrieden gewesen.

Der harte Bruch im Textfluss mit landscape ist offensichtlich
gewollt. :-(

Liebe Grüße...
Susanne
Rolf Niepraschk
2010-05-11 09:47:45 UTC
Permalink
Wie wär's in dieser Art?

\listfiles
\setcounter{errorcontextlines}{100}
\documentclass{article}
\usepackage{graphicx,caption}

\begin{document}

\noindent\rotatebox{90}{%
\begin{minipage}[t][.99\textwidth]{.99\textheight}%
\centering
\rule{6cm}{4cm}
\captionof{figure}{Rotated caption}
\end{minipage}
}

\end{document}

Wenn man Lust hätte, könnte man noch einbauen, dass die "90" zu "-90"
wird, je nach dem, ob es eine gerade oder ungerade Seite ist.

...Rolf
Susanne Wunsch
2010-05-11 10:18:42 UTC
Permalink
Hallo Rolf,

danke für den Vorschlag.
Post by Rolf Niepraschk
Wie wär's in dieser Art?
\listfiles
\setcounter{errorcontextlines}{100}
\documentclass{article}
\usepackage{graphicx,caption}
\begin{document}
\noindent\rotatebox{90}{%
\begin{minipage}[t][.99\textwidth]{.99\textheight}%
\centering
\rule{6cm}{4cm}
\captionof{figure}{Rotated caption}
\end{minipage}
}
\end{document}
Ich sehe daran, dass es mit den von mir probierten Mitteln tatsächlich
nicht möglich war.

Deine Variante funktioniert prima.

Beim Ausprobieren habe ich trotz allem festgestellt, dass die Variante
mit automatischen Drehen des Blattes im PDF-Reader das Optimum wäre, die
dabei gedrehten Kopf- und Fußzeilen stören nicht, auch mit der gedrehten
Überschrift könnte ich leben.

Lässt sich eine Seite für den PDF-Reader als gedreht markieren, ohne
'landscape' zu benutzen?

Oder die andere Variante, kann man 'landscape' abgewöhnen, den Textfluss
zu unterbrechen?
Post by Rolf Niepraschk
Wenn man Lust hätte, könnte man noch einbauen, dass die "90" zu "-90"
wird, je nach dem, ob es eine gerade oder ungerade Seite ist.
Ne, lieber nicht anpassen, es folgen mehrere Querformat-Abbildungen,
dann müsste man die Arbeit ständig drehen. ;-)

Liebe Grüße...
Susanne
Rolf Niepraschk
2010-05-11 14:29:09 UTC
Permalink
Am 11.05.2010 12:18, schrieb Susanne Wunsch:
...
Post by Susanne Wunsch
Ich sehe daran, dass es mit den von mir probierten Mitteln tatsächlich
nicht möglich war.
Deine Variante funktioniert prima.
Beim Ausprobieren habe ich trotz allem festgestellt, dass die Variante
mit automatischen Drehen des Blattes im PDF-Reader das Optimum wäre, die
dabei gedrehten Kopf- und Fußzeilen stören nicht, auch mit der gedrehten
Überschrift könnte ich leben.
Lässt sich eine Seite für den PDF-Reader als gedreht markieren, ohne
'landscape' zu benutzen?
...

Meinst Du so?

%---------------------------------------------------
\listfiles
\documentclass[fontsize=11pt,paper=a4,pagesize]{scrbook}
\usepackage[ngerman]{babel}

\usepackage{blindtext}
\usepackage{showframe}

\usepackage{graphicx,pdflscape,environ}

\makeatletter
\NewEnviron{pFigure}[1][90]{%
\newpage
\noindent\***@Rotate{#1}%
\rotatebox{#1}{%
\parbox[c][\textwidth]{\textheight}{%
\def\@captype{figure}\BODY}}%
\newpage\***@Rotate{0}%
}
\makeatother

\begin{document}

\blindtext

\begin{pFigure}
\centering
\rule{12cm}{8cm}
\caption{Rotated caption}
\end{pFigure}

\begin{pFigure}[-90]
\centering
\rule{12cm}{8cm}
\caption{Rotated caption}
\end{pFigure}

\blindtext

\end{document}
%---------------------------------------------------

...Rolf
Rolf Niepraschk
2010-05-11 14:47:28 UTC
Permalink
Noch eine Änderung:

\NewEnviron{pFigure}[1][]{%
\newpage
\ifx\\#1\\%
\ifodd\***@page
\def\@tempa{90}%
\else
\def\@tempa{-90}%
\fi
\else
\def\@tempa{#1}%
\fi
\noindent\***@Rotate{\@tempa}%
\rotatebox{\@tempa}{%
\parbox[c][\textwidth]{\textheight}{%
\def\@captype{figure}\BODY}}%
\newpage\***@Rotate{0}%
}

So wird die Seite automatisch je nach ungerader und gerader Nummerierung
gedreht. Die übliche Forderung, dass Beschriftungen zur Außenseite hin
zeigen sollen (wenn ich nicht irre), bleibt so erhalten. Soll es
trotzdem anders sein, kann man auch weiterhin den Winkel ("90" oder
"-90") angeben.

...Rolf
Rolf Niepraschk
2010-05-11 14:59:01 UTC
Permalink
Das kommt davon, wenn man zu schnell abschickt. Vorerst die letzte
Änderung. Funktioniert nun auch für den oneside-Fall und noch mal
komplettes Beispiel:
%-------------------------------------------------------
\listfiles
\documentclass[fontsize=11pt,paper=a4,pagesize]{scrbook}
\usepackage[ngerman]{babel}

\usepackage{blindtext}
\usepackage{showframe}

\usepackage{graphicx,pdflscape,environ}

\makeatletter
\NewEnviron{pFigure}[1][]{%
\newpage
\ifx\\#1\\%
\def\@tempa{90}%
\***@twoside
\ifodd\***@page\else
\def\@tempa{-90}%
\fi
\fi
\else
\def\@tempa{#1}%
\fi
\noindent\***@Rotate{\@tempa}%
\rotatebox{\@tempa}{%
\parbox[c][\textwidth]{\textheight}{%
\def\@captype{figure}\BODY}}%
\newpage\***@Rotate{0}%
}
\makeatother

\begin{document}

\blindtext

\begin{pFigure}
\centering
\rule{12cm}{8cm}
\caption{Rotated caption}
\end{pFigure}

\begin{pFigure}
\centering
\rule{12cm}{8cm}
\caption{Rotated caption}
\end{pFigure}

\blindtext

\end{document}
%-------------------------------------------------------

...Rolf
Susanne Wunsch
2010-05-11 15:39:36 UTC
Permalink
Hallo Rolf,

danke für das Beispiel.

Ich habe es kompiliert, das Ergebnis ist augenscheinlich das Gleiche wie
mit der landscape-Umgebung (im pdflscape-Paket): Die gedrehte Abbildung
wird auf eine eigene Seite gesetzt und diese Seite gedreht
dargestellt. Leider wird dort auch der Text unterbrochen und fließt
nicht weiter. Offensichtlich sehe ich den Unterschied nicht.

Wäre es möglich, dass der zweite 'Blindtext' mit auf der ersten Seite
angezeigt wird, statt nach der zweiten Abbildung zu erscheinen? Dort ist
doch noch genügend Platz. Ich würde die ganzseitigen Abbildungen gern
"gleiten" lassen.

Ich möchte,

* entweder die gedrehte Abbildung zusammen mit (ebenfalls gedrehter)
Caption auf einer eigenen Seite, die gedreht angezeigt wird und den
Textfluss nicht unterbricht.

* oder die gedrehte Abbildung zusammen mit (ebenfalls gedrehter) Caption
und einer (nicht gedrehten) Gliederungsüberschrift (chapter) auf einer
Seite, die gedreht angezeigt wird.

Ich weiß, dass klingt sehr verwirrend. Im oberen Fall, kann ich die
Abbildung in den Textteil setzen, im unteren Fall kommt sie in den
Anhang.

Danke nochmal, für jegliche Tipps.

Liebe Grüße...
Susanne
Rolf Niepraschk
2010-05-11 18:41:41 UTC
Permalink
Am 11.05.2010 17:39, schrieb Susanne Wunsch:
...
Post by Susanne Wunsch
Ich möchte,
* entweder die gedrehte Abbildung zusammen mit (ebenfalls gedrehter)
Caption auf einer eigenen Seite, die gedreht angezeigt wird und den
Textfluss nicht unterbricht.
* oder die gedrehte Abbildung zusammen mit (ebenfalls gedrehter) Caption
und einer (nicht gedrehten) Gliederungsüberschrift (chapter) auf einer
Seite, die gedreht angezeigt wird.
Ich weiß, dass klingt sehr verwirrend. Im oberen Fall, kann ich die
Abbildung in den Textteil setzen, im unteren Fall kommt sie in den
Anhang.
...
Ich bin manchmal ein wenig begriffsstutzig ;-) Machen wir einen neuen
Versuch. Jetzt gleitet die Umgebung hoffentlich so, wie Du es Dir
vorgestellt hast. Das Drehen im pdf-Viewer habe jetzt allerdings nicht
mehr hinbekommen. Gleitende Sachen sind etwas schwer zu fassen.
Vielleicht fällt mir noch was dazu ein (vielleicht auch einem anderen
guten Geist...).
%----------------------------------------------------------------
\listfiles
\documentclass[fontsize=11pt,paper=a4,pagesize]{scrbook}
\usepackage[ngerman]{babel}

\usepackage{blindtext}
\usepackage{showframe}

\usepackage{graphicx,pdflscape,environ}

\makeatletter

\NewEnviron{***@text@area}[1]{%
\ifx\\#1\\%
\def\@tempa{90}%
\***@twoside
\ifthispageodd{}{\def\@tempa{-90}}%
\fi
\else
\def\@tempa{#1}%
\fi
\rotatebox{\@tempa}{%
\parbox[c][\textwidth]{\textheight}{%
\def\@captype{figure}\BODY}}%
}

\newenvironment{pFigure}[1][]{%
\@float{figure}[p]%
\***@text@area{#1}%
}{%
\***@text@area
\***@float
}

\makeatother

\begin{document}

\blindtext\blindtext\blindtext
%
\begin{pFigure}
\centering
\rule{12cm}{8cm}
\caption{Rotated caption}
\end{pFigure}
%
\blindtext\blindtext\blindtext

\end{document}
%----------------------------------------------------------------

...Rolf
Susanne Wunsch
2010-05-11 19:10:08 UTC
Permalink
Hallo Rolf,
Post by Rolf Niepraschk
Jetzt gleitet die Umgebung hoffentlich so, wie Du es Dir
vorgestellt hast. Das Drehen im pdf-Viewer habe jetzt allerdings nicht
mehr hinbekommen. Gleitende Sachen sind etwas schwer zu fassen.
Vielleicht fällt mir noch was dazu ein (vielleicht auch einem anderen
guten Geist...).
Dankeschön. Es ist genau das, was ich ursprünglich suchte. :-)

Das Drehen im pdf-Viewer ist eher der Bonus, es liest sich halt
schöner. ;-)

Liebe Grüße...
Susanne
Rolf Niepraschk
2010-05-16 20:14:08 UTC
Permalink
Am 11.05.2010 21:10, schrieb Susanne Wunsch:
...
Post by Susanne Wunsch
Dankeschön. Es ist genau das, was ich ursprünglich suchte. :-)
Das Drehen im pdf-Viewer ist eher der Bonus, es liest sich halt
schöner. ;-)
Anbei nun eine Variante mit Bonus.

...Rolf

\listfiles
\documentclass[fontsize=11pt,paper=a4,twoside,pagesize]{scrbook}
\usepackage[ngerman]{babel}

\usepackage{blindtext}
\usepackage{showframe}
\usepackage{atbegshi,zref-abspage,pdflscape,environ,graphicx}

\makeatletter

\***@require@unique
\newif\***@Reset \***@Resetfalse

\AtBeginShipout{%
\@tempcnta=\***@abspage
\@tempswafalse
\loop\ifnum\@tempcnta>0 %
\ifnum\***@extract{zref@\the\@tempcnta ROT}{abspage}=\***@abspage
\@tempcnta=1 \@tempswatrue
\fi
\advance\@tempcnta\***@ne
\repeat
\***@tempswa
\def\@tempa{90}%
\***@twoside
\ifodd\***@abspage\else
\def\@tempa{-90}%
\fi
\fi
\***@Rotate{\@tempa}%
\global\***@Resettrue
\else
\***@Reset
\***@Rotate{0}%
\global\***@Resetfalse
\fi
\fi
}

\NewEnviron{***@text@area}{%
\global\advance\***@zref@unique\***@one
\***@labelbyprops{\***@unique ROT}{abspage}%
\def\@tempa{90}%
\***@twoside
\ifodd\***@extract{\***@unique ROT}{abspage}\else
\def\@tempa{-90}%
\fi
\fi
\rotatebox{\@tempa}{%
\parbox[c][\textwidth]{\textheight}{%
\def\@captype{figure}\BODY}}%
}

\newenvironment{pFigure}{%
\@float{figure}[p]%
\***@text@area
}{%
\***@text@area
\***@float
}

\makeatother

\begin{document}

\blindtext\blindtext\blindtext
%
\begin{pFigure}
\centering
\rule{12cm}{8cm}
\caption{Rotated caption}
\end{pFigure}
%
\begin{pFigure}
\centering
\rule{12cm}{8cm}
\caption{Rotated caption}
\end{pFigure}
%
\blindtext\blindtext\blindtext

\end{document}
%----------------------------------------------------------------
Susanne Wunsch
2010-05-19 06:14:07 UTC
Permalink
Hallo Rolf,
Post by Rolf Niepraschk
Anbei nun eine Variante mit Bonus.
ich verstehe von den Zielen leider sehr wenig, aber es funktioniert
super.

Vielen Dank, es kam gerade noch rechtzeitig, so dass ich den Code
einfach in die Präambel meiner Diplomarbeit setzen konnte und die
entsprechenden Seiten nun super lesbar sind.

Wäre das evtl. eine Erweiterung im pdflscape Paket wert?

Liebe Grüße...
Susanne
Rolf Niepraschk
2010-05-19 15:47:29 UTC
Permalink
Post by Susanne Wunsch
Hallo Rolf,
Post by Rolf Niepraschk
Anbei nun eine Variante mit Bonus.
ich verstehe von den Zielen leider sehr wenig, aber es funktioniert
super.
Vielen Dank, es kam gerade noch rechtzeitig, so dass ich den Code
einfach in die Präambel meiner Diplomarbeit setzen konnte und die
entsprechenden Seiten nun super lesbar sind.
Wäre das evtl. eine Erweiterung im pdflscape Paket wert?
...
Die Frage wäre an an den Autor von "pdflscape" zu richten...

...Rolf

Loading...