Beim Kombinieren von multirow
und multicolumn
in derselben Zelle einer Tabelle erhalte ich zusätzliche vertikale Linien:
\documentclass[plain]{article}
\usepackage{multirow}
\pagestyle{empty}
\begin{document}
\begin{tabular}{|l|l|l|l|}\hline
\multirow{10}{*}{numeric literals} & \multirow{5}{*}{integers} & in decimal & \verb|8743| \\ \cline{3-4}
& & \multirow{2}{*}{in octal} & \verb|0o7464| \\ \cline{4-4}
& & & \verb|0O103| \\ \cline{3-4}
& & \multirow{2}{*}{in hexadecimal} & \verb|0x5A0FF| \\ \cline{4-4}
& & & \verb|0xE0F2| \\ \cline{2-4}
& \multirow{5}{*}{fractionals} & \multirow{5}{*}{in decimal} & \verb|140.58| \\ \cline{4-4}
& & & \verb|8.04e7| \\ \cline{4-4}
& & & \verb|0.347E+12| \\ \cline{4-4}
& & & \verb|5.47E-12| \\ \cline{4-4}
& & & \verb|47e22| \\ \cline{1-4}
\multicolumn{3}{|l|}{\multirow{3}{*}{char literals}} & \verb|'H'| \\ \cline{4-4}
& & & \verb|'\n'| \\ \cline{4-4}
& & & \verb|'\x65'| \\ \cline{1-4}
\multicolumn{3}{|l|}{\multirow{2}{*}{string literals}} & \verb|"bom dia"| \\ \cline{4-4}
& & & \verb|"ouro preto\nmg"| \\ \cline{1-4}
\end{tabular}
\end{document}
Beachten Sie die vertikalen Linien in den char literals
Zellen string literals
(die sich über drei Spalten erstrecken sollten). Wie können sie vermieden werden?
Antwort1
Diesen Wert müssen Sie \multicolumn{3}{|l|}{}
auch in den folgenden Zeilen verwenden.
\documentclass[plain]{article}
\usepackage{multirow}
\pagestyle{empty}
\begin{document}
\begin{tabular}{|l|l|l|l|}\hline
\multirow{10}{*}{numeric literals} & \multirow{5}{*}{integers} & in decimal & \verb|8743| \\ \cline{3-4}
& & \multirow{2}{*}{in octal} & \verb|0o7464| \\ \cline{4-4}
& & & \verb|0O103| \\ \cline{3-4}
& & \multirow{2}{*}{in hexadecimal} & \verb|0x5A0FF| \\ \cline{4-4}
& & & \verb|0xE0F2| \\ \cline{2-4}
& \multirow{5}{*}{fractionals} & \multirow{5}{*}{in decimal} & \verb|140.58| \\ \cline{4-4}
& & & \verb|8.04e7| \\ \cline{4-4}
& & & \verb|0.347E+12| \\ \cline{4-4}
& & & \verb|5.47E-12| \\ \cline{4-4}
& & & \verb|47e22| \\ \cline{1-4}
\multicolumn{3}{|l|}{\multirow{3}{*}{char literals}} & \verb|'H'| \\ \cline{4-4}
\multicolumn{3}{|l|}{} & \verb|'\n'| \\ \cline{4-4} %% here
\multicolumn{3}{|l|}{} & \verb|'\x65'| \\ \cline{1-4} %% here
\multicolumn{3}{|l|}{\multirow{2}{*}{string literals}} & \verb|"bom dia"| \\ \cline{4-4}
\multicolumn{3}{|l|}{} & \verb|"ouro preto\nmg"| \\ \cline{1-4} %% here
\end{tabular}
\end{document}
Antwort2
Sie können diese Tabelle ganz einfach mit dem Paket erstellen nicematrix
.
In der Umgebung {NiceTabular}
können Sie mit dem integrierten Befehl Zellen sowohl horizontal als auch vertikal zusammenführen \Block
. Dann haben Sie einen Schlüssel hvlines
, mit dem Sie alle in den Blöcken ausgenommenen Regeln zeichnen können.
\documentclass{article}
\usepackage{nicematrix}
\begin{document}
\begin{NiceTabular}{llll}[hvlines]
\Block{10-1}{numeric literals} & \Block{5-1}{integers} & in decimal & \verb|8743| \\
& & \Block{2-1}{in octal} & \verb|0o7464| \\
& & & \verb|0O103| \\
& & \Block{2-1}{in hexadecimal} & \verb|0x5A0FF| \\
& & & \verb|0xE0F2| \\
& \Block{5-1}{fractionals} & \Block{5-1}{in decimal} & \verb|140.58| \\
& & & \verb|8.04e7| \\
& & & \verb|0.347E+12| \\
& & & \verb|5.47E-12| \\
& & & \verb|47e22| \\
\Block[l]{3-3}{char literals} & & & \verb|'H'| \\
& & & \verb|'\n'| \\
& & & \verb|'\x65'| \\
\Block[l]{2-3}{string literals} & & & \verb|"bom dia"| \\
& & & \verb|"ouro preto\nmg"| \\
\end{NiceTabular}
\end{document}
Du brauchstmehrere Zusammenstellungenweil nicematrix
PGF/Tikz-Knoten verwendet werden.