部分之前的表格对齐方式与部分之后的表格对齐方式不同?

部分之前的表格对齐方式与部分之后的表格对齐方式不同?

我有以下代码:

\documentclass[11pt,a4paper]{article}
\begin{document}
\begin{tabular}{p{1cm}l}
1 & 1 \\
1 & 1 
\end{tabular}
\section{Section}
\begin{tabular}{p{1cm}l}
1 & 1 \\
1 & 1 
\end{tabular}
\end{document}

由于某些我不明白的原因,第一个表比第二个表更靠右。这是一张图片:

在此处输入图片描述

我希望两个表格都从相同的水平位置开始。不知何故,错位是由命令引起的,\section因为如果我用一些普通文本替换它,表格就会正确对齐:

\documentclass[11pt,a4paper]{article}
\begin{document}
\begin{tabular}{p{1cm}l}
1 & 1 \\
1 & 1 
\end{tabular}

Some text.

\begin{tabular}{p{1cm}l}
1 & 1 \\
1 & 1 
\end{tabular}
\end{document}

此代码生成两个从同一水平位置开始的表:

在此处输入图片描述

我希望第一张图中的表格像第二张图那样对齐,但它们之间有一个部分。

是什么原因导致了这个问题\section?我该如何解决它?

编辑:\mbox按照 Peter Wilson 的建议添加似乎可以解决对齐问题,但垂直距离太大:

\documentclass[11pt,a4paper]{article}
\begin{document}
\begin{tabular}{p{1cm}l}
1 & 1 \\
1 & 1 
\end{tabular}
\section{Section}
\mbox{}

\begin{tabular}{p{1cm}l}
1 & 1 \\
1 & 1 
\end{tabular}

\section{Section}
\begin{tabular}{p{1cm}l}
1 & 1 \\
1 & 1 
\end{tabular}
\end{document}

在此处输入图片描述

我希望表格和部分之间的距离与没有 mbox 的情况相同。

答案1

对于这个结果

a4

使用此代码。\noindent将表格放在左边距。(对于第一个之后的部分,这可能是必要的,取决于部分设置。英语语言的默认设置是之后的第一个段落没有缩进\section)。

\documentclass[11pt,a4paper]{article}   

\begin{document}
\noindent   \begin{tabular}{p{1cm}l} % indented normal paragraph        
    1 & 1 \\
    1 & 1 
\end{tabular}

\section{Section}
\begin{tabular}{p{1cm}l} %  first paragraph after section (default:no indented)
    1 & 1 \\
    1 & 1 
\end{tabular}   

\noindent\begin{tabular}{p{1cm}l} % indented second paragraph after section
    1 & 1 \\
    1 & 1 
\end{tabular}
\end{document}

观察到的错位是由于三个原因共同造成的:缩进规则、文档语言和 parindent 值。

缩进用于从物理上区分一个段落与另一个段落。

专业印刷的英文材料和默认的 LaTeX 不会缩进章节的第一段。后续段落的缩进大小由参数决定\parindent

但是,APA 格式会缩进第一行每段,无论使用哪种语言。(尝试\documentclass[11pt,a4paper]{apa}

同样,在法语或西班牙语文档中, \usepackage[spanish]{babel}\usepackage[french]{babel}将设置适当的缩进(以及其它内容)。

在这种情况下(LaTeX 对英文文档的默认设置),MWE 中的第一个表格是缩进的,而第二个表格(在某一节之后开始第一个段落)则不是。

在段落之间创建视觉分隔的另一种方法是在段落之间添加额外的空间(通常是一整行空间),而不是缩进。

它最常用于信件。这种用法\setlength{\parindent}{0pt}将禁用缩进并在段落之间\setlength{\parskip}{12pt}添加12pt垂直空间。

最后,\noindent在段落开头添加“finally”将会抑制其缩进,但强制缩进会稍微困难一些。

要缩进您需要使用的节后的第一段\indent\indent(参见 David Carlisle 的回答)或定义一个新命令,如下所示https://tex.stackexchange.com/a/102523/161015

答案2

\section{...}
\mbox{}

\begin{tabular}{...}
...
\end{tabular}

本身\mbox{}占据一个段落,因此后面的tabuluar环境排版在新段落中,留下很大的垂直间距。

您可以\@afterindentfalse在分段标题后立即设置以手动允许缩进一次。

\documentclass[11pt,a4paper]{article}
\makeatletter
\newcommand\allowindent{\@afterindenttrue}
\makeatother

\newcommand\tabularDemo{%
  \begin{tabular}{p{1cm}l}
  1 & 1 \\
  1 & 1 
  \end{tabular}
}

\begin{document}
\tabularDemo

\section{Section}
\tabularDemo without \verb|\allowindent|

\section{Section}
\allowindent\tabularDemo with \verb|\allowindent|

\section{Section}
\end{document}

在此处输入图片描述

答案3

tabular由定位字母的相同代码来定位,因此您会看到标准行为,即某一部分的第一段没有缩进。

如果要在所有情况下缩进第一段,可以使用indentfirst

通常,tabular如果不包含在浮动中,则table放置在显示环境中,centerflushleft两者都将控制缩进。

如果你希望普通段落在某个部分后不缩进,但希望这个段落缩进,那么你可以使用

\section{Section}
\indent\indent\begin{tabular}{p{1cm}l}

但我真的不推荐这么做。

相关内容