我想在表格中引入 3 个带标签的方程式。其中一个方程式位于多行内。它应该看起来像这样:
我尝试了以下代码,但出现错误。当删除多行中的公式并改为写入文本 (xxx) 时,错误消失。
您有什么想法吗?我该如何解决?提前谢谢您。
\RequirePackage[patch]{kvoptions}
\documentclass{DissOnlineLatex}
\usepackage{tabulary}
\usepackage{multirow}
\newcolumntype{P}[1]{>{\centering\arraybackslash}p{#1}}
\newcolumntype{M}[1]{>{\centering\arraybackslash}m{#1}}
\begin{document}
\begin{table}[h!]
\caption{example}
\begin{center}
\begin{tabulary}{1.0\textwidth}{|C|C|C|C|C|}
\hline
\textbf{a} & \textbf{b} &\textbf{c} & {\textbf{d}} & {\textbf{e}}\\
\hline
\hline
1 & blabla & aaa & \multirow{2}{*}{x} & \begin{equation} m = \frac{n}{z} \label{eq:bla2} \end{equation} \\
\cline{1-3}\cline{5-5}\\
2 & bloblo & bbb & & \begin{equation} m2 = \frac{n2}{z2} \label{eq:bla3} \end{equation} \\
\hline
\end{tabulary}
\end{center}
\label{table:blabla}
\end{table}
\end{document}
% x --> a = \frac{b}{c} \label{eq:bla1} \end{equation}
答案1
对于您想要获取的tabulary
表环境来说不是一个好的选择...请尝试使用tabularx
:
(红线表示文本边框)
\documentclass{article}
\usepackage{multirow, tabularx}
\newcolumntype{C}{>{\centering\arraybackslash}X}
%---------------- show page layout. don't use in a real document!
\usepackage{showframe}
\renewcommand\ShowFrameLinethickness{0.15pt}
\renewcommand*\ShowFrameColor{\color{red}}
%---------------------------------------------------------------
\begin{document}
\begin{table}[htb]
\caption{example}
\label{table:blabla}
\setlength\abovedisplayskip{0pt}
\setlength\belowdisplayskip{0pt}
\centering
\begin{tabularx}{\textwidth}{|c|c|c|C|C|}
\hline
\textbf{a} & \textbf{b} &\textbf{c} & {\textbf{d}} & {\textbf{e}}\\
\hline
\hline
1 & blabla & aaa &
\multirow{6.5}{=}{\begin{equation}
a = \frac{b}{c} \label{eq:bla2}
\end{equation}}
& \begin{equation}
m = \frac{n}{z} \label{eq:bla2}
\end{equation} \\
\cline{1-3}\cline{5-5}
2 & bloblo & bbb & & \begin{equation}
m2 = \frac{n2}{z2} \label{eq:bla2} \end{equation} \\
\hline
\end{tabularx}
\end{table}
\end{document}
编辑: 或者你也许更喜欢下表的样子:
对上面的图片进行了两处修改:
- 之后
\begin{table}
添加行\renewcommand\tabularxcolumn[1]{m{#1}}
- 中的跨越线数量
multirow
减少了:\multirow{4}{=}{ .... }
笔记:
- 在有问题时总是提供完整但小的文档,以重现您的问题的开头
\documentclasss...
和结尾\end{document}
。这样,您将帮助所有愿意帮助您的人。重建代码中缺失的部分并不好玩,因为您知道它已经存在...... 很多时候问题的根源在于使用的文档包、您定义的命令(如果存在)和类似命令
\\
在 ˙\hline \cline` 后新增or
。它会导致表格中出现虚假的垂直空间- 表格中显示的方程式必须是段落样式单元格(如
p{...}˙ or
Xfrom
tabularx`),其内容应足够容纳方程式。 - 因为
multirow
如果它包含显示的方程式,则应该规定其宽度,或者=
如果列(其中multirow
单元格已定义宽度)则使用选项。