Tabla larga con encabezados de varias columnas y problemas de salto de línea en varias filas

Tabla larga con encabezados de varias columnas y problemas de salto de línea en varias filas

Me gustaría crear esta tabla:

ingrese la descripción de la imagen aquí

El código para esto está en la segunda tabla. (¡Gracias a Bernard por esto!) Desafortunadamente recibo dos errores debido a estas dos tablas.

La primera es: Algo anda mal, tal vez falta un elemento. \end{tabularx}

El segundo es: Fuera de lugar \omitir. \end{tabularx}

El Código es:

\documentclass[a4paper, ngerman]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage[showframe]{geometry}
\usepackage[table, svgnames]{xcolor}
\usepackage{ragged2e}
\usepackage{tabularx, multirow, caption, makecell, hhline}      
\usepackage{graphicx}
\usepackage{enumitem}
\usepackage{ltablex}

\begin{document}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
TABLE 1
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{table}[!htbp]
\centering
\setlength\tabcolsep{3pt}
\setlist[itemize]{wide=0pt, labelsep=2pt, leftmargin=*, nosep, before 
=\mbox{}\vspace*{-.7\baselineskip}, after=\vspace*{-.8\baselineskip}}
\caption{\label{tab:Gestaltungsbereiche}Gestaltungsbereiche}
%
\begin{tabularx}{\textwidth}{|c|*{3}{>{\RaggedRight}X|}}
\hhline{~|---|}
\multicolumn{1}{r|}{} & \multicolumn{3}{c|}
{\cellcolor{Gainsboro}Gestaltungsbereiche} \\
\hhline{~|---|}
\rowcolor{Gainsboro} \multicolumn{1}{r|}{\cellcolor{white}} &% 
\multicolumn{1}{>{\centering}X}{\centering Betriebsmittel\newline \centering 
(B)}
\makecell{Betriebsmittel\\ (B)} & \makecell{Organisation\\ (O)} & 
\makecell{Raum- und \\Gebäudetechnik \\ (R)}\\
\hline
\multirow{11}{*}[-1ex]{\rotatebox{90}{Fabrikobjekte}}
& \begin{itemize}
    \item Fertigungseinrichtungen
    \item Montageeinrichtungen
    \item Logistikeinrichtungen
    \item Qualitätseinrichtungen
    \item Informations- und 
    \newline Kommunikations\-einrichtungen
    \item Ver- und Entsorgungs\-einrichtungen
    \item Übergeordnete Systeme
    \item Mobiliar
\end{itemize} %
& \begin{itemize}
    \item Unternehmensstrategie
    \item Logistikkonzept
    \item Prozessgestaltung
    \item Aufbauorganisations\-gestaltung
    \item Arbeitsorganisation
    \item Qualitätssicherungs\-konzept
\end{itemize} %
& \begin{itemize}
    \item Grundstück
    \item Bau\-konstruktion
    \item Technische Anlagen
    \item Außenanlagen
    \item Ausstattung
    \item Konzepte
\end{itemize} \\%
\hline
\end{tabularx}%
\end{table}%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
TABLE 2
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\newpage
\keepXColumns
\setlength{\extrarowheight}{3pt}
\begin{tabularx}{\textwidth}{|c|*{2}{>{\RaggedRight}X|}p{9cm}|}
\caption{Betriebsmittel: Fabrikobjekte}
\label{tab:addlabel}%\\
\hhline{~|---|}
\rowcolor{Gainsboro} \multicolumn{1}{r|}{\cellcolor{white}}&
\multicolumn{1}{>{\centering\columncolor{Gainsboro}[\tabcolsep][1em]}X}
{\centering Fabrikobjekte 1.Ordnung}&
\multicolumn{2}{c|}{Fabrikobjekte 2.Ordnung}
\\
\hhline{----}
\endfirsthead
\hhline{~|---|}
\rowcolor{Gainsboro} \multicolumn{1}{r|}{\cellcolor{white}}&
\multicolumn{1}{>{\centering\columncolor{Gainsboro}[\tabcolsep][1em]}X}
{\centering Fabrikobjekte 1.Ordnung}&
\multicolumn{2}{c|}{Fabrikobjekte 2.Ordnung}
 \\
\hhline{----}
\endhead
\multirow{45}{*}[-1ex]{\rotatebox{90}{Gestaltungsfeld: Betriebsmittel}}  
%%%
& \multirow{11}{*}{Fertigungseinrichtung} & \multirow{5}{*}{Maschine} &
Gestell \\
& & & Antriebe\\
& & & Kinematisches System \\
& & & Steuerungs-/ Mess-/Regel- \&
Diagnosesysteme \\
& & & Hilfssysteme / Peripherie \\[0.4ex]
\cline{3-4}
& &
\multirow{3}{*}{Vorrichtung / Hilfmittel} &
Vorrichtungs- \& Spannsysteme \\
& & & Werkstückflusssystem \\
& & & Steuerung \\[0.4ex]
\cline{3-4}& & Werkzeuge & \\[0.4ex]
\cline{2-4}& \multirow{9}{*}{Montageeinrichtungen} & {\multirow{5}{*}
{Montagegrundplatz}} & {Gestell} \\
& & & Antriebe\\
& & & Kinematisches System \\
& & & Steuerungs-/ Mess-/Regel- \& Diagnosesysteme \\
& & & Hilfssysteme / Peripherie \\[0.4ex]
\cline{3-4}
& & \multirow{3}{*}{Vorrichtung / Hilfmittel} & {Vorrichtungs- \& 
Spannsysteme} \\
& & &{Werkstückflusssystem} \\
& & & {Steuerung} \\[0.4ex]
\cline{3-4}& & {Werkzeuge} &  \\[0.4ex]
\cline{2-4}& \multirow{25}{*}{Logistikeinrichtungen} & {\multirow{6}{*}
{Transporteinrichtungen}} & {Gestell} \\
& & & Transportvorrichtung\\
& & & Antriebe\\
& & & Kinematisches System \\
& & & Steuerung \\
& & & Hilfssysteme / Peripherie \\[0.4ex]
\cline{3-4}
& & {\multirow{6}{*}{Handhabungseinrichtungen}} & {Gestell} \\
& & & Handhabungsvorrichtung\\
& & & Antriebe\\
& & & Kinematisches System \\
& & & Steuerung \\
& & & Hilfssysteme / Peripherie \\[0.4ex]
\cline{3-4}

\end{tabularx}%
\end{document}

Agradezco cada comentario.

Mi resultado actual para la segunda tabla es este:

ingrese la descripción de la imagen aquí

Respuesta1

\centeringno es necesario para a longtable: se centra automáticamente de forma predeterminada. No es necesario insertar un entorno tabularx en una tabla larga para decir que se extenderá por las páginas. Simplemente tienes que cargar un paquete que agregue la funcionalidad (y la sintaxis) de longtableto tabularx. Sugiero usar ltablex.

La sintaxis es la de longtable: pones el \captionadentrotabularx, antes de la declaración de first table head(estas declaraciones terminan con `\endfirsthead).

Luego sugiero agregar los encabezados de columna con las declaraciones para los encabezados de los siguientes encabezados (que terminan en \endhead).

Eliminé todos los \multicolumn{1}{l|}de la última columna, que evitan saltos de línea y generan desbordes en el margen.

Así que aquí está el código que propongo:

\documentclass[a4paper, ngerman]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage[showframe]{geometry}
\usepackage[table, svgnames]{xcolor}
\usepackage{ragged2e}
\usepackage{multirow, caption, makecell, hhline}
\usepackage{graphicx}
\usepackage{ltablex}
\keepXColumns
\begin{document}
%\begin{longtable}
%\centering
%\caption{Betriebsmittel: Fabrikobjekte}
\setlength{\extrarowheight}{3pt}
\begin{tabularx}{\textwidth}{|c|*{3}{>{\RaggedRight}X|}}
\caption{Betriebsmittel: Fabrikobjekte}
  \label{tab:addlabel}%\\
    \hhline{~|---|}
     \rowcolor{Gainsboro} \multicolumn{1}{r|}{\cellcolor{white}}&
    \multicolumn{1}{>{\centering\columncolor{Gainsboro}[\tabcolsep][1em]}X}{\centering Fabrikobjekte 1.Ordnung}&
    \multicolumn{2}{c|}{Fabrikobjekte 2.Ordnung}
    \\
    \hhline{----}
\endfirsthead
    \hhline{~|---|}
     \rowcolor{Gainsboro} \multicolumn{1}{r|}{\cellcolor{white}}&
    \multicolumn{1}{>{\centering\columncolor{Gainsboro}[\tabcolsep][1em]}X}{\centering Fabrikobjekte 1.Ordnung}&
    \multicolumn{2}{c|}{Fabrikobjekte 2.Ordnung}
    \\
    \hhline{----}
\endhead
    \multirow{12}{*}[-1ex]{\rotatebox{90}{Gestaltungsfeld: Betriebsmittel}}
     %%%

     & \multirow{11}{*}{Fertigungseinrichtung} & \multirow{5}{*}{Maschine} &
     Gestell \\
     & & & Antriebe\\
     & & & Kinematisches System \\
     & & & Steuerungs-/ Mess-/Regel- \&
     Diagnosesysteme \\
     & & & Hilfssysteme / Peripherie \\[0.4ex]
     \cline{3-4}
     & &
     \multirow{3}[2]{*}{Vorrichtung / Hilfmittel} &
     Vorrichtungs- \& Spannsysteme \\
     & & & Werkstückflusssystem \\
     & & & Steuerung \\[0.4ex]
     \cline{3-4}& & Werkzeuge & \\[0.4ex]
     \cline{2-4}\\
     %%%
    \end{tabularx}%

    \end{document} 

ingrese la descripción de la imagen aquí

Agregado:

Este código se compila bien con tres tablas. Tenga en cuenta que la tercera tabla es un código más corto para obtener la segunda tabla. Había cambiado el número usado enmultirow : debes tomar el número total delíneasen las filas la celda de varias filas debe distribuirse, y no el número defilasy posiblemente agregar un argumento opcional correctivo para la ubicación vertical del contenido.

Por otro lado, la carga ltablexhace que todos tabularxlos entornos sean longtable. Aquí están centrados, no flotan (no los anidan entable ) y se debe insertar el títuloadentroel entorno.

\documentclass[a4paper, ngerman]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{geometry}
\usepackage[table, svgnames]{xcolor}
\usepackage{ragged2e}
\usepackage{multirow, caption, makecell, hhline}
\usepackage{ltablex}%{tabularx}%
\usepackage{graphicx}
\usepackage{enumitem}

\newcommand\mypar{ \par\hangindent=1.5em\hangafter=1}

\begin{document}

\sffamily\captionsetup{font=sf}

\setlength\tabcolsep{3pt}
\setlist[itemize]{wide=0pt, labelsep=2pt, leftmargin=*, nosep, before
  =\mbox{}\vspace*{-.7\baselineskip}, after=\vspace*{-.8\baselineskip}}
\keepXColumns
%
\begin{tabularx}{\textwidth}{|c|*{3}{>{\RaggedRight\arraybackslash}X|}}
  \caption{\label{tab:Gestaltungsbereiche}Gestaltungsbereiche} \\
  \hhline{~|---|}
  \multicolumn{1}{r|}{} & \multicolumn{3}{c|}
  {\cellcolor{Gainsboro}Gestaltungsbereiche} \\
  \hhline{~|---|}
  \rowcolor{Gainsboro} \multicolumn{1}{r|}{\cellcolor{white}} & %
  \makecell{Betriebsmittel \\ (B)} & \makecell{Organisation\\ (O)} &
  \makecell{Raum- und \\Gebäudetechnik \\ (R)}\\
  \hline
  \endfirsthead
  \multirow{11}{*}[-1ex]{\,\rotatebox{90}{Fabrikobjekte}\,}
                                                              &
  \begin{itemize}
    \item Fertigungseinrichtungen
    \item Montageeinrichtungen
    \item Logistikeinrichtungen
    \item Qualitätseinrichtungen
    \item Informations- und
          Kommunikations\-einrichtungen
    \item Ver- und Entsorgungs\-einrichtungen
    \item Übergeordnete Systeme
    \item Mobiliar
  \end{itemize} %
                                                              & \begin{itemize}
    \item Unternehmensstrategie
    \item Logistikkonzept
    \item Prozessgestaltung
    \item Aufbauorganisations\-gestaltung
    \item Arbeitsorganisation
    \item Qualitätssicherungs\-konzept
  \end{itemize} %
                                                              & \begin{itemize}
    \item Grundstück
    \item Bau\-konstruktion
    \item Technische Anlagen
    \item Außenanlagen
    \item Ausstattung
    \item Konzepte
  \end{itemize}
  \\%
  \hline
\end{tabularx}%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% TABLE 2
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\newpage
\setlength{\extrarowheight}{2pt}
\begin{tabularx}{\textwidth}{|c|*{2}{>{\RaggedRight}X|}>{\RaggedRight}p{4.8cm}|}
  \caption{Betriebsmittel: Fabrikobjekte}
  \label{tab:addlabel} \\
  \hhline{~|---|}
  \multicolumn{1}{r|}{\cellcolor{white}} &
  \cellcolor{Gainsboro}\centering Fabrikobjekte 1.Ordnung &
  \multicolumn{2}{c|}{\cellcolor{Gainsboro}Fabrikobjekte 2.Ordnung}
  \\
  \hhline{----}
  \endfirsthead
  \hhline{~|---|}
  \rowcolor{Gainsboro} \multicolumn{1}{r|}{\cellcolor{white}} &
  \multicolumn{1}{>{\centering\columncolor{Gainsboro}[\tabcolsep][1em]}X}
  {\centering Fabrikobjekte 1.Ordnung} &
  \multicolumn{2}{c|}{Fabrikobjekte 2.Ordnung}
  \\
  \hhline{----}
  \endhead
  \hhline{----}
  \endfoot
  \multirow{32}{*}{\,\rotatebox{90}{Gestaltungsfeld: Betriebsmittel}\,}
  %
                                                              & \multirow{11}{=}{Fertigungseinrichtung} & \multirow{6}{*}{Maschine} &
  Gestell \\
                                                              & & & Antriebe \\
                                                              & & & Kinematisches System \\
                                                              & & & Steuerungs-/ Mess-/Regel- \& \par\quad Diagnosesysteme \\
                                                              & & & Hilfssysteme / Peripherie \\[0.4ex]
  \cline{3-4}
                                                              & &
  \multirow{3}{=}{Vorrichtung / Hilfmittel} &
  Vorrichtungs- \& Spannsysteme \\
                                                              & & & Werkstückflusssystem \\
                                                              & & & Steuerung \\[0.4ex]
  \cline{3-4} & & Werkzeuge & \\[0.4ex]
  \cline{2-4} & \multirow{11}{=}[-2pt]{Montageeinrichtungen} &
  \multirow{6}{=}{Montagegrundplatz} & Gestell \\
                                                              & & & Antriebe \\
                                                              & & & Kinematisches System \\
                                                              & & & Steuerungs-/ Mess-/Regel- \&\par\quad Diagnosesysteme \\
                                                              & & & Hilfssysteme / Peripherie \\[0.4ex]
  \cline{3-4}
                                                              & & \multirow{3}{=}{Vorrichtung / Hilfmittel} & {Vorrichtungs- \& Spannsysteme} \\
                                                              & & & Werkstückflusssystem \\
                                                              & & & Steuerung \\[0.4ex]
  \cline{3-4} & & {Werkzeuge} & \\[0.4ex]
  \cline{2-4} & \multirow{12}{=}{Logistikeinrichtungen} &
  \multirow{6}{=}{Transporteinrichtungen} & Gestell \\
                                                              & & & Transportvorrichtung \\
                                                              & & & Antriebe \\
                                                              & & & Kinematisches System \\
                                                              & & & Steuerung \\
                                                              & & & Hilfssysteme / Peripherie \\[0.4ex]
  \cline{3-4}
                                                              & & \multirow{6}{=}{Handhabungseinrichtungen} & Gestell \\
                                                              & & & Handhabungsvorrichtung \\
                                                              & & & Antriebe \\
                                                              & & & Kinematisches System \\
                                                              & & & Steuerung \\
                                                              & & & Hilfssysteme / Peripherie \\[0.4ex]
\end{tabularx}%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% TABLE 2 bis
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\newpage
\setlength{\extrarowheight}{3pt}
\begin{tabularx}{\textwidth}{|c|*{2}{>{\RaggedRight}X|}>{\RaggedRight\everypar{\hangindent=1.5em\hangafter=1}}p{4.8cm}|}
  \caption{Betriebsmittel: Fabrikobjekte}
  \label{tab:addlabel} \\
  \hhline{~|---|}
  \multicolumn{1}{r|}{\cellcolor{white}} &
  \cellcolor{Gainsboro}\centering Fabrikobjekte 1.Ordnung &
  \multicolumn{2}{c|}{\cellcolor{Gainsboro}Fabrikobjekte 2.Ordnung}
  \\
  \hhline{----}
  \endfirsthead
  \hhline{~|---|}
  \rowcolor{Gainsboro} \multicolumn{1}{r|}{\cellcolor{white}} &
  \multicolumn{1}{>{\centering\columncolor{Gainsboro}[\tabcolsep][1em]}X}
  {\centering Fabrikobjekte 1.Ordnung} &
  \multicolumn{2}{c|}{Fabrikobjekte 2.Ordnung}
  \\
  \hhline{----}
  \endhead
  \hhline{----}
  \endfoot
  \multirow{27}{*}{\,\rotatebox{90}{Gestaltungsfeld: Betriebsmittel}\,}
  %
                                                              & \multirow{11}{=}{Fertigungseinrichtung} & \multirow{6}{=}{Maschine}
                                                              & Gestell \par Antriebe \par Kinematisches System \par Steuerungs-/ Mess-/Regel- \& Diagnosesysteme \par Hilfssysteme / Peripherie \\[0.4ex]
  \cline{3-4}
                                                              & & \multirow{3}{=}{Vorrichtung / Hilfmittel} &
  Vorrichtungs- \& Spannsysteme \par Werkstückflusssystem \par Steuerung \\[0.4ex]
  \cline{3-4} & & Werkzeuge & \\[0.4ex]
  \cline{2-4} & \multirow{11}{=}[-2pt]{Montageeinrichtungen} & \multirow{6}{=}{Montagegrundplatz} %
                                                              & Gestell \par Antriebe \par Kinematisches System \par Steuerungs-/ Mess-/Regel- \& Diagnosesysteme \par Hilfssysteme / Peripherie \\[0.4ex]
  \cline{3-4}
                                                              & & \multirow{3}{=}{Vorrichtung / Hilfmittel} &
  Vorrichtungs- \& Spannsysteme \par Werkstückflusssystem \par Steuerung \\[0.4ex]
  \cline{3-4} & & {Werkzeuge} & \\[0.4ex]
  \cline{2-4} & \multirow{12}{=}{Logistikeinrichtungen} & \multirow{6}{*}{Transporteinrichtungen}
                                                              & Gestell \par Transportvorrichtung \par Antriebe \par Kinematisches System \par Steuerung \par Hilfssysteme / Peripherie \\[0.4ex]
  \cline{3-4}
                                                              & & \multirow{6}{=}{Handhabungseinrichtungen}
                                                              & Gestell \par Handhabungsvorrichtung \par Antriebe \par Kinematisches System \par Steuerung \par Hilfssysteme / Peripherie \\[0.4ex]
\end{tabularx}%

\end{document} 

ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí

Respuesta2

Si recibe un error de TeX, no debería mirar el resultado tipográfico en absoluto.

El error aquí es

! Package array Error:  Illegal pream-token (\centering): `c' used.

Porque después del argumento opcional, el primer token es \centeringcuando, como la mayoría de los entornos de matriz, longtablebusca una especificación de columna.

El argumento opcional solo puede ser [c], [l]o [r]simplemente [!htbp]se ignora (no se proporciona ningún error principalmente por razones históricas), por lo que eliminé ese argumento opcional.

tan cambiando a

\begin{longtable}{ccc}

produce una salida sin errores, pero el título está a la izquierda de tabularxya que omitió \\para finalizar la longtablefila.

Me detengo en este punto porque no está del todo claro lo que quieres. Actualmente, toda la longtabletabla solo tiene una sola celda en una sola columna que consta de un anidado. tabularxSi ese es el caso real, no necesita longtablenada y podría tener solo el tabularx interior table.

\documentclass[a4paper, ngerman]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage[showframe]{geometry}
\usepackage[table, svgnames]{xcolor}
\usepackage{ragged2e} 
\usepackage{tabularx, multirow, caption, makecell, hhline}
\usepackage{graphicx}
\usepackage{longtable}

\begin{document}
\begin{longtable}{ccc}
\caption{Betriebsmittel: Fabrikobjekte}\\
\begin{tabularx}{\textwidth}{|c|*{3}{>{\RaggedRight}X|}}
\hhline{~|---|}
\rowcolor{Gainsboro} \multicolumn{1}{r|}{\cellcolor{white}} & 
\multicolumn{1}{>{\centering}X}{\centering Fabrikobjekte 1.Ordnung}&
\multicolumn{2}{>{\centering}X}{\centering Fabrikobjekte 2.Ordnung}
\\
\hline
\multirow{11}{*}[-1ex]{\rotatebox{90}{Gestaltungsfeld: Betriebsmittel}}
 %%%

 & \multirow{9}{*}{Fertigungseinrichtung} & \multirow{5}{*}{Maschine} & 
 \multicolumn{1}{l|}{Gestell} \\
 &       &       & \multicolumn{1}{l|}{Antriebe} \\
 &       &       & \multicolumn{1}{l|}{Kinematisches System} \\
 &       &       & \multicolumn{1}{l|}{Steuerungs-/ Mess-/Regel- \& 
 Diagnosesysteme} \\
 &       &       & \multicolumn{1}{l|}{Hilfssysteme / Peripherie} \\
 \cline{3-4}          
 &       & 
 \multirow{3}[2]{*}{Vorrichtung / Hilfmittel} & 
 \multicolumn{1}{l|}{Vorrichtungs- \& Spannsysteme} \\
 &       &       & \multicolumn{1}{l|}{Werkstückflusssystem} \\
 &       &       & \multicolumn{1}{l|}{Steuerung} \\
 \cline{3-4}&       & Werkzeuge &  \\
 \cline{2-4}\\

 %%%
\end{tabularx}%
\label{tab:addlabel}%
\end{longtable}%    
\end{document} 

Respuesta3

¿Has intentado insertar filas vacías después de la multicolumna? Tuve el mismo problema y me di cuenta de que era suficiente agregar filas vacías para tener suficiente espacio para la otra.

 &       &       & \multicolumn{1}{l|}{Werkstückflusssystem} \\
    &       &       & \\
    &       &       & \multicolumn{1}{l|}{Steuerung} \\
    &       &       & \\

información relacionada