Mehrspaltig. Verteilung und horizontale Linien

Mehrspaltig. Verteilung und horizontale Linien

Ich habe eine Tabelle, die ich der Kürze halber wie folgt vereinfacht habe:

\begin{tabular}{ |l|l|c c c|l|l|l| }
    \hline
    Problem $I_k$ & Solved $C_k$ & \multicolumn{3}{ |c| }{Solution to $C_k$} & Current & Pursue & Stored\\
    & & $x_1$ & $x_2$ & $z$ & & & \\ \hline
\end{tabular}

Das Ergebnis ist folgende

Bildbeschreibung hier eingeben

Nun habe ich zwei Fragen, die sich beide auf die Mehrspaltigkeit beziehen. Erstens: Ist es möglich, einen Teil zu generieren \hline, der nur die dritte Spalte betrifft (indem das Label „Lösung für C_k“ und die drei Variablen getrennt werden)?

Zweitens sieht es so aus, als ob $x_1$, $x_2$ und $z$ nicht zentriert sind. Wie kann das behoben werden?

Antwort1

Bildbeschreibung hier eingeben

Eine punktuelle Asymmetrie der cSpaltenbreite ergibt sich aus der Tatsache, dass \multicolumn{3}{c}{Solution to $C_k$}diese breiter ist als die Summe der Breiten der überspannten Spalten. Folglich wird der Spalteninhalt $z$ erweitert, um der Breite der mehrspaltigen Zelle zu entsprechen.

Um alle cSpalten gleich breit zu machen, musste man deren Breite vorgeben, zum Beispiel mit Hilfe des Spaltentyps p{<width>}:

\documentclass{article}
\usepackage{array}% needed for column redefinition
\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}}

\begin{document}
\begin{tabular}{ |l|l|*{3}{C{2em}}|l|l|l| }
    \hline
Problem $I_k$ & Solved $C_k$ & \multicolumn{3}{c|}{Solution to $C_k$}
    & Current & Pursue & Stored     \\
    \cline{3-5}
    & & $x_1$ & $x_2$ & $z$ & & & \\
    \hline
\end{tabular}
\end{document}

Ich würde die Tabelle jedoch lieber folgendermaßen gestalten:

Bildbeschreibung hier eingeben

\documentclass{article}
\usepackage{array, booktabs}% needed for column redefinition and nicer looks
\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}}

\begin{document}
\begin{tabular}{ ll *{3}{C{2em}} lll}
    \toprule
    &   & \multicolumn{3}{c}{Solution to $C_k$} &   &   &   \\
    \cmidrule(lr){3-5}
Problem $I_k$ & Solved $C_k$ & $x_1$ & $x_2$ & $z$ & Current & Pursue & Stored     \\
     \midrule
\end{tabular}
\end{document}

Antwort2

Hier ist eine Variante, die das tabularxPaket verwendet, um die Tabelle automatisch auf die Textbreite auszudehnen, ohne die Spaltenbreiten manuell anzugeben.

\documentclass{article}
\usepackage{tabularx}
\begin{document}
\noindent
\begin{tabularx}{\textwidth}{ |l|l|*3{>{\centering\arraybackslash}X}|l|l|l| }
    \hline
    Problem $I_k$ & Solved $C_k$ & \multicolumn{3}{ c| }{Solution to $C_k$} & Current & Pursue & Stored\\\cline{3-5} 
    & & $x_1$ & $x_2$ & $z$ & & & \\ \hline
\end{tabularx}
\end{document} 

verwandte Informationen