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 从所有段落中删除缩进,并将其替换为垂直空格。