table avec plusieurs multicolonnes
J'ai du mal à obtenir la distribution de la table avec plusieurs colonnes par lignes. Mon code LaTeX est:
\documentclass{book}
\begin{document}
\begin{table}[]
\begin{tabular}{|c|c|c|c|c|c|c|c|c|c|c|c|c|c|}
\hline
\multicolumn{7}{|c|}{0} & \multicolumn{7}{c|}{1}\\ \hline
\multicolumn{7}{|c|}{Negative} & \multicolumn{7}{c|}{Positive}\\ \hline
\multicolumn{4}{|c|}{-1} & \multicolumn{6}{c|}{0} & \multicolumn{4}{c|}{1} \\ \hline
\multicolumn{4}{|c|}{Negative} & \multicolumn{6}{c|}{Neutral} & \multicolumn{4}{c|}{Positive} \\ \hline
\multicolumn{2}{|c|}{1} & \multicolumn{3}{c|}{2} & \multicolumn{4}{c|}{3} & \multicolumn{3}{c|}{4} & \multicolumn{2}{c|}{5} \\ \hline
\multicolumn{2}{|c|}{\begin{tabular}[c]{@{}c@{}}Strongly\\ Negative\end{tabular}} & \multicolumn{3}{c|}{\begin{tabular}[c]{@{}c@{}}Weakly\\ Negative\end{tabular}} & \multicolumn{4}{c|}{Neutral} & \multicolumn{3}{c|}{\begin{tabular}[c]{@{}c@{}}Weakly\\ Positive\end{tabular}} & \multicolumn{2}{c|}{\begin{tabular}[c]{@{}c@{}}Strongly\\ Positive\end{tabular}} \\ \hline
\begin{tabular}[c]{@{}c@{}}Very\\ Negative\end{tabular} & \multicolumn{2}{c|}{Negative} & \multicolumn{3}{c|}{\begin{tabular}[c]{@{}c@{}}Mostly\\ Negative\end{tabular}} & \multicolumn{2}{c|}{Neutral} & \multicolumn{3}{c|}{\begin{tabular}[c]{@{}c@{}}Mostly \\ Positive\end{tabular}} & \multicolumn{2}{c|}{Positive} & \begin{tabular}[c]{@{}c@{}}Strongly \\ Positive\end{tabular} \\ \hline
\end{tabular}
\end{table}
\end{document}
Ce codage se traduit par ceci:
Mais je veux vraiment ceci:
Réponses
Voici une solution qui utilise un tabularxenvironnement pour (a) garantir que le tableau s'adapte à la largeur du bloc de texte, (b) garantir que les 7 cellules de la rangée du bas ont des largeurs égales et (c) permettre le retour à la ligne automatique dans le cellules.
Comme dans la réponse de David Carlisle , l' tabularxenv. est configuré pour avoir non pas 7 mais 14 colonnes sous-jacentes. Chaque cellule visible de la ligne du bas s'étend en fait sur 2 colonnes sous-jacentes. Le contenu des cellules visibles doit être entré dans \mc(ou \md) des wrappers, pour indiquer le nombre de colonnes sous-jacentes à couvrir.
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{tabularx}
\renewcommand\tabularxcolumn[1]{m{#1}}
\newcolumntype{C}{>{\centering\arraybackslash}X}
\newcommand\newhsize[1]{\hsize= \dimexpr #1\hsize
+#1\tabcolsep+#1\tabcolsep-2\tabcolsep
+#1\arrayrulewidth-\arrayrulewidth \relax}
\newcommand{\mc}[2]{\multicolumn{#1}{ >{\newhsize{#1}}C|}{#2}}
\newcommand{\md}[2]{\multicolumn{#1}{|>{\newhsize{#1}}C|}{#2}} % for first col. in row
\begin{document}
\setlength\tabcolsep{3pt} % default: 6pt
\setlength\extrarowheight{2pt} % for a more open "look"
\noindent
\begin{tabularx}{\textwidth}{|*{14}{C|}}
\hline
\md{7}{0} & \mc{7}{1} \\ \hline
\md{7}{Negative} & \mc{7}{Positive}\\ \hline
\md{5}{$-1$} & \mc{4}{0} & \mc{5}{1}\\ \hline
\md{5}{Negative} & \mc{4}{Neutral} & \mc{5}{Positive} \\ \hline
\md{3}{1} & \mc{2}{2} & \mc{4}{3} & \mc{2}{4} & \mc{3}{5}\\ \hline
\md{3}{Strongly Negative} & \mc{2}{Weakly Negative} & \mc{4}{Neutral} &
\mc{2}{Weakly Positive} & \mc{3}{Strongly Positive}\\ \hline
\md{2}{Very Positive} & \mc{2}{Positive} & \mc{2}{Mostly Positive} & \mc{2}{Neutral} &
\mc{2}{Mostly Negative} & \mc{2}{Negative} & \mc{2}{Strongly Negative} \\ \hline
\end{tabularx}
\end{document}
Dans son \halignaffectation de colonne de table de niveau le plus bas, Tex simplifie le fait que s'il y a une limite de cellule qui s'étend sur chaque ligne, elle est essentiellement supprimée de la structure interne.
Donc, ici, vous voulez vous assurer que vous avez vraiment 14 colonnes efficaces afin que vous puissiez avoir une dernière ligne finale avec chaque cellule présente et sans travées, cela forcerait normalement un espace vertical visible supplémentaire et des règles verticales donc j'ai utilisé une \omitprimitive pour empêcher l'ajout du règles et \strutque le latex ajoute normalement à une ligne.
\documentclass{article}
\addtolength\textwidth{2pt}
\begin{document}
\begin{tabular}{|c|c|c|c|c|c|c|c|c|c|c|c|c|c|}
\hline
\multicolumn{7}{|c|}{0} & \multicolumn{7}{c|}{1} \\ \hline
\multicolumn{7}{|c|}{Negative} & \multicolumn{7}{c|}{Positive}\\ \hline
\multicolumn{4}{|c|}{-1} & \multicolumn{6}{c|}{0} & \multicolumn{4}{c|}{1} \\\hline
\multicolumn{4}{|c|}{Negative}& \multicolumn{6}{c|}{Neutral}& \multicolumn{4}{c|}{Positive}\\ \hline
\multicolumn{2}{|c|}{1}& \multicolumn{3}{c|}{2}& \multicolumn{4}{c|}{3} & \multicolumn{3}{c|}{4} & \multicolumn{2}{c|}{5}\\ \hline
\multicolumn{2}{|c|}{\begin{tabular}[c]{@{}c@{}}Strongly\\ Negative\end{tabular}} & \multicolumn{3}{c|}{\begin{tabular}[c]{@{}c@{}}Weakly\\ Negative\end{tabular}}& \multicolumn{4}{c|}{Neutral}& \multicolumn{3}{c|}{\begin{tabular}[c]{@{}c@{}}Weakly\\ Positive\end{tabular}}& \multicolumn{2}{c|}{\begin{tabular}[c]{@{}c@{}}Strongly\\ positive\end{tabular}} \\ \hline
\begin{tabular}[c]{@{}c@{}}Very\\ Positive\end{tabular}& \multicolumn{2}{c|}{Positiv}& \multicolumn{3}{c|}{\begin{tabular}[c]{@{}c@{}}Mostly\\ Positive\end{tabular}} & \multicolumn{2}{c|}{Neutral} & \multicolumn{3}{c|}{\begin{tabular}[c]{@{}c@{}}Mostly \\ Negative\end{tabular}} & \multicolumn{2}{c|}{Negative}& \begin{tabular}[c]{@{}c@{}}Strongly \\ Negative\end{tabular}\\ \hline
\omit&\omit&\omit&\omit&\omit&\omit&\omit&\omit&\omit&\omit&\omit&\omit&\omit&\omit
\end{tabular}
\end{document}
J'ai laissé le contenu du tableau comme sans rapport avec la question, mais les nombres devraient être en mode mathématique, $-1$n'est-ce pas -1, j'utiliserais également \setlength\extrarowheight{2pt}pour garder le \hlinecontenu de la cellule à l' écart.