
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:
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!
Antwort1
Ich schlage diese Lösung mit nur einer X
Spalte vor – natürlich innerhalb einer tabularx
Umgebung. Ich habe auch loadd verwendet geometry
, um ordentlichere Ränder zu haben (wenn Sie keine Randnotizen verwenden), die meisten verschachtelten Tabellen durch \thead
from ersetzt makecell
(dies ermöglicht Zeilenumbrüche in Standardspaltenzellen) und schließlich mit dem booktab
Befehl 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}
Antwort2
Wie Sie (wieder)entdeckt haben, wird die Verwendung von \resizebox
zum Erzwingen einer tabular
Umgebung 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 X
Spaltentyp in Ihrem Codeausschnitt durch das tabularx
Paket definiert ist. (Wenn diese Annahme falsch ist, lassen Sie es mich wissen!) Die folgende Lösung verwendet eine tabularx
Umgebung 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 tabular
Wrapper in der Kopfzeile entfernt – sie werden nicht benötigt, da der C
Spaltentyp 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.
\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}