Davon abgesehen, dass diese Tabelle mit ihren vielen vertikalen und horizontalen Linien insgesamt eher hässlich ist und nur zum Ausfüllen aber nicht zum Lesen taugt, gibt es diverse Möglichkeiten, die Spaltenbreiten zu beeinflussen. Die einfachste Möglichkeit besteht darin, die Spaltenabstände zu erhöhen:
\documentclass{scrartcl}
\setlength{\tabcolsep}{2em}
\begin{document}
%\begingroup
%\setlength{\tabcolsep}{2em}
\begin{tabular}{|c|c|c|c|c|c|c|c|c|}
\hline
\multicolumn{4}{|c|}{A} & \multicolumn{3}{|c|}{B} & C \\
\hline
1 & 2 & 3 & 4 & 1 & 2 & 3 & \\
\hline
& & & & & & & \\
\hline
\multicolumn{3}{|c|}{a} & \multicolumn{5}{|c|}{}\\
\hline
\end{tabular}
%\endgroup
\end{document}
Soll das nur die eine Tabelle betreffen, kann man die entsprechende Längenänderung unmittelbar vor der Tabelle vornehmen und zusammen mit der Tabelle in eine eigene Gruppe packen. Dazu kommentiert man die Zeile `\setlength{\tabcolsep}{2em}` in der Dokumentpräambel aus und aktiviert die drei auskommentierten Zeilen. Bei Verwendung einer `table`-Umgebung genügt es, die Längenänderung zwischen `\begin{table}` und `\begin{tabular}` einzufügen.
![\tabcolsep-Lösung][1]
Zu beachten ist bei dieser Lösung, dass der zusätzliche Spaltenabstand wirklich zwischen und nicht in den Spalten eingefügt wird. Deshalb ändert sich im Beispiel auch nicht wirklich viel, wenn man die `c`-Spalten durch `r`- oder `l`-Spalten ersetzt, die Spalten scheinen dann trotzdem zentriert.
Man kann natürlich stattdessen auch die Spaltenbreiten einzeln oder in Gruppen explizit festlegen, indem man `p`-Spalten verwendet:
\documentclass{scrartcl}
\usepackage{array}
\begin{document}
\begin{tabular}{|*5{>{\centering}p{3em}|}*3{>{\centering\arraybackslash}p{1.5em}|}}
\hline
\multicolumn{4}{|c|}{A} & \multicolumn{3}{c|}{B} & C \\
\hline
1 & 2 & 3 & 4 & 1 & 2 & 3 & \\
\hline
& & & & & & & \\
\hline
\multicolumn{3}{|c|}{a} & \multicolumn{5}{c|}{}\\
\hline
\end{tabular}
\end{document}
![p-Spalten][2]
Das Paket [`array`](http://ctan.org/pkg/array) wurde hier verwenden, um den Inhalt der `p`-Spalten zu zentrieren.
Bei der Gelegenheit habe ich auch gleich die Spaltendefinition auf die verwendeten acht Spalten reduziert und die neunte, in der Tabelle nicht verwendete Spalte entfernt. Außerdem habe ich aufeinander folgende, identische Spaltendefinitionen durch den Wiederholungsoperator `*` angegeben, was die Deklaration übersichtlicher macht.
Desweiteren habe ich die `\multicolumn`-Angaben korrigiert. Die Spaltentrennlinie sollte (außer bei der ersten Spalte) immer nur rechts angegeben werden! Anderenfalls können in einigen Fällen sogar dickere Linien oder hüpfende vertikale Linien entstehen:
![p-Spalten (mit falschen |-Angaben)][3]
Wenn gleichzeitig wie im ersten Beispiel alle Spalten nahezu gleich breit sind, kann man auch [`tabularx`](http://ctan.org/pkg/tabularx) verwenden, um tatsächlich gleich breite Spalten vorzuschreiben und die Breite gleichmäßig auf eine gewünschte Tabellenbreite verteilen:
\documentclass{scrartcl}
\usepackage{tabularx}
\begin{document}
\begin{tabularx}{.75\textwidth}{|*8{>{\centering\arraybackslash}X|}}
\hline
\multicolumn{4}{|c|}{A} & \multicolumn{3}{c|}{B} & C \\
\hline
1 & 2 & 3 & 4 & 1 & 2 & 3 & \\
\hline
& & & & & & & \\
\hline
\multicolumn{3}{|c|}{a} & \multicolumn{5}{c|}{}\\
\hline
\end{tabularx}
\end{document}
![tabularx-Lösung][4]
Hier wird die Zentrierung dann durch das `\centering` in der Spaltendeklaration vorgegeben. Das `\arraybackslash` in der Spaltendeklaration sorgt dafür, dass `\\` weiterhin als Tabellenzeilenende und nicht als harter Umbruch (entsprechend `\centering`) verstanden wird. Es wird nur für die letzte Spalte benötigt und nur, wenn man die Tabellenzeilen nicht stattdessen mit `\tabularnewline` beenden will.
Für Tabellen mit rein – oder zumindest hauptsächlich – numerischem Inhalt, kann man sogar [`siunitx`](http://ctan.org/pkg/siunitx) verwenden, um die Spaltenbreiten einzustellen:
\documentclass{scrartcl}
\usepackage{siunitx}
\begin{document}
\begin{tabular}{|*8{S[table-column-width=3em,table-number-alignment=center]|}}
\hline
\multicolumn{4}{|c|}{A} & \multicolumn{3}{c|}{B} & C \\
\hline
1 & 2 & 3 & 4 & 1 & 2 & 3 & \\
\hline
& & & & & & & \\
\hline
\multicolumn{3}{|c|}{a} & \multicolumn{5}{c|}{}\\
\hline
\end{tabular}
\end{document}
![siunitx-Lösung][5]
Hier wird die Zentrierung der Zahlen durch die Eigenschaft `table-number-alignment=center` erreicht. Diverse andere Ausrichtungen sind möglich. Siehe dazu die Anleitung zum Paket `siunitx`.
Siehe außerdem: [Unterschied zwischen: tabular, tabularx und tabulary?](http://texwelt.de/wissen/fragen/15033)
[1]: http://texwelt.de/wissen/upfiles/test3_13.png
[2]: http://texwelt.de/wissen/upfiles/test6_10.png
[3]: http://texwelt.de/wissen/upfiles/test5_10.png
[4]: http://texwelt.de/wissen/upfiles/test4_10.png
[5]: http://texwelt.de/wissen/upfiles/test7_7.png