
Estou tentando criar uma tabela com várias linhas em uma célula.
\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}
Estou recebendo isso como saída.
Observe que as linhas verticais não se conectam à linha horizontal. Como corrigir isso?
Eu também quero fazer esta tabela dentro de mytablebox, mas quando eu descomente \begin{mytablebox} ele mostra o erro "Não está no modo de par externo. \centering". Como posso fazer isso funcionar?
Responder1
Remova a quebra de linha \\
depois \hline
(como disse o TeXnician) e mova seu ambiente dentro do table
ambiente.
\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}
Responder2
Seu espaço entre a linha e o texto é produzido por uma quebra de linha supérflua.
E você não pode usar um ambiente flutuante em uma caixa mdframed. Basta removê-lo e usá-lo \captionof
.
Você notará então que sua tabela é muito larga para sua caixa (mais larga que a largura do texto).
Você pode facilmente se livrar disso escolhendo um \textwidth
que seja mais largo ou corrigindo suas colunas. Com m{4cm}
(e com margens de página para mostrar que cabe):
\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}