我查阅了许多关于此问题的先前帖子......但无济于事......我需要一个解决方案来在表格列中换行,而又不在第二行的表格边缘出现换行......我的表格只有两行....有办法做到这一点吗?
例如
\begin{table}[H]
\begin{center}
\begin{tabular}{| c | p{3cm} |}
\hline
\textbf{Equation} & \textbf{Description} \\
\hline
eq1\\ eq2 & "some text" \\\hline
\hline
现在,由于 和之间\\
,表格边框在“一些文本”之后出现中断。我需要一种解决方法来避免表格在第二行末尾中断。该方法确实会在同一列内移至新行,这正是我想要的,但不会产生第二行右边框在同一点中断的副作用。换句话说,分成两行应该限制在同一列内,而不会影响行。eq1
eq2
eq1\\\ eq2
eq2
感谢您的想法。
答案1
您可以tabular
在内部使用tabular
\documentclass{article}
\newcommand{\mysplit}[1]{%
\begin{tabular}[t]{@{}c@{}} %% remove [t] if you need vertical centered things.
#1
\end{tabular}
}
\begin{document}
\begin{table}[htb]
\centering
\begin{tabular}{| c | p{3cm} |}
\hline
\textbf{Equation} & \textbf{Description} \\
\hline
\mysplit{eq1\\ eq2} & ``some text'' \\\hline
\hline
\end{tabular}
\end{table}
\end{document}
请注意我已经改变了
“一些文本” 到 ``一些文本''
[H] 至 [htb]
因为它们是推荐的方法。
此外,最好去掉垂直线并使用booktabs
绘图规则。
\documentclass{article}
\usepackage{booktabs}
\newcommand{\mysplit}[1]{%
\begin{tabular}{@{}c@{}} %% removed [t]
#1
\end{tabular}
}
\begin{document}
\begin{table}[htb]
\centering
\begin{tabular}{ c p{3cm} }
\toprule
\textbf{Equation} & \textbf{Description} \\
\midrule
\mysplit{eq1\\ eq2} & ``some text'' \\\bottomrule
\end{tabular}
\end{table}
\end{document}
有关一些教程的详细信息,请参阅booktabs
手册,您可以通过texdoc booktabs
从命令提示符或在 tex 编辑器的 texdoc 帮助菜单中运行来获取该手册。
答案2
您可以使用包最轻松地完成此操作makecell
,该包允许在单元格中使用换行符和常见格式,使用\thead
和\makecell
命令:
\documentclass{article}
\usepackage{makecell, booktabs, mathtools}
\setcellgapes{4pt}
\makegapedcells
\begin{document}
\begin{table}
\centering
\begin{tabular}{c p{3cm}}
\toprule
\textbf{Equation} & \textbf{Description} \\
\midrule
\makecell{ eq1\\ eq2 } & "some text" \\
\bottomrule
\end{tabular}
\end{table}
\end{document}