Anzeige:
Ergebnis 1 bis 15 von 15

Thema: Mit Tabularx eine Tabelle mit bestimmten Spaltenverhältnis erstellen

  1. #1
    Registrierter Benutzer
    Registriert seit
    01.06.2007
    Beiträge
    31

    Mit Tabularx eine Tabelle mit bestimmten Spaltenverhältnis erstellen

    Moin moin,

    bin gerade dabei mich in die tabularx Umgebung hineinzuarbeiten. Allerdings bin ich dabei so eben auf folgendes Problem gestoßen:

    Ich möchte eine Tabelle erstellen. Diese soll 6 Spalten im Verhältnis 1:1:1:4:1:1 haben und automatisch an die Seitenbreite angepasst werden. Meine bisherige Lösung sieht folgendermaßen aus:

    Mein Header:
    Code:
    \documentclass[a4paper,11pt]{article}
    \usepackage{german}
    \usepackage{textcomp}
    \usepackage{graphicx}
    \usepackage{graphics}
    \usepackage{setspace}
    \usepackage[automark,headsepline,nouppercase]{scrpage2}
    \usepackage[ansinew]{inputenc}
    \usepackage{jurabib}
    \usepackage{lscape}
    \usepackage{tabularx}
    \newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}} % zentrierte Spalten mit Breitenangabe 
    \newcolumntype{R}[1]{>{\raggedleft\arraybackslash}p{#1}} % rechtsbündig mit Breitenangabe
    \newcommand{\ctab}{\centering\arraybackslash } % Tabellenabschnitt zentrieren 
    \newcommand{\rtab}{\raggedleft\arraybackslash} % Tabellenabschnitt rechtsbündig 
    \newcommand{\ltab}{\raggedright\arraybackslash} % Tabellenabschnitt linksbündig 
    \setlength{\oddsidemargin}{1.75cm}   
    \setlength{\evensidemargin}{1.75cm}   
    \setlength{\textwidth}{14cm}        
    \setlength{\topmargin}{0.3cm}        
    \setlength{\textheight}{23.5cm}
    \setlength{\headheight}{1.4\baselineskip}
    \automark[section]{subsection}
    \jurabibsetup{
    %	authorformat=year,
    	commabeforerest,
    	see,
    %	titleformat={commasep,all},
    }
    \renewcommand*{\jbauthorfont}{\textsc} %Formatierung Nachname Fließtext
    \renewcommand*{\biblnfont}{\textsc} %Formatierung Nachname Bibliography
    \renewcommand*{\bibfnfont}{\normalfont} %Formatierung Vorname
    \renewcommand*{\bibtfont}{\textsl} %Formatierung Buchtitel
    \newcommand*{\kcite}[3]{%
         (\cite[#1][#2]{#3})%
    }
    Der entsprechende Ausschnitt im Dokument:

    Code:
    \begin{landscape} 
    \subsubsection{Verlauf der Stunde}
    
    \begin{tabularx}{|>{\setlength{\hsize}{0.66\hsize}}X|>{\setlength{\hsize}{0.66\hsize}}X|>{\setlength{\hsize}{0.66\hsize}}X|>{\setlength{\hsize}{2.7\hsize}}X|>{\setlength{\hsize}{0.66\hsize}}X|>{\setlength{\hsize}{0.66\hsize}}X|}
    
    Dieser Text soll in der Tabelle stehen & Dieser in der zweiten Spalte und dabei auch automatisch umgebrochen werden & Die dritte Spalte ist leerer & Für die vierte fällt mir nichts sinnvolles mehr ein & 5. Spalte \\ \hline
    
    \end{tabularx}
    \end{landscape}

    Nun gibt er mir allerdings folgende Fehlermeldung aus:

    (praxis.tex [1]
    ! Missing number, treated as zero.

    |
    l.20 ...ze}}X|>{\setlength{\hsize}{0.66\hsize}}X|}

    ?

    Hoffe ihr könnt mir bei der Lösung meines Problems helfen.

    Mit besten Dank im Voraus,
    Christian

  2. #2
    Registrierter Benutzer
    Registriert seit
    19.05.2009
    Beiträge
    4.045
    Tja, dann schrumpfen wir das mal etwas ein:

    Code:
    \documentclass{article}
    \usepackage{tabularx}
    \begin{document}
    \begin{tabularx}{|X}
    Dieser Text soll in der Tabelle stehen 
    \end{tabularx}
    
    \end{document}
    Siehst du jetzt deinen Fehler?

    Ulrike Fischer

  3. #3
    Registrierter Benutzer Avatar von bobmalaria
    Registriert seit
    28.11.2006
    Ort
    Düsseldorf
    Beiträge
    4.174
    hi,

    du kannst doch einfach die textbreite durch 9 teilen. das als länge definieren und dann diese länge in eine p{\länge} bzw p{4\länge} packen.

    gruss
    Mein Ball ist umgefallen

  4. #4
    Registrierter Benutzer
    Registriert seit
    11.09.2005
    Beiträge
    1.712
    Das mit dem Minimalbeispiel solltest du dir unbedingt nochmal anschauen, denn so macht das Fehlersuchen mal überhaupt keinen Spass. Abgesehen davon willst du 6 Spalten haben, gibst aber in deinem Tabellenschnipsel nur 5 vor...
    Du hast vergessen, der Tabelle die vorgesehene Breite mitzugeben. So gehts:
    Code:
    \documentclass[a4paper,11pt]{article}
    \usepackage[ngerman]{babel} % Statt \usepackage{german}
    \usepackage[ansinew]{inputenc}
    \usepackage{lscape}
    \usepackage{tabularx}
    
    \begin{document}
    
    \begin{landscape} 
    \subsubsection{Verlauf der Stunde}
    %
    \begin{tabularx}{\textwidth}{|%
    >{\setlength{\hsize}{0.66\hsize}}X|%
    >{\setlength{\hsize}{0.66\hsize}}X|%
    >{\setlength{\hsize}{0.66\hsize}}X|%
    >{\setlength{\hsize}{2.7\hsize}}X|%
    >{\setlength{\hsize}{0.66\hsize}}X|%
    >{\setlength{\hsize}{0.66\hsize}}X|%
    }
    %
    Dieser Text soll in der Tabelle stehen & Dieser in der zweiten Spalte und dabei auch automatisch umgebrochen werden & Die dritte Spalte ist leerer & Für die vierte fällt mir nichts sinnvolles mehr ein & 5. Spalte & 6. Spalte \\\hline
    \end{tabularx}
    \end{landscape}
    
    \end{document}
    Geändert von Xenara (09-07-2009 um 09:25 Uhr)

  5. #5
    Registrierter Benutzer Avatar von localghost
    Registriert seit
    01.11.2006
    Ort
    Braunschweig
    Beiträge
    3.413

    Arrow Nachgedacht

    Zitat Zitat von Xenara Beitrag anzeigen
    Das mit dem Minimalbeispiel solltest du dir unbedingt nochmal anschauen, denn so macht das Fehlersuchen mal überhaupt keinen Spass. Abgesehen davon willst du 6 Spalten haben, gibst aber in deinem Tabellenschnipsel nur 5 vor...
    Du hast vergessen, der Tabelle die vorgesehene Breite mitzugeben.
    Hast Du dir eigentlich mal Gedanken über den Sinn des Beitrags von Ulrike gemacht? Offensichtlich nicht.


    MfG
    Thorsten¹
    TeX und LaTeX, Fragen und Antworten – TeXwelt

    ¹ Es tut mir Leid. Meine Antworten sind begrenzt. Sie müssen die richtigen Fragen stellen.
    ² System: openSUSE 13.1 (Linux 3.11.10), TeX Live 2013, TeXworks 0.5 (r1351)

  6. #6
    Registrierter Benutzer
    Registriert seit
    11.09.2005
    Beiträge
    1.712
    Zitat Zitat von localghost Beitrag anzeigen
    Hast Du dir eigentlich mal Gedanken über den Sinn des Beitrags von Ulrike gemacht? Offensichtlich nicht.
    Ich hab es eben etwas ausführlicher formuliert und mich tatsächlich auch noch die Lösung angegeben...
    Ist das mittlerweile in diesem Forum unerwünscht?

  7. #7
    Registrierter Benutzer Avatar von localghost
    Registriert seit
    01.11.2006
    Ort
    Braunschweig
    Beiträge
    3.413

    Arrow Lerneffekt

    Zitat Zitat von Xenara Beitrag anzeigen
    Ich hab es eben etwas ausführlicher formuliert und mich tatsächlich auch noch die Lösung angegeben...
    Ist das mittlerweile in diesem Forum unerwünscht?
    Sicherlich nicht. Aber Denkanstöße sind manchmal mehr wert als die fertige Lösung auf einem Silbertablett. Sonst ist der Lerneffekt gleich Null.
    TeX und LaTeX, Fragen und Antworten – TeXwelt

    ¹ Es tut mir Leid. Meine Antworten sind begrenzt. Sie müssen die richtigen Fragen stellen.
    ² System: openSUSE 13.1 (Linux 3.11.10), TeX Live 2013, TeXworks 0.5 (r1351)

  8. #8
    Registrierter Benutzer
    Registriert seit
    01.06.2007
    Beiträge
    31
    Vielen vielen Dank, dass du dich trotzdem durch gewurschtelt hast :-)

    Vor allem so ein blöder Fehler...

    Nun hätte ich allerdings gerne, dass die Tabelle die DinA4 Seite im Querformat relativ ausfüllt. Habe deswegen statt textwidth textheight eingegeben, das hat aber leider nicht den gewünschten Effekt gehabt.

    Code:
    \documentclass[a4paper,11pt]{article}
    \usepackage[ngerman]{babel} 
    \usepackage[ansinew]{inputenc}
    \usepackage{lscape}
    \usepackage{tabularx}
    
    \begin{document}
    
    \begin{landscape} 
    \subsubsection{Verlauf der Stunde}
    %
    \begin{tabularx}{\textheight}{|%
    >{\setlength{\hsize}{0.66\hsize}}X|%
    >{\setlength{\hsize}{0.66\hsize}}X|%
    >{\setlength{\hsize}{0.66\hsize}}X|%
    >{\setlength{\hsize}{2.7\hsize}}X|%
    >{\setlength{\hsize}{0.66\hsize}}X|%
    >{\setlength{\hsize}{0.66\hsize}}X|%
    }
    \hline
    Dieser Text soll in der Tabelle stehen & Dieser in der zweiten Spalte und dabei auch automatisch umgebrochen werden & Die dritte Spalte ist leerer & Für die vierte fällt mir nichts sinnvolles mehr ein & 5. Spalte & 6. Spalte \\\hline
    \end{tabularx}
    \end{landscape}
    
    \end{document}

  9. #9
    Registrierter Benutzer
    Registriert seit
    19.05.2009
    Beiträge
    4.045
    Zitat Zitat von Xenara Beitrag anzeigen
    Ich hab es eben etwas ausführlicher formuliert und mich tatsächlich auch noch die Lösung angegeben...
    Ist das mittlerweile in diesem Forum unerwünscht?
    Es ist deine persönliche Entscheidung, wie du auf Fragen antwortest. Ich werde dir da nicht reinreden.

    Ulrike Fischer

  10. #10
    Registrierter Benutzer
    Registriert seit
    19.05.2009
    Beiträge
    4.045
    Füge mal diesen Code vor und nach \begin{landscape} ein. Dann kannst du am Terminal oder in der log-Datei die Werte vergleichen.


    Code:
    \showthe\textheight
    \showthe\textwidth
    \showthe\linewidth
    landscape ist schon etwas etwas seltsam ...

    Ulrike Fischer

  11. #11
    Registrierter Benutzer
    Registriert seit
    11.09.2005
    Beiträge
    1.712
    Nimm \linewidth statt \textheight, damit klappts.
    Weshalb das so ist, weiss ich nicht genau, das können die Profis hier aber sicher erklären.

    Edit: Zu langsam, die Erklärung hast du grad von Ulrike schon bekommen.
    Geändert von Xenara (09-07-2009 um 10:26 Uhr)

  12. #12
    Registrierter Benutzer
    Registriert seit
    01.06.2007
    Beiträge
    31
    Dumdidum, ich habe ja schon eingesehen, dass ich einen blöden Fehler gemacht habe...

    Und das mein Beispiel nicht gerade ein Minimalbeispiel ist, habe ich auch erkannt. Wenn das der Lerneffekt ist, den ihr haben wolltet.

  13. #13
    Registrierter Benutzer
    Registriert seit
    01.06.2007
    Beiträge
    31
    Sonderbar, das funktioniert. Besten Dank


    Verstanden hätte ich es gerne, allerdings funktioniert der "\showthe\textheight" - Befehl bei mir nicht.

  14. #14
    Registrierter Benutzer
    Registriert seit
    19.05.2009
    Beiträge
    4.045
    Was heißt "funktioniert nicht". Bekommst du keine Ausgabe? Dann verwendest du wahrscheinlich ein System, das im Scrollmode läuft und nicht daher anhält. (Ich habe noch nie verstanden, wieso soviele LaTeX in diesem Modus benutzen, ich will Fehler und Meldungen immer sofort sehen). Die log-Datei müsste aber die Werte enthalten.

    Du kannst aber auch \the\textheight benützen. Dann werden die Werte in dein Dokument geschrieben.

    Ulrike Fischer

  15. #15
    Registrierter Benutzer
    Registriert seit
    01.06.2007
    Beiträge
    31
    Ach, mein Fehler...

    Das Fenster hält schon automatisch an, wenn er die Werte anzeigt. Ganz davon abgesehen lasse ich mir das Dokument immer als DVI anzeigen, dadurch bleibt das Fenster auch erhalten.

    Hier die Werte für jene, die das auch interessiert:

    linewidth vorher: 398.33858pt
    textheight vorher:668.63976pt
    textwidth vorher: 398.33858pt
    \begin{landscape}
    linewidth nachher: 668.63976pt
    textheight nachherher:398.33858pt
    textwidth nachher: 398.33858pt

    Die haben bei landscape anscheinend vergessen an die textwidth zu denken.

Stichworte

Lesezeichen

Berechtigungen

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