Seite 1 von 2
Geschweifte Klammer über mehrere Spalten
Verfasst: Do 7. Jul 2016, 19:19
von Adriana
Hallo Zusammen
wie kriege ich es hin, eine geschweifte Klammer über mehrere Spalten einzurichten?
Das hier wäre ein Beispiel mit geschweiften Klammer über mehrere Zeilen:
\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 & & \\
LDAP / Domaincontroller & Windows & & Server 2008 \\
\bottomrule
\end{tabular}
\end{document}
Danke und Gruß
Verfasst: Do 7. Jul 2016, 23:34
von Beinschuss
Mit TikZ geht sowas zum Beispiel so:
\documentclass{article}
\usepackage{array}
\usepackage{booktabs}
\usepackage{multirow}
\usepackage{tikz}
\usetikzlibrary{decorations.pathreplacing}
\usepackage{bigdelim}
\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}
\begin{tikzpicture}
\draw[thick,decoration={brace, amplitude = 12 pt, aspect = 0.5},overlay,decorate]
(0,4) -- (7,4) ;
\end{tikzpicture}
\end{document}
Verfasst: Fr 8. Jul 2016, 00:56
von Adriana
Erstmal vielen Dank für die Antwort!
Und wenn ich über die geschweifte Klammer noch etwas schreiben möchte? Wie funktioniert das?
Verfasst: Fr 8. Jul 2016, 08:34
von Beinschuss
Z.B. so:
\begin{tikzpicture}
\draw[thick,decoration={brace, amplitude = 12 pt, aspect = 0.5},overlay,decorate]
(0,4) -- node[anchor=south][align=center,yshift=.5cm] {So schreibe ich\\ ueber die geschweifte Klammer} (7,4) ;
Verfasst: Sa 9. Jul 2016, 01:03
von Adriana
Ich kriege das leider nicht hin ...wie finde ich die richtigen Koordinaten in Latex aus?
Die hier angegebenen Koordinaten (0,4) -- (7,4) führen dazu, dass die geschweifte Klammer in mein etwas größeres Dokument auf einer falschen Seite gezeichnet wird. Wenn ich mit den Koordinaten spiele verrutschen diese dann irgendwann, so dass ich diese nicht wieder finde..
Verfasst: Sa 9. Jul 2016, 15:06
von esdd
Du könntest auch die Bibliothek tikzmark verwenden. In der Zeile, in der die Klammer stehen soll, kannst Du mit \rule vertikalen Platz reservieren sowie mit \tikzmark Anfangs- und Endpunkt der Klammer markieren.
\documentclass{article}
\usepackage{array}
\usepackage{booktabs}
\usepackage{multirow}
\usepackage{tikz}
\usetikzlibrary{tikzmark}
\usetikzlibrary{decorations.pathreplacing}
\usepackage{bigdelim}
\newcommand*{\head}{\bfseries}
\newcolumntype{_}{>{\global\let\currentrowstyle\relax}}
\newcolumntype{^}{>{\currentrowstyle}}
\newcommand{\rowstyle}[1]{\gdef\currentrowstyle{#1}%
#1\ignorespaces
}
\usepackage{blindtext}% für Fülltext
\begin{document}
\blindtext
\par
\begin{tabular}{_l*{3}{^l}}
\rule{0pt}{4\normalbaselineskip}\tikzmark{tab1}&\multicolumn{1}{r}{\tikzmark{tab2}}\\
\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}\nobreak
\begin{tikzpicture}[remember picture,overlay]
\draw[thick,decoration={brace, amplitude = 12 pt, aspect = 0.5},decorate]
(pic cs:tab1)
-- node[above=5mm,align=center]{Text oberhalb\\der geschweiften Klammer}
(pic cs:tab2) ;
\end{tikzpicture}
\end{document}
Das braucht zwei Durchläufe für

Verfasst: Di 2. Aug 2016, 22:21
von Adriana
Bitte noch einmal um Hilfe, ich möchte mehrere geschweifte Klammer nebeneinander über den Tabellenkopf zeichnen
\documentclass{article}
\usepackage{array}
\usepackage{booktabs}
\usepackage{multirow}
\usepackage{tikz}
\usetikzlibrary{tikzmark}
\usetikzlibrary{decorations.pathreplacing}
\usepackage{bigdelim}
\newcommand*{\head}{\bfseries}
\newcolumntype{_}{>{\global\let\currentrowstyle\relax}}
\newcolumntype{^}{>{\currentrowstyle}}
\newcommand{\rowstyle}[1]{\gdef\currentrowstyle{#1}%
#1\ignorespaces
}
\usepackage{blindtext}% für Fülltext
\begin{document}
\blindtext
\par
\begin{table}[htbp]
\centering
\begin{tabular}{|p{0.12\textwidth}|p{0.01\textwidth}|p{0.01\textwidth}|p{0.01\textwidth}|p{0.01\textwidth}|p{0.01\textwidth}|p{0.01\textwidth}|p{0.01\textwidth}|p{0.01\textwidth}|p{0.01\textwidth}|p{0.03\textwidth}|p{0.01\textwidth}|p{0.01\textwidth}|p{0.01\textwidth}|p{0.01\textwidth}|p{0.01\textwidth}|p{0.01\textwidth}|p{0.1\textwidth}|p{0.01\textwidth}|p{0.01\textwidth}|p{0.01\textwidth}}\hline
\rule{0pt}{5\normalbaselineskip}\multicolumn{2}{r}{\tikzmark{tab1}}&\multicolumn{3}{r}{\tikzmark{tab2}}\\
\rule{0pt}{5\normalbaselineskip}\multicolumn{5}{r}{\tikzmark{tab3}}&\multicolumn{8}{r}{\tikzmark{tab4}}\\
\rule{0pt}{5\normalbaselineskip}\multicolumn{8}{r}{\tikzmark{tab5}}&\multicolumn{10}{r}{\tikzmark{tab6}}\\
\toprule
\centering
\rotatebox{90}{Artikelbezeichnung} & \rotatebox{90}{ fhgfdg } & \rotatebox{90}{dhjfjgf } & \rotatebox{90}{ fjghdfgkjsh } & \rotatebox{90}{gfghgfhg} & \rotatebox{90}{fghhghfd} & \rotatebox{90}{ufzufzu} & \rotatebox{90}{fhgjgfgfsz} & \rotatebox{90}{efzuuefguztsd} & \rotatebox{90}{dfzuizuidzfizf } & \rotatebox{90}{eruiiuzizfiz} & \rotatebox{90}{dfgzgzfugzuftg} & \rotatebox{90}{fdggzugfszuf} & \rotatebox{90}{dfhhfjjdfg} & \rotatebox{90}{dfhugfggf} & \rotatebox{90}{dufuhfzuhdf} & \rotatebox{90}{dshfghudfguzewrt} & \rotatebox{90}{dfhhdjfjgdf}\\
\hline
hgfgdfgz\newline hfgzufgeuz \newline uefugfg& & & 1\newline 1 \newline 1 & & & & & 3\newline 3\newline 3 & & 2;4\newline 2;4\newline 2;4 & 5\newline 5\newline 5 & & & 6\newline 6\newline 6 & 7\newline 7\newline 7 & & ~\newline utdfuioghzurgezu\\
\hline
urgfuzr\newline rgerg\newline wrtwzz& 1\newline 1\newline 1 & & & & & & & & & & & & 2\newline 2\newline 2 & 3\newline 3\newline 3 & 4\newline 4\newline 4 & & ~\newline hggh\\
\hline
rtzueuterzut\newline gzftzt & &1\newline 1 &&& 3\newline & ~\newline 3 & & & &2\newline 2 & &4\newline & ~\newline 4 & 5\newline 5 & 6\newline 6 & &uzuzuzu \newline guftzftz \\
\hline
ztttuzt & &&&1& & &3 & &2 & & & & 4 &5 & 6&7&hgjghjgh \\
\hline
\end{tabular}
\nobreak
\begin{tikzpicture}[remember picture,overlay]
\draw[thick,decoration={brace, amplitude = 12 pt, aspect = 0.5},decorate]
(pic cs:tab1)
-- node[above=5mm,align=center]{zutuztuztuitzti}
(pic cs:tab2) ;
\end{tikzpicture}
\begin{tikzpicture}[remember picture,overlay]
\draw[thick,decoration={brace, amplitude = 12 pt, aspect = 0.5},decorate]
(pic cs:tab3)
-- node[above=5mm,align=center]{tztztzutzut}
(pic cs:tab4) ;
\end{tikzpicture}
\begin{tikzpicture}[remember picture,overlay]
\draw[thick,decoration={brace, amplitude = 12 pt, aspect = 0.5},decorate]
(pic cs:tab5)
-- node[above=5mm,align=center]{67676678}
(pic cs:tab6) ;
\end{tikzpicture}
\captionsetup{singlelinecheck=true}
\caption{ztutztuzututututuztzu}
\label{tabelle1}
\end{table}
\end{document}
Danke und Gruß
Verfasst: Mi 3. Aug 2016, 07:56
von DADABBI
Du solltest darauf achten, dass das Beispiel zumindest theoretisch lauffähig ist, also keine Anweisungen verwenden, die gar nicht definiert sind. Und dann darf man natürlich eine Spalte nicht erst mit Inhalt wie einer \rule versehen und danach noch \multicolumn darauf anwenden wollen. \multicolumn muss immer als erstes in der ersten betroffenen Spalte stehen und bis zum Ende der letzten betroffenen Spalte reichen.
\documentclass{article}
\usepackage{array}
\usepackage{booktabs}
\usepackage{multirow}
\usepackage{tikz}
\usetikzlibrary{tikzmark}
\usetikzlibrary{decorations.pathreplacing}
\usepackage{bigdelim}
\newcommand*{\head}{\bfseries}
\newcolumntype{_}{>{\global\let\currentrowstyle\relax}}
\newcolumntype{^}{>{\currentrowstyle}}
\newcommand{\rowstyle}[1]{\gdef\currentrowstyle{#1}%
#1\ignorespaces
}
\usepackage{blindtext}% für Fülltext
\begin{document}
\blindtext
\par
\begin{table}[htbp]
\centering
\begin{tabular}{|p{0.12\textwidth}|p{0.01\textwidth}|p{0.01\textwidth}|p{0.01\textwidth}|p{0.01\textwidth}|p{0.01\textwidth}|p{0.01\textwidth}|p{0.01\textwidth}|p{0.01\textwidth}|p{0.01\textwidth}|p{0.03\textwidth}|p{0.01\textwidth}|p{0.01\textwidth}|p{0.01\textwidth}|p{0.01\textwidth}|p{0.01\textwidth}|p{0.01\textwidth}|p{0.1\textwidth}|p{0.01\textwidth}|p{0.01\textwidth}|p{0.01\textwidth}}\hline
%\rule{0pt}{5\normalbaselineskip}% \multicolumn kann nicht verwendet werden,
% nachdem die Spalte bereits Inhalt hat,
% auch wenn dieser ggf. unsichtbar ist.
\multicolumn{2}{r}{\tikzmark{tab1}\rule{0pt}{5\normalbaselineskip}}&\multicolumn{3}{r}{\tikzmark{tab2}}\\
%\rule{0pt}{5\normalbaselineskip}
\multicolumn{5}{r}{\tikzmark{tab3}}&\multicolumn{8}{r}{\tikzmark{tab4}}\\
%\rule{0pt}{5\normalbaselineskip}
\multicolumn{8}{r}{\tikzmark{tab5}}&\multicolumn{10}{r}{\tikzmark{tab6}}\\
\toprule
\centering
\rotatebox{90}{Artikelbezeichnung} & \rotatebox{90}{ fhgfdg } & \rotatebox{90}{dhjfjgf } & \rotatebox{90}{ fjghdfgkjsh } & \rotatebox{90}{gfghgfhg} & \rotatebox{90}{fghhghfd} & \rotatebox{90}{ufzufzu} & \rotatebox{90}{fhgjgfgfsz} & \rotatebox{90}{efzuuefguztsd} & \rotatebox{90}{dfzuizuidzfizf } & \rotatebox{90}{eruiiuzizfiz} & \rotatebox{90}{dfgzgzfugzuftg} & \rotatebox{90}{fdggzugfszuf} & \rotatebox{90}{dfhhfjjdfg} & \rotatebox{90}{dfhugfggf} & \rotatebox{90}{dufuhfzuhdf} & \rotatebox{90}{dshfghudfguzewrt} & \rotatebox{90}{dfhhdjfjgdf}\\
\hline
hgfgdfgz\newline hfgzufgeuz \newline uefugfg& & & 1\newline 1 \newline 1 & & & & & 3\newline 3\newline 3 & & 2;4\newline 2;4\newline 2;4 & 5\newline 5\newline 5 & & & 6\newline 6\newline 6 & 7\newline 7\newline 7 & & ~\newline utdfuioghzurgezu\\
\hline
urgfuzr\newline rgerg\newline wrtwzz& 1\newline 1\newline 1 & & & & & & & & & & & & 2\newline 2\newline 2 & 3\newline 3\newline 3 & 4\newline 4\newline 4 & & ~\newline hggh\\
\hline
rtzueuterzut\newline gzftzt & &1\newline 1 &&& 3\newline & ~\newline 3 & & & &2\newline 2 & &4\newline & ~\newline 4 & 5\newline 5 & 6\newline 6 & &uzuzuzu \newline guftzftz \\
\hline
ztttuzt & &&&1& & &3 & &2 & & & & 4 &5 & 6&7&hgjghjgh \\
\hline
\end{tabular}
\nobreak
\begin{tikzpicture}[remember picture,overlay]
\draw[thick,decoration={brace, amplitude = 12 pt, aspect = 0.5},decorate]
(pic cs:tab1)
-- node[above=5mm,align=center]{zutuztuztuitzti}
(pic cs:tab2) ;
\end{tikzpicture}
\begin{tikzpicture}[remember picture,overlay]
\draw[thick,decoration={brace, amplitude = 12 pt, aspect = 0.5},decorate]
(pic cs:tab3)
-- node[above=5mm,align=center]{tztztzutzut}
(pic cs:tab4) ;
\end{tikzpicture}
\begin{tikzpicture}[remember picture,overlay]
\draw[thick,decoration={brace, amplitude = 12 pt, aspect = 0.5},decorate]
(pic cs:tab5)
-- node[above=5mm,align=center]{67676678}
(pic cs:tab6) ;
\end{tikzpicture}
%\captionsetup{singlelinecheck=true}% gibt es nicht
\caption{ztutztuzututututuztzu}
\label{tabelle1}
\end{table}
\end{document}
BTW: Tabellen mit vertikalen Linien sind eher schlecht lesbar. Vertikale Linien sollte man daher insgesamt meiden und horizontale auf ein Minimum reduzieren. Siehe dazu beispielsweise die [d]booktabs[/d]-Anleitung oder die Folien zum tabsatz-Vortrag (Link in
Wichtige Netzdokumente).
Verfasst: Mi 3. Aug 2016, 14:47
von Adriana
Vielen Dank für die sehr konstruktive Antwort!
Nur noch eine Frage: Wie bringe ich alle Klammern auf die gleiche Höhe?
\documentclass{article}
\usepackage{array}
\usepackage{booktabs}
\usepackage{multirow}
\usepackage{tikz}
\usetikzlibrary{tikzmark}
\usetikzlibrary{decorations.pathreplacing}
\usepackage{bigdelim}
\newcommand*{\head}{\bfseries}
\newcolumntype{_}{>{\global\let\currentrowstyle\relax}}
\newcolumntype{^}{>{\currentrowstyle}}
\newcommand{\rowstyle}[1]{\gdef\currentrowstyle{#1}%
#1\ignorespaces
}
\usepackage{blindtext}% für Fülltext
\begin{document}
\blindtext
\par
\begin{table}[htbp]
\centering
\begin{tabular}{|p{0.12\textwidth}|p{0.01\textwidth}|p{0.01\textwidth}|p{0.01\textwidth}|p{0.01\textwidth}|p{0.01\textwidth}|p{0.01\textwidth}|p{0.01\textwidth}|p{0.01\textwidth}|p{0.01\textwidth}|p{0.03\textwidth}|p{0.01\textwidth}|p{0.01\textwidth}|p{0.01\textwidth}|p{0.01\textwidth}|p{0.01\textwidth}|p{0.01\textwidth}|p{0.1\textwidth}|p{0.01\textwidth}|p{0.01\textwidth}|p{0.01\textwidth}}\hline
\multicolumn{2}{r}{\tikzmark{tab1}\rule{0pt}{5\normalbaselineskip}}&\multicolumn{3}{r}{\tikzmark{tab2}}\\
\multicolumn{6}{r}{\tikzmark{tab3}}&\multicolumn{2}{r}{\tikzmark{tab4}}\\
\multicolumn{12}{r}{\tikzmark{tab5}}&\multicolumn{2}{r}{\tikzmark{tab6}}\\
\toprule
\centering
\rotatebox{90}{Artikelbezeichnung} & \rotatebox{90}{ fhgfdg } & \rotatebox{90}{dhjfjgf } & \rotatebox{90}{ fjghdfgkjsh } & \rotatebox{90}{gfghgfhg} & \rotatebox{90}{fghhghfd} & \rotatebox{90}{ufzufzu} & \rotatebox{90}{fhgjgfgfsz} & \rotatebox{90}{efzuuefguztsd} & \rotatebox{90}{dfzuizuidzfizf } & \rotatebox{90}{eruiiuzizfiz} & \rotatebox{90}{dfgzgzfugzuftg} & \rotatebox{90}{fdggzugfszuf} & \rotatebox{90}{dfhhfjjdfg} & \rotatebox{90}{dfhugfggf} & \rotatebox{90}{dufuhfzuhdf} & \rotatebox{90}{dshfghudfguzewrt} & \rotatebox{90}{dfhhdjfjgdf}\\
\hline
hgfgdfgz\newline hfgzufgeuz \newline uefugfg& & & 1\newline 1 \newline 1 & & & & & 3\newline 3\newline 3 & & 2;4\newline 2;4\newline 2;4 & 5\newline 5\newline 5 & & & 6\newline 6\newline 6 & 7\newline 7\newline 7 & & ~\newline utdfuioghzurgezu\\
\hline
urgfuzr\newline rgerg\newline wrtwzz& 1\newline 1\newline 1 & & & & & & & & & & & & 2\newline 2\newline 2 & 3\newline 3\newline 3 & 4\newline 4\newline 4 & & ~\newline hggh\\
\hline
rtzueuterzut\newline gzftzt & &1\newline 1 &&& 3\newline & ~\newline 3 & & & &2\newline 2 & &4\newline & ~\newline 4 & 5\newline 5 & 6\newline 6 & &uzuzuzu \newline guftzftz \\
\hline
ztttuzt & &&&1& & &3 & &2 & & & & 4 &5 & 6&7&hgjghjgh \\
\hline
\end{tabular}
\nobreak
\begin{tikzpicture}[remember picture,overlay]
\draw[thick,decoration={brace, amplitude = 12 pt, aspect = 0.5},decorate]
(pic cs:tab1)
-- node[above=5mm,align=center]{zutuztuztuitzti}
(pic cs:tab2) ;
\end{tikzpicture}
\begin{tikzpicture}[remember picture,overlay]
\draw[thick,decoration={brace, amplitude = 12 pt, aspect = 0.5},decorate]
(pic cs:tab3)
-- node[above=5mm,align=center]{tztztzutzut}
(pic cs:tab4) ;
\end{tikzpicture}
\begin{tikzpicture}[remember picture,overlay]
\draw[thick,decoration={brace, amplitude = 12 pt, aspect = 0.5},decorate]
(pic cs:tab5)
-- node[above=5mm,align=center]{67676678}
(pic cs:tab6) ;
\end{tikzpicture}
%\captionsetup{singlelinecheck=true}% gibt es nicht
\caption{ztutztuzututututuztzu}
\label{tabelle1}
\end{table}
\end{document}
Verfasst: Mi 3. Aug 2016, 15:10
von DADABBI
Indem du die Marken auch in derselben Zeile setzt. Die Klammern werden genau zwischen den mit \tikzmark gesetzten Marken ausgegeben. Wenn du diese also in unterschiedlichen Zeilen setzt, dann sind die auch in unterschiedlichen Zeilen. Wenn du sie in derselben Tabellenzeile setzt, dann werden sie auch in derselben Tabellenzeile ausgegeben.