¿Cómo puedo hacer esta mesa?
Estoy tratando de hacer esta tabla:
pero no puedo hacerlo. En la última línea, la división celular no es buena:
Podrías ayudarme
\documentclass[czech,12pt,oneside,openright,titlepage]{book}
\usepackage[hidelinks]{hyperref} %odkazy
\usepackage{lmodern}
\usepackage[czech]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc} %cestina
%\usepackage{indentfirst} % odsazení prvního odstavce
\usepackage{parskip} % nastavení odsazení odstavců
\usepackage{multirow}
\usepackage[table,xcdraw]{xcolor} %tabulky
\usepackage{tabularx} %tabulky na celou stránku
\newcolumntype{C}{>{\centering}X} % Centrování sloupce
\usepackage{graphicx}
\usepackage{epstopdf} % Grafgika eps
\usepackage{float}
\usepackage{pdfpages} % PDF vkládaní
\usepackage{amsmath,amsfonts,amssymb} %matematika
%\input{mathdef.sty}
\usepackage{caption}
\usepackage{subcaption}
\usepackage[font=small,labelfont=bf,format=hang]{caption}
\usepackage[a4paper, top=2.5cm, left=2cm, right=2cm, bottom=2.5cm]{geometry} % Nastavení okrajů
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\lhead {Příručka pro pracovníky dispečerského řízení}
\rhead { \qquad 2019}
\cfoot {\thepage}
\renewcommand{\headrulewidth}{0.4pt} %zahlavi
%\linespread{1.5}
\setlength{\parindent}{0em}% odsazení odstavce
\setlength{\parskip}{0.5em}% mezera mezi odstavci
\usepackage{titlesec}
\titlespacing{\chapter}{0pt}{-15pt}{10pt}
\titleformat{\chapter}[hang]{\normalfont\LARGE\bfseries}{\thechapter . \ \thispagestyle{fancy}}{0pt}{} %nastavení kapitol
\newcommand{\nadpis}[1]{\large\textbf{#1} \normalsize \medskip \\ }
\renewcommand{\figurename}{Obr.}
\renewcommand{\tablename}{Tab.} %prejmenovani
\begin{document}
\begin{table}[H]
\catcode`\-=12
\centering
\begin{tabularx}{\textwidth}{|c|c|C|C|C|C|C|c|}
\hline
Nízké napětí & jmenovité & \multicolumn{4}{c|}{0,4 / 0,23} & 0,50 & 0,69 \\ \cline{2-8}
(nn) (kV) & max. provozovací & \multicolumn{4}{c|}{0,42 / 0,241} & --- & 0,73 \\ \hline
Vysoké napětí & jmenovité & 3 & 6 & \multicolumn{2}{c|}{10} & 22 & 35 \\ \cline{2-8}
(vn) (kV) & max. provozovací & 3,6 & 7,2 & \multicolumn{2}{c|}{12} & 25 & 37 \\ \hline
Velmi vysoké napětí & jmenovité & \multicolumn{2}{c|}{110} & \multicolumn{2}{c|}{220} & --- & --- \\ \cline{2-8}
(vvn) (kV) & max. provozovací & \multicolumn{2}{c|}{123} & \multicolumn{2}{c|}{245} & --- & --- \\ \hline
Zvláště vysoké napětí & jmenovité & \multicolumn{3}{c|}{400} & \multicolumn{3}{c|}{750} \\ \cline{2-8}
(zvn) (kV) & max. provozovací & \multicolumn{3}{c|}{420} & \multicolumn{3}{c|}{800} \\ \hline
\end{tabularx}
\end{table}
\end{document}
Respuestas
He aquí una sugerencia:
\documentclass[czech,12pt,oneside,openright,titlepage]{book}
\usepackage{lmodern}
\usepackage[czech]{babel}
\usepackage[T1]{fontenc}
\usepackage{multirow}
\usepackage[table,xcdraw]{xcolor}
\usepackage{graphicx}
\usepackage{amsmath,amsfonts,amssymb}
\usepackage[a4paper, top=2.5cm, left=2cm, right=2cm, bottom=2.5cm]{geometry} % Nastavení okrajů
\begin{document}
\begin{table}
\catcode`\-=12
\centering
\begin{tabular}{|c|c|c|*{5}{wc{1cm}|}}
\hline
Nízké napětí & jmenovité & \multicolumn{3}{c|}{0,4 / 0,23} & 0,50 & 0,69 \\ \cline{2-7}
(nn) (kV) & max. provozovací & \multicolumn{3}{c|}{0,42 / 0,241} & --- & 0,73 \\ \hline
Vysoké napětí & jmenovité & 3 & 6 & 10 & 22 & 35 \\ \cline{2-7}
(vn) (kV) & max. provozovací & 3,6 & 7,2 & 12 & 25 & 37 \\ \hline
Velmi vysoké napětí & jmenovité & \multicolumn{2}{c|}{110} & 220 & --- & --- \\ \cline{2-7}
(vvn) (kV) & max. provozovací & \multicolumn{2}{c|}{123} & 245 & --- & --- \\ \hline
Zvláště vysoké napětí & jmenovité &\multicolumn{5}{c|}{400\hspace{1.5cm}\vline\hspace{1.5cm}750} \\ \cline{2-7}
(zvn) (kV) & max. provozovací &\multicolumn{5}{c|}{420\hspace{1.5cm}\vline\hspace{1.5cm}800} \\ \hline
\end{tabular}
\end{table}
\end{document}
He editado esta respuesta porque, desde la versión 5.5 (2020-10-20), ya no se debe escribir \omit\CodeAfteraquí (ahora, \CodeAfterfunciona en todas las circunstancias).
En el siguiente programa, he utilizado {NiceTabular}de nicematrix. Este entorno (similar a {tabular}) crea nodos PGF / Tikz debajo de las celdas, filas y columnas de la matriz.
Es posible usar estos nodos para dibujar cualquier regla que queramos.
Dibujé la regla problemática con Tikz (exactamente en el medio de la columna que contiene 10, 12, 220 y 245) y coloqué los cuatro últimos números exactamente en el medio de las celdas creadas por la regla anterior.
El posicionamiento no necesita ajuste manual (por ejemplo, he cambiado 750 en 750000).
\documentclass[czech,12pt,oneside,openright,titlepage]{book}
\usepackage{lmodern}
\usepackage[czech]{babel}
\usepackage[T1]{fontenc}
\usepackage{xcolor}
\usepackage{graphicx}
\usepackage{amsmath,amsfonts,amssymb}
\usepackage{nicematrix}
\usepackage{tikz}
\usepackage[a4paper, top=2.5cm, left=2cm, right=2cm, bottom=2.5cm]{geometry}
\usetikzlibrary{calc}
\begin{document}
\begin{table}
\catcode`\-=12
\centering
\begin{NiceTabular}{|c|c|c|c|c|c|c|}
\hline
Nízké napětí & jmenovité & \multicolumn{3}{c}{0,4 / 0,23} & 0,50 & 0,69 \\ \cline{2-7}
(nn) (kV) & max. provozovací & \multicolumn{3}{c}{0,42 / 0,241} & --- & 0,73 \\ \hline
Vysoké napětí & jmenovité & 3 & 6 & 10 & 22 & 35 \\ \cline{2-7}
(vn) (kV) & max. provozovací & 3,6 & 7,2 & 12 & 25 & 37 \\ \hline
Velmi vysoké napětí & jmenovité & \multicolumn{2}{c}{110} & 220 & --- & --- \\ \cline{2-7}
(vvn) (kV) & max. provozovací & \multicolumn{2}{c}{123} & 245 & --- & --- \\ \hline
Zvláště vysoké napětí & jmenovité & \multicolumn{5}{c}{} \\ \cline{2-7}
(zvn) (kV) & max. provozovací & \multicolumn{5}{c}{} \\ \hline
\CodeAfter
\begin{tikzpicture}
\coordinate (A) at ($(row-7-|col-5)!0.5!(row-7-|col-6)$) ;
\draw (A) -- (row-9-|A) ;
\coordinate (B) at ($(row-7-|col-3)!0.5!(A)$) ;
\coordinate (C) at ($(A)!0.5!(row-7-|col-8)$) ;
\draw (row-7-base-|B) node [anchor=base] {$400$} ;
\draw (row-7-base-|C) node [anchor=base] {$750000$} ;
\draw (row-8-base-|B) node [anchor=base] {$420$} ;
\draw (row-8-base-|C) node [anchor=base] {$800$} ;
\end{tikzpicture}
\end{NiceTabular}
\end{table}
\end{document}
Necesita varias compilaciones .
La propuesta del OP no funciona como se esperaba porque, con su uso \multicolumn, hay columnas en las que todas las celdas están implícitas \multicolumn. Estas columnas tienen un ancho natural igual a 0 pt (y la Xcolumna de tabularxno tiene ningún efecto en estas columnas). En ese caso, el resultado dado por el \multicolumnpuede ser a menudo sorprendente.
Es posible dar un ancho natural a estas columnas (en las que están involucradas todas las celdas \multicolumn) agregando una fila ficticia al tabular:
\omit & \omit & \omit & \omit &\omit\hspace*{6mm}&\omit\hspace*{6mm}\\
Eso es lo único que he modificado en el código del OP.
\documentclass[czech,12pt,oneside,openright,titlepage]{book}
\usepackage[hidelinks]{hyperref} %odkazy
\usepackage{lmodern}
\usepackage[czech]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc} %cestina
%\usepackage{indentfirst} % odsazení prvního odstavce
\usepackage{parskip} % nastavení odsazení odstavců
\usepackage{multirow}
\usepackage[table,xcdraw]{xcolor} %tabulky
\usepackage{tabularx} %tabulky na celou stránku
\newcolumntype{C}{>{\centering}X} % Centrování sloupce
\usepackage{graphicx}
\usepackage{epstopdf} % Grafgika eps
\usepackage{float}
\usepackage{pdfpages} % PDF vkládaní
\usepackage{amsmath,amsfonts,amssymb} %matematika
%\input{mathdef.sty}
\usepackage{caption}
\usepackage{subcaption}
\usepackage[font=small,labelfont=bf,format=hang]{caption}
\usepackage[a4paper, top=2.5cm, left=2cm, right=2cm, bottom=2.5cm]{geometry} % Nastavení okrajů
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\lhead {Příručka pro pracovníky dispečerského řízení}
\rhead { \qquad 2019}
\cfoot {\thepage}
\renewcommand{\headrulewidth}{0.4pt} %zahlavi
%\linespread{1.5}
\setlength{\parindent}{0em}% odsazení odstavce
\setlength{\parskip}{0.5em}% mezera mezi odstavci
\usepackage{titlesec}
\titlespacing{\chapter}{0pt}{-15pt}{10pt}
\titleformat{\chapter}[hang]{\normalfont\LARGE\bfseries}{\thechapter . \ \thispagestyle{fancy}}{0pt}{} %nastavení kapitol
\newcommand{\nadpis}[1]{\large\textbf{#1} \normalsize \medskip \\ }
\renewcommand{\figurename}{Obr.}
\renewcommand{\tablename}{Tab.} %prejmenovani
\begin{document}
\begin{table}[H]
\catcode`\-=12
\centering
\begin{tabularx}{\textwidth}{|c|c|C|C|C|C|C|c|}
\omit & \omit & \omit & \omit &\omit\hspace*{6mm}&\omit\hspace*{6mm}\\
\hline
Nízké napětí & jmenovité & \multicolumn{4}{c|}{0,4 / 0,23} & 0,50 & 0,69 \\ \cline{2-8}
(nn) (kV) & max. provozovací & \multicolumn{4}{c|}{0,42 / 0,241} & --- & 0,73 \\ \hline
Vysoké napětí & jmenovité & 3 & 6 & \multicolumn{2}{c|}{10} & 22 & 35 \\ \cline{2-8}
(vn) (kV) & max. provozovací & 3,6 & 7,2 & \multicolumn{2}{c|}{12} & 25 & 37 \\ \hline
Velmi vysoké napětí & jmenovité & \multicolumn{2}{c|}{110} & \multicolumn{2}{c|}{220} & --- & --- \\ \cline{2-8}
(vvn) (kV) & max. provozovací & \multicolumn{2}{c|}{123} & \multicolumn{2}{c|}{245} & --- & --- \\ \hline
Zvláště vysoké napětí & jmenovité & \multicolumn{3}{c|}{400} & \multicolumn{3}{c|}{750} \\ \cline{2-8}
(zvn) (kV) & max. provozovací & \multicolumn{3}{c|}{420} & \multicolumn{3}{c|}{800} \\
\hline
\end{tabularx}
\end{table}
\end{document}