我正在尝试在 tex 中创建一个表,其中每一行由合并单元格的某种组合组成。
但是,我不想在末尾有多余的行,但是当我将其从代码中删除时,对齐不再正确。
我该怎么做才能解决这个问题?这是我正在使用的基本代码。
我对此很陌生,所以任何帮助都将不胜感激。
\documentclass[11pt]{article} % use larger type; default would be 10pt
\usepackage{tabularx} % make it possible to include more than one captioned figure/table in a single float
\begin{document}
\begin{table}[h]
\begin{tabularx}{\linewidth}{|X|X|X|X}
\hline
\multicolumn{4}{|c|} {Hello} \\ \hline
\multicolumn{2}{|c|} {Hello} & \multicolumn{2}{c|}{Bye}\\ \hline
\multicolumn{3}{|c|} {Hello} & \multicolumn{1}{c|}{Bye}\\ \hline
\multicolumn{1}{|c|} {Hello} & \multicolumn{3}{c|}{Bye}\\ \hline
%&&&\\
\end{tabularx}
\end{table}
\end{document}
答案1
您没有有效的X
列。
如果您添加没有的假行,|
您可以将其备份。
\documentclass[11pt]{article} % use larger type; default would be 10pt
\usepackage{tabularx} % make it possible to include more than one captioned figure/table in a single float
\begin{document}
\begin{table}[htp]
\begin{tabularx}{\linewidth}{|X|X|X|X}
\multicolumn{1}{X}{}&
\multicolumn{1}{X}{}&
\multicolumn{1}{X}{}&
\multicolumn{1}{X}{}\\[-\baselineskip]
\hline
\multicolumn{4}{|c|} {Hello} \\ \hline
\multicolumn{2}{|c|} {Hello} & \multicolumn{2}{c|}{Bye}\\ \hline
\multicolumn{3}{|c|} {Hello} & \multicolumn{1}{c|}{Bye}\\ \hline
\multicolumn{1}{|c|} {Hello} & \multicolumn{3}{c|}{Bye}\\ \hline
\end{tabularx}
\end{table}
\end{document}
答案2
您可以使用 来实现这{NiceTabular}
一点nicematrix
。
\documentclass[11pt]{article}
\usepackage{nicematrix}
\begin{document}
\begin{NiceTabular}{X[c]X[c]X[c]X[c]}[hvlines]
\Block{1-4}{Hello} \\
\Block{1-2}{Hello} && \Block{1-2}{Bye} \\
\Block{1-3}{Hello} &&& Bye \\
Hello & \Block{1-3}{Bye}
\end{NiceTabular}
\end{document}
您需要多次编译(因为nicematrix
在后台使用 PGF/Tikz 节点)。