Meine Dokumente verwenden eine Vielzahl von Tabellen, deren Formatierung einheitlich werden sollen und die möglichst in der Präambel festgelegte Einstellungen verwenden.

So soll die Schrift der Kopfzeilen fett sein. Eine Beispieltabelle:

\documentclass[fontsize=10pt,DIV=9]{scrartcl}
\usepackage{array}
\usepackage{booktabs}
\usepackage[utf8]{inputenc}
\renewcommand*{\familydefault}{\sfdefault}
\begin{document}
\begin{figure}[ht]
\begin{tabular}{*6l}
  \toprule
  \textbf{Name} & \textbf{IP-Adresse} & \textbf{MAC-Adresse} & \textbf{Modell}
    & \textbf{Seriennr.} & \textbf{Standort}\\
  \midrule
  filecluster   & 172.16.20.12 &         -         &    -     &     -     & virtuell   \\
  fileserver1   & 172.16.20.13 & 0c:5f:6a:02:aa:bd & PCX-88X6 & FDI241388 & Datacenter \\
  fileserver2   & 172.16.20.14 & 0c:5f:6a:02:aa:fe & PCX-88X6 & FDI132528 & Datacenter \\
  \bottomrule
\end{tabular}
\end{figure}
\end{document}

Ausgabe der Tabelle

\textbf x-mal wiederholt und das in zig Tabellen, das geht ja gar nicht. Erst recht, wenn ich später doch den Stil ändern will. Also mache ich mir ein Makro dafür, entweder

\newcommand*{\head}[1]{\textbf{#1}}

oder

\newcommand*{\head}{\bfseries}

und verwende das in der Kopfzeile. Spätere Stil-Änderungen sind dann einfach. Dennoch muss ich den Befehl ganz oft wiederholen.

Kann ich mit so einem Makro den Stil einer ganzen Tabellen-Zeile festlegen?

gefragt 13 Jul '13, 14:31

Tino's gravatar image

Tino
2458812
Akzeptiert-Rate: 0%


Die UK TeX FAQ dokumentieren einen Trick, wie man eine ganze Zeile einer Tabelle formatieren kann.

\documentclass[11pt]{standalone}
\usepackage[T1]{fontenc}
\usepackage{array,booktabs}

\renewcommand*{\familydefault}{\sfdefault}

%% siehe UK TeX FAQ: http://www.tex.ac.uk/cgi-bin/texfaq2html?label=wholerow
\newcolumntype{_}{>{\global\let\currentrowstyle\relax}}
\newcolumntype{^}{>{\currentrowstyle}}
\newcommand{\rowstyle}[1]{\gdef\currentrowstyle{#1}%
  #1\ignorespaces
}

\begin{document}
  \begin{tabular}{_l*{5}{^l}}\toprule
    \rowstyle{\bfseries}
    Name & IP-Adresse & MAC-Adresse & Modell & Seriennr. & Standort \\ \midrule
    filecluster   & 172.16.20.12 &        ---        &    ---   &    ---    & virtuell   \\
    fileserver1   & 172.16.20.13 & 0c:5f:6a:02:aa:bd & PCX-88X6 & FDI241388 & Datacenter \\
    fileserver2   & 172.16.20.14 & 0c:5f:6a:02:aa:fe & PCX-88X6 & FDI132528 & Datacenter \\ \bottomrule
  \end{tabular}
\end{document}

Ergebnis

Permanenter link

beantwortet 13 Jul '13, 15:16

Thorsten's gravatar image

Thorsten
1.6k325
Akzeptiert-Rate: 58%

bearbeitet 02 Feb '22, 10:48

stefan's gravatar image

stefan ♦♦
18.3k163148

Das Paket tabu kennt für diesen Zweck die Anweisung \rowfont mit einem optionalen und einem nicht optionalen Argument. Das optionale Argument dient der Ausrichtung, das zweite Argument nimmt eine Font-Spezifikation auf. Für das optionale Ausrichtungsargument werden folgende Werte verstanden:

l = linksbündig

c = zentriert

r = rechtsbündig

j = im Blocksatz

Verwendet man Groß- statt Kleinbuchstaben werden die entsprechenden Anweisungen von ragged2e für die Formatierung verwendet.

Damit reduziert sich Dein Beispiel also auf:

\documentclass[fontsize=10pt,DIV=9]{scrartcl}
\usepackage{tabu}
\usepackage{booktabs}
\renewcommand*{\familydefault}{\sfdefault}
\newcommand*\head{\rowfont{\bfseries}}
\begin{document}
\begin{figure}[ht]
\begin{tabu}{*6l}
  \toprule
  \head 
  Name          & IP-Adresse   & MAC-Adresse       & Modell   & Seriennr. & Standort\\
  \midrule
  filecluster   & 172.16.20.12 &         -         &    -     &     -     & virtuell   \\
  fileserver1   & 172.16.20.13 & 0c:5f:6a:02:aa:bd & PCX-88X6 & FDI241388 & Datacenter \\
  fileserver2   & 172.16.20.14 & 0c:5f:6a:02:aa:fe & PCX-88X6 & FDI132528 & Datacenter \\
  \bottomrule
\end{tabu}
\end{figure}
\end{document}

Das Ergebnis sieht exakt wie in Deinem eigenen Beispiel aus.

Und wenn Du später überlegst, die Köpfe aller zentriert haben zu wollen, dann musst Du nur \head ändern:

\newcommand*\head{\rowfont[c]{\bfseries}}

Ebenso einfach ist die Änderung der Schrift. Es ist lediglich zu beachten, dass man nicht die Befehle mit Argument, also \textbf, \textit etc., sondern die entsprechenden Umschalter, also \bfseries, \itshape etc. verwendet. Da Du eine KOMA-Script-Klasse verwendest, kennst Du das vermutlich bereits von \setkomafont und \addtokomafont.

Permanenter link

beantwortet 14 Jul '13, 11:37

saputello's gravatar image

saputello
11.1k174365
Akzeptiert-Rate: 51%

bearbeitet 14 Jul '13, 11:38

1

Das Paket tabu ist insgesamt betrachtet, ein sehr leistungsfähiges Tabellen-Paket. Einen eventuellen Nachteil des Pakets tabu will ich aber nicht verschweigen: Der Maintainer des Pakets hat vor einiger Zeit verlauten lassen, dass das Paket in der derzeitigen Form unverändert bleiben wird. Selbst etwaige Fehlerkorrekturen will er nicht mehr vornehmen. Stattdessen arbeitet er an einem neuen Paket, das nicht kompatibel sein soll. Dieser Nachteil spielt allerdings keine Rolle, wenn es wie in diesem und vielen anderen Fällen leistet, was es soll.

(14 Jul '13, 11:54) saputello

Von dieser Neuimplementierung habe ich auch gehört. Hoffentlich erfährt die Gestaltung der Anleitung eine ebenso gründliche Überarbeitung.

(14 Jul '13, 12:14) Thorsten
1

Ich mag das tabu Paket eigentlich, allerdings sollte man sich bei der Entscheidung dafür auf jeden Fall bewusst sein, dass sich wahrscheinlich auch die Anwenderschnittstellen ändern werden. Auf http://tex.stackexchange.com/a/121847/5049 (auch in den Kommentaren) werden die Quellen der Gerüchte genannt. @Thorsten: da würde ich nicht darauf wetten. Auch andere Pakete des Autors, etwa etextools, haben ähnlich farbenfroh verwirrende Dokumentationen :)

(14 Jul '13, 20:30) cgnieder

@Clemens Dass der Nachfolger nicht kompatibel sein soll, hatte ich ja bereits in meinem Kommentar oben erwähnt. Solange der Nachfolger einen anderen Namen bekommt, sehe ich aber kein erhebliches Problem darin. Wenn nicht müsste jemand das alte tabu übernehmen, nur um es unter neuem Namen zu veröffentlichen. Das wäre derselbe Mist wie damals mit libertine. @Thorsten: Das mit der Anleitung: Das kann man so oder so sehen. Ich komme mit der tabu-Anleitung relativ gut zurecht. Allerdings bin ich nun nicht gerade ein Einsteiger …

(14 Jul '13, 20:38) saputello

@saputello: Nach etwas mehr als zehn Jahren würde ich mich auch nicht mehr als Einsteiger bezeichnen. Inhaltlich ist die Anleitung auch in Ordnung. Aber die äußere Gestaltung und teilweise auch die Struktur machen es mir manchmal schon etwas schwer, ihr relevante Informationen zu entnehmen. Ich ziehe die nüchterne Erscheinung der meisten anderen Anleitungen einer doch recht verspielten Gestaltung eindeutig vor.

(14 Jul '13, 21:19) Thorsten
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:

×256

gestellte Frage: 13 Jul '13, 14:31

Frage wurde gesehen: 26,100 Mal

zuletzt geändert: 14 Jul '13, 21:19