Moin,

ich möchte gerne die Zeilen meiner tabular Tabelle einfärben. Mit dem Paket xcolor klappt das auch, allerdings verschwinden dann meine senkrechten Trennlinien zwischen den Spalten. Was läuft da schief?

Danke schon mal für eure Hilfe!

Minimalbeispiel:

\documentclass[a4paper,12pt,toc=listofnumbered]{scrreprt}
\usepackage[latin9]{inputenc} % Zeichencodierung Umlaute für Kodierung ISO 8859-15 
\usepackage[ngerman]{babel} % Deutsche Einstellungen
\usepackage[T1]{fontenc} % Trennen von Wörtern 
\usepackage{siunitx} %Einheiten und Zahlen definieren 
\sisetup{locale=DE,per-mode = fraction} % Deutsche Spracheinstellung 
\usepackage{array}
\usepackage[table]{xcolor} % Zeilenfarbe Tabelle

\begin{document}
\begin{table}[ht]
    \rowcolors{2}{gray!15}{white}
    \centering
    \captionabove{Ausgewählte Eigenschaften des Wasserstoffs} \label{tab:Eigenschaften}
 \begin{tabular}{l|l|l|c}

    \textbf{Eigenschaft} & \textbf{Wert} & \textbf{Einheit} & \textbf{Quelle} \\
        \hline \hline 
    Molare Masse & 2,0159 & \si{g/mol} & \\
    Dichte* & 0,0899 & \si{kg/m^3} &  \\
    Siedetemperatur & -252,7 & °C &  \\
    Heizwert (flüssig) & 120,0 & \si{kJ/g} &  \\
    untere Explosionsgrenze & 18,3 & Vol.-\% &  \\
    Obere Explosionsgrenze & 59,0 & Vol.-\% &  \\
    untere Zündgrenze (in Luft) & 4,0 & Vol.-\% &  \\
    obere Zündgrenze (in Luft) & 77,0 & Vol.-\% &   \\
    Zündtemperatur & 560 & °C &  \\
    Verbrennungstemperatur in Luft & 2.045 & °C &  \\
    Mindestzündenergie & 0,017 & \si{mJ} & \\
    \hline
    \multicolumn{4}{l}{\small *bei physikalischen Normbedingungen (T = 0 °C, p = 1.013 mbar) }

\end{tabular}
\end{table}
\end{document}

gefragt 16 Jan, 11:33

luki's gravatar image

luki
366
Akzeptiert-Rate: 0%

bearbeitet 16 Jan, 13:01

saputello's gravatar image

saputello
10.8k104064

Bitte vermeide HTML-Markup. Und wenn Du es doch verwendest, achte bitte darauf, alle Tags korrekt zu paaren. Fehlerhaftes HTML-Markup hat das Potential die Seite komplett durcheinander zu bringen. Verwende nach Möglichkeit immer Markdown. Für Blockcode geht das auch ganz einfach: Code markieren, Strg-k drücken oder den Knopf mit den 101 in der Toolbar und schon ist der Blockcode korrekt markiert.

(16 Jan, 12:10) saputello

Off-Topic: Du solltest senkrechte Linien grundsätzlich vermeiden. Tabellen sind üblicherweise so angelegt, dass man sie zeilenweise liest. Genau dabei stören jedoch die senkrechten Linien, weil sie das Auge in die Vertikale zwingen wollen und man tatsächlich die Linie als Hindernis wahrnimmt. Das ist wie mit Kreidestrichen für Ameisen. Die können durchaus drüber, wollen aber erst einmal nicht.

(16 Jan, 12:11) saputello

Off-Topic: Wie schon einmal empfohlen, würde ich noch immer dazu raten, die Codierung auf UTF-8 einzustellen und dann inputenc einfach wegzulassen. Spätestens, wenn Du irgendwann einmal LuaLaTeX oder XeLaTeX verwenden willst, ist UTF-8 ohnehin angesagt. Auch sonst hat es schon seinen Grund, dass LaTeX inzwischen UTF-8 als Voreinstellung hat und auch LaTeX-Editoren darauf voreingestellt sind. Und da die Seite hier ebenfalls UTF-8 codiert ist und die Helfer üblicherweise per Copy&Paste in einen UTF-8-Editor kopieren, nervt das mit der Zeit auch etwas. Der Rat ist also auch durchaus egoistisch.

(16 Jan, 12:15) saputello

Deine Angabe von Grad Celsius führte bei mir beim Übersetzen zu einem merkwürdigen Zeichen. Besser wäre es wohl, gleich den Befehl \celsius des Pakets siunitx zu benutzen.

Außerdem solltest Du Dir mal die Pakete threeparttable und booktabs ansehen. Die Ausgabe der Befehle des Letzteren sieht aber ohne gefärbte Zeilen besser aus.

(16 Jan, 12:25) Bartman

Ich kann das Problem übrigens nicht nachvollziehen. Die senkrechten Linien sind alle vorhanden. Dafür würde ich empfehlen, °C per siunitx zu setzen. Das hat extra u. a. \celsius. Und auch die Zahlen mit Einheit unter der Tabelle sollten mit \SI gesetzt werden. Dann stimmt auch automatisch das Dezimalkomma und der Abstand zwischen Zahl und Einheit.

(16 Jan, 12:27) saputello

Du darfst den Abstand der Beschriftung zur Tabelle auch über die Klassenoption captions für alle Tabellen einheitlich einstellen.

(16 Jan, 12:37) Bartman
1

@Bartmann °C funktioniert, wenn man die Datei wirklich in ISO-Latin-9 aka ISO-8859-15 speichert. Trotzdem sollte man natürlich \si{\celsius} verwenden.

(16 Jan, 12:52) saputello

@saputello Das ändern der Kodierung im nachhinein erzeugt bei allerhand Fehler, da die Umlaute etc. nicht erkannt werden. Deswegen behalte ich das in diesem Dokument nun bei.. Den \si{\celsius}-Befehl habe ich jetzt übernommen, habe ich wohl übersehen. Auf die senkrechten Linien werde ich dann wohl verzichten. Dass man die nicht verwendet, war mir nicht bewusst.

@Bartman Wie kann ich das denn in der Klassenoption einstellen? caption=captionabove ?

(16 Jan, 13:10) luki

Lies das bitte in der Anleitung der Klasse nach.

(16 Jan, 13:14) Bartman
1

@luki Zu der Klassenoption siehe meine Antwort. (Das Lesen der Anleitung sei trotzdem empfohlen, so findet man darin beispielsweise auch viele Tabelle und alle ohne senkrechte Linien ;-)). Zu der Codierung: Wenn man die Codierung ändert, muss man natürlich auch die tatsächliche Codierung aller Dateien ändern. Hilfsdateien einfach löschen und neu erzeugen (lassen).

(16 Jan, 13:29) saputello
Ergebnis 5 von 10 show 5 more comments

Wie bereits in einem Kommentar angegeben, kann ich das Problem nicht nachvollziehen. Dein Beispiel ergibt bei mir:

Tabelle mit vertikalen Linien

Was also tatsächlich verschwindet, ist eine der beiden horizontalen Linien am Anfang. Das liegt daran, dass die Linie erst gezeichnet wird, dann aber der Hintergrund der nachfolgenden Zeile weiß eingefärbt wird, was die Linie wieder verschwinden lässt. Siehe dazu beispielsweise: Wie verhindere ich das colortbl rules übermalt?

Dessen ungeachtet würde ich empfehlen, die Tabelle wie folgt zu setzen:

\documentclass[a4paper,12pt,toc=listofnumbered,captions=tableheading]{scrreprt}
\usepackage[ngerman]{babel} % Deutsche Einstellungen
\usepackage[T1]{fontenc} % 8-bit-codierte Zeichensätze verwenden
%\usepackage{lmodern}% Latin Modern ist meiner Meinung nach European Computer Modern überlegen
\usepackage{siunitx} %Einheiten und Zahlen definieren 
\sisetup{locale=DE,per-mode = fraction} % Deutsche Spracheinstellung 
\usepackage{array}
\usepackage[table]{xcolor} % Zeilenfarbe Tabelle
\usepackage{booktabs}% Verbesserung bei Abständen und Linien in Tabellen

\begin{document}
\begin{table}[ht]
    \rowcolors{2}{gray!15}{white}
    \centering
    \caption{Ausgewählte Eigenschaften des Wasserstoffs} \label{tab:Eigenschaften}
    \begin{tabular}{lSrc}
      \toprule
      \textbf{Eigenschaft} & \textbf{Wert} & \textbf{Einheit} & \textbf{Quelle} \\
      \midrule 
      Molare Masse & 2,0159 & \si{g/mol} & \\
      Dichte* & 0,0899 & \si{kg/m^3} &  \\
      Siedetemperatur & -252,7 & \si{\celsius} &  \\
      Heizwert (flüssig) & 120,0 & \si{kJ/g} &  \\
      untere Explosionsgrenze & 18,3 & Vol.-\% &  \\
      Obere Explosionsgrenze & 59,0 & Vol.-\% &  \\
      untere Zündgrenze (in Luft) & 4,0 & Vol.-\% &  \\
      obere Zündgrenze (in Luft) & 77,0 & Vol.-\% &   \\
      Zündtemperatur & 560 & \si{\celsius} &  \\
      Verbrennungstemperatur in Luft & 2.045 & \si{\celsius} &  \\
      Mindestzündenergie & 0,017 & \si{mJ} & \\
      \bottomrule
      \multicolumn{4}{l}{\footnotesize *bei physikalischen Normbedingungen (T =
      \SI{0}{\celsius}, p = \SI{1.013}{\milli\bar)} }
    \end{tabular}
\end{table}
\end{document}

Tabelle ohne vertikale Linien

Das Vol.-\% könnte/sollte man eigentlich auch noch per \DeclareSIUnit als Einheit definieren.

Permanenter link

beantwortet 16 Jan, 12:36

saputello's gravatar image

saputello
10.8k104064
Akzeptiert-Rate: 51%

bearbeitet 16 Jan, 16:20

Eigenartig, dass die senkrechte Linie bei mir trotzdem verschwindet.. Egal, deine Tabelle gefällt mir sehr, die werde ich so übernehmen, danke!

(16 Jan, 13:13) luki
1

@luki Ich habe extra nicht nur mit aktuellen TeX Live 2019, sondern auch mit TeX Live 2018 getestet. Außerdem habe ich mit Okular, Evince und Firefox drei verschiedene PDF-Viewer getestet. Die vertikalen Linien sind immer zu sehen. Da die Zeile zuerst gefärbt und dann ihr Inhalt geschrieben wird, wäre für mich etwas anderes auch eher unerwartet.

(16 Jan, 13:26) saputello
1

Bei der Klassenoption im zweiten Beispiel fehlt ein s: captions.

Apropos Tippfehler: Vor der ersten Abbildung wolltest Du vermutlich "Dein Beispiel" schreiben.

Danke für Deine Geduld.

@luki Es steht Dir frei, die gegebene Antwort zu akzeptieren.

(16 Jan, 16:13) Bartman
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×241
×48
×29
×10
×7

gestellte Frage: 16 Jan, 11:33

Frage wurde gesehen: 1,172 Mal

zuletzt geändert: 16 Jan, 16:20