为什么 \\ 和 [return] 后面有 gap + 缩进

为什么 \\ 和 [return] 后面有 gap + 缩进

pdftex我在 Mac 上使用 TeXLive ( ) 和 TexShop,通常我不会格式化.tex文件。现在我必须编写一些更大的文件,代码很快就会变得太乱而无法阅读,我试图插入一些换行符/回车符来划分我的代码块。那么为什么我的 TeX 包(或我的 TexShop)会将其变成额外的换行符,并且最重要的是缩进?

例如,考虑这个最小例子:

\documentclass[10pt,a4paper,fleqn]{article}
\begin{document}
\section{Test}
\subsection{Sub1}
A line\\\\

newline
\end{document}

为什么会变成这样:

A Line



___newline

这是 TeX 的某个功能吗?我真的想格式化我的代码,我能在某个地方关闭它吗?

编辑(已解决):

好的,正如 egreg 所说,我现在使用空行来结束一个段落。这样,我的代码就更简洁了。但现在,像这样:

\documentclass[10pt,a4paper,fleqn]{article}
\usepackage{amsthm}
\theoremstyle{definition}
\newtheorem{defi}{Definition}[section]
\begin{document}
\begin{defi}
....
\end{defi}

\begin{defi}
....
\end{defi}
\end{document}

(仅作为示例)编译后,这两个定理(在视觉上)非常接近(行距小于 itemize 的两个 \items 之间的行距,尽管我在那里插入了一个空行),我认为这看起来不太好。为什么会这样?基本上,我在问何时使用 \\、\\\\ 和空行,现在你们都打破了我的信念 ;D

编辑 2:我自己解决了,刚刚删除了 \usepackage{parskip},现在看起来真的很棒。谢谢大家!

答案1

如果您希望跳过段落而不是缩进,请设置:

\setlength\parindent{0pt}
\setlength\parskip{\medskipamount}

答案2

您不应该使用\\来结束段落,而应该使用空行。这也会完善您的 LaTeX 代码。

段落前面的缩进是正确的。如果你真的需要“留一个空行”,然后写类似

... here the end of a paragraph.

\medskip

Here a new paragraph starts ...

然而“空行”很少是必要的。

答案3

您已经有了一些很好的答案,但让我尝试解释一下发生了什么:

1) TeX 使用空行(更准确地说,是空行块)作为段落分隔符。因此,

...blah blah blah.

Blah blah blah...

将在 之后结束第一个段落blah.并以 开始一个新段落Blah。在 TeX 中,每个段落的第一行默认缩进。每个分段单元中的第一个段落除外。这就是为什么在您的示例中,紧接着 的段落\subsection没有缩进。

因此上述代码将产生类似如下的结果:

...blah blah blah.
    Blah blah blah...

2) 在 LaTeX 中,双反斜杠\\用于换行。因此\\\\将插入两个新行。

因此 TeX 正在执行您要求的操作:插入两个新行并结束段落,然后以缩进开始新段落。正如其他人指出的那样,这实际上不是 LaTeX 应该使用的方式。LaTeX 应该主要是逻辑标记。要在段落后插入可配置的垂直空格,我建议使用命令\vspace。如果您想要一个没有缩进的段落,您可以以 开始\noindent。Herbert 已经解释了如何让 LaTeX 从所有段落中删除缩进,并将其替换为垂直空格。

相关内容