![将表格的顶行与列表中的项目标签对齐](https://linux22.com/image/363670/%E5%B0%86%E8%A1%A8%E6%A0%BC%E7%9A%84%E9%A1%B6%E8%A1%8C%E4%B8%8E%E5%88%97%E8%A1%A8%E4%B8%AD%E7%9A%84%E9%A1%B9%E7%9B%AE%E6%A0%87%E7%AD%BE%E5%AF%B9%E9%BD%90.png)
我使用枚举环境创建了一个列表,其中每个项目都包含一个使用表格环境创建的表格。每个表格的第一行应与项目标签 (a)、(b) 等对齐。如果表格以 \hline 开头,则情况并非如此。在这种情况下,我该如何修复对齐问题?
\documentclass{article}
\usepackage{enumerate}
\begin{document}
\begin{enumerate}[(a)]
\item
\begin{tabular}[t]{|c|c|}
a & b \\ \hline c & d \\ \hline
\end{tabular}
\item
\begin{tabular}[t]{|c|c|}
\hline e & f \\ \hline g & h \\ \hline
\end{tabular}
\end{enumerate}
\end{document}
答案1
我只需要解决这个问题,而“The LaTeX Companion”(第二版)在第 280 页有答案。该[t]
选项将表格与\hline
文本的基线对齐,而不是与文本的基线对齐。该array
软件包有命令\firsthline
可以纠正这个问题:
\documentclass{article}
\usepackage{enumerate,array}
\begin{document}
\begin{enumerate}[(a)]
\item
\begin{tabular}[t]{|c|c|}
a & b \\ \hline c & d \\ \hline
\end{tabular}
\item
\begin{tabular}[t]{|c|c|}
\firsthline e & f \\ \hline g & h \\ \hline
\end{tabular}
\end{enumerate}
\end{document}
结果如下:
答案2
使用{NiceTabular}
,nicematrix
您将直接获得预期的输出。
\documentclass{article}
\usepackage{nicematrix}
\usepackage{enumerate}
\begin{document}
\begin{enumerate}[(a)]
\item
\begin{NiceTabular}[t]{|c|c|}
a & b \\ \hline c & d \\ \hline
\end{NiceTabular}
\item
\begin{NiceTabular}[t]{|c|c|}
\hline e & f \\ \hline g & h \\ \hline
\end{NiceTabular}
\end{enumerate}
\end{document}
您需要多次编译(因为nicematrix
在后台使用 PGF/Tikz 节点)。
答案3
我不知道您的问题的原因是什么,但是解决方法是使用\fbox
顶部/底部(以及垂直外线)表格\hline
:
\documentclass{article}
\usepackage{enumerate}
\newcommand\tabbox[1]{\setlength\fboxsep{0pt}\fbox{#1}} % <-- new
\begin{document}
\begin{enumerate}[(a)]
\item
\begin{tabular}[t]{|c|c|}
a & b \\ \hline c & d \\ \hline
\end{tabular}
\item
\tabbox{\begin{tabular}[t]{c|c} % <-- new
e & f \\ \hline g & h \\
\end{tabular}}
\end{enumerate}
\end{document}