当我写下下面几行时:
\section{Introduction}{
Content in introduction ...
}
不需要的空间出现Content
在警告之前。
我知道这是由于 tex 的一些技术决定。但我想知道这个决定背后的原因。
在 HTML 中,文本标签开头的文字空格不会被渲染。我其实更喜欢这样的行为,因为它让我手工编写的代码更具可读性。
顺便问一下,我可以让 tex 忽略此代码{
和之间的空格吗?Content
答案1
命令预计可以定义一个参数来忽略空格(通常使用\ignorespaces
and/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 的标签概念,尽管某些构造(环境)可以让人想起它们。