我想要一种方法来确保单元格中的条目居中(垂直和水平),同时在条目和边框之间留出一些空间。
我尝试创建一个表格,但我不喜欢表格中某些符号的显示位置。例如,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}