Jak mogę zrobić ten stół

Sep 09 2020

Próbuję zrobić ten stół:

ale nie mogę tego zrobić. W ostatniej linii podział komórek nie jest dobry:

Możesz mi pomóc

\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}

Odpowiedzi

1 F.Pantigny Sep 09 2020 at 20:02

Oto sugestia:

\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}

3 F.Pantigny Sep 10 2020 at 19:41

Mam edytować tę odpowiedź, ponieważ od wersji 5.5 (2020-10-20), trzeba już pisać \omit\CodeAftertutaj (obecnie \CodeAfterdziała we wszystkich circonstancies).


W poniższym programie korzystałem {NiceTabular}z nicematrix. To środowisko (podobnie jak {tabular}) tworzy węzły PGF / Tikz pod komórkami, wierszami i kolumnami tablicy.

Możliwe jest użycie tych węzłów do narysowania dowolnej reguły.

Narysowałem problematyczną regułę za pomocą Tikz (dokładnie w środku kolumny zawierającej 10, 12, 220 i 245) i umieściłem cztery ostatnie liczby dokładnie w środku komórek utworzonych przez poprzednią regułę.

Pozycjonowanie nie wymaga ręcznej regulacji (na przykład zmieniłem 750 w 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}

Potrzebujesz kilku kompilacji .

2 F.Pantigny Sep 10 2020 at 00:36

Propozycja PO nie działa zgodnie z oczekiwaniami, ponieważ przy jej użyciu \multicolumnistnieją kolumny, w których wszystkie komórki są implikowane \multicolumn. Te kolumny mają naturalną szerokość równą 0 pt (a Xkolumna tabularxnie ma wpływu na te kolumny). W takim przypadku wynik podany przez \multicolumnczęsto może być zaskakujący.

Możliwe jest nadanie naturalnej szerokości tym kolumnom (w których uczestniczą wszystkie komórki \multicolumn), dodając fikcyjny wiersz do tabeli:

\omit & \omit & \omit & \omit &\omit\hspace*{6mm}&\omit\hspace*{6mm}\\

To jedyna rzecz, którą zmodyfikowałem w kodzie 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}