TUD-LaTeX-Forum
http://latex.wcms-file3.tu-dresden.de/phpBB3/

Tabulary Tabelle vertikal zentrieren
http://latex.wcms-file3.tu-dresden.de/phpBB3/viewtopic.php?f=11&t=531
Seite 1 von 1

Autor:  Misterx [ Mittwoch 6. Januar 2021, 00:39 ]
Betreff des Beitrags:  Tabulary Tabelle vertikal zentrieren

Hallo zusammen,

besteht die Möglichkeit eine Tabulary-Tabelle vertikal zu zentrieren? Ich habe hierfür das folgende Minimalbeispiel:
Code:
%\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} %richtige Worttrennung
\documentclass[ngerman, % neue deutsche Rechtschreibung
a4paper,
%cdhead=paperwidth, %Ausdehnung des Querbalkens erstreckt sich über die komplette Seitenbreite
%cdtitle=color, % Titelseite in Farbe (CD-Blau)
cd=pale, % primäre Hausfarbe HKS41 für den Kopf des tudheadings-Seitenstils und Überschriften
cdgeometry=twoside,
%geometry=normal,
BCOR=6mm,
chapterpage=off, % Überschrift eines Kapitels separat auf einer Seite ausgegeben
%appendixprefix=false,
numbers=noendperiod,noperiodatend,noenddot,nodotatend,
bibliography=totoc,
listof=totoc,index=totoc
liststotoc,
tudscrver=2.06, % Kompatibilitätseinstellung für TUD-Script v2.06f und wird für zukünftige Änderungen bereits vorgehalten
]{tudscrbook}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%% TABELLEN %%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


%\usepackage{array}            % Tabellen-Werkzeug
\usepackage{multirow}         % erw. Tabellen-Werkzeug
\usepackage{tabularx}
%\renewcommand\tabularxcolumn[1]{m{#1}} %Tabularx Tabelle vertikal zentrieren
\usepackage{tabulary}
\usepackage{tabu}
\usepackage{ltxtable}
\usepackage{longtable}
\usepackage{booktabs}      %Horizontale Linien
\usepackage{threeparttable} % Legende unter Tabellen
\usepackage{colortbl}         %Einfärben von Tabellen
\usepackage{units}            % Zum Erstellen korrekter typograph. Einheiten
\usepackage{floatrow}        %Platzierung der Beschriftung
\floatsetup{font=sf}
\floatsetup[table]{style=plaintop}  %Tabellen oberhalb beschriften
\usepackage{caption}
\usepackage{rotating} %Tabellen ins Querformat drehen

\usepackage[math]{blindtext}  % Fülltext erzeugen

\begin{document}


      \begin{tabulary}{\textwidth}{m{1.5cm}m{1.5cm}m{1.5cm}C}
    \rowcolor[rgb]{ .024,  .157,  .286} \multicolumn{4}{c}{\textcolor[rgb]{ 1,  1,  1}{\textbf{Zeitstempel}}} \\
    \rowcolor[rgb]{ .835,  .863,  .902} \textcolor[rgb]{ 0,  .157,  .294}{\textbf{Prozess}} & \textcolor[rgb]{ 0,  .157,  .294}{\textbf{Sub-Prozess}} & \textcolor[rgb]{ 0,  .157,  .294}{\textbf{Symbol}} & \textcolor[rgb]{ 0,  .157,  .294}{\textbf{Bezeichnung}} \\
    \multirow{4}[8]{*}{{\begin{turn}{90} Vorbereitung                    \end{turn}}} & xy         &\centering \arraybackslash x          & \blindtext[2] \\
\cmidrule{2-4}               & xz         &            &  \\
\cmidrule{2-4}               &            &            &  \\
\cmidrule{2-4}               &            &            &  \\
    \midrule[1.25pt]
    \multirow{4}[8]{*}{2} & xy         & x          & Test \\
\cmidrule{2-4}               & xz         &            &  \\
\cmidrule{2-4}               &            &            &  \\
\cmidrule{2-4}               &            &            &  \\
  \midrule[1.25pt]
    \multirow{4}[8]{*}{3} & xy         & x          & Test \\
\cmidrule{2-4}               & xz         &            &  \\
\cmidrule{2-4}               &            &            &  \\
\cmidrule{2-4}               &            &            &  \\
    \bottomrule
\end{tabulary}

\end{document}


Im Ergebnis sollen die Spalten eins bis drei zentriert zum langen Text der Bezeichnung gesetzt werden. Bisher habe ich nur eine Möglichkeit mit tabularx gefunden, allerdings gefällt mir die tabulary Umgebung persönlich besser. da hier die Spaltenbreiten automatisch entsprechnd des Inhaltes gesetzt werden.

in der tabularx Umgebung lässt sich die vertikale Zentrierung wie folgt realisieren:

Code:
\renewcommand\tabularxcolumn[1]{>{\centering\arraybackslash}m{#1}}

Dabei den Begriff \tabularxcolumn in \tabularycolumn umzuwandeln, hat leider nicht zum Erfolg geführt.

Über eine passende Idee zur Umsetzung freue ich mich.

VG ;-)

Autor:  tudscr [ Mittwoch 6. Januar 2021, 18:13 ]
Betreff des Beitrags:  Re: Tabulary Tabelle vertikal zentrieren

Misterx hat geschrieben:
Ich habe hierfür das folgende Minimalbeispiel

Also minimal ist das Beispiel mit Sicherheit nicht. Da dies keine spezifische Frage bzgl. TUD-Script ist, würde ich dir vorschlagen, dich zukünftig in einer größeren Community wie bspw. https://tex.stackexchange.com/ umzusehen, um schnell Hilfe zu erhalten.

Noch ein Hinweis: Die CD-Farben musst du dir nicht mühselig selber zusammenbasteln, diese werden durch TUD-Script bereits definiert und können bspw. mit \rowcolor{HKS41} oder \rowcolor{HKS41!10} genutzt werden.

Der wahrscheinlich am besten funktionierende Ansatz wäre es wohl, den größten Inhalt einer Zeile passend in einer minipage auszurichten. Hier ein passendes MWE:
Code:
\documentclass{scrartcl}

\usepackage{tabulary}
\usepackage{graphicx} % für \rotatebox, wird von tudscr ohnehin geladen

\usepackage{blindtext}
%\usepackage{showframe}

\begin{document}
\noindent
  \begin{tabulary}{\textwidth}{m{1cm}m{1cm}C}
    \hline
    Prozess & Symbol & Bezeichnung \tabularnewline
    \hline
    \rotatebox[origin=t]{90}{\llap{\fbox{texttexttext}}} & xxx &
    \begin{minipage}[t]{\linewidth}\blindtext\end{minipage}
    \tabularnewline
    \hline
    \rotatebox{90}{\fbox{texttexttext}} & xxx &
    \begin{minipage}{\linewidth}\blindtext\end{minipage}
    \tabularnewline
    \hline
    \rotatebox[origin=b]{90}{\rlap{\fbox{texttexttext}}} & xxx &
    \begin{minipage}[b]{\linewidth}\blindtext\end{minipage}
    \tabularnewline
    \hline
\end{tabulary}
\end{document}


Für die rotierten Inhalte in der ersten Zeile kannst du einfach \rotatebox verwenden. Die Befehle \rlap und \llap richten die Inhalte in der Box entweder links- oder rechtsbündig aus.

Um die Inhalte in der minipage vernünftig auszurichten, fehlt für die Zentrierung noch \centering. Für die passenden Abstände kannst du den eigentlichen Inhalt noch zwischen \strut...\strut packen. Und für eine einfache Verwendung machst du noch ein Makro daraus.

Code:
\documentclass{scrartcl}

\usepackage{tabulary}
\usepackage{graphicx} % für \rotatebox, wird von tudscr ohnehin geladen

\usepackage{blindtext}
%\usepackage{showframe}

\begin{document}
\newcommand*\tabularbox[2][c]{%
  \begin{minipage}[#1]{\linewidth}\centering\strut#2\strut\end{minipage}%
}

\noindent
\begin{tabulary}{\textwidth}{m{1cm}m{1cm}C}
  \hline
  Prozess & Symbol & Bezeichnung \tabularnewline
  \hline
  \rotatebox[origin=t]{90}{\llap{\fbox{texttexttext}}} & xxx &
  \tabularbox[t]{\blindtext}
  \tabularnewline
  \hline
  \rotatebox{90}{\fbox{texttexttext}} & xxx &
  \tabularbox{\blindtext}
  \tabularnewline
  \hline
  \rotatebox[origin=b]{90}{\rlap{\fbox{texttexttext}}} & xxx &
  \tabularbox[b]{\blindtext}
  \tabularnewline
  \hline
\end{tabulary}
\end{document}


Je nachdem, wie der Inhalt in der ersten Spalte rotiert werden soll, kannst du dir hierfür auch noch ein Makro basteln.

Grüße
Falk

Autor:  Misterx [ Samstag 9. Januar 2021, 17:06 ]
Betreff des Beitrags:  Re: Tabulary Tabelle vertikal zentrieren

Vielen Dank für deine Antwort, Falk.
Das passt soweit.

Danke auch für den Tipp mit den Farben. Den aufwendigen Code hat das Tool Excel2Latex erstellt. ;)

VG

Seite 1 von 1 Alle Zeiten sind UTC + 1 Stunde
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/