Ich möchte in Tabellen Zeilen visuell zusammenfassen durch vertikale geschweifte Klammern. Zum Beispiel die Mehrfachnennungen in dieser Tabelle:

Code, hier editierbar zum Übersetzen:
\documentclass{article}
\usepackage{array}
\usepackage{booktabs}
\renewcommand*{\familydefault}{\sfdefault}
\newcommand*{\head}{\bfseries}
\newcolumntype{_}{>{\global\let\currentrowstyle\relax}}
\newcolumntype{^}{>{\currentrowstyle}}
\newcommand{\rowstyle}[1]{\gdef\currentrowstyle{#1}%
#1\ignorespaces
}
\begin{document}
\begin{tabular}{_l*{3}{^l}}
\toprule
\rowstyle{\head}
Anwendung & Betriebssystem & Version \\
\midrule
Fileservice & Linux & Debian \\
Backup & Linux & Debian \\
Mail & Linux & Debian \\
Datenbanken & Linux & Red Hat \\
DHCP / DNS & Linux & Red Hat \\
LDAP / Domaincontroller & Windows & Server 2008 \\
\bottomrule
\end{tabular}
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Tabelle

Wie lässt sich das erreichen?

gefragt 13 Jul '13, 23:55

Tino's gravatar image

Tino
2458812
Akzeptiert-Rate: 0%

Bitte denke daran, die Antworten zu akzeptieren, die zur Lösung des jeweiligen Problems führen. Da gibt es bei einigen deiner Fragen noch Nachholbedarf.

(14 Jul '13, 11:19) Thorsten

@Thorsten Mache ich natürlich. Manchmal lasse ich Fragen offen für Alternativ-Vorschläge, gehe aber dann mein Profil durch und räume auf durch Abhaken.

(14 Jul '13, 14:18) Tino

Man kann hier das Paket bigdelim gemeinsam mit multirow verwenden - sie gehören sowieso zum selben Bundle. Das Paket bietet diese Befehle für Klammern über mehrere Tabellenzeilen:

Code, hier editierbar zum Übersetzen:
\ldelim({Zeilenzahl}{Breite}[Text]
\rdelim){Zeilenzahl}{Breite}[Text]
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Statt ) kann man hier beliebige Begrenzer wählen, wie etwa \}, \{, [ und ], alles was man auch bei \left und \right angeben kann. Der optionale Text würde mittig daneben gesetzt.

An diesem Beispiel kann es so aussehen - einmal mit optionalem Text und einmal ohne, dafür mit Extra-Spalte für die Klammern:

Code, hier editierbar zum Übersetzen:
\documentclass{article}
\usepackage{array}
\usepackage{booktabs}
\usepackage{multirow}
\usepackage{bigdelim}
\renewcommand*{\familydefault}{\sfdefault}
\newcommand*{\head}{\bfseries}
\newcolumntype{_}{>{\global\let\currentrowstyle\relax}}
\newcolumntype{^}{>{\currentrowstyle}}
\newcommand{\rowstyle}[1]{\gdef\currentrowstyle{#1}%
#1\ignorespaces
}
\begin{document}
\begin{tabular}{_l*{3}{^l}}
\toprule
\rowstyle{\head}
Anwendung & Betriebssystem & Version \\
\midrule
Fileservice & Linux & \rdelim\}{3}{1.8cm}[\normalfont Debian] \\
Backup & Linux & \\
Mail & Linux & \\
Datenbanken & Linux & \rdelim\}{2}{1.8cm}[\normalfont Red Hat] \\
DHCP / DNS & Linux & \\
LDAP / Domaincontroller & Windows & Server 2008 \\
\bottomrule
\end{tabular}
\bigskip
\begin{tabular}{_l*{4}{^l}}
\toprule
\rowstyle{\head}
Anwendung & Betriebssystem & & Version \\
\midrule
Fileservice & Linux & \rdelim\}{3}{11pt} & \multirow{3}{*}{Debian}\\
Backup & Linux & & \\
Mail & Linux & & \\
Datenbanken & Linux & \rdelim\}{2}{11pt} & \multirow{2}{*}{Red Hat}\\
DHCP / DNS & Linux & & \\
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

alt text

Permanenter link

beantwortet 14 Jul '13, 13:56

stefan's gravatar image

stefan ♦♦
18.4k163148
Akzeptiert-Rate: 50%

Man lernt doch immer wieder neue Pakete kennen.

(14 Jul '13, 17:30) Thorsten

Vielleicht noch der Hinweis, dass bigdelim einen großen Bug hat: Modifikationen mittels \arraystretch werden ignoriert.

(14 Jul '13, 17:35) Marco_D

Hier darf eine TikZ-Antwort nicht fehlen ;) TikZ ermöglicht es durch seine remember picture und overlay Optionen, Stellen zu markieren, etwa um sie später zu verbinden. Um einen Pfad zwischen zwei solchen Stellen mit einer geschweiften Klammer zu verbinden, kann man die Bibliothek decorations.pathreplacing verwenden, um dann den Pfad mit decorate,decoration=brace zu dekorieren.

Erbegnis

Code, hier editierbar zum Übersetzen:
\documentclass{article}
\usepackage{array}
\usepackage{booktabs}
\renewcommand*{\familydefault}{\sfdefault}
\newcommand*{\head}{\bfseries}
\newcolumntype{_}{>{\global\let\currentrowstyle\relax}}
\newcolumntype{^}{>{\currentrowstyle}}
\newcommand{\rowstyle}[1]{\gdef\currentrowstyle{#1}%
#1\ignorespaces
}
\usepackage{tikz}
\usetikzlibrary{decorations.pathreplacing}
\newcommand\savepos[1]{\tikz[remember picture]{\node(#1){};}}
\begin{document}
\begin{tabular}{_l*{3}{^l}}
\toprule
\rowstyle{\head}
Anwendung & Betriebssystem & Version \\
\midrule
Fileservice & \savepos{a} & \savepos{c} \\
Backup \\
Mail & & \savepos{d} \\
Datenbanken & & \savepos{e} \\
DHCP / DNS & \savepos{b} & \savepos{f} \\
LDAP / Domaincontroller & Windows & Server 2008 \\
\bottomrule
\end{tabular}
\begin{tikzpicture}[remember picture,overlay]
\draw[decorate,decoration=brace]
(a.north east) -- node[anchor=west] { Linux } (b.south east) ;
\draw[decorate,decoration=brace]
(c.north east) -- node[anchor=west] { Debian } (d.south east) ;
\draw[decorate,decoration=brace]
(e.north east) -- node[anchor=west] { Red Hat } (f.south east) ;
\end{tikzpicture}
\end{document}
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Permanenter link

beantwortet 14 Jul '13, 13:53

cgnieder's gravatar image

cgnieder
22.1k253463
Akzeptiert-Rate: 60%

bearbeitet 14 Jul '13, 13:53

Sehr gut zu verstehen, wie das funktioniert! Das lässt sich ja dann auch woanders analog anwenden, wie in itemize, tabbing oder anderem. Lohnt sich echt, das im Kopf zu behalten, auch wenn ich erstmal bigdelim nehme.

(14 Jul '13, 14:25) Tino

Dazu bedarf es eines Tricks (bzw. mehrerer).

  • Es wird eine zusätzliche Spalte ^c mit zentriertem Inhalt und festgelegten Abständen zu den benachbarten Spalten eingerichtet. Diese Spalte nimmt dann die geschweiften Klammern auf.
  • Da die Klammern über mehrere Zeilen reichen werden, muss deren Höhe mit Hilfe von \smash versteckt werden, damit die betroffenen Zeilen ihre Höhe behalten.
  • An den Stellen, wo die Klammern über eine gerade Anzahl an Zeilen reichen sollen, muss das Paket »multirow« zur Hilfe herangezogen werden.
  • Die Skalierung der Klammern erfolgt im Mathematik-Modus. Die Größe der Klammern muss allerdings manuell festgelegt werden (vielleicht fällt jemand anderem hier ja ein Automatismus ein).

Wenn ich dich dann noch richtig verstanden habe, sollte nachfolgendes Beispiel deinen Wünschen entsprechen.

Code, hier editierbar zum Übersetzen:
\documentclass[
11pt,
border=2pt,
convert={density=100}
]{standalone}
\usepackage{array,booktabs,multirow}
\renewcommand*{\familydefault}{\sfdefault}
\newcommand*{\head}{\bfseries}
\newcolumntype{_}{>{\global\let\currentrowstyle\relax}}
\newcolumntype{^}{>{\currentrowstyle}}
\newcommand{\rowstyle}[1]{\gdef\currentrowstyle{#1}%
#1\ignorespaces
}
\begin{document}
\begin{tabular}{_l^l@{\,}^c@{\,}^l} \toprule
\rowstyle{\head}
Anwendung & Betriebssystem & & Version \\ \midrule
Fileservice & Linux & & \\
Backup & Linux & \smash{$\left.\rule{0pt}{4.5ex}\right\rbrace$}& Debian \\
Mail & Linux & & \\
Datenbanken & Linux & \multirow{2}{*}{\smash{$\left.\rule{0pt}{3ex}\right\rbrace$}}& \multirow{2}{*}{Red Hat} \\
DHCP / DNS & Linux & & \\
LDAP / Domaincontroller & Windows & & Server 2008 \\ \bottomrule
\end{tabular}
\end{document}
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Ergebnis

Permanenter link

beantwortet 14 Jul '13, 11:16

Thorsten's gravatar image

Thorsten
1.6k325
Akzeptiert-Rate: 58%

bearbeitet 14 Jul '13, 14:02

stefan's gravatar image

stefan ♦♦
18.4k163148

Sieht perfekt aus! Ist manuell erarbeitet, dafür lernt man aber daraus das Feintunen. Sehr in Ordnung die Lösung, vielen Dank, ich denke ich werde dennoch die bigdelim-Lösung nehmen, weil es ein fertiges Paket ist. Mit Feinheiten Deiner Lösung lässt sich das ja noch kombinieren.

(14 Jul '13, 14:21) Tino
Deine Antwort
[Vorschau ausblenden]

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

Frage-Themen:

×257
×15

gestellte Frage: 13 Jul '13, 23:55

Frage wurde gesehen: 35,855 Mal

zuletzt geändert: 15 Jun '14, 15:21

Willkommen, erstes Mal hier? Schau mal unter FAQ!

×