Anzeige:
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 15 von 17

Thema: \extrarowheight hat nur auf eine Spalte Auswirkung

  1. #1
    Registrierter Benutzer
    Registriert seit
    13.10.2011
    Beiträge
    16

    \extrarowheight hat nur auf eine Spalte Auswirkung

    Hallo,
    ich habe folgende Tabelle:

    Code:
    \setlength{\extrarowheight}{10pt}
    \begin{filecontents*}{tabelletest.tex}
    \begin{longtable}{|c|>{\hangindent 1em}X|c|}
    \hline
     \textbf{ABCDEF} & \textbf{Testspalte} & \textbf{XYZABC} \\
    \hline
    \addlinespace
    \hline
    abc123 & TextTextTextTextTextTextTextText & 123xyz\\
    \hline
    abc123 & TextTextTextTextTextTextTextText & 123xyz\\
    \hline
    abc123 & TextTextTextTextTextTextTextText & 123xyz\\
    \hline
    \end{longtable}
    \end{filecontents*}
    {\def\tabularxcolumn#1{m{#1}}% verwende m- statt p-Spalten für X-Spalten
    \LTXtable{\linewidth}{tabelletest.tex}}

    Das Problem ist nun, dass sich
    Code:
    \setlength{\extrarowheight}{10pt}
    nur auf die mittlere Spalte auswirkt, die erste und letzte Spalte bleiben davon unberührt... Wieso ist das so? Was muss ich ändern, damit alle Spalten davon betroffen sind?

  2. #2
    Registrierter Benutzer
    Registriert seit
    19.05.2009
    Beiträge
    4.045
    Mach aus deinen Codeschnipseln ein lauffähiges Beispiel.

  3. #3
    Registrierter Benutzer
    Registriert seit
    10.07.2010
    Ort
    Offenhausen
    Beiträge
    654

  4. #4
    Registrierter Benutzer
    Registriert seit
    13.10.2011
    Beiträge
    16
    hi, das folgende müsste lauffähig sein:

    Code:
    \documentclass[a4paper,11pt,parskip]{scrartcl}
    \usepackage[latin1]{inputenc}
    \usepackage[ngerman]{babel}
    \usepackage[T1]{fontenc}
    \usepackage[table]{xcolor}
    \usepackage{ltxtable}
    \usepackage{filecontents}
    \usepackage{booktabs} 
    \setlength{\extrarowheight}{10pt}
    \begin{filecontents*}{tabelletest.tex}
    \begin{longtable}{|c|>{\hangindent 1em}X|c|}
    \hline
     \textbf{ABCDEF} & \textbf{Testspalte} & \textbf{XYZABC} \\
    \hline
    \addlinespace
    \hline
    abc123 & TextTextTextTextTextTextTextText & 123xyz\\
    \hline
    abc123 & TextTextTextTextTextTextTextText & 123xyz\\
    \hline
    abc123 & TextTextTextTextTextTextTextText & 123xyz\\
    \hline
    \end{longtable}
    \end{filecontents*}
    {\def\tabularxcolumn#1{m{#1}}% verwende m- statt p-Spalten für X-Spalten
    \LTXtable{\linewidth}{tabelletest.tex}}

  5. #5
    Registrierter Benutzer
    Registriert seit
    19.05.2009
    Beiträge
    4.045
    hi, das folgende müsste lauffähig sein:
    Nun, da du dir unsicher bist, erkläre ich dir, wie du die Aussage überprüfen kannst: Füge genau in diesen Code in eine leere (!!) test.tex, kompiliere test.tex mit pdflatex und dann überprüfe, 1. ob du eine pdf-Datei erhalten hast und 2. ob in der log-Datei ein Fehler erwähnt wird.

  6. #6
    Registrierter Benutzer
    Registriert seit
    06.03.2010
    Ort
    St. Petersburg, Russland
    Beiträge
    2.468
    Also bei mir läuft es nicht.
    Und kann es ja eigentlich auch nicht, da weder \begin{document} noch \end{document} vorhanden sind. Oder?
    Es ist mir auch nicht gelungen, es zu einem (bei mir) lauffähigen Beispiel umzubasteln.

  7. #7
    Registrierter Benutzer
    Registriert seit
    13.10.2011
    Beiträge
    16
    Tut mir Leid, ihr habt natürlich Recht. Habe es nun mehrmals geprüft und jedes mal ohne Fehler und mit PDF-Datei.

    Code:
    \documentclass[a4paper,11pt,parskip]{scrartcl}
    \usepackage[latin1]{inputenc}
    \usepackage[ngerman]{babel}
    \usepackage[T1]{fontenc}
    \usepackage[table]{xcolor}
    \usepackage{ltxtable}
    \usepackage{filecontents}
    \usepackage{booktabs}
    \begin{document}
    \setlength{\extrarowheight}{10pt}
    \begin{filecontents*}{tabelletest.tex}
    \begin{longtable}{|c|>{\hangindent 1em}X|c|}
    \hline
     \textbf{ABCDEF} & \textbf{Testspalte} & \textbf{XYZABC} \\
    \hline
    \addlinespace
    \hline
    abc123 & TextTextTextTextTextTextTextText & 123xyz\\
    \hline
    abc123 & TextTextTextTextTextTextTextText & 123xyz\\
    \hline
    abc123 & TextTextTextTextTextTextTextText & 123xyz\\
    \hline
    \end{longtable}
    \end{filecontents*}
    {\def\tabularxcolumn#1{m{#1}}% verwende m- statt p-Spalten für X-Spalten
    \LTXtable{\linewidth}{tabelletest.tex}}
    \end{document}

  8. #8
    Registrierter Benutzer
    Registriert seit
    19.05.2009
    Beiträge
    4.045
    Dein \extrarowheight wird schon überall benutzt. Aber in Kombination mit der m-Spalte bekommst du nicht das gewünschte Ergebnis, was du besser sehen kannst, wenn mal einen höheren Wert und eine geringere Tabellenbreite nimmst:

    Code:
    \documentclass[a4paper,11pt,parskip]{scrartcl}
    \usepackage[latin1]{inputenc}
    \usepackage[ngerman]{babel}
    \usepackage[T1]{fontenc}
    \usepackage[table]{xcolor}
    \usepackage{ltxtable}
    \usepackage{filecontents}
    \usepackage{booktabs}
    \begin{document}
    \setlength{\extrarowheight}{3cm}
    \begin{filecontents*}{tabelletest.tex}
    \begin{longtable}{|c|X|c|}
    \hline
     \textbf{ABCDEF} & \textbf{Testspalte} & \textbf{XYZABC} \\
    \hline
    \addlinespace
    \hline
    abc123 & text TextTextTextTextTextTextTextText & 123xyz\\
    \hline
    abc123 & text TextTextTextTextTextTextTextText & 123xyz\\
    \hline
    abc123 & Text TextTextTextTextTextTextText & 123xyz\\
    \hline
    \end{longtable}
    \end{filecontents*}
    {\def\tabularxcolumn#1{m{#1}}% verwende m- statt p-Spalten für X-Spalten
    \LTXtable{6cm}{tabelletest.tex}}
    \end{document}
    Du kannst versuchen, auf \extrarowheight zu verzichten und dafür lieber in den Spalten einen Strut einfügen. Da kannst du dann unterschiedliche Werte für die Spaltentypen verwenden:

    Code:
    \begin{longtable}{|>{\rule{0pt}{3cm}}c|>{\rule{0pt}{1cm}}X|c|}
    Aber ob dabei rauskommt, was du dir vorstellst, hängt vom Inhalt der Tabelle ab. Die Ausrichtung von m-Spalten ist komplexer als die von p-Spalten.

  9. #9
    Registrierter Benutzer
    Registriert seit
    13.10.2011
    Beiträge
    16
    Danke dir schonmal für die schnelle Antwort. Ich steh aber irgendwie immer noch auf dem Schlauch. Im Grunde genommen möchte ich eine Tabelle haben, bei der mehrere Zeilen Text in eine Zelle passen. Der folgende Code macht aber keinen Zeilenumbruch:
    Code:
    \documentclass[a4paper,11pt,parskip]{scrartcl}
    \usepackage[latin1]{inputenc}
    \usepackage[ngerman]{babel}
    \usepackage[T1]{fontenc}
    \usepackage[table]{xcolor}
    \usepackage{ltxtable}
    \usepackage{filecontents}
    \usepackage{booktabs}
    \begin{document}
    \setlength{\extrarowheight}{10pt}
    \begin{tabular}{|c|l|c|}
    \hline
    \textbf{ABCDEF} & \textbf{Testspalte} & \textbf{XYZABC} \\
    \hline
    \addlinespace
    \hline
    abc123 & TextTextTextTextTextTextTextText TextTextTextTextTextTextTextText TextTextTextTextTextTextTextText TextTextTextTextTextTextTextText TextTextTextTextTextTextTextText & 123xyz\\
    \hline
    abc123 & TextTextTextTextTextTextTextText & 123xyz\\
    \hline
    abc123 & TextTextTextTextTextTextTextText & 123xyz\\
    \hline
    \end{tabular}
    \end{document}
    Darum habe ich eben das mit den m/p Spalten gemacht (habe ich aus nem anderen Forum). Da wird nämlich ein Zeilenumbruch eingefügt. Bei obigen Code funktioniert das \extrarowheight wunderbar und bei allen Spalten gleichmäßig.
    Mein Problem ist nun, wie ich beide Dinge zusammen bekomme, also \extrarowheight und Zeilenumbruch...

  10. #10
    Registrierter Benutzer
    Registriert seit
    19.05.2009
    Beiträge
    4.045
    Zeilenumbruch bekommst du mit m-/p-/b-Spalten. (Sollte das erste Wort sehr lang sein, empfiehlt sich aber ein \hspace{0pt} davor, sonst wird nicht getrennt).

    Aber \extrarowheight fügt einfach am Anfang der Zelle einen entsprechenden Strich der Breite 0 ein. Und das verändert den Mittelpunkt einer m-Spalte und dann bekommst du nicht mehr die Ausrichtung, die du wahrscheinlich willst:

    Code:
    \documentclass[a4paper,11pt,parskip]{scrartcl}
    \usepackage[latin1]{inputenc}
    \usepackage[ngerman]{babel}
    \usepackage[T1]{fontenc}
    \usepackage{array}
    \begin{document}
    %Effekt von \setlength{\extrarowheight}{1cm}
    % durch \rule{3pt}{1cm} sichtbar gemacht:
    
    \begin{tabular}{>{\rule{3pt}{1cm}}c>{\rule{3pt}{1cm}}p{3cm}>{\rule{3pt}{1cm}}m{3cm}}
    a & text TextTextTextTextTextTextTextText & text TextTextTextTextTextTextTextText\\
    \end{tabular}
    
    \begin{tabular}{cp{3cm}m{3cm}}
    a & text TextTextTextTextTextTextTextText & text TextTextTextTextTextTextTextText\\
    \end{tabular}
    \end{document}

  11. #11
    Registrierter Benutzer
    Registriert seit
    13.10.2011
    Beiträge
    16
    Sorry, nehmt es mir nicht übel, aber ich verstehe es einfach nicht. Ich hab irgendwie kein Talent durch die Logik da durchzusteigen. Ist es generell überhaupt möglich extrarowheight und Zeilenumbruch zusammen in eine Tabelle zu bringen?

    Ich habe halt eine Tabelle mit 3 Spalten. In der ersten und dritten steht jeweils nur ein Wort (Länge ca 13 Zeichen). In der mittleren Spalte steht meistens sehr viel Text über ein bis zwei Sätze verteilt. Dann soll dieser über mehrere Zeilen in der Zelle verteilt werden. Die ganze Tabelle soll dabei einen Rahmen (=Aussehen) haben wie die hier:
    Code:
    \documentclass[a4paper,11pt,parskip]{scrartcl}
    \usepackage[latin1]{inputenc}
    \usepackage[ngerman]{babel}
    \usepackage[T1]{fontenc}
    \usepackage[table]{xcolor}
    \usepackage{ltxtable}
    \usepackage{filecontents}
    \usepackage{booktabs}
    \begin{document}
    \setlength{\extrarowheight}{10pt}
    \begin{tabular}{|c|l|c|}
    \hline
    \textbf{ABCDEF} & \textbf{Testspalte} & \textbf{XYZABC} \\
    \hline
    \addlinespace
    \hline
    abc123 & TextTextTextTextTextTextTextText TextTextTextTextTextTextTextText TextTextTextTextTextTextTextText TextTextTextTextTextTextTextText TextTextTextTextTextTextTextText & 123xyz\\
    \hline
    abc123 & TextTextTextTextTextTextTextText & 123xyz\\
    \hline
    abc123 & TextTextTextTextTextTextTextText & 123xyz\\
    \hline
    \end{tabular}
    \end{document}
    Ist sowas überhaupt machbar mit Latex? Wäre wirklich dankbar für eure Hilfe, da ich da einfach Schwierigkeiten habe, durchzusteigen. Vielen Dank!

  12. #12
    Registrierter Benutzer
    Registriert seit
    19.05.2009
    Beiträge
    4.045
    Hast du meinen Code ausprobiert oder hast du ihn dir nur verzweifelt angeschaut?

    Ist es generell überhaupt möglich extrarowheight und Zeilenumbruch zusammen in eine Tabelle zu bringen?
    Ja. Schon in deinem ersten Beispiel hast du es ja genutzt.

  13. #13
    Registrierter Benutzer
    Registriert seit
    13.10.2011
    Beiträge
    16
    Ich habe ihn ausprobiert. Er zeigt mir die 3 schwarzen senkrechten Balken an, ich glaube du wolltest damit demonstrieren, was das extrarowheight macht, im Grunde genommen einen unsichtbaren Balken einfügen, damit der Text nach unten versetzt wird oder?

    In meinem ersten Bsp. habe ich es schon gemacht, aber wie gesagt, es wird nicht gleichmäßig auf alle Spalten übertragen. Der Inhalt der mittleren Spalte ist dann immer tiefer als der aus der ersten und dritten. Ich weiß ehrlich gesagt nicht, wie ich da weiter vorgehen kann.

    Mir fehlt noch die Aussage deines Codes mit den 3 schwarzen Balken in Bezug auf mein Problem. Also ich sehe einfach keine Lösung, sry wenn ich mich saudumm anstelle..

  14. #14
    Registrierter Benutzer
    Registriert seit
    19.05.2009
    Beiträge
    4.045
    ich glaube du wolltest damit demonstrieren, was das extrarowheight macht, im Grunde genommen einen unsichtbaren Balken einfügen,
    Es sollte auch das unterschiedliche Verhalten von p- und m-Spalten demonstrieren.

    In deinem Beispiel verwendest du ganz bewusst m-Spalten:

    Code:
    {\def\tabularxcolumn#1{m{#1}}% verwende m- statt p-Spalten für X-Spalten
    Die sind auch bei mir nicht auf einer Höhe mit einzeiligen-Spalten und werden es auch nie sein - das ist so gedacht. Wenn du deren Verhalten nicht magst, warum benutzt du sie dann?

  15. #15
    Registrierter Benutzer
    Registriert seit
    13.10.2011
    Beiträge
    16
    Zitat Zitat von u_fischer Beitrag anzeigen
    Die sind auch bei mir nicht auf einer Höhe mit einzeiligen-Spalten und werden es auch nie sein - das ist so gedacht. Wenn du deren Verhalten nicht magst, warum benutzt du sie dann?
    Als Lösung, dass viel Text in einer Zelle mit Zeilenumbruch dargestellt wird. Das ist der einzige Grund. Bevor ich sie benutzt habe, hatte ich folgenden Code, und da wird leider kein Zeilenumbruch eingefügt:
    Code:
    \documentclass[a4paper,11pt,parskip]{scrartcl}
    \usepackage[latin1]{inputenc}
    \usepackage[ngerman]{babel}
    \usepackage[T1]{fontenc}
    \usepackage[table]{xcolor}
    \usepackage{ltxtable}
    \usepackage{filecontents}
    \usepackage{booktabs}
    \begin{document}
    \setlength{\extrarowheight}{10pt}
    \begin{tabular}{|c|l|c|}
    \hline
    \textbf{ABCDEF} & \textbf{Testspalte} & \textbf{XYZABC} \\
    \hline
    \addlinespace
    \hline
    abc123 & TextTextTextTextTextTextTextText TextTextTextTextTextTextTextText TextTextTextTextTextTextTextText TextTextTextTextTextTextTextText TextTextTextTextTextTextTextText & 123xyz\\
    \hline
    abc123 & TextTextTextTextTextTextTextText & 123xyz\\
    \hline
    abc123 & TextTextTextTextTextTextTextText & 123xyz\\
    \hline
    \end{tabular}
    \end{document}
    EDIT: Habe jetzt nochmal selber rumprobiert. Mit folgendem Code funktioniert extrarowheight wie gewünscht und es werden Zeilenumbrüche eingefügt. Das Problem ist aber, dass bei einer sehr langen Tabelle kein Seitenumbruch (!!) gemacht wird, bzw die Textabschnitte vor der Tabelle (nicht im Codebeispiel dabei) plötzlich viel größeren Abstand voneinander haben. Wieso ist das denn auf einmal so? Jetzt blick ich erst recht nicht durch, warum auf einmal kein Seitenumbruch mehr gemacht wird?!!
    Code:
    \documentclass[a4paper,11pt,parskip]{scrartcl}
    \usepackage[latin1]{inputenc}
    \usepackage[ngerman]{babel}
    \usepackage[T1]{fontenc}
    \usepackage[table]{xcolor}
    \usepackage{ltxtable}
    \usepackage{filecontents}
    \usepackage{booktabs}
    \begin{document}
    \setlength{\extrarowheight}{10pt}
    \begin{tabular}{c|p{9cm}|c}
    \hline
    \textbf{ABCDEF} & \textbf{Testspalte} & \textbf{XYZABC} \\
    \hline
    \addlinespace
    \hline
    abc123 & TextTextTextTextTextTextTextText TextTextTextTextTextTextTextText TextTextTextTextTextTextTextText TextTextTextTextTextTextTextText TextTextTextTextTextTextTextText & 123xyz\\
    \hline
    abc123 & TextTextTextTextTextTextTextText & 123xyz\\
    \hline
    abc123 & TextTextTextTextTextTextTextText & 123xyz\\
    \hline
    \end{tabular}
    \end{document}
    Um den Effekt des fehlenden Seitenumbruches zu merken, muss man halt ganz viele Zeilen einfügen, was ich hier aufgrund der Übersichtlichkeit nicht gemacht habe.
    Geändert von gurkensalat (17-10-2011 um 07:18 Uhr)

Lesezeichen

Berechtigungen

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