Kombinieren von Mehrzeilen- und Mehrspaltendarstellungen

Kombinieren von Mehrzeilen- und Mehrspaltendarstellungen

Beim Kombinieren von multirowund multicolumnin 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}

zusammengestelltes Dokument

Beachten Sie die vertikalen Linien in den char literalsZellen 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}

Bildbeschreibung hier eingeben

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 nicematrixPGF/Tikz-Knoten verwendet werden.

Ausgabe des obigen Codes

verwandte Informationen