Seite 1 von 1
Fließtext um Tabelle in landscape-Umgebung
Verfasst: So 3. Jun 2018, 21:23
von shardur
Hallo,
ich habe folgendes Problem: Ich habe ein große Tabelle, dich ich als Querformat anzeigen lassen muss. Ich nutze hierfür den landscape Befehl. Wie bekomme ich die Tabelle denn in den Fließtext? Bisher wird alles was nach der Tabelle geschrieben ist einfach danach eingefügt ohne evtl. eine nicht ganz volle Seite auszufüllen.
Hier ein Minimalbsp:
\documentclass[11pt]{article}
\pagestyle{headings}
\usepackage[english]{babel}
\usepackage{mathptmx}
\usepackage[scaled]{helvet}
\usepackage{courier}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
% Tables
\usepackage{longtable} % zum erstellen von Tabellen ber mehrere Seiten
\usepackage{multirow} % zum Verbinden von Zeilen innerhalb einer Tabelle
\usepackage{booktabs}
% Align table
\usepackage{siunitx}
\sisetup{table-text-alignment = center,table-align-exponent = false}
\usepackage{geometry}
\usepackage{lscape}
\usepackage[flushleft]{threeparttable}
\usepackage{tabularx}
\usepackage{multirow}
\begin{document}
Text vor der Tabelle
\begin{landscape}
\setlength{\tabcolsep}{4mm}
\begin{table}[p]
\centering
\footnotesize
\caption{Titel}
\begin{threeparttable}
\begin{tabular}{l S[table-format = -1.4]*{7}{S[table-format = -1.4]}}
\toprule
& \multicolumn{1}{c}{\text{Bla}} & \multicolumn{1}{r}{\text{Bla}} & \multicolumn{1}{r}{\text{Bla}} & \multicolumn{1}{r}{Bla} & \multicolumn{1}{r}{Bla} & \multicolumn{1}{r}{Bla} & \multicolumn{1}{r}{Bla} & \multicolumn{1}{r}{Bla} \\ \midrule
Kennzahl & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 \\
\end{tabular}
\begin{tablenotes}
\item Angaben
\end{tablenotes}
\end{threeparttable}
\label{label}
\end{table}
\end{landscape}
Text nach der Tabelle
\end{document}
Der Text vor und nach der Tabelle soll also als Fließtext um die Tabelle ausgerichtet werden. Kann mir hier jemand weiterhelfen?
Vielen Dank bereits im Voraus!
Verfasst: Mo 4. Jun 2018, 02:54
von Bartman
Wenn Du auf die Änderung von tabcolsep verzichten kannst, dann könntest Du beim Hochformat bleiben:
\documentclass[11pt]{article}
\usepackage[english]{babel}
\usepackage{mathptmx}
\usepackage[scaled]{helvet}
\usepackage{courier}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{booktabs}
\usepackage{siunitx}
\usepackage[showframe]{geometry}
\usepackage[flushleft]{threeparttable}
\usepackage[tableposition=top]{caption}
\usepackage{blindtext}
\begin{document}
\blindtext
\begin{table}[htbp]
\centering
\small
\begin{threeparttable}
\caption{Titel}
\label{tab:titel}
\sisetup{table-format = -1.4}
\begin{tabular}{l *8S}
\toprule
& {Bla} & {Bla} & {Bla} & {Bla} & {Bla} & {Bla} & {Bla} & {Bla} \\
\midrule
Kennzahl & -1.0000 & -2.0000 & -3.0000 & -4.0000 & -5.0000 & -6.0000 & -7.0000 & -8.0000 \\
\bottomrule
\end{tabular}
\begin{tablenotes}
\footnotesize
\item Angaben
\end{tablenotes}
\end{threeparttable}
\end{table}
\blindtext
\end{document}
Verfasst: Mo 4. Jun 2018, 09:05
von Gast
landscape aus
lscape oder dem eher zu empfehlenden
pdflscape beginnt am Anfang und Ende immer eine neue Seite. Will man das nicht, so kann man ggf. auf \rotatebox aus
graphicx ausweichen. In Kombination mit
varwidth funktioniert das für deinen Zweck recht ordentlich:
\documentclass[11pt]{article}
\pagestyle{headings}
\usepackage[english]{babel}
\usepackage{mathptmx}
\usepackage[scaled]{helvet}
\usepackage{courier}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
% Tables
\usepackage{longtable} % zum erstellen von Tabellen ber mehrere Seiten
\usepackage{multirow} % zum Verbinden von Zeilen innerhalb einer Tabelle
\usepackage{booktabs}
% Align table
\usepackage{siunitx}
\sisetup{table-text-alignment = center,table-align-exponent = false}
\usepackage{geometry}
\usepackage{graphicx}
\usepackage[flushleft]{threeparttable}
\usepackage{tabularx}
\usepackage{varwidth}
\usepackage{multirow}
\begin{document}
Text vor der Tabelle
\begin{table}[ht!]% Die Option ht! in der Realität besser weglassen, ich verwende sie hier nur, weil bei der Breite der verwendeten Tabelle sonst nie Text zusammen mit der Tabelle auf einer Seite landet. Siehe dazu https://texwelt.de/wissen/fragen/2528/wie-funktionieren-gleitobjekte-und-wie-kann-man-ihre-positionierung-beeinflussen
\setlength{\tabcolsep}{4mm}
\rotatebox{90}{\begin{varwidth}{\textheight}
\centering
\footnotesize
\caption{Titel}
\begin{threeparttable}
\begin{tabular}{l S[table-format = -1.4]*{7}{S[table-format = -1.4]}}
\toprule
& \multicolumn{1}{c}{\text{Bla}} & \multicolumn{1}{r}{\text{Bla}} & \multicolumn{1}{r}{\text{Bla}} & \multicolumn{1}{r}{Bla} & \multicolumn{1}{r}{Bla} & \multicolumn{1}{r}{Bla} & \multicolumn{1}{r}{Bla} & \multicolumn{1}{r}{Bla} \\ \midrule
Kennzahl & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 \\
\end{tabular}
\begin{tablenotes}
\item Angaben
\end{tablenotes}
\end{threeparttable}
\label{label}
\end{varwidth}}
\end{table}
Text nach der Tabelle
\end{document}
Wie gezeigt muss \rotatebox natürlich innerhalb der table-Umgebung verwendet werden.
Allerdings ist anzumerken, dass es wenig sinnvoll erscheint, eine Tabelle, die wegen Überbreite gedreht wird, also in ihrer gedrehten Form vertikal sehr viel Platz verbraucht, zusammen mit weiterem Text über oder unter der Tabelle zu kombinieren. Ob es sinnvoll wäre, daneben Text zu setzen, darf ebenfalls bezweifelt werden. Ich empfehle daher im konkreten Fall eher Bartmans Lösung.
Es sei auch noch darauf hingewiesen, dass bereits \begin{table}
natürlich verhindern würde, dass Text mit der Tabelle auf einer Seite steht. Bitte ggf. in einer LaTeX-Einführung nachlesen, warum das so ist.
Verfasst: Di 5. Jun 2018, 15:10
von shardur
Danke euch beiden für die hilfreichen Anmerkungen!
Da meine eigentlichen Spaltenüberschriften teils etwas länger sind wie "Bla" (sorry, hätte vllt was anderes wie Bla wählen sollen), wird es nicht möglich sein die Tabelle im Hochformat auf eine Seite zu quetschen.
Ich wollte auch nicht noch Text auf die Seite der Tabelle dazunehmen - da sie auch ziemlich ganz eine Querseite ausfüllt im Original - sondern es so einstellen, dass die Seite im Querformat den Text davor und danach nicht abhackt, sondern die eine Seite vollschreibt, dann die Seite im Querformat anführt und dann im Hochformat mit dem weitern Text weitermacht. Entschuldigt, falls ich mich undeutlich ausgedrückt habe.
Geht das irgendwie oder sollte ich wenn ich meinen Text fertig geschrieben habe einfach mit dem clearpage Befehl dafür sorgen, dass der Text richtig aufgefüllt wird bevor, die Querseite folgt?
Passendes Paket
Verfasst: Di 5. Jun 2018, 17:10
von Ratgeber
shardur hat geschrieben:[…]
Da meine eigentlichen Spaltenüberschriften teils etwas länger sind wie "Bla" (sorry, hätte vllt was anderes wie Bla wählen sollen), wird es nicht möglich sein die Tabelle im Hochformat auf eine Seite zu quetschen.
Ich wollte auch nicht noch Text auf die Seite der Tabelle dazunehmen - da sie auch ziemlich ganz eine Querseite ausfüllt im Original - sondern es so einstellen, dass die Seite im Querformat den Text davor und danach nicht abhackt, sondern die eine Seite vollschreibt, dann die Seite im Querformat anführt und dann im Hochformat mit dem weitern Text weitermacht. Entschuldigt, falls ich mich undeutlich ausgedrückt habe.
Geht das irgendwie oder sollte ich wenn ich meinen Text fertig geschrieben habe einfach mit dem clearpage Befehl dafür sorgen, dass der Text richtig aufgefüllt wird bevor, die Querseite folgt?
\documentclass[11pt,a4paper,ngerman]{article}
\usepackage[T1]{fontenc}
\usepackage{selinput}
\SelectInputMappings{
adieresis={ä},
germandbls={ß},
Euro={€}
}
\usepackage{babel}
\usepackage[margin=3cm,includeheadfoot]{geometry}
\usepackage[font=small,labelfont=bf]{caption}
\usepackage{booktabs}
%% Anleitung lesen! %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage{rotating} % https://ctan.org/pkg/rotating
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage[svgnames]{xcolor} % U. a. für farbigen Text (s. u.)
\usepackage{lmodern}
\usepackage{microtype}
\usepackage{blindtext} % Fülltext
\pagestyle{headings}
\begin{document}
\tableofcontents
\blinddocument
\begin{sidewaystable}
\caption{Platzhalter}
\label{tab:platzhalter}
\centering
\begin{tabular}{*{5}{l}}\toprule
Tabellenkopf & Tabellenkopf & Tabellenkopf & Tabellenkopf & Tabellenkopf \\ \midrule
Inhalt & Inhalt & Inhalt & Inhalt & Inhalt \\
Inhalt & Inhalt & Inhalt & Inhalt & Inhalt \\
Inhalt & Inhalt & Inhalt & Inhalt & Inhalt \\
Inhalt & Inhalt & Inhalt & Inhalt & Inhalt \\
Inhalt & Inhalt & Inhalt & Inhalt & Inhalt \\ \bottomrule
\end{tabular}
\end{sidewaystable}
% Nächster farbiger Text fängt vor der Tabelle an
\color{red} % Färbung zur Kontrolle
\blinddocument
\end{document}
Verfasst: Di 5. Jun 2018, 17:13
von Gast
shardur hat geschrieben:Geht das irgendwie oder sollte ich wenn ich meinen Text fertig geschrieben habe einfach mit dem clearpage Befehl dafür sorgen, dass der Text richtig aufgefüllt wird bevor, die Querseite folgt?
Mach mal in meinem Beispiel oben das [ht!] bei der table-Umgebung weg.
Verfasst: Mi 6. Jun 2018, 11:15
von shardur
Danke an euch nochmal.
Habe Ratgebers Vorschlag benutz mit sidewaystable - funktioniert einwandfrei!