An Spaltenbreite und vertikalen Text anpassen

An Spaltenbreite und vertikalen Text anpassen

Ich habe mehrere verschiedene Lösungen für mein Problem ausprobiert, die ich hier gelesen habe, aber keine davon hat funktioniert. Es tut mir also leid, wenn ich die Frage wiederhole. Ich habe also diesen Code:

    \begin{table}[htb]
\centering
\caption{Descrição das categorias operacionais e de design segundo a norma EN45545-1.}
\label{categorias}
\resizebox{\textwidth}{!}{%
\begin{tabular}{XXXXXX}
 &  & \multicolumn{4}{c}{\textbf{Categoria de design}} \\
 &  & \begin{tabular}[c]{@{}l@{}}Veículos\\  standard\end{tabular} & \begin{tabular}[c]{@{}l@{}}Veículos\\ automáticos sem\\  staff treinado\end{tabular} & \begin{tabular}[c]{@{}l@{}}Veículos de\\  dois andares\end{tabular} & Carruagem-cama \\
\multirow{4}{*}{\textbf{Categoria Operacional}} & \begin{tabular}[c]{@{}l@{}}Veículos de superfície que não atravessam túneis ou secções elevadas de terreno, com possibilidade de evacuação lateral\end{tabular} & HL1 & HL1 & HL1 & HL1 \\
 & \begin{tabular}[c]{@{}l@{}}Veículos que atravessam túneis/secções de terreno elevadas, com possibilidade de evacuação lateral e alcance de um local de segurança num curto espaço de tempo, em caso de acidente\end{tabular} & HL2 & HL2 & HL2 & HL2 \\
 & \begin{tabular}[c]{@{}l@{}}Veículos que atravessam túneis/secções de terreno elevadas, com possibilidade de evacuação lateral e alcance de um local de segurança num longo espaço de tempo, em caso de acidente\end{tabular} & HL2 & HL2 & HL2 & HL3 \\
 & \begin{tabular}[c]{@{}l@{}}Veículos que atravessam túneis/secções de terreno elevadas, sem possibilidade de evacuação lateral e alcance de um local de segurança num curto espaço de tempo, em caso de acidente\end{tabular} & HL3 & HL3 & HL3 & HL3
\end{tabular}%
}
\end{table}

Und es stellt sich so heraus:

Bildbeschreibung hier eingeben

Ich möchte, dass es ungefähr so ​​aussieht wie hier unten. Das würde im Wesentlichen bedeuten, den Text der zweiten Spalte kleiner zu machen und den Text in der ersten Spalte vertikal anzuordnen. Die Hintergrundfarben werden nicht benötigt.

Vielen Dank an alle für Ihre Hilfe!

Bildbeschreibung hier eingeben

Antwort1

Ich schlage diese Lösung mit nur einer XSpalte vor – natürlich innerhalb einer tabularxUmgebung. Ich habe auch loadd verwendet geometry, um ordentlichere Ränder zu haben (wenn Sie keine Randnotizen verwenden), die meisten verschachtelten Tabellen durch \theadfrom ersetzt makecell(dies ermöglicht Zeilenumbrüche in Standardspaltenzellen) und schließlich mit dem booktabBefehl etwas Leerraum zwischen den Zeilen hinzugefügt \addlinespace:

\documentclass{article}
\usepackage{geometry} 
\usepackage{tabularx, multirow, makecell, booktabs, caption}

\begin{document}

\begin{table}[htb]
\centering\setlength{\tabcolsep}{4pt}
\setlength{\extrarowheight}{2pt}
\renewcommand{\theadfont}{\small}
\caption{Descrição das categorias operacionais e de design segundo a norma EN45545-1.}
\label{categorias}
\begin{tabularx}{\linewidth}{cXcccc}%
 & & \multicolumn{4}{c}{\textbf{Categoria de design}} \\
 & & \thead{Veículos\\ standard} & \thead{Veículos\\ automáticos sem\\ staff treinado} & \thead{Veículos de\\ dois andares} & \thead{Carruagem-\\cama }\\
\multirow{19}{*}{\rotatebox{90}{\bfseries Categoria Operacional}} %
& Veículos de superfície que não atravessam túneis ou secções elevadas de terreno, com possibilidade de evacuação lateral & HL1 & HL1 & HL1 & HL1 \\
\addlinespace
 & Veículos que atravessam túneis/secções de terreno elevadas, com possibilidade de evacuação lateral e alcance de um local de segurança num curto espaço de tempo, em caso de acidente & HL2 & HL2 & HL2 & HL2 \\
\addlinespace
 & Veículos que atravessam túneis/secções de terreno elevadas, com possibilidade de evacuação lateral e alcance de um local de segurança num longo espaço de tempo, em caso de acidente & HL2 & HL2 & HL2 & HL3 \\
\addlinespace
 & Veículos que atravessam túneis/secções de terreno elevadas, sem possibilidade de evacuação lateral e alcance de um local de segurança num curto espaço de tempo, em caso de acidente & HL3 & HL3 & HL3 & HL3
\end{tabularx}%
\end{table}

\end{document} 

Bildbeschreibung hier eingeben

Antwort2

Wie Sie (wieder)entdeckt haben, wird die Verwendung von \resizeboxzum Erzwingen einer tabularUmgebung in die Breite des Textblocks kaum jemals eine zufriedenstellende Lösung erzeugen. Dahernichtverwenden \resizebox– zumindest nicht zum Ändern der Größe einer Tabelle.

Ich gehe davon aus, dass der XSpaltentyp in Ihrem Codeausschnitt durch das tabularxPaket definiert ist. (Wenn diese Annahme falsch ist, lassen Sie es mich wissen!) Die folgende Lösung verwendet eine tabularxUmgebung mit ungleichen Spaltenbreiten. (Beachten Sie, dass die relativen Spaltenbreiten sich zu summieren 5, was der Anzahl der Spalten vom Typ entspricht X.) Ich habe die tabularWrapper in der Kopfzeile entfernt – sie werden nicht benötigt, da der CSpaltentyp einen automatischen Zeilenumbruch zulässt. Ich habe auch die erste Spalte entfernt. Meiner Erfahrung nach lesen Lesermag überhaupt nichtSie müssen den Hals recken, um etwas zu lesen. Stattdessen habe ich die Zeichenfolge „Categoria operacional“ in die Kopfzeile eingefügt.

Der folgende Screenshot zeigt (ungefähr) die obere Hälfte der Tabelle, die durch den folgenden Code generiert wird.

Bildbeschreibung hier eingeben

\documentclass{article}
\usepackage[a4paper,margin=2.5cm]{geometry} % set suitable page parameters
\usepackage[portuguese]{babel}
\usepackage[T1]{fontenc}
\usepackage[skip=0.333\baselineskip]{caption} % optional 

\usepackage{tabularx,ragged2e,booktabs}
%% Define variable-width raggedright and centered versions of the "X" column type:
\newcolumntype{L}[1]{>{\RaggedRight\arraybackslash%
        \hsize=#1\hsize\linewidth=\hsize}X}
\newcolumntype{C}[1]{>{\Centering\arraybackslash%
        \hsize=#1\hsize\linewidth=\hsize\hspace{0pt}}X}

\begin{document}
\begin{table}[htb]
\caption{Descrição das categorias operacionais e de design segundo a norma EN45545-1.}
\label{tab:categorias}

\begin{tabularx}{\textwidth}{@{} L{2.2} C{0.6}C{0.9}C{0.7}C{0.6}  @{}}
\toprule
Categoria operacional & \multicolumn{4}{c@{}}{Categoria de design} \\
\cmidrule(l){2-5}
& Veículos \emph{standard} & Veículos automáticos sem staff treinado & Veículos de dois andares & Carruagemcama \\
\midrule
Veículos de superfície que não atravessam túneis ou secções elevadas de terreno, com possibilidade de evacuação lateral & HL1 & HL1 & HL1 & HL1 \\
\addlinespace
Veículos que atravessam túneis\slash secções de terreno elevadas, com possibilidade de evacuação lateral e alcance de um local de segurança num curto espaço de tempo, em caso de acidente & HL2 & HL2 & HL2 & HL2 \\
\addlinespace
Veículos que atravessam túneis\slash secções de terreno elevadas, com possibilidade de evacuação lateral e alcance de um local de segurança num longo espaço de tempo, em caso de acidente & HL2 & HL2 & HL2 & HL3 \\
\addlinespace
Veículos que atravessam túneis\slash secções de terreno elevadas, sem possibilidade de evacuação lateral e alcance de um local de segurança num curto espaço de tempo, em caso de acidente & HL3 & HL3 & HL3 & HL3 \\
\bottomrule
\end{tabularx}
\end{table}

\end{document}

verwandte Informationen