Anzeige:
Ergebnis 1 bis 9 von 9

Thema: Rotate longtable

  1. #1
    Registrierter Benutzer
    Registriert seit
    01.05.2014
    Beiträge
    10

    Rotate longtable

    Hallo zusammen!

    Ich habe diese Frage schon in einem anderen Forum gestellt, aber scheinbar gestaltet es sich doch schwieriger, als ich gedacht hätte. Ich habe mehrere Tabellen, die sowohl zu breit für´s Hochformat sind, als auch zu lang, um auf eine Seite zu passen.
    Bislang hatte ich die landscape-Umgebung verwendet, aber mir gefällt nicht, dass dann auch die Kapitelüberschriften gedreht sind.
    Also habe ich \rotatebox{90} für mich entdeckt. Das funktioniert jedoch bislang nur für einseitige Tabellen, aber nicht für longtables. Kennt ihr da eine geeignete Lösung?

    Hier mein Minimalbeispiel.

    (Anmerkung: Da bei meinem letzten Post der Code bei anderen nicht funktionierte, obwohl es bei mir in einer gesonderten Datei lief, habe ich diesmal sämtliche preamble Einträge übernommen)
    Code:

    \documentclass[12pt, a4paper, toc=flat] {scrartcl}

    \usepackage{anysize}
    \marginsize{3cm}{2cm}{2cm}{2cm}
    \setkomafont{disposition}{\normalfont\bfseries}
    \addtokomafont{chapterprefix}{\huge}
    \addtokomafont{chapter}{\Huge}

    \renewcommand*{\chapterheadstartvskip}{\vspace*{50 pt}}
    \renewcommand*{\chapterheadendvskip}{\vspace{40pt} }

    \usepackage{etoolbox}

    \makeatletter
    \patchcmd{\@@makechapterhead}{.5\baselineskip}{20\ p@}{}{}
    \makeatother

    \usepackage[markuppercase]{scrpage2}
    \clearscrheadfoot
    \ohead{\pagemark}
    \ihead{\headmark}
    \cfoot[\pagemark]{}
    \pagestyle{scrheadings}

    \usepackage{tocstyle}
    \usetocstyle{KOMAlike}
    \usepackage{amssymb}
    \usepackage{amsthm}
    \usepackage{graphicx}
    \usepackage{booktabs}
    \usepackage{tabularx}
    \usepackage{multirow}
    \usepackage{fancybox}
    \usepackage[ngerman]{babel}
    \usepackage[latin1]{inputenc}
    \usepackage{rotating}
    \usepackage{setspace}
    \usepackage[colorlinks=true,linkcolor=cyan]{hyperref}
    \usepackage{geometry}
    \usepackage{hvfloat}
    \usepackage{longtable, lscape}

    \linespread{1.6}


    \begin{document}


    \subsection{Minimalbeispiel}
    \begin{longtable}{lc}
    \rotatebox{90}{
    \caption[Minimalbeispiel]{Minimalbeispiel}
    \hline \multicolumn{1}{c}{\textbf{Spalte A}} & \multicolumn{1}{c}{\textbf{Spalte B}} \\ \hline
    \endfirsthead

    \multicolumn{2}{c}
    {{\bfseries \tablename\ \thetable{} -- continued from previous page}} \\
    \hline \multicolumn{1}{c}{\textbf{Spalte A}} &
    \multicolumn{1}{c}{\textbf{Spalte B}} \\ \hline
    \endhead

    \hline \multicolumn{2}{r}{{Continued on next page}} \\
    \endfoot

    \hline \hline
    \endlastfoot
    Text & 0.0\% \\
    Text & 0.0\% \\
    Text & 0.0\% \\
    Text & 0.0\% \\
    Text & 0.0\% \\
    Text & 0.0\% \\
    Text & 0.0\% \\
    Text & 0.0\% \\
    Text & 0.0\% \\
    Text & 0.0\% \\
    Text & 0.0\% \\
    Text & 0.0\% \\
    Text & 0.0\% \\
    Text & 0.0\% \\
    Text & 0.0\% \\
    Text & 0.0\% \\
    Text & 0.0\% \\
    Text & 0.0\% \\
    Text & 0.0\% \\
    Text & 0.0\% \\
    Text & 0.0\% \\
    Text & 0.0\% \\
    Text & 0.0\% \\
    Text & 0.0\% \\
    Text & 0.0\% \\
    Text & 0.0\% \\
    Text & 0.0\% \\
    Text & 0.0\% \\
    Text & 0.0\% \\
    Text & 0.0\% \\
    Text & 0.0\% \\
    Text & 0.0\% \\
    Text & 0.0\% \\
    Text & 0.0\% \\
    Text & 0.0\% \\
    Text & 0.0\% \\
    Text & 0.0\% \\
    Text & 0.0\% \\
    Text & 0.0\% \\
    Text & 0.0\% \\
    Text & 0.0\% \\
    Text & 0.0\% \\
    Text & 0.0\% \\
    Text & 0.0\% \\
    Text & 0.0\% \\
    Text & 0.0\% \\
    \bottomrule
    \end{longtable}
    }
    \end{document}

  2. #2
    Registrierter Benutzer
    Registriert seit
    19.05.2009
    Beiträge
    4.045
    Du kannst keine \rotatebox zusammen mit einer mehrseitigen longtable benutzen. Weder innerhalb noch außerhalb.

    \rotatebox ginge nur, wenn du manuell aus deiner longtable zwei oder mehr tabular machst.

    Man könnte die \subsection-Überschrift drehen, aber ich würde als erstes versuchen zu vermeiden, die Tabellen überhaupt drehen zu müssen. Evtl. kannst du die Daten ja splitten.

    Dein Code ist übrigens fehlerhaft (auch ohne die \rotatebox. Es fehlt ein \\ hinter \caption.

  3. #3
    Registrierter Benutzer
    Registriert seit
    01.05.2014
    Beiträge
    10
    Danke u_fischer für deine Antwort! Ich habe insgesamt 250 Seiten an Tabellen, ich wäre ewig damit beschäftigt, alle longtable-Daten zu spiltten.

    Ich habe also versucht, deinen Vorschlag mit dem gedrehten section-Titel umzusetzen. Doch leider setzt Latex den Titel dann nach unten. Wie kann ich den denn nun nach oben bringen?

    Hier der abgeänderte Code, Tabelle ist nun im landscape.

    Code:
    \documentclass[12pt, a4paper, toc=flat] {scrartcl} 
    
    \usepackage{anysize} 
    \marginsize{3cm}{2cm}{2cm}{2cm} 
    \setkomafont{disposition}{\normalfont\bfseries} 
    \addtokomafont{chapterprefix}{\huge} 
    \addtokomafont{chapter}{\Huge} 
    
    \renewcommand*{\chapterheadstartvskip}{\vspace*{50 pt}} 
    \renewcommand*{\chapterheadendvskip}{\vspace{40pt} } 
    
    \usepackage{etoolbox} 
    
    \makeatletter 
    \patchcmd{\@@makechapterhead}{.5\baselineskip}{20\ p@}{}{} 
    \makeatother 
    
    \usepackage[markuppercase]{scrpage2} 
    \clearscrheadfoot 
    \ohead{\pagemark} 
    \ihead{\headmark} 
    \cfoot[\pagemark]{} 
    \pagestyle{scrheadings} 
    
    \usepackage{tocstyle} 
    \usetocstyle{KOMAlike} 
    \usepackage{amssymb} 
    \usepackage{amsthm} 
    \usepackage{graphicx} 
    \usepackage{booktabs} 
    \usepackage{tabularx} 
    \usepackage{multirow} 
    \usepackage{fancybox} 
    \usepackage[ngerman]{babel} 
    \usepackage[latin1]{inputenc} 
    \usepackage{rotating} 
    \usepackage{setspace} 
    \usepackage[colorlinks=true,linkcolor=cyan]{hyperref} 
    \usepackage{geometry} 
    \usepackage{hvfloat} 
    \usepackage{longtable, lscape} 
    
    \linespread{1.6} 
    
    
    \begin{document} 
    
    \begin{landscape}
    \rotatebox{270}{
    \section{Minimalbeispiel} 
    }
    \begin{longtable}{lc} 
    
    \caption[Minimalbeispiel]{Minimalbeispiel} \\
    \hline \multicolumn{1}{c}{\textbf{Spalte A}} & \multicolumn{1}{c}{\textbf{Spalte B}} \\ \hline 
    \endfirsthead 
    
    \multicolumn{2}{c} 
    {{\bfseries \tablename\ \thetable{} -- continued from previous page}} \\ 
    \hline \multicolumn{1}{c}{\textbf{Spalte A}} & 
    \multicolumn{1}{c}{\textbf{Spalte B}} \\ \hline 
    \endhead 
    
    \hline \multicolumn{2}{r}{{Continued on next page}} \\ 
    \endfoot 
    
    \hline \hline 
    \endlastfoot 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    \bottomrule 
    \end{longtable} 
    } 
    \end{document}

  4. #4
    Registrierter Benutzer
    Registriert seit
    19.05.2009
    Beiträge
    4.045
    Wie kann ich den denn nun nach oben bringen?
    In dem du dir als erstes ein bisschen mehr Mühe mit deinen "Beispielen" gibst. Glaubst du es macht Spaß, erstmal diverse Fehler rauszumachen? Was z.B. sollen alle diese "chapter"-Befehle in scrartcl?

    Mache ein fehlerfreies Beispiel. Und entferne auch alle überflüssigen Befehle und Pakete.

    Und nein: Du kannst nicht einfach \section in \rotatebox packen.

  5. #5
    Registrierter Benutzer
    Registriert seit
    09.12.2005
    Beiträge
    1.326
    Klitzekleine Hinweise:
    • Du musst nicht unbedingt die gesamte Tabelle splitten. Eventuell genügt es sie in zwei Tabellen aufzuteilen: Eine vor die erster Seite und eine longtable für die restlichen Seiten.
    • Wird pdfLaTeX oder LuaLaTeX oder XeLaTeX verwendet, könnte es sinnvoll sein pdflscape statt lscape zu verwenden.
    • Ein großer Wert für \linespread ist meist ein Zeichen, dass man besser setspace verwenden sollte.
    • Wenn Du Probleme mit der Erstellung eines Minimalbeispiels hast, solltest Du Dich möglichst genau an die Anleitung zur Erstellung selbiger halten.

  6. #6
    Registrierter Benutzer
    Registriert seit
    01.05.2014
    Beiträge
    10

    bereinigter Code

    u_fischer, hier nun bereinigter Code. Du hast ja recht...

    Code:
    \documentclass[a4paper,10pt]{scrartcl} 
    
    \usepackage{longtable}
    \usepackage{pdflscape}
    
    \begin{document}
     
    \begin{landscape}
    \section{Minimalbeispiel} 
    \begin{longtable}{lc} 
    
    \caption[Minimalbeispiel]{Minimalbeispiel} \\
    \hline \multicolumn{1}{c}{\textbf{Spalte A}} & \multicolumn{1}{c}{\textbf{Spalte B}} \\ \hline 
    \endfirsthead 
    
    \multicolumn{2}{c} 
    {{\bfseries \tablename\ \thetable{} -- continued from previous page}} \\ 
    \hline \multicolumn{1}{c}{\textbf{Spalte A}} & 
    \multicolumn{1}{c}{\textbf{Spalte B}} \\ \hline 
    \endhead 
    
    \hline \multicolumn{2}{r}{{Continued on next page}} \\ 
    \endfoot 
    
    \hline \hline 
    \endlastfoot 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    Text & 0.0\% \\ 
    
    \end{longtable} 
    
    \end{landscape}
    
    \end{document}

  7. #7
    Registrierter Benutzer
    Registriert seit
    19.05.2009
    Beiträge
    4.045
    Code:
    \documentclass[a4paper,10pt]{scrartcl}
    
    \usepackage{longtable}
    \usepackage{pdflscape}
    
    
    \makeatletter
    \newcommand\lscapesection[1]{%
     \refstepcounter{section}
     \addcontentsline{toc}{section}{\protect\numberline{\thesection}#1}%
     \sectionmark{#1}%
     \noindent\smash{\parbox[t]{\linewidth}{%
      \hfill\normalfont\sectfont\size@section
      \rotatebox{-90}{\thesection\enskip #1}}}}%
    \makeatother
    
    \begin{document}
    \begin{landscape}
    \lscapesection{Minimalbeispiel}
      
    \begin{longtable}{lc}
    
    Text tex text text & blablablabla \\
    
    \end{longtable}
    
    \end{landscape}
    
    \end{document}
    Aber wenn deine Tabelle zu breit ist, wird sie die Überschrift überschreiben. Und eine Überschrift sollte nicht mehrzeilig sein.

  8. #8
    ctansearch
    Gast

    Cool

    Ach Du liebe Zeit, das macht ja gar keinen Sinn.
    250 querformatige Tabellen setzt man durchgängig im Querformat, am besten in einer gesonderten Datei, definiert sie als Anhang und fertig.

  9. #9
    Registrierter Benutzer
    Registriert seit
    01.05.2014
    Beiträge
    10

    Querformat

    Zitat Zitat von ctansearch Beitrag anzeigen
    Ach Du liebe Zeit, das macht ja gar keinen Sinn.
    250 querformatige Tabellen setzt man durchgängig im Querformat, am besten in einer gesonderten Datei, definiert sie als Anhang und fertig.
    Stimmt, das würde tatsächlich keinen Sinn machen. Das hab ich aber auch nie behauptet

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •