【论文写作】LaTeX排版工具 | 写给初学者的一篇容易上手的文档 上

简介: 【论文写作】LaTeX排版工具 | 写给初学者的一篇容易上手的文档

LaTeX 有一些列自定义的书写规则组成,有特定的语法,比如Markdown,但语法和变量比前者多。

本篇文章,适合刚学习LaTex的小白同学,会对下列几个方面进行介绍:

  1. 基本使用方法
  2. 使用 (Xe)LaTeX 进行简单的中英混排
  3. 文章组织结构
  4. 用 (Xe)LaTeX 进行数学公式的排版
  5. 在 (Xe)LaTeX 的文档中插入图片/表格
  6. 进行简单的版面设置
  7. TeX 家族
  8. 其他

基本使用方法

准备工作

你可以点击这里,直接下载Latex2.9.7031 windows 版本

或者,在这里下载你需要的版本

然后一步步安装即可,没有什么需要特别注意的。

启动 TeXworks

启动 TeXworks 很简单,你可以在 Windows 启动对话框中输入 texworks 按回车。具体步骤是:

  1. 按下键盘上的 Windows 徽标键,同时按下 R 键 —— <Win> + R;
  2. 键入 texworks
  3. 回车

如果这样打不开 TeXworks,你可能需要从开始菜单找到 TeXworks 图标以启动;或者进入 TeX 系统的安装目录找到 TeXworks。启动界面如下图:

  • 图中空白的部分,就是输入编辑文本的编辑框;
  • 在编辑框的右下角,显示有三个按钮,最左边的是换行符模式,中间是编码模式,右边标示当前光标所在位置;
  • 编辑框的上方是工具栏,工具栏的右半部分使大家熟悉的功能(新建、打开、保存、撤消、恢复、剪切、复制、黏贴、查找、替换)
  • 工具栏的左边则是编译按钮 (TeXworks 也称其为「排版工具」);
  • 工具栏在往上,则是菜单栏

排版工具

TeXworks 为我们预设了若干排版工具(pdfTeX, pdfLaTeX, XeTeX, XeLaTeX 等),本文主要用到其中的 XeLaTeX。当你对 TeX 系统相当熟悉之后,也可以不使用 TeXworks 预设的工具,自己配置排版工具。TeXworks 默认的排版工具是 pdfLaTeX。如果你希望更改这个默认值,可以在编辑 - 首选项 - 排版 - 处理工具 - 默认 中修改。

开始

helloworld.tex

\documentclass{article}
% 这里是导言区
\begin{document}
Hello, world!
\end{document}

将文档保存在你希望的位置,然后在排版工具的下拉选框中选中 XeLaTeX 后,按下绿色的编译按钮。一会儿,如果没有意外,屏幕的右边就会出现编译之后结果。如下图:

请注意,在 Windows 平台上TeX 涉及到的文件(包括 .tex, .jpg 等各类文件)都不要包含中文名字。否则,在编译时可能会因为编码问题导致稀奇古怪的报错。

  • 解释1:
    此处的第一行 \documentclass{article} 中包含了一个控制序列(或称命令/标记)。所谓控制序列,是以反斜杠 \ 开头,以第一个空格或非字母 的字符结束的一串文字它们不被输出,但是他们会影响输出文档的效果。这里的控制序列是 documentclass,它后面紧跟着的 {article} 代表这个控制序列有一个必要的参数,该参数的值为 article。这个控制序列的作用,是调用名为 article 的文档类。

请注意,TeX 对控制序列的大小写是敏感的。

部分控制序列还有被方括号 [] 包括的可选参数。

所谓文档类,即是 TeX 系统预设的(或是用户自定的)一些格式的集合。不同的文档类在输出效果上会有差别。

  • 解释2:
    此处的第二行以 % 开头。TeX 以百分号 % 作为注释标记。具体来说,TeX 会忽略从 % 开始到当前行末尾的所有内容。这些内容不会被输出,也不影响最终排版效果,只供人类阅读。若要输出 % 字符本身,则需要在 % 之前加上反斜杠 \ 进行转义(escape)。例如:20\%,此处 % 被当做正常的百分号处理,其后的文字也将被正常输出。
  • 解释3:
    控制序列 begin。这个控制序列总是与 end 成对出现。这两个控制序列以及他们中间的内容被称为「环境」;它们之后的第一个必要参数总是一致的,被称为环境名
    只有在 document 环境中的内容,才会被正常输出到文档中去或是作为控制序列对文档产生影响。也就是说,在 \end{document} 之后插入任何内容都是无效的。
  • 解释4:

\documentclass{article} 开始到 \begin{document} 之前的部分被称为导言区。你可以将导言区理解为是对整篇文档进行设置的区域——在导言区出现的控制序列,往往会影响整篇文档的格式。

通常在导言区设置页面大小、页眉页脚样式、章节标题样式等等。

实现中英文混排

在 TeX 开发当初并没有考虑到亚洲文字的问题。因此早期的 TeX 系统并不能直接支持中文,必须要用其他工具先处理一下(或者是一些宏包之类的)。但是现在,XeTeX 原生支持 Unicode,并且可以方便地调用系统字体。可以说解决了困扰中国 TeX 使用者多年的大问题。至此,我们只需要使用几个简单的宏包,就能完成中文支持了。

宏包:一系列控制序列的合集(将控制序列打包放入一个文件中)。\usepackage{} 可以用来调用宏包

请注意,CTeX 宏集和 CTeX 套装是两个不同的东西。CTeX 宏集本质是 LaTeX 宏的集合,包含若干文档类(.cls

文件)和宏包(.sty 文件)。CTeX 套装是一个过时的 TeX 系统。

新版 CTeX 宏集的默认能够自动检测用户的操作系统,并为之配置合适的字库。对于 Windows 用户、Mac OS X 用户和 Linux 用户,都无需做任何配置,就能使用 CTeX 宏集来排版中文。

在 TeXworks 编辑框中输入以下内容,以 UTF-8 编码保存,使用 XeLaTeX 编译:

\documentclass[UTF8]{ctexart}
\begin{document}
你好,world!
\end{document}

第一次使用的时候,会让你安装一系列的控制序列,你只要点击install即可。如果没有意外,你将会看到类似下图的输出结果:

相较于之前的例子,这份代码只有细微的差异:

  • 文档类从 article 变为 ctexart;
  • 增加了文档类选项 UTF8

你也可以直接使用 xeCJK 宏包来支持中英文混排。不过大多数情况是不推荐这样做的。

组织你的文章

\documentclass[UTF8]{ctexart}
\title{你好,world!}
\author{Liam}
\date{\today}
\begin{document}
\maketitle
你好,world!
\end{document}
  • 解释:
    在 document 环境中,除了原本的你好,world!,还多了一个控制序列maketitle。这个控制序列能将在导言区中定义的标题、作者、日期按照预定的格式展现出来。

章节和段落

\documentclass[UTF8]{ctexart}
\title{你好,world!}
\author{Liam}
\date{\today}
\begin{document}
\maketitle
\section{你好中国}
中国在East Asia.
\subsection{Hello Beijing}
北京是capital of China.
\subsubsection{Hello Dongcheng District}
\paragraph{Tian'anmen Square}
is in the center of Beijing
\subparagraph{Chairman Mao}
is in the center of 天安门广场。
\subsection{Hello  蓝天}
\paragraph{蓝天白云} in 五月。
\end{document}

在文档类 article/ctexart 中,定义了五个控制序列来调整行文组织结构。他们分别是:

  • \section{·}
  • \subsection{·}
  • \subsubsection{·}
  • \paragraph{·}
  • \subparagraph{·}

在report/ctexrep中,还有\chapter{·};在文档类book/ctexbook中,还定义了\part{·}

插入目录

在上一节的文档中,找到 \maketitle,在它的下面插入控制序列 \tableofcontents,保存并用 XeLaTeX 编译两次,观察效果:


相关文章
|
编译器 C++
学习C++笔记361
C++ 命名空间
73 0
|
存储 C++
学习C++笔记349
C++ 动态内存
52 0
|
iOS开发 C++
学习C++笔记325
C++ 文件和流
79 0
|
算法 C++
学习C++笔记322
C++ 接口(抽象类)
77 0
|
C++
学习C++笔记321
C++ 接口(抽象类)
66 0
|
C++
学习C++笔记301
C++ 重载运算符和重载函数
70 0
|
C++
学习C++笔记292
C++ 继承
76 0
|
C++
学习C++笔记288
C++ 继承
80 0
|
前端开发 C++
学习C++笔记268
C++ 数据结构
73 0
|
前端开发 C++
学习C++笔记262
C++ 数据结构
63 0

相关实验场景

更多