如何将表格单元格中的条目居中

如何将表格单元格中的条目居中

我想要一种方法来确保单元格中的条目居中(垂直和水平),同时在条目和边框之间留出一些空间。

我尝试创建一个表格,但我不喜欢表格中某些符号的显示位置。例如,floor 函数符号触及了其上边框。

在第一个表格的代码中,我没有尝试解决单元格内的垂直间距。 在此处输入图片描述 在第二个表的代码中,我尝试编辑垂直间距,但并不理想。 在此处输入图片描述

\documentclass[english]{article}
\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}
\usepackage{geometry}
\geometry{verbose,tmargin=1in,bmargin=1in,lmargin=1in,rmargin=1in}

\makeatletter
\providecommand{\tabularnewline}{\\}

\makeatother

\usepackage{babel}
\begin{document}

\begin{center}
{\tiny{}}%
\begin{tabular}{|c|c|c|c|c|c|c|cc}
\cline{1-1} \cline{3-7} \cline{4-7} \cline{5-7} \cline{6-7} \cline{7-7} \cline{9-9} 
{\tiny{}$\left\lfloor \log_{p}n\right\rfloor $} &  & {\tiny{}$p_{\left\lfloor 
\log_{p}n\right\rfloor ,0}$} & {\tiny{}$p_{\left\lfloor \log_{p}n\right\rfloor ,1}$} & 
{\tiny{}$p_{\left\lfloor \log_{p}n\right\rfloor ,2}$} &  & {\tiny{}$p_{\left\lfloor 
\log_{p}n\right\rfloor ,\left\lfloor \log_{p}n\right\rfloor }$} & \multicolumn{1}{c|}{} 
& \multicolumn{1}{c|}{{\tiny{}$\frac{p-1}{p^{\left\lfloor \log_{p}n\right\rfloor 
+1}}$}}\tabularnewline
\cline{1-1} \cline{3-7} \cline{4-7} \cline{5-7} \cline{6-7} \cline{7-7} \cline{9-9} 
\multicolumn{1}{c}{} & \multicolumn{1}{c}{} & \multicolumn{1}{c}{} & \multicolumn{1}{c} 
{} & \multicolumn{1}{c}{} & \multicolumn{1}{c}{} & \multicolumn{1}{c}{} &  & 
\tabularnewline
\cline{1-1} \cline{3-7} \cline{4-7} \cline{5-7} \cline{6-7} \cline{7-7} 
{\tiny{}Column Sum } &  & {\tiny{}$1-\frac{\left\lfloor \frac{n}{p}\right\rfloor }{n}$} 
& {\tiny{}$\frac{\left\lfloor \frac{n}{p}\right\rfloor -\left\lfloor \frac{n} 
{p^{2}}\right\rfloor }{n}$} & {\tiny{}$\frac{\left\lfloor \frac{n}{p^{2}}\right\rfloor - 
\left\lfloor \frac{n}{p^{3}}\right\rfloor }{n}$} & {\tiny{}$\cdots$} & 
{\tiny{}$\frac{\left\lfloor \frac{n}{p^{\left\lfloor \log_{p}n\right\rfloor 
}}\right\rfloor -\left\lfloor \frac{n}{p^{\left\lfloor \log_{p}n\right\rfloor 
+1}}\right\rfloor }{n}$} &  & \tabularnewline
\cline{1-1} \cline{3-7} \cline{4-7} \cline{5-7} \cline{6-7} \cline{7-7} 
\end{tabular}{\tiny\par}
\par\end{center}

\begin{center}

{\tiny{}}%
\begin{tabular}{|c|c|c|c|c|c|c|cc}
\cline{1-1} \cline{3-7} \cline{4-7} \cline{5-7} \cline{6-7} 
\cline{7-7} \cline{9-9} 
{\tiny{}$\left\lfloor \log_{p}n\right\rfloor $} &  & 
{\tiny{}$p_{\left\lfloor 
\log_{p}n\right\rfloor ,0}$} & {\tiny{}$p_{\left\lfloor 
\log_{p}n\right\rfloor ,1}$} & 
{\tiny{}$p_{\left\lfloor \log_{p}n\right\rfloor ,2}$} & 
$\phantom{\frac{p-1} 
{p^{+1}}_{_{a}}}$ & {\tiny{}$p_{\left\lfloor \log_{p}n\right\rfloor 
,\left\lfloor 
\log_{p}n\right\rfloor _{_{\phantom{a}}}}$} & \multicolumn{1}{c|}{} 
& \multicolumn{1} 
{c|}{{\tiny{}$\frac{p-1}{p^{\left\lfloor \log_{p}n\right\rfloor 
+1}}$}}\tabularnewline
\cline{1-1} \cline{3-7} \cline{4-7} \cline{5-7} \cline{6-7} 
\cline{7-7} \cline{9-9} 
\multicolumn{1}{c}{} & \multicolumn{1}{c}{} & \multicolumn{1}{c}{} 
& \multicolumn{1}{c} 
{} & \multicolumn{1}{c}{} & \multicolumn{1}{c}{} & \multicolumn{1} 
{c}{} &  & 
\tabularnewline
\cline{1-1} \cline{3-7} \cline{4-7} \cline{5-7} \cline{6-7} 
\cline{7-7} 
{\tiny{}Column Sum $\phantom{\Bigg(}$} &  & {\tiny{}$1- 
\frac{\left\lfloor \frac{n} 
{p}\right\rfloor }{n}$} & {\tiny{}$\frac{\left\lfloor \frac{n} 
{p}\right\rfloor - 
\left\lfloor \frac{n}{p^{2}}\right\rfloor }{n}$} & 
{\tiny{}$\frac{\left\lfloor \frac{n} 
{p^{2}}\right\rfloor -\left\lfloor \frac{n}{p^{3}}\right\rfloor } 
{n}$} & 
{\tiny{}$\cdots$} & {\tiny{}$\frac{\left\lfloor \frac{n} 
{p^{\left\lfloor 
\log_{p}n\right\rfloor }}\right\rfloor 
\mbox{\ensuremath{\phantom{\bigg(}}}- 
^{\mbox{\ensuremath{\phantom{\bigg(}}}}\left\lfloor \frac{n} 
{p^{\left\lfloor 
\log_{p}n\right\rfloor +1}}\right\rfloor } 
{n\mbox{\ensuremath{\phantom{\bigg(}}}}$} &  & 
\tabularnewline
\cline{1-1} \cline{3-7} \cline{4-7} \cline{5-7} \cline{6-7} 
\cline{7-7} 
\end{tabular}{\tiny\par}
\par\end{center}

\end{document}

答案1

像这样:

在此处输入图片描述

  • 如您所见,垂直是数学术语的对齐基线。
  • 对于表格使用tblr`tabularray,因为它相对简单,可以水平和垂直居中单元格内容
  • 删除了所有混乱的\tiny
\documentclass[english]{article}
\usepackage{geometry}
\geometry{verbose,tmargin=1in,bmargin=1in,lmargin=1in,rmargin=1in}

\usepackage[T1]{fontenc}
\usepackage{babel}

\usepackage{tabularray}
\UseTblrLibrary{amsmath}

\begin{document}
    \begin{center}
    \small
\begin{tblr}{hline{1-Z}={1,3-7,9}{solid}, vlines,
             colspec = {*{7}{Q[c,m, mode=dmath]}  *{2}{Q[c,mode=dmath]}},
             rowsep  = 5pt
             }
\left\lfloor \log_{p}n\right\rfloor
    &   &   p_{\left\lfloor\log_{p}n\right\rfloor ,0}
            &   p_{\left\lfloor \log_{p}n\right\rfloor ,1}  
                &   p_{\left\lfloor \log_{p}n\right\rfloor ,2}  
                    &   &   p_{\left\lfloor\log_{p}n\right\rfloor ,
                            \left\lfloor \log_{p}n\right\rfloor }
                            &   & \frac{p-1}{p^{\left\lfloor \log_{p}n\right\rfloor +1}}
                                    \\
\text{Column Sum}
    &   &   1-\frac{\left\lfloor \frac{n}{p}\right\rfloor }{n}
            &   \frac{\left\lfloor \frac{n}{p}\right\rfloor -
                        \left\lfloor \frac{n}{p^{2}}\right\rfloor}{n}
                &   \frac{\left\lfloor \frac{n}{p^{2}}\right\rfloor -
                    \left\lfloor \frac{n}{p^{3}}\right\rfloor }{n}
                    &   \cdots
                        &   \frac{\left\lfloor \frac{n}{p^{\left\lfloor
                            \log_{p}n\right\rfloor}}\right\rfloor -
                            \left\lfloor \frac{n}{p^{\left\lfloor \log_{p}n\right\rfloor + 1}}
                            \right\rfloor }{n}
                            &   &   \\
    \end{tblr}
\end{center}
\end{document}

您可以按照相同的方式编辑其他表。

答案2

这里有一个不同的方法来解决由 和 的垂直线的上端接触(和)产生的水平线\lfloor而引起的排版问题:与其插入额外的代码来调整公式的位置(说得客气一点,这是一项繁琐而冗长的工作),不如使用 和 的更好的替代方案?具体来说,这种方法应该为水平线应用更好的间距,这样排版问题就不会出现。\rfloor\cline\hline\hline\cline

书签包提供了更好的替代方案:用\toprule\midrule\bottomrule宏替换\hline,用\cmidrule宏替换\cline。请注意,使用该booktabs包时,不应在表格中使用垂直线。这不是偶然的,而是一种设计选择。请习惯在表格中不使用垂直线——相信我,它们不会被遗漏。

我还想建议您加载数学工具包并使用其\DeclarePairedDelimiter指令创建一个名为的宏\floor。这样,所有的实例\left\lfloor ... \right\rfloor都可以更简洁地写成\floor*{ ... }。在下面的截图中,我\floor在第一行和\floor*第二行中使用。

在此处输入图片描述

所有单元格项都水平居中,因为我们c始终使用列类型。单元格内容已垂直居中,位于基线和数学轴上。如果布局看起来不是垂直对称的,那是因为单元格内容高度不对称。

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[margin=1in]{geometry}
\usepackage[english]{babel}
\usepackage{booktabs}  % for \midrule and \addlinespace macros
\usepackage{mathtools} % for \DeclarePairedDelimiter macro
\DeclarePairedDelimiter{\floor}{\lfloor}{\rfloor}

\begin{document}
\begin{center}
$\begin{array}{@{} *{6}{c} @{}}
\midrule 
%% row 1: use '\floor', i.e., don't autosize the delimiters
\floor{\log_p n}         &  
p_{\floor{\log_p n} , 0} & 
p_{\floor{\log_p n} , 1} & 
p_{\floor{\log_p n} , 2} &  
p_{\floor{\log_p n} , \floor{\log_p n} } &  
\frac{p-1}{p^{\floor{\log_p n} +1}} 
\\
\midrule 
\addlinespace[4mm]
\midrule 
%% Row 2: Use '\floor*', i.e., do apply auto-sizing. 
\text{Column Sum}                 &  
1-\frac{\floor*{\frac{n}{p}} }{n} & 
\frac{\floor*{\frac{n}{p^{\vphantom{2}}}} 
     -\floor*{\frac{n}{p^2}} }{n} & 
\frac{\floor*{\frac{n}{p^2}} 
     -\floor*{\frac{n}{p^3}} }{n} &  
\frac{\floor*{\frac{n}{p^{\floor{\log_p n}   }}}
     -\floor*{\frac{n}{p^{\floor{\log_p n} +1}}} }{n}  
\\
\midrule 
\end{array}$
\end{center}

\end{document}

相关内容