如何将表格(浮动)放置在距离左边距两个空格的位置?

如何将表格(浮动)放置在距离左边距两个空格的位置?

我需要将表格的左边缘对齐,使其与左边距相差两个空格(即,就像缩进段落的首字母一样)。有什么想法吗?

答案1

默认情况下,环境tabular还会在表格的左侧和右侧添加一半的列间空间。因此,您必须删除该空间:

\begin{tabular}{@{}lcr@{}}
<table contents>
\end{tabular}

如果这是在段落的开头(即在空行之后),它将正常缩进。

答案2

有两种情况:

  1. 对于tabular使用的环境外部如果您使用浮动table环境开始一个段落则不需要任何特殊的东西tabular,因为在这种情况下它将被缩进。

  2. 对于tabular使用的环境里面浮动环境,你可以在环境之前table使用:\hspace*tabular

    \documentclass{article}
    \usepackage{booktabs}
    \usepackage{lipsum}% just to generate filler text for the example
    
    \begin{document}
    \lipsum*[2]
    
    \begin{tabular}{@{}ll@{}}
    \toprule
    text & text \\
    text & text \\
    text & text \\
    \bottomrule
    \end{tabular}
    
    \begin{table}[!ht]
    \hspace*{15pt}\begin{tabular}{@{}ll@{}}
    \toprule
    text & text \\
    text & text \\
    text & text \\
    \bottomrule
    \end{tabular}
    \end{table}
    \lipsum*[2]
    
    \end{document}
    

在此处输入图片描述

用作参数的适当值由(默认值:在具有字体大小的标准类中)\hspace*给出。\parindent15.0pt10pt

为了自动化这个过程,你可以修补tabular环境(etoolbox例如,使用包)以包含浮动环境中的水平间距,并使用辅助长度来保持文档的值\parindent

\documentclass{article}
\usepackage{booktabs}
\usepackage{etoolbox}
\usepackage{lipsum}

% We save the value of `\parindent`
\AtBeginDocument{
  \newlength\mylen
  \setlength\mylen{\parindent}
}

\makeatletter   
\AtBeginEnvironment{tabular}{\ifnum\@floatpenalty<0 \hspace*{\mylen}\fi}
\makeatother


\begin{document}
\lipsum*[2]

\begin{tabular}{@{}ll@{}}
\toprule
text & text \\
text & text \\
text & text \\
\bottomrule
\end{tabular}

\begin{table}[!ht]
\begin{tabular}{@{}ll@{}}
\toprule
text & text \\
text & text \\
text & text \\
\bottomrule
\end{tabular}
\end{table}

\lipsum*[2]

\end{document}

相关内容