Flushleft删除段落之间的空格

Flushleft删除段落之间的空格

我想在 ShareLaTex 中使用\begin{flushleft}\end{flushleft}作为开始和结束来将段落左对齐。但是,我注意到使用这些命令时,它们会删除段落之间的空白。我通常输入\\两次以在段落之间创建空白,一次在第一段的末尾,第二次在第一段和第二段之间。

以下是我使用的环境。请告诉我哪里出了问题,谢谢您的时间。


\documentclass[12pt]{article} 
\usepackage[margin=1in]{geometry} 
\usepackage{amsmath} 
\usepackage{amssymb} 
\usepackage{MnSymbol} 
\usepackage{changepage} 
\newenvironment{indent1}{\begin{adjustwidth}{.5cm}{}}{\end{adjustwidth}}
\newenvironment{indent2}{\begin{adjustwidth}{1cm}{}}{\end{adjustwidth}} 

\begin{document} 
\begin{noindent} 

\end{noindent}
\end{document} 

答案1

\\当然\\\\不要创建段落分隔符,第一个强制换行,第二个永远不要使用。要创建段落分隔符,只需在源中使用空白行即可。

你没有说出noindent环境的意图但是这很奇怪,依赖于 latex 环境调用底层命令形式的事实。

\begin{noindent}

\end{noindent}

是相同的

{\noindent

}

所以它开始一个没有缩进但没有可见文本的段落?

\begin{noindent}

aaaa

\end{noindent}

将会有一个空白行,其中有一个由 构成的虚假段落,\noindent没有任何文字,然后是一个段落,然后是一个新的缩进段落aaaa

答案2

为了总结这篇文章的所有内容,我以 CW 的身份发布了一个答案。

首先\\不是创建段落分隔符。它只是强制换行。你可能会问,这有什么区别。嗯,这取决于 TeX 的内部参数,但新段落将缩进,并且可能在它前面有一个空格。缩进受 控制\parindent,因此,例如,\parindent 20pt使段落缩进 20pt。是印刷术中常用的长度度量单位。要知道在文档中的特定位置设置了多长的缩进,只需输入\the\parindent。这可能会返回多个数字。在这种情况下,您将得到类似 的形式。这是允许拉伸和缩短xxx pt plus yyy pt minus zzz pt的长度。这可能对调整段落的第一行有用。例如,假设您的第一行很短。如果它很短,为了使其对齐,您将不得不留出很大的空格。拉伸缩进会使空格变小。另一方面,缩短缩进可能会允许进一步分行,并在第一行获得更多文本。TeX 非常擅长计算换行的最佳方式。但不幸的是,它也不是万无一失的:)。有时它会做出一些非常奇怪的换行,并导致相应的。段落之间的间距由 控制,可以用相同的方式设置,您也可以用相同的方式查看其值。拉伸和收缩可能很方便,可以避免在页面底部出现一行,拉伸段落分隔符可能会将行发送到下一页,或者通过收缩来避免在下一页留下一行。设置这两个参数的另一种方法是,它相当于。当然,您可以指定拉伸和收缩,如。xxx ptyyy ptzzz ptOverfull \hbox\parskip\parskip\setlength{\parindent}{20pt}\parindent 20pt\parindent 15pt plus 1 pt minus 3pt

TeX 接受各种测量单位。您应该在其他地方搜索列表。

要创建新段落,您必须说\par,或者您可以留下一个空行。现在我想对此进行一些扩展。当您按下回车键时,会插入一个不可见的字符,称为 END OF LINE。在屏幕上,您将看到行的变化。当 TeX 看到 END OF LINE 时,它会将其变成一个空格,这就是为什么源代码中的行变化通常会被忽略,但如果紧接着有另一个 END OF LINE,它们都会变成\par。因此留下一个空行 = 两个 END OF LINE 字符 = \par= 段落中断。

环境noindent只是\noindent在其开头添加了一个。它可能以类似于的方式定义\newenvironment{noindent}{\noindent}{}。该命令\noindent只是抑制了\parindent放置在其开头的段落的。如果您不想在特定段落中缩进,这会很有用。请注意,\clearpage也会在新页面上缩进文本,因此\noindent在这种情况下也会派上用场。

命令\\,正如我之前所说,只是强制换行。因此,两个\\s 将换行两次,导致两个文本块之间出现一个空行。\\接受一个可选参数,即长度(例如20pt),放在命令(例如)后的方括号中\\[20pt],指定在放置下一行文本之前在该命令后留下的垂直空白长度。它的工作方式\\与表格或矩阵完全相同,但不是必然的,因为它是相同的命令。

您可能知道,环境flushleft将段落左对齐。flushright是其右对齐类似物。center是居中环境。我个人不建议使用前两个,因为文本由 TeX 自动对齐,而对齐的文本在我看来看起来很多比左对齐或右对齐文本更好。但是,德古斯蒂布斯。居中文本会突出显示它,因此对于划分文本的小标题可能很有用。\section并且\subsection可能用于相同目的,甚至\subsubsection

因此,似乎被删除的空格是由于空白行造成的。要用 恢复它flushleft,您可以使用\\\\inside flushleft(这是不行的),或者您可以\vspace{…}在段落末尾的 ... 位置使用长度,或者您可以使用\\[…]如上所述的方法。如果我是你,我会选择设置\parskip为,比如说,1em或 so,然后使用\parinside flushleft。我想这样就可以了。或者您可以使用\\[…],但这样就没有缩进。

旁注。首先,您在评论中提到\textbf。此命令仅影响其参数,即放置在其后的括号对中的内容。正如 David 所述,zzz \textbf{hello} zzz产生“zzz你好zzz”。这当然与任何居中无关。我想知道你是如何将居中与\textbf……联系起来的。

您发布的代码似乎与问题完全脱节,而且肯定不是一个最小的例子。当你发布一个问题时,如果可能的话,建议发布一个MWE,即最小工作示例。“工作”并不意味着代码可以工作。它意味着它显示了你的问题,并且可以由其他用户执行,作为解决问题的基础。你的代码既没有显示你的问题,也不是最精简的,因为你在开始时加载了许多不必要的包和两个环境定义。

为了使您的评论和问题更易于阅读,您应该使用反引号 ``` 突出显示代码。例如,在两个引号之间写入 \textbf 会产生\textbf。这样做,您将代码标记为代码,这有助于阅读您发布的内容。用星号或下划线括住文本使其斜体. 双星使它大胆的。(_italic_*italic***bold**, 以便让我自己清楚)。我没有 Markdown 教程的链接,但其他用户肯定有,我邀请他们将其添加到此答案中以方便您使用。我不会进一步探讨 Markdown,这是 SX 使用的格式化语法。

我还想说什么?哦,好吧,我忘了 :)。让我给你指出一些学习 LaTeX 的参考资料。是一个很好的简短介绍,一个好的开始。好吧,也许没那么短。是另一个很好的参考,尽管很长。这里是另一个开始使用 LaTeX 的好地方。这里有一些关于 TeX 中的数学的内容。可以被认为是关于 TeX 的“手册”,TeX 是 LaTeX 的基础程序。LaTeX 本身“只是”一系列建立在 TeX 之上的命令,就像编程语言的库一样。包是更多宏集。

希望您喜欢使用 LaTeX 并从这个答案中受益。祝您有美好的一天 :)。

相关内容