
Я пытаюсь создать таблицу с несколькими строками в ячейке.
\documentclass{article}
\usepackage{array}
\usepackage{mdframed}
\usepackage{multirow}
\usepackage{xcolor} % Required for specifying colors by name
\definecolor{ocre}{RGB}{243,102,25}
\newmdenv[%
linecolor=ocre,
backgroundcolor=ocre!10,
linewidth=1pt]{mytablebox}
\begin{document}
%\begin{mytablebox}
\begin{table}
\centering
\caption{Crane shop activities.}
\label{table:crane_shop_activities}
\begin{tabular}{|m{2cm}| m{5cm}| m{5cm}|}
\hline\\
\textbf{Category} & \textbf{Types} & \textbf{Activities}\\
\hline\\
\multirow{3}{*}{Tower Car} & Mark II, III, IV & \multirow{3}{5cm}{Earlier Manufacturing, currently only POH}\\
& DHTC (Diesel Hydraulic Tower Car) & \\
& 8 Wheeler &\\
\hline\\
\multirow{2}{*}{20T Crane} & Mechanical & \multirow{2}{5cm}{Both Manufacturing and POH}\\
& Hydraulic (retrofitting of mechanical superstructure with hydraulic one) & \\
\hline\\
\multirow{2}{*}{140T Crane} & Old Design Crane & POH, MLR, SP MLR\\
& New Design Crane & Manufacturing, POH, MLR, SP MLR\\
\hline
\end{tabular}
\end{table}
%\end{mytablebox}
\end{document}
Я получаю это на выходе.
Обратите внимание, что вертикальные линии не соединяются с горизонтальной линией. Как это исправить?
Я также хочу поместить эту таблицу в mytablebox, но когда я раскомментирую \begin{mytablebox}, появляется ошибка «Не в режиме внешнего паритета. \centering». Как мне это сделать?
решение1
Удалите перенос строки \\
после \hline
(как сказал TeXnician) и переместите свою среду внутрь table
среды.
\documentclass{article}
\usepackage{array}
\usepackage{mdframed}
\usepackage{multirow}
\usepackage{xcolor} % Required for specifying colors by name
\definecolor{ocre}{RGB}{243,102,25}
\newmdenv[%
linecolor=ocre,
backgroundcolor=ocre!10,
linewidth=1pt]{mytablebox}
\begin{document}
\begin{table}
\centering
\caption{Crane shop activities.}
\label{table:crane_shop_activities}
\begin{mytablebox}
\begin{tabular}{|m{15mm}| m{40mm}| m{45mm}|}
\hline
\textbf{Category} & \textbf{Types} & \textbf{Activities}\\
\hline
\multirow{3}{*}{Tower Car} & Mark II, III, IV & \multirow{3}{5cm}{Earlier Manufacturing, currently only POH}\\
& DHTC (Diesel Hydraulic Tower Car) & \\
& 8 Wheeler &\\
\hline
\multirow{2}{*}{20T Crane} & Mechanical & \multirow{2}{5cm}{Both Manufacturing and POH}\\
& Hydraulic (retrofitting of mechanical superstructure with hydraulic one) & \\
\hline
\multirow{2}{*}{140T Crane} & Old Design Crane & POH, MLR, SP MLR\\
& New Design Crane & Manufacturing, POH, MLR, SP MLR\\
\hline
\end{tabular}
\end{mytablebox}
\end{table}
\end{document}
решение2
Пробел между строкой и текстом образуется из-за лишнего переноса строки.
И вы не можете использовать плавающую среду в mdframed box. Просто удалите ее и используйте \captionof
вместо нее.
Затем вы заметите, что ваша таблица слишком широка для вашего поля (шире ширины текста).
Вы можете легко избавиться от этого, выбрав \textwidth
более широкий или скорректировав свои колонки. С m{4cm}
(и с полями страницы, чтобы показать, что он вписывается):
\documentclass{article}
\usepackage{array}
\usepackage{mdframed}
\usepackage{multirow}
\usepackage{xcolor} % Required for specifying colors by name
\usepackage{caption}
\definecolor{ocre}{RGB}{243,102,25}
\newmdenv[%
linecolor=ocre,
backgroundcolor=ocre!10,
linewidth=1pt]{mytablebox}
\begin{document}
\begin{mytablebox}
\centering
\captionof{table}{Crane shop activities.}
\label{table:crane_shop_activities}
\begin{tabular}{|m{2cm}| m{5cm}| m{5cm}|}
\hline
\textbf{Category} & \textbf{Types} & \textbf{Activities}\\
\hline
\multirow{3}{*}{Tower Car} & Mark II, III, IV & \multirow{3}{5cm}{Earlier Manufacturing, currently only POH}\\
& DHTC (Diesel Hydraulic Tower Car) & \\
& 8 Wheeler &\\
\hline
\multirow{2}{*}{20T Crane} & Mechanical & \multirow{2}{5cm}{Both Manufacturing and POH}\\
& Hydraulic (retrofitting of mechanical superstructure with hydraulic one) & \\
\hline
\multirow{2}{*}{140T Crane} & Old Design Crane & POH, MLR, SP MLR\\
& New Design Crane & Manufacturing, POH, MLR, SP MLR\\
\hline
\end{tabular}
\end{mytablebox}
\end{document}