\documentclass[]{article}
\usepackage{longtable}
\usepackage{array}
\usepackage{booktabs}
\begin{document}
\begin{longtable}{|m{2cm}||m{1cm}|m{1.5cm}|p{3.8cm}|p{1cm}|p{1cm}|p{2cm}|}
\hline Cubesort & n & $ n \log n $ & $ n \log n $ & n & Yes & Insertion \\
\hline Shell sort & $ n $ & $ n \log^2 n $ or $ n^{3/2} $ & Depends on gap sequence; best known is $ n \log^2 n $ & 1 & No & Insertion \\ \hline
\end{longtable}
\end{document}
但是当我像下面一样添加一行时,使用时第三行和最后一列无法居中米:
\documentclass[]{article} \usepackage{longtable} \usepackage{array} \usepackage{booktabs} \begin{document}
\begin{longtable}{|m{2cm}||m{1cm}|m{1.5cm}|p{3.8cm}|p{1cm}|p{1cm}|p{2cm}|}
\hline Cubesort & n & $ n \log n $ & $ n \log n $ & n & Yes & Insertion \\
\hline Shell sort & $ n $ & $ n \log^2 n $ or $ n^{3/2} $ & Depends on gap sequence; best known is $ n \log^2 n $ & 1 & No & Insertion \\
\hline Bogosort & $ n $ & $ n \cdot n! $ & $ \infty $ & 1 & No & Random shuffling \\\hline
\end{longtable}
\结束{文档}
答案1
m
列类型在中间(垂直)对齐,并且您m
在第三列中使用了类型。该特定单元格包含更多内容,这些内容会换行到第二行。因此,垂直中心点对齐。如果您将p
列用作第三列,我们将得到:
\documentclass[]{article}
\usepackage{longtable}
\usepackage{array}
\usepackage{booktabs}
\begin{document}
\begin{longtable}{|m{2cm}||m{1cm}|p{1.5cm}|p{3.8cm}|p{1cm}|p{1cm}|p{2cm}|}
\hline Cubesort & n & $ n \log n $ & $ n \log n $ & n & Yes & Insertion \\
\hline Shell sort & $ n $ & $ n \log² n $ or $ n^{3/2} $ & Depends on gap sequence; best known is $ n \log² n $ & 1 & No & Insertion \\ \hline
\end{longtable}
\end{document}
答案2
m
并不意味着在最终分配给单元格的空间中垂直居中,而是意味着“将内容的参考点放在其垂直中心。c r p l',
b,
它的参考点将位于其底行的基线上。columns (that you do not have here) have their reference point on their baseline.
columns have their reference point on the baseline of their top row, and if you had a
column
然后 TeX 将所有框对齐到参考点,指向下方的绿线。请注意,该线穿过内容的m
条目。
在单行情况下,这一点并不那么明显,因为线并不通过小写字母的中心,n
每个条目都有一个不可见的“支柱”,这样它的位置就不会受到上升部或高大写字母的影响,所以单行条目的参考点基本上就像是在垂直中心,Ayn
非常接近基线,略高于基线,因为支柱的高度大于深度。