为什么 tex 被设计用来渲染括号周围的空格?

为什么 tex 被设计用来渲染括号周围的空格?

当我写下下面几行时:

\section{Introduction}{
  Content in introduction ...
}

不需要的空间出现Content在警告之前。

我知道这是由于 tex 的一些技术决定。但我想知道这个决定背后的原因。

在 HTML 中,文本标签开头的文字空格不会被渲染。我其实更喜欢这样的行为,因为它让我手工编写的代码更具可读性。

顺便问一下,我可以让 tex 忽略此代码{和之间的空格吗?Content

答案1

命令预计可以定义一个参数来忽略空格(通常使用\ignorespacesand/or \unskip)(例如, 与运行文本中不会忽略空格的事实\footnotetext{ a}相同,这是一个一般特征,因此是使空格出现的常用方法。\footnotetext{a}{}\LaTeX{} is...

HTML 有所不同,因为它固定的为每个元素添加标签集和特殊解析规则。例如,XML 不会丢弃空格。因此,TeX 中的情况与 XHTML 中的情况类似:解析器不会丢弃空格,但特定命令的定义可能会忽略空格标记。

答案2

忽略后面的空格\section{Introduction}是 LaTeX 的标准行为,无论是否使用括号。以下最小示例中,“内容”之前的输出中不会出现空格:

\documentclass{article}
\begin{document}
\section{Introduction}{
  Content in introduction ...
}
\end{document}

这使用了文章文档类,但大多数常见类的行为相同。

因此,问题是由于文档中的其他内容引起的。我怀疑\section您的文档或文档类中的 定义很奇怪。

答案3

\section命令有强制参数,章节标题(以及可选参数,但这与此无关)。

本节正文位于标题之后,不是括号内:

 \section{Introduction}

 This is silly text, but shows how one should do.

 The introduction has more than one paragraph; paragraphs
 are separated by a blank line.

 Enough for the introduction.

 \section{Main results}

 Here we'll show the wonderful results we got.

 ...

LaTeX 不是 HTML,也没有类似于 HTML 的标签概念,尽管某些构造(环境)可以让人想起它们。

相关内容