Anzeige:
Ergebnis 1 bis 13 von 13

Thema: supertabular multicols

  1. #1
    Registrierter Benutzer
    Registriert seit
    17.08.2008
    Beiträge
    7

    supertabular multicols

    Hallo!
    Ich schreibe gerade meine Diplomarbeit mit Latex. Jetzt stehe ich vor dem Problem, dass ich im Anhang eine super lange, aber schmale Tabelle einfuegen muss. Eigentlich schreibe ich in \onecolumn, aber auf Grund der Laenge der Tabelle moechte ich dafuer auf \twocolumn umstellen. Die Kapitelueberschrift und der erste Absatz des Anhangs sollen aber noch \onecolumn sein bevor die Tabelle dann kommt.
    Urspruenglich hatte ich erst \longtable, doch dann habe ich herausgefunden, dass \longtable nicht mit \twocolumn funktionert. deshalb bin ich auf \supertabular umgestiegen.
    \twocolumn hat aber den Nachteil, dass es zwar tatsaechlich die Tabelle in 2 Spalten erstellt, aber automatisch eine neue Seite anfaengt, was ich ja nicht moechte. Da steht ja nur die Uebershrift und drei Zeilen Text ueber der Tabelle.
    Mit \multicols faengt die Tabelle zwar auf der Seite an, wird aber nicht in zwei Spalten geschrieben.
    Inzwischen weiss ich nicht mehr weiter, und mein google-Finger versagt.
    Weiss einer von euch eine Loesung?

    Hier ein Minimalbeispiel:

    \documentclass[12pt,a4paper,twoside,openright]{book}

    \usepackage[UKenglish]{babel}
    \usepackage{multicol}
    %\usepackage{longtable}
    \usepackage{supertabular}
    \usepackage{booktabs}
    \usepackage{multirow}
    \usepackage{colortbl}
    \usepackage{hhline}

    \begin{document}

    bla bla bla hauptteil

    \clearpage\null\cleardoublepage
    \setcounter{page}{1}
    \pagenumbering{roman}
    \chapter*{Appendices}
    \addcontentsline{toc}{chapter}{Appendices}
    \markboth{Appendices}{Appendices}
    \renewcommand{\thesection}{\Alph{section}}
    \section{erster teil des anhangs}
    In the following table tralala

    \twocolumn
    %\begin{multicols}{2}[]

    {\scriptsize
    \begin{center}
    \tablehead{%
    \hline
    No. & Date & Time & $\varphi_{N}$ & $\lambda_{N}$ & $\varphi_{S}$ & $\lambda_{S}$ \\ \hhline{=======}}
    \tabletail{\hline}
    \begin{supertabular}{|r|c|c|c|c|c|c|} \\
    1 & 09.05. & 18 & 18 & 11 & & \\ \hline
    & 10.05. & 00 & 17 & 9 & 8 & 8 \\ \hline
    & & 06 & 16 & 6 & 7 & 7 \\ \hline
    & & 12 & 16 & 5 & 7 & 6 \\ \hline
    & & 18 & 16 & 4 & 7 & 3 \\ \hline
    & 11.05. & 00 & 17 & 4 & 6 & 2 \\ \hline
    & & 06 & 18 & 4 & 6 & 1 \\ \hline
    & & 12 & 19 & 3 & 5 & 0 \\ \hline
    & & 18 & 20 & 1 & 5 & -1 \\ \hline
    & 12.05. & 00 & 20 & 0 & 7 & -3 \\ \hline
    & & 06 & 18 & 0 & 7 & -6 \\ \hline
    usw.
    \end{supertabular}
    \end{center}
    }

    %\end{multicols}
    \onecolumn

    \section{zweiter teil des anhangs}
    bla

    \end{document}

  2. #2
    Registrierter Benutzer
    Registriert seit
    28.06.2005
    Ort
    Karlsruhe
    Beiträge
    1.407
    Hallo
    und willkommen im Forum.

    Schreib' die Tabelle in eine eigene Datei und lass oben auf der ersten Seite Platz für die Überschrift und die gewünschten Zeilen (\vspace*{10\baselineskip} oder so). Stelle aus der Datei ein pdf her, ohne Seitenzahlen, also \pagestyle{empty}. Lass' auf allen Seiten Platz für z.B. Kopf- und Fußzeilen.

    Lade das pdf mit \includepdf aus dem Paket pdfpages an der gewünschten Stelle in Dein Hauptdokument. Meiner Erinnerung nach muss man bei \includepdf die Option pages=- einfügen, damit alle Seiten der Datei abgedruckt werden.

    Andere Lösungen bieten sich natürlich auch an, z.B. die Tabelle an sich in zwei Hauptkolummnen zu setzen. Nur die von Dir gewünschte Lösung eines Hacks von supertabular kann ich leider nicht bieten.

    Gruß,
    Alexander

  3. #3
    Registrierter Benutzer
    Registriert seit
    17.08.2008
    Beiträge
    7
    hallo alexander!
    dein tipp klappt zwar insofern, dass ich jetzt wieder die tabelle ueber 2 spalten hinweg habe, wie schon mit \twocolumn, allerdings habe ich auch dasselbe problem, naemlich dass das die tabelle auf der naechsten seite anfaengt. auch wenn ich sie skaliere.
    zudem fehlt jetzt natuerlich die kopfzeile mit der seitenzahl etc. gut, die koennte ich sicherlich irgendwie reinpfuschen, aber das hauptproblem bleibt leider: wie kriege ich die tabelle dazu auf der seite anzufangen, wo auch die ueberschrift steht?
    lg,
    sonja
    Geändert von blumenkind (18-08-2008 um 08:26 Uhr)

  4. #4
    Registrierter Benutzer
    Registriert seit
    28.06.2005
    Ort
    Karlsruhe
    Beiträge
    1.407
    Hallo Sonja,

    ok, das sehe ich ein. Das bedeutet also, dass man die erste Seite der Tabelle mit \includegraphics (graphicx-Paket) setzen muss und erst die folgenden Seiten bequem mit \includepdf.

    Wenn Du Zeit hast, ein kleines, lauffähiges Beispiel zu liefern -- einfach eine längere Tabelle, so, wie Du sie brauchst, ohne das ganze Anhangsgesummse und die paar Zeilen Eingangstext, den Text der Kopfzeile, die verwendete Dokumentenklasse --, dann wird hier der eine oder andere erwägen, Dich zu unterstützen bei Bastelarbeiten.

    Gruß,
    Alexander

  5. #5
    Registrierter Benutzer
    Registriert seit
    17.08.2008
    Beiträge
    7
    also,
    im anhang jetzt endlich das geschrumpfte diplomarbeit und die tabelle.
    habe erst mal alle packages drinn gelassen, vielleicht kollidieren die ja irgendwie...
    lg
    sonja

  6. #6
    Registrierter Benutzer
    Registriert seit
    28.06.2005
    Ort
    Karlsruhe
    Beiträge
    1.407
    Hallo Sonja,

    wie gesagt, Deine Tabelle gibt eine eigene Datei. Um auf der ersten Seite den notwendigen Platz nach oben zu gewinnen, habe ich eine Kapitelüberschrift ohne Text mit einem vertikalen Leerraum von drei Zeilen eingefügt, den Du natürlich anpassen kannst.

    Code:
    \documentclass[12pt, twocolumn, oneside]{book}
    
    \usepackage[UKenglish]{babel}
    \usepackage[utf8]{inputenc}
    \usepackage[T1]{fontenc}
    \usepackage{lmodern, supertabular, graphicx, color, array, booktabs, colortbl, multirow, hhline}
    
    
    \begin{document}
    \chapter*{\vspace*{3\baselineskip}}
    {\tiny
    \begin{center}
      \tablehead{%
         \hline
         No. & Date & Time & $\varphi_{N}$ & $\lambda_{N}$ & $\varphi_{S}$ & $\lambda_{S}$ \\
             &      & [UTC] & [$^\circ$N] & [$^\circ$] & [$^\circ$N] & [$^\circ$]  \\ \hhline{=======}}
      \tabletail{\hline}
      \begin{supertabular}{|r|c|c|c|c|c|c|} \\line
    
     . . . 
      \end{supertabular}
      \end{center}
    }
       
    \end{document}
    Dann habe ich die Tabelle in die Hauptdatei eingebaut. Die erste Seite als Graphik, die wiederum steht in einem Bild, damit ich sie beliebig über die Seite verschieben kann.

    Code:
    \documentclass[12pt,a4paper,twoside,openright]{book}
    
    \usepackage[UKenglish]{babel}
    \usepackage[utf8]{inputenc}
    \usepackage[T1]{fontenc}
    \usepackage{float}
    \usepackage{longtable}
    \usepackage{booktabs}
    \usepackage{multirow}
    \usepackage{graphicx}
    \usepackage{rotating}
    \usepackage{subfigure}
    \usepackage{color}
    \usepackage{hhline}
    \usepackage{t1enc}
    \usepackage{textcomp}
    \usepackage{latexsym}
    \usepackage{url}
    \usepackage{amsmath,amsfonts,amssymb,amsxtra,mathptm}
    \usepackage{units}
    \usepackage{appendix, pdfpages}
    
    \usepackage{geometry}
      \geometry{a4paper,inner=25mm,outer=35mm,bottom=26mm,top=20mm,bindingoffset=2mm,includehead,includefoot}
      \parskip1em
      \parindent0mm
    \usepackage{setspace}
      \setstretch{1.05}
    \usepackage{fancyhdr}
      \pagestyle{fancy}
      \fancyhf{}
      \renewcommand{\chaptermark}[1]{\markboth{\thechapter\ #1}{}}
      \renewcommand{\sectionmark}[1]{\markright{\thesection\ #1}}
      \rhead[\textsc{\leftmark}]{\textsc{\thepage}}
      \lhead[\textsc{\thepage}]{\textsc{\rightmark}}
      \chead{}
      \renewcommand{\headrulewidth}{0.3pt}
      \fancypagestyle{plain}{\fancyhf{} \fancyhead[LE,RO]{} \renewcommand{\headrulewidth}{0pt}}
    \usepackage[font=footnotesize,labelfont=bf,format=hang]{caption}
    
    \begin{document}
    \chapter*{Appendices}
    \markboth{Appendices}{Appendices}
    \renewcommand{\thesection}{\Alph{section}}
    \section{Waves 2006}
    \markright{A Waves 2006}
    Latitude $\varphi$ and longitude $\lambda$ of the northern (index $_{N}$) and southern (index $_{S}$) vortices are listed in 6-hourly time steps; mergence of two vortices is marked with a 'v'.
    % \twocolumn
    \setlength\unitlength{1cm}
    \begin{picture}(0,0)(16,18)
    \includegraphics{table.pdf}
    \end{picture}
    \includepdf[pages=2-]{table.pdf}
    
    
    % \onecolumn
    \end{document}
    Ich weiß, elegant ist anders, aber es tut.

    Gruß,
    Alexander

  7. #7
    Registrierter Benutzer
    Registriert seit
    17.08.2008
    Beiträge
    7
    Hallo!
    Inzwischen hat mir ein Maeuschen gefluestert wie man das Problem das \multicols mit \supertabular hat auch umgehen kann.
    Man bastele sich ein Skript, dass die mega-Tabelle in einzelne Teiltabellen zerlegt, die in der tabular Umgebung gesetzt werden. Dabei laesst man die ersten 2 Teiltabellen um so viel Zeilen kuerzer sein, wie die Ueberschrift und die paar Zeilen Text zusammen benoetigen die ueber der Tabelle stehen sollen. Dann muss man nur noch die Tabellenteile im fragmented_table.tex ganz normal im doc.tex einfuegen:
    Code:
    \begin{multicols}{2}
    \begin{center}
      \input{fragmented_table}
    \end{center}
    \end{multicols}
    Et voila!
    So ist es glaube ich am einfachsten.
    lg,
    Sonja

  8. #8
    Registrierter Benutzer
    Registriert seit
    28.06.2005
    Ort
    Karlsruhe
    Beiträge
    1.407
    Für andere, die das gleiche Problem haben, poste doch mal das script,

    Gruß,
    Alexander

  9. #9
    Registrierter Benutzer
    Registriert seit
    17.08.2008
    Beiträge
    7
    wird prompt gemacht:
    Code:
    #!/usr/bin/env python
    
    # note: within strings, any single '\' must be escaped as '\\'
    
    tablebegin = """
    \\begin{tabular}{|r|r|r|}
    """
    
    tablehead = """
    \\hline
    namecolumn1 & namecolumn2 & namecolumn3  \\\\
    \\hhline{===}
    """
    
    tableend   = """
    \\end{tabular}
    """
    
    # parameters for adjusting the subtables
    numcolumns = 2
    linesonfirstpage = 45
    linesonrestpages = 78
    
    # the original table shouldn't contain any preamble just the data, one text-line per table-line
    source = open('table_original.tex' , 'r')
    lines = source.readlines()
    source.close()
    
    f = open('table_fragmented.tex', 'w')
    
    # create first page
    for cols in range(numcolumns):
      f.write(tablebegin)
      f.write(tablehead)
      tab = lines[0:linesonfirstpage]
      del lines[0:linesonfirstpage]
      for st in tab: f.write(st)
      f.write(tableend)
    
    # create further pages
    while len(lines) > 0:
      f.write(tablebegin)
      f.write(tablehead)
      tab = lines[0:linesonrestpages]
      del lines[0:linesonrestpages]
      for st in tab: f.write(st)
      if len(lines) == 0: f.write("\\hline")
      f.write(tableend)
    
    f.close()
    ein table_original.tex koennte so aussehen:
    Code:
    1 & a & 0.345 \\ \hline
       & b & 1.65 \\ \hline
    2 & a & 3565 \\ \hline
       & b & 234 \\ \hline
    3 & a & 54.6 \\ \hline
       & b & 0.008 \\

  10. #10
    Registrierter Benutzer
    Registriert seit
    26.07.2008
    Ort
    Dresden
    Beiträge
    136

    multicol und Tabelle

    Ich habe das gleiche Problem wie blumenkind.
    Allerdings habe ich die Lösung noch nicht ganz begriffen. Wer kann mir helfen?
    Für ein profanes Kochbuch will ich die jeweiligen Zutaten in zweispaltigem Text in einer zweispaltigen Tabelle auflisten, um Platz nach unten zu sparen.

    Ich habe mal zwei Minimalbeispiele erstellt

    Mit "longtable" kommt die bereits beschriebene Fehlermeldung:
    Code:
    \documentclass[12pt,a4paper]{scrbook}
    \usepackage[latin1]{inputenc} % Umlaute verwenden ist toll
    \usepackage[ngerman]{babel} % deutsche Sprache
    \usepackage{multicol} % mehrere Spalten
    \newenvironment{Zutaten}%die Zutatenumgebung
      % Überschrift: Zutaten
      % zweispaltiger Text
      %beginne Tabelle mit: links gar kein Abstand (@{}), eine Spalte
    	{ \large \textbf{Zutaten:}	
    		\normalsize
        \begin{multicols}{2}
        \begin{longtable}
          {@{} p{.13\textwidth} @{\hskip .02\textwidth} p{.75\textwidth} @{}}%
      % Ende des Abschnitts: mach die Tabelle zu und einen Abstand
      }
      {\end{longtable} \end{multicols} \vskip 0.2cm 
      }
    \begin{document}
    \part{Vorspeisen und Vorsuppen}
    \begin{Zutaten}
    500g & Mehl \\
    2 & Eier \\
    3 & Träume
    \end{Zutaten}
    
    \end{document}
    mit der einfachen tabularumgebung klappt es zwar, aber die zweite Textspalte wird nicht verwendet:
    Code:
    \documentclass[12pt,a4paper]{scrbook}
    \usepackage[latin1]{inputenc} % Umlaute verwenden ist toll
    \usepackage[ngerman]{babel} % deutsche Sprache
    \usepackage{multicol} % mehrere Spalten
    \newenvironment{Zutaten}%die Zutatenumgebung
      % Überschrift: Zutaten
      % zweispaltiger Text
      %beginne Tabelle mit: links gar kein Abstand (@{}), eine Spalte
    	{ \large \textbf{Zutaten:}	
    		\normalsize
        \begin{multicols}{2}
        \begin{tabular}
          {@{} p{.13\textwidth} @{\hskip .02\textwidth} p{.75\textwidth} @{}}%
      % Ende des Abschnitts: mach die Tabelle zu und einen Abstand
      }
      {\end{tabular} \end{multicols} \vskip 0.2cm 
      }
    \begin{document}
    \part{Vorspeisen und Vorsuppen}
    \begin{Zutaten}
    500g & Mehl \\
    2 & Eier \\
    3 & Träume
    \end{Zutaten}
    
    \end{document}
    Wie kann das Problem einfach gelöst werden?

  11. #11
    Registrierter Benutzer
    Registriert seit
    28.06.2005
    Ort
    Karlsruhe
    Beiträge
    1.407
    Hallo Rafael,

    ich verstehe leider nicht, wofür Du die Tabelle brauchst. Ich würde die Zutatenliste mit multicol und einer einfachen Liste setzen, beispielsweise "compactitem" aus dem paralist-Paket.

    Gruß,
    Alexander

  12. #12
    Registrierter Benutzer
    Registriert seit
    23.02.2006
    Ort
    Berlin
    Beiträge
    97
    Ein Hinweis zu dem Thema.

  13. #13
    Registrierter Benutzer
    Registriert seit
    26.07.2008
    Ort
    Dresden
    Beiträge
    136
    Sorry da ich nicht geantwortet habe. Habe vergessen, das Thema zu abonieren. Ich brauche die Tabelle für zweisprachigen Text- links deutsch rechts slowakisch. Ich bin mittlerweile auf ein anderes Package gestoßen: Parallel. Das zaubert mir alles genauso wie ich es haben will. Auf die zweispaltigen Zutaten habe ich aber doch verzichtet. Leider habe ich durch beruflichen Stress noch nicht so viele Möglichkeiten gehabt, das Buch fertig zu bekommen. Jetzt steht wenigstens das Layout.Trotzdem vielen Dank für eure Bemühungen.
    Geändert von rafael (23-09-2008 um 16:53 Uhr)

Stichworte

Lesezeichen

Berechtigungen

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