我需要将表格的左边缘对齐,使其与左边距相差两个空格(即,就像缩进段落的首字母一样)。有什么想法吗?
答案1
默认情况下,环境tabular
还会在表格的左侧和右侧添加一半的列间空间。因此,您必须删除该空间:
\begin{tabular}{@{}lcr@{}}
<table contents>
\end{tabular}
如果这是在段落的开头(即在空行之后),它将正常缩进。
答案2
有两种情况:
对于
tabular
使用的环境外部如果您使用浮动table
环境开始一个段落则不需要任何特殊的东西tabular
,因为在这种情况下它将被缩进。对于
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*
给出。\parindent
15.0pt
10pt
为了自动化这个过程,你可以修补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}