PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Probleme mit "sidewaysfigure"



Roughnegs
20-03-2013, 19:21
Hallo zusammen,

ich habe im Anhang meiner Masterarbeit XML-Code, der sehr verschachtelt ist und daher nur im Querformat vernünftig angezeigt werden kann - daher verwende ich "\begin{sidewaysfigure} .... \end{sidewaysfigure}". Ich Arbeite in LyX und habe den TeX Code selbst eingefügt, da ich den XML-Code auch noch durch ein Syntax Highlightning jage.. (Daher ist ein Minimalbeispiel schwierig, ganz unten wage ich aber eine kleine Zusammenfassung...)

Jedenfalls habe ich jetzt das folgende Problem:

Ich muss bereits vor der Überschrift im Anhang - z.B. "A.5 XML-Schema" den TeX Code "\begin{sidewaysfigure}" einfügen, da sonst die Abschnittsüberschrift normal im Hochformat gedruckt wird und erst auf der nächsten Seite das Querformat mit dem XML-Code beginnt.

Soweit so gut - problematisch ist jetzt nur, dass durch das Setzen der "\begin{side...} VOR der Überschrift ("A.5 XML-Schema") die Kopfzeilenbeschriftung des vorherigen Abschnitts auch für diesen verwendet wird. Das bedeutet, dass in der Kopfzeile immer "A.4 ...." steht und erst im nächsten Abschnitt wieder gewechselt wird, dann logischerweise auf "A.6 ...".

Hier der LaTeX Code, den mir LyX ausgibt: ("minted" kann der Einfachheithalber auch weggelassen werden...)



\begin{sidewaysfigure}
\section{\labelXML-Schema}
Die folgende XML-Struktur musste im Querformat abgebildet werden, ...
\begin{listing}[H]
\begin{minted}{xml}
<schema>
\end{minted}
\caption{Schemadatei}
\label{lis:XML-Code-verknuepfungsdialogschema}
\end{listing}
\end{sidewaysfigure}


Die Kopfzeile formatiere ich mit...


\fancyhead{}
\fancyhead[LE]{\leftmark}
\fancyhead[RO]{\rightmark}


... und meine Dokumentenklasse ist "book".

Hat jemand eine Idee, wie man das Problem beheben könnte? Schon mal vorab vielen Dank!

hakaze
20-03-2013, 21:00
Mach bitte mal ein zusammenhänges, lauffähiges Minimalbeispiel, das mit \documentclass anfängt, nur die wirklich notwendigen Pakete enthält und mit \end{document} endet!

Roughnegs
20-03-2013, 22:11
Mach bitte mal ein zusammenhänges, lauffähiges Minimalbeispiel, das mit \documentclass anfängt, nur die wirklich notwendigen Pakete enthält und mit \end{document} endet!

Hier kommt das (Minimal)Beispiel - ein klein wenig umfangreicher:



\documentclass[11pt,ngerman]{book}
\usepackage{listings}
\usepackage[a4paper]{geometry}
\usepackage{fancyhdr}
\pagestyle{fancy}
\usepackage{babel}
\usepackage{rotating}

\fancyhead{}
\fancyhead[LE]{\leftmark}
\fancyhead[RO]{\rightmark}

\begin{document}
\appendix
\chapter*{Anhang}
\chapter{Beginn Anhang A}
\section{\label{}Erster Abschnitt }
\begin{lstlisting}
Erster Abschnitt - erstes Listing
\end{lstlisting}
\pagebreak
\begin{lstlisting}
Erster Abschnitt - zweites Listing
\end{lstlisting}

\begin{sidewaysfigure}
\section{\label{}Zweiter Abschnitt }
Die folgende XML-Struktur musste im Querformat abgebildet werden, ...
\begin{lstlisting}
Zweiter Abschnitt - erstes Listing
\end{lstlisting}
\end{sidewaysfigure}

\end{document}


Auf der letzten Seite sieht man, dass die neue Section A.2 begonnen hat, die Kopfzeile aber immer noch A.1 enthält.

Vielen Dank,
ciaoi

hakaze
22-03-2013, 11:20
In diesem Fall wäre ist adjustbox (http://texdoc.net/texmf-dist/doc/latex/adjustbox/adjustbox.pdf) die funktionablere Variante. Sidewaysfigures landen immer auf separaten Seiten, damit der Lesefluss nicht durch unterschiedlich ausgerichteten Text gestört wird. Durch den Seitenumbruch werden aber auch alle Befehle innerhalb erst ab der nächsten Seite "wirksam"; in deinem Fall die Änderung der Kopfzeile durch section.


\documentclass[11pt,ngerman]{book}
\usepackage{listings}
\usepackage[a4paper]{geometry}
\usepackage{fancyhdr}
\pagestyle{fancy}
\usepackage{babel}
\usepackage{adjustbox}

\fancyhead{}
\fancyhead[LE]{\leftmark}
\fancyhead[RO]{\rightmark}

\begin{document}
\appendix
\chapter*{Anhang}
\chapter{Beginn Anhang A}
\section{Erster Abschnitt }\label{sec:ersterabschnitt}
\begin{lstlisting}
Erster Abschnitt - erstes Listing
\end{lstlisting}
\clearpage
\begin{lstlisting}
Erster Abschnitt - zweites Listing
\end{lstlisting}

\clearpage
\section{Zweiter Abschnitt }\label{sec:zweiterabschnitt}

\begin{adjustbox}{rotate=90,center}
\begin{lstlisting}
Zweiter Abschnitt - erstes Listing
\end{lstlisting}
\end{adjustbox}

\end{document}PS. Beachte die label-Befehle nach den Gliederungsbefehlen auszuführen und auch nicht ohne eindeutige Bezeichner. Sonst bekommst du doppelt vergebene Label.

Roughnegs
22-03-2013, 11:47
Der Versuch mit


\begin{adjustbox}{rotate=90,center}

sieht schon sehr gut aus - Danke! Allerdings möchte ich die Überschrift "A.2 ..." auch drehen, da ich den Platz für die XML-Struktur benötige.

Die Zeile


\section{Zweiter Abschnitt }\label{sec:zweiterabschnitt}

erst danach einzufügen funktioniert leider nicht...

hakaze
22-03-2013, 12:12
Okay, jetzt wir mir einiges klar. In dem Fall tut es ein Umschalten ins Querformat (landscape) mit pdflscape (http://texdoc.net/texmf-dist/doc/latex/oberdiek/pdflscape.pdf):

\documentclass[11pt,ngerman]{book}
\usepackage{listings}
\usepackage[a4paper]{geometry}
\usepackage{fancyhdr}
\pagestyle{fancy}
\usepackage{babel}
\usepackage{pdflscape}

\fancyhead{}
\fancyhead[LE]{\leftmark}
\fancyhead[RO]{\rightmark}

\begin{document}
\appendix
\chapter*{Anhang}
\chapter{Beginn Anhang A}
\section{Erster Abschnitt }\label{sec:ersterabschnitt}
\begin{lstlisting}
Erster Abschnitt - erstes Listing
\end{lstlisting}
\clearpage
\begin{lstlisting}
Erster Abschnitt - zweites Listing
\end{lstlisting}

%\clearpage % landscape macht automatisch ein clearpage
\begin{landscape}
\section{Zweiter Abschnitt }\label{sec:zweiterabschnitt}

\begin{lstlisting}
Zweiter Abschnitt - erstes Listing
\end{lstlisting}
\end{landscape}

\end{document}

Roughnegs
22-03-2013, 13:52
Perfekt, vielen Dank!

Damit klappt es wunderbar!

Roughnegs
22-03-2013, 15:41
Eine Frage hätte ich aber noch:

Bei sidewaysfigure wurde die "Leserichtung" automatisch abgewechselt - d.h. einmal von links, einmal von rechts. Bei der Verwendung von Landscape wird es nicht abgewechselt... kann man das auch mit diesem Paket erreichen?

Danke, ciaoi