多个命令指定表格宽度后如何计算实际的表宽

发布于 2022-03-15 18:57:04

同时使用\setlength{\tabcolsep}{8mm}p{3cm}指定宽度,请问表格实际的总宽度是多少?

代码如下:

\documentclass{article}
\usepackage{booktabs}
\usepackage{siunitx}
\usepackage{caption}

\begin{document}
\begin{table}[!htb]\small   
    \setlength{\tabcolsep}{8mm}
    \centering
    \renewcommand\arraystretch{1} 
    \caption{table}
    \begin{tabular}{p{3cm}<{\centering} p{3cm}<{\centering} p{3cm}<{\centering}}
        \toprule[1.5pt]
        parameter & unit & number\\
        \midrule[0.5pt]
        diameter &\unit{\mm} & 100  \\
        diameter &\unit{\mm} & 100  \\
        diameter &\unit{\mm} & 100  \\
        diameter &\unit{\mm} & 100  \\
        diameter &\unit{\mm} & 100  \\
        \bottomrule[1.5pt]
    \end{tabular}
    \label{table}
\end{table}    
\end{document}

查看更多

关注者
0
被浏览
899
雾月
雾月 2022-03-15
这家伙很懒,什么也没写!

设 c_i 为第 i 列的宽度,n 为列数,则
width = sum(i*c_i) + 2n*\tabcolsep
如果还有表格竖线,未加载 array 宏包时,表格竖线的宽度不予考虑。
如果加载了 array 宏包,则还要加上 vln*\arrayrulewidth,其中 vln 为竖线个数。
如果使用了双竖线(||),则还要加上 dvln*\doublerulesep,其中 dvln 为双竖线的个数。

几乎所有表格宏包都加载了 array 宏包,除了 tabularraytblr 表格的宽度不在讨论的范围之内。

\documentclass{article}
\usepackage{booktabs}
\usepackage{siunitx}
\usepackage{caption}

\begin{document}
\begin{table}[!htb]\small   
    \setlength{\tabcolsep}{8mm}
    \centering
    \renewcommand\arraystretch{1} 
    \caption{table}
    \begin{tabular}{p{3cm}<{\centering} p{3cm}<{\centering} p{3cm}<{\centering}}
        \toprule[1.5pt]
        parameter & unit & number\\
        \midrule[0.5pt]
        diameter &\unit{\mm} & 100  \\
        diameter &\unit{\mm} & 100  \\
        diameter &\unit{\mm} & 100  \\
        diameter &\unit{\mm} & 100  \\
        diameter &\unit{\mm} & 100  \\
        \bottomrule[1.5pt]
    \end{tabular}
    \label{table}
\end{table}    

\setbox0=\hbox{%
    \setlength{\tabcolsep}{8mm}%
    \renewcommand\arraystretch{1}%
    \begin{tabular}{p{3cm}<{\centering} p{3cm}<{\centering} p{3cm}<{\centering}}
        \toprule[1.5pt]
        parameter & unit & number\\
        \midrule[0.5pt]
        diameter &\unit{\mm} & 100  \\
        diameter &\unit{\mm} & 100  \\
        diameter &\unit{\mm} & 100  \\
        diameter &\unit{\mm} & 100  \\
        diameter &\unit{\mm} & 100  \\
        \bottomrule[1.5pt]
    \end{tabular}}
    
\noindent{\centering\copy0\par \vrule width \wd0 height 5pt\par}

\the\wd0 ~=
\the\dimexpr3cm+3cm+3cm+8mm+8mm+8mm+8mm+8mm+8mm\relax

\end{document}

image.png

1 个回答

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览