跳转到内容

LaTeX/初学者必读

维基教科书,自由的教学读本

这份文件的用意是让你能更快速的了解LaTeX.

在开始之前,请确认你的电脑已经安装了LaTeX (安装LaTeX必要的步骤请参照Installation). 我们会从建立一个全新的LaTeX文件开始,接着会带着你利用这份文件来输出一份高品质的文稿,像是postscript格式或是PDF格式。

LaTeX 源代码

[编辑]

LaTeX 是所谓的标记式语言 (markup language), 使用一些标记去做文章的编排。LaTeX 系统把 LaTeX 源代码, 依其中的标记, 转成高品质的文件。打个比方说, LaTeX 很像网页用的 HTML, HTML 用标记来指定网页的排版, 文字的大小、颜色等等。

LaTeX 源代码只是一个纯文字档案, 最早使用英文就是用 ASCII 纯文字档, 近代为多国语言的使用 (包括中文), 大多使用 UTF-8 编码。只使用纯英文的档案, 用 UTF-8 编码也是完全和以前 ASCII 档案相容的, 因此建议有可能有中文或其他语言编写文件的需求, 就使用 UTF-8 编码。

以下是最简单的LaTeX源代码文件:

\documentclass{article}
\begin{document}
Hello World!
\end{document}

以上源代码经过LaTeX的编译,会输出dvi,pdf等格式的文件.产生如下输出:

Hello World!

空格或空行

[编辑]

空白字元,例如空格或是Tab在Latex中通常都被视为空格,多个空格在latex中也被视为单一空格。 若空白在一行的行首时通常不会显示出来,每一行的结束通常在Latex中都会被视为一个空格。 若要表示一个段落,则在上段最后一句和下段第一句间留下空行即可,然而空下多行在latex中会被视为只有空下一行。

下面是例子。

\documentclass{article}
\begin{document}
   no   matter how much
   tab or space you input   
   or   even you start a new line  

        there will be only one space
\end{document}

输出的效果如下:

no matter how much tab or space you input or even you start a new line

there will be only one space

特殊字元

[编辑]

以下列举字元含特殊意义,若你直接输入下列字元,则下列字元将无法输出。

# $ % ^ & _ { } ~ \

若要让这些文字得以输出,请在这些字元前加反斜线

其他更多的字元可以使用数学公式中的特殊命令或者作为特殊标记来输出。

  • 反斜线 \ 不能通过上面所说的在前面加上另一个反斜线的方式输出, \\ 代表换行, 如果需要输出一个反斜线, 你可以采用\backslash
  • \~ 的效果是在下一个字符的上方产生一条波浪线, 例如\~n会输出ñ , 如果要输出单个的波浪线, 你可以采用\~{}.
  • 类似地, 你也可以使用\^在之后的一个字母上方加上'^', \^{}会产生一个在空格上的'^'.
  • 如果你想要在文章中加入链接, 你可以考虑使用\verb, 关于这个命令, 我们将会在formatting中进行更详细的讨论.

LaTeX 指令

[编辑]

LaTeX的命令是大小写敏感的, 一般取下列两种格式之一:

  • 命令以\开头,命令的主体部分由多个字母组成, 以换行符,空格,tab,数字等非字母字符结尾.
  • 命令以\开头,命令的主体部分由一个非字母的字符组成.

对于一些需要参数的命令, 参数一般放在命令主体部分后的大括号{}中. 例如:

\^{n}

某些支持可选参数(optional parameters)的命令, 其参数放置在命令主体之后的方括号[]中. 例如:

\commandname[option1,option2,...]{argument1}{argument2}...

LaTeX 环境

[编辑]

环境在LaTeX中具有和命令相同的格式, 但与命令不同的是, 它会对文件的一部分, 而不是某个字母或者某个参数, 起作用.它的语法如下:

\begin{environmentname}
text to be influenced
\end{environmentname}

\begin\end 之间, 你可以加入其他的命令, 或者声明另一个环境. 一般来说, 环境也可以接受参数,但这个特性并不常用到, 所以我们把它留到后面再讨论.

LaTeX中的一切都可以用环境和命令的形式表示.

注释

[编辑]

LaTeX源码的注释以%开头, LaTeX将会忽略掉百分号之后一整行的内容以及最后的换行符还有下一行文本前的所有空白.

  • 注释可以用于在LaTeX源代码文件中加入一些备忘的事项,而注释中的内容将不会出现在输出的文件中.
\documentclass{article}
\begin{document}
This is the words to be output %This will be ignored by LaTeX
%You won't see me in the file output.
\end{document}
  • 请注意%还可以用来分隔很长的单词, 或者说长的,中间不允许加入空格等空白字符的一串字母. 例如:
\documentclass{article}
\begin{document}
This is an % stupid
% Better: instructive <----
example: Supercal%
            ifragilist%
icexpialidocious
|render= This is an example: Supercalifragilisticexpialidocious
\end{document}

尽管在源代码中Supercalifragilisticexpialidocious被分成了三行, 但实际上, 在输出的文件中, 它还是以一个中间没有任何空白字符的完整单词的形式输出.

LaTeX的核心语法并没有预置可以将多行文字一并注释的命令. 如需解决方案请参照 multi-line comments.

输入档案架构

[编辑]

当LaTeX编译某个源代码文件时, 它会假定源代码文件遵从特定的结构. 例如, 每一个源代码文件都要以\documentclass{...}开始.

这行命令声明了你想要编写的文件的类型(例如atricle,book...), 在这之后, 你可以加入一些配置文档风格的命令, 或者你也可以通过\usepackage{...}加载一些宏包来给LaTeX增加一些新的功能.

当所有的这些配置工作都已经完成后, 你可以开始编辑文档的正文部分了. 通过输入\begin{document}来表示进入文档正文.接下来你可以输入文档的正文和一些必要的命令. 当你已经完成文档的编辑之后, 你需要输入\end{document}来结束文档的编辑.

命令,告诉LaTeX每天调用它。 LaTeX将忽略此命令后面的任何内容。 ±和±} 之间的区域称为前导码

典型的命令行会话

[编辑]

LaTeX本身没有GUI(图形用户界面),因为它只是一个程序,可以处理你的输入文件,并生成DVI或PDF文件。某些LaTeX安装具有图形前端,你可以在其中单击LaTeX来编译输入文件。在其他系统上可能涉及一些打字,所以这里是如何诱导LaTeX在基于文本的系统上编译输入文件。请注意:此说明假定你已在计算机上安装了可用的LaTeX。

  1. 编辑/创建LaTeX输入文件。该文件必须是纯ASCII文本。在Unix上,所有编辑器都会创建这种格式。在Windows上,你可能需要确保以ASCII或纯文本格式保存文件。在为文件选择名称时,请确保其带有.tex 扩展名。
  2. 在输入文件上运行LaTeX。如果成功,你将获得.dvi文件。可能需要多次运行LaTeX才能获得目录和所有内部引用。 当你的输入文件有错误时,LaTeX会告诉你它并停止处理你的输入文件。

键入ctrl-D以返回命令行。

latex foo.tex

现在你可以查看DVI文件。在Unix上使用X11,你可以输入xdvi foo.dvi, 在Windows上,你可以使用名为yap 的程序(另一个预览程序). (现在evince和okular——许多Linux发行版的标准文档查看器,都能够查看DVI文件。)

你可以使用 pdflatex运行类似的过程,以从原始的.tex 生成PDF文档。与上面类似,输入命令:

pdflatex foo.tex

现在你可以查看PDF文件, foo.pdf.

我们的第一份文件

[编辑]

现在我们可以创建我们的第一个文档。我们将会用尽可能少的代码来进行最简单的输出:典型的Hello,World!程序。

  • 打开你喜爱的编辑器。如果你使用 vim, emacs 或 Notepad++, LaTeX代码将会自动高亮标记。
  • 输入以下LaTeX代码
% hello.tex - Our first LaTeX example!
\documentclass{article}
\begin{document}
Hello World!
\end{document}
  • 保存为hello.tex.

它代表什么意思?

[编辑]
% hello.tex - Our first LaTeX example! 第一行是注释,因为它以百分号 (%) 开始; LaTeX 会将这样的一行忽略. 注释能够让作者更加方便地标注源文件的各个部分, 比如标出作者或是年份.
\documentclass{article} 这一行是命令, 指示 LaTeX 这个文档类型是 article. 文档类型文件对应格式, 在这个例子中 article 类型对应普遍的文章. 在很多情况下, 只需替换文档类型即可使相同的文章符合不同的格式要求.
\begin{document} 这一行标识了 document 环境的开始, 提示接下来是文档的内容部分. 在这行代码以上的所有代码被称为 preamble.
Hello World! 这是这个例子中唯一会真正输出的内容——我们希望在页面上显示的内容.
\end{document} document 环境至此结束. 这行代码提示 LaTeX 文档内容已经结束, 在其后的代码将会被忽略.

正如前文中已经提到的, LaTeX 命令以反斜杠(\)开始. 这就是说, LaTeX 一见到反斜杠, 就会期望一个命令. 注释不会被视为命令, 因为 LaTeX 在任何时候都会忽略注释.

生成文件

[编辑]

It is clearly not going to be the most exciting document you have ever seen, but we want to see it nonetheless. I am assuming that you are at a command prompt, already in the directory where hello.tex is stored.

  1. Type the command: latex hello (the .tex extension is not required, although you can include it if you wish)
  2. Various bits of info about LaTeX and its progress will be displayed. If all went well, the last two lines displayed in the console will be:
Output written on hello.dvi (1 page, 232 bytes).
Transcript written on hello.log.

This means that your source file has been processed and the resulting document is called hello.dvi, which takes up 1 page and 232 bytes of space. This way you created the DVI file, but with the same source file you can create a PDF document. The steps are exactly the same as before, but you have to replace the command latex with pdflatex:

  1. Type the command: pdflatex hello (as before, the .tex extension is not required)
  2. Various bits of info about LaTeX and its progress will be displayed. If all went well, the last two lines displayed in the console will be:
Output written on hello.pdf (1 page, 5548 bytes).
Transcript written on hello.log.

you can notice that the PDF document is bigger than the DVI, even if it contains exactly the same information. The main differences between the DVI and PDF formats are:

  • DVI 需要更少的磁盘空间,创建起来更快。但它不包括文档中的字体,因此如果你想在另一台计算机上正确查看文档,则必须安装所有必需的字体。它不支持任何交互性,如超链接或动画图像。 DVI查看器也不常见,因此你可以考虑在排版时使用它来预览文档。
  • PDF需要更多的磁盘空间并且创建速度较慢,但​​它包含文档中所有必需的字体,因此你不会遇到任何可移植性问题。它支持内部和外部超链接。它还支持高级印刷功能: 悬挂标点符号,字体扩展和边距字距调整,从而为TeX引擎提供更大的灵活性和更好的输出效果。如今它是共享和发布文档的事实标准,因此你可以考虑将其用于文档的最终版本。

About now, you saw you can create both DVI and PDF document from the same source. This is true, but it gets a bit more complicated if you want to introduce images or links. This will be explained in detail in the next chapters, but for now assume you can compile in both DVI and PDF without any problem.

Note, in this instance, due to the simplicity of the file, you only need to run the LaTeX command once. However, if you begin to create complex documents, including bibliographies and cross-references, etc, LaTeX needs to be executed multiple times to resolve the references. But this will be discussed in the future when it comes up.


Previous: Introduction Index Next: Basics