Anzeige:
Ergebnis 1 bis 2 von 2

Thema: Darstellungsproblem mit datatool, tabularx und booktabs

  1. #1
    Registrierter Benutzer
    Registriert seit
    05.04.2007
    Beiträge
    535

    Darstellungsproblem mit datatool, tabularx und booktabs

    Hallo,

    nach langer Zeit hab ich mal wieder ein kleines Problem, welches ich nicht gelöst bekomme. Ich möchte mit dem Paket datatool eine Liste von Daten einlesen und diese als Tabelle darstellen. Hierfür nutze ich die Pakete tabularx und booktabs. Hier tauchen zwei Probleme auf.

    Problem 1: Scheinbar funktioniert datatool nicht mit booktabs zusammen. Wenn ich die Linien \toprule, \midrule und \bottomrule weglasse, dann geht es.

    Problem 2: Da es sich nur um zwei Spalten handelt, möchte ich diese wiederholt nebeneinander ausgeben, bis die Tabelle auf der aktuellen Seite voll ist oder keine Daten mehr vorhanden sind. Eventuell wäre eine longtable die bessere Option.

    Angenommen der Datensatz enthält 200 Zeilen. Es passen aber nur ca. 40 Zeilen auf eine DIN A4-Seite. Daher möchte ich, dass die Tabelle automatisch mit den Daten aufgefüllt wird, bis diese voll ist. Sieht vom Layout her besser aus, als eine lange Tabelle, die nur aus 2 Spalten besteht und über mehrere Seiten geht.

    Beispiel:

    Spalte1 & Spalte2 & Spalte1 & Spalte2 & Spalte1 & Spalte2 ...

    Man könnte es natürlich auch manuell lösen, macht aber viel Arbeit beim Formatieren der einzelnen Zeilen

    Minimalbeispiel:

    Code:
    \documentclass{scrreprt}
    
    \usepackage[T1]{fontenc}
    \usepackage[english]{babel}
    \usepackage[utf8]{inputenc}
    \usepackage{datatool}
    \usepackage{booktabs}
    \usepackage{caption}
    \usepackage{tabularx}
    
    \begin{document}
    \begin{center}
    \captionof{table}{Testdaten.}
    \DTLloaddb{Liste}{data.txt}
    \begin{tabularx}{\textwidth}{@{}
    	>{\hsize=.5\hsize}X
    	>{\hsize=1.5\hsize}X
    	@{}}
    	%\toprule
    	Spalte1 & Spalte2 \\
    	%\midrule
    	\DTLforeach{Liste}{%
    		\spalte1=Spalte1,\spalte2=Spalte2}{%
    		\\
    		\spalte1 & \spalte2}
    	%\bottomrule
    \end{tabularx}
    \end{center}
    \end{document}
    LaTeX Workshop: http://www.fadi-semmo.de/latex/workshop/
    Mein System: Windows 8.1, TeXLive 2013, TeXmaker 4.1

  2. #2
    Registrierter Benutzer
    Registriert seit
    21.08.2009
    Beiträge
    496
    Hallo,

    zu Problem 1: Der Zeilenwechsel (\\) direkt vor \bottomrule fehlt.
    Code:
    \documentclass{scrreprt}
    
    \usepackage[T1]{fontenc}
    \usepackage[english]{babel}
    \usepackage[utf8]{inputenc}
    \usepackage{datatool}
    \usepackage{booktabs}
    \usepackage{caption}
    \usepackage{tabularx}
    
    \begin{document}
    \begin{center}
    \captionof{table}{Testdaten.}
    \DTLloaddb{Liste}{data.txt}
    \begin{tabularx}{\textwidth}{@{}>{\hsize=.5\hsize}X>{\hsize=1.5\hsize}X@{}}
      \toprule
      Spalte1 & Spalte2 
      \DTLforeach{Liste}{\spalte1=Spalte1,\spalte2=Spalte2}{%
        \DTLiffirstrow{\\ \midrule}{\\}
        \spalte1 & \spalte2}
        \\
      \bottomrule
    \end{tabularx}
    \end{center}
    \end{document}
    Gruß
    Elke

Lesezeichen

Berechtigungen

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