LaTeX/基础知识

 

LaTeX/基础知识

出自CTeXWiki

跳转到: 导航, 搜索

本文以介绍 LaTeX 基本排版知识为目的。安装和配置请参考首页发行版。

目录

[隐藏]
  • 1 源文档
    • 1.1 文档类
    • 1.2 输入
    • 1.3 命令
    • 1.4 环境
    • 1.5 注释
  • 2 编译
  • 3 扩展名
  • 4 宏包
    • 4.1 使用现有的宏包
    • 4.2 安装额外的宏包
  • 5 大型文档

源文档

LaTeX 是一种标记语言,类似于 HTML。LaTeX 源文档是 plain ASII 文本文档。你可以使用任何编辑器创建、打开、修改它。一个最简单的文档如下

\documentclass[11pt]{article}

\begin{document}
 Hello world!
\end{document}

其中 \documentclass 声明文档类:article11pt 选项:使用 11pt 字体。\begin{document} \end{document} 声明一个 document 环境,其间即是需要排版的内容。\documentclass\begin{document} 之间为导言区。通常保存一些方便的全局配置。无数作者已经贡献了他们的配置,称为宏包。

文档名称必须简洁易懂,不能有空格或者其他特殊字符,最好只用小写字母加数字。

文档类

文档类型
article 期刊文章,由节 section 组成
proc 会议论文集,基于多篇 article
minimal 最少设置的一种。只有基本字体和纸张大小设置。通常用于调试
report 报告,有章 chapter,节 section 等
book 书,有章 chapter,节 section 等
slides 幻灯片,使用较大的无衬线字体
memoir 一种非常灵活,可以基于此快速创建所需要的类型 参考手册
letter 信件
文档类选项
10pt, 11pt, 12pt 设定文档使用的字号。默认是 10pt。
a4paper, letterpaper,... 定义纸张大小。除此之外,还有 a5paper, b5paper, executivepaper, legalpaper
fleqn 独行公式向左对齐
leqno 公式编号列于左边
titlepage, notitlepage 指示文档标题之后的内容是否新开一页。article 类型无此选项
onecolumn, twocolumn 单栏,双栏
twoside, oneside 双边,单边。article 和 report 默认使用 oneside,book 默认为 twoside
landscape 页面横放
openright, openany 与单双边设定和 \chapter 命令有关。report 默认 openany,book 默认 openright
draft 以一个小黑块表明断行错误处,用于调试

输入

连续的空格被认为是一个空格。行首的空格通常被忽略。按下回车产生的断行也被认为是空格。

一个空行意味着一段的结束。连续的空行被当作是一个空行。

如下的符号在 LaTeX 中有特别的用处,

# $ % ^ & _ { } ~ \

一般它们不会被打印出来,如果需要显示,就输入

\# \$ \% \^ \{ \} \& \_ \{ \} \~ \textbackslash

来替代。

\ 在 LaTeX 里有专门的作用,用来引导宏。所谓宏就是 LaTeX 里的命令、环境等。

\verb 命令被设计用来显示输入即输出的内容。所以上述字符也可以使用 \verb 来输出

\verb|#$^&|  \verb+#$^&+

命令

命令通常由 \ 开始,加上一串字母作为名字, 以空格,数字或者其他非字母字符结束。

一些命令需要参数,用 { } 引入。有时候需要选项,写在 [ ] 中。

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

创建新的命令

\newcommand{name}[num]{definition}

name 是命令名称,definition 是定义,可选项 num 设定命令需要的参数 (最多为 9,默认是 0)。例子

\newcommand{\haha}{something are here \ldots{}}
\haha

产生

something here ...

第一个参数通过 #1 引用,类似地,#2,#3 等代表第 2,3 个参数。例子

\newcommand{\haha}[1]{something #1 are here \ldots{}}
\haha{I like}

产生

something I like are here ...

新建命令不能和现有命令同名,如果要覆盖现有命令,通过 \renewcommand,用法跟 \newcommand 一致。另外还可以使用 \providecommand,在覆盖原有命令时,将不会产生任何警告。

新建命令还可有默认参数

\newcommand{name}[num][default]{definition}

[default] 存在时,第一个参数将会使用它。比如

\newcommand{\haha}[2][very much]{something #2 #1 are here \ldots{}}
\haha{I like} 
\haha[I do not like]{I like} 

产生

something I like very much are here ...
something I like I do not like are here ...

环境

环境的作用和命令类似,但是作用于大段的文本。

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

\begin\end 之间可以任意使用其他命令或者环境。

新建环境通过

\newenvironment{name}[num]{before}{after}

beforeafter 包含环境内文本被处理之前和之后的一些命令。例子

\newenvironment{dotted} 
{\ldots{}}%
{\ldots{}}%
\begin{dotted}
 I am here
\end{dotted}

产生

... I am here...

注意上面第一组 ... 之后的空格。如果不想要,在 before 里加 \ignorespaces。如果在第二组 ... 和之后的文本间也有不必要的空格,需要在 after 里加 \ignorespacesafterend

注释

注释以 % 区分。注释内容不会被排版。因为行首的空格会被忽略,所以如果需要断行而且断行的地方不要空格,可以放一个 %。在宏定义当中会经常见到。

大块的注释内容需要很多 %,操作起来不太方便,这时候,就可以利用 TeX 的条件语句,在其前面和后面写

\iffalse
what are commented out
\fi

编译

编译是通过命令行进行的。键入

latex foo.tex

回车,将会调用 latex 引擎编译 foo.tex 为 foo.dvi。接下来可以通过

dvips foo.dvi 
ps2pdf foo.ps

产生 pdf 文档。常用的编辑器会把这些命令集成为工具栏按钮,而不必在命令行键入它们。

编译引擎有很多种, pdflatex,xelatex 将会直接输出 pdf 文档,而不必使用 dvips, ps2pdf 等转换工具。

在 Unix 平台,编译可以通过更强大的 GNU Make 来完成。

编译时还可以从命令行读入一些参数,比如,源文档里有如下设置,

\usepackage{ifthen}
\ifthenelse{\equal{\blackandwhite}{true}}{
% 黑白输出时,一些命令
}{
% 彩色输出时,一些命令
}

然后

latex '\newcommand{\blackandwhite}{true}\input{foo.tex}'

产生黑白输出。如果 \blackandwhite 设置成 false,就产生彩色输出。

扩展名

LaTeX 文件扩展名
扩展名 描述
.tex TeX 源文档
.sty LaTeX 样式文件,使用 \usepackage 命令导入
.dtx Documented TeX。LaTeX sty 文档的分发形式
.ins .dtx 的安装文件,latex foo.ins 会生成所需的 sty 文档和帮助手册
.cls 类文档,使用 \documentclass 命令导入
.fd 字体描述文档
.dvi 设备无关文件 latex 编译产生
.pdf pdf 文档
.log 编译日志
.toc 存放章节名称,在下一次编译时读入以产生目录
.lof 类似于 .toc 产生插图目录
.lot 产生表格目录
.aux 存放各种标签引用信息,下次编译时读入以产生交叉参考
.idx 存放索引词,用 makeindex 处理
.ind 处理过的 .idx 文档,下次编译时读入以产生索引
.ilg makeindex 的日志

宏包

宏包是对现有文档类的各种修改、增补的集合。CTAN 是一个在线的宏包档案库。其中主要的宏包已经包含在各种发行版里,请看常用宏包。要创建自己的宏包,请参考类与宏包写作。

使用现有的宏包

在文档导言区使用以下代码导入:

\usepackage[option]{package_name}

如果没有冲突,多个宏包也可以使用以下代码导入:

\usepackage{package1,package2,package3}

安装额外的宏包

额外的宏包建议去 TeX Catalogue 查找,下载。

下载回来的宏包解压后,通常会有一个 readme.txt,其中记录安装配置方法。一般情况下需要这么几步

  • latex foo.ins : 产生 .dtx 文档所需的文件
  • latex foo.dtx 或者 pdflatex foo.dtx : 产生 .dvi 或 .pdf 的参考手册 .sty 格式文件。如果有 .idx 文件,还要照索引的步骤来生成索引。如果还有 .glo 文件,需要
makeindex -s gglo.ist -o foo.gls foo.glo
  • 把产生的文件按照 TeX 目录结构复制到相应的位置 : 通常是你的本地目录 太阳能热水器 里。请查看你的 texmf/web2c/texmf.cnf 找出本地目录位置。
宏包文件安装目录
扩展名 目录 ($TEXMF_LOCAL/下) 描述
.cls tex/latex/base 文档类
.sty tex/latex/packagename 样式文件
.bst bibtex/bst/packagename 文献格式
.mf fonts/source/public/typeface METAFONT 轮廓字体
.fd tex/latex/mfnfss METAFONT 的字体定义文件
.fd tex/latex/psnfss PostScript Type 1 字体定义文件
.pfb /fonts/type1/foundry/typeface PostScript Type 1 轮廓字体
.afm /fonts/afm/foundry/typeface Type 1 字体的 Adobe Font Metrics
.tfm /fonts/tfm/foundry/typeface METAFONT 和 Type 1 字体的 TeX Font Metrics
.vf /fonts/vf/foundry/typeface TeX 虚拟字体
.dvi /doc 宏包帮助文档
.pdf /doc 宏包帮助文档
others tex/latex/packagename 其他未说明的文档
  • 字体宏包往往还需要修改 dvips,dvipdfm 等配置,需要参考 readme.txt 或者宏包说明文档。
  • 刷新文件名数据库 : 依发行版的不同,
  • teTeX, TeX Live, fpTeX: texhash
  • web2c: mktexlsr
  • MikTeX: initexmf --update-fndb (或者使用 GUI 的 mo.exe)

如果只是临时使用额外的宏包而不想安装它们,也不想刷新文件名数据库,可以将产生的 .sty .tex 等文档复制到源文档所在目录;如果是在 Linux 下使用 texlive, 还可以直接将他们复制到 ~/.texlive/texmf-var/tex/latex/ 目录下。

大型文档

处理较大的文件,一个有效的方法是把它分成几个部分,然后分别导入,

\input{filename1}
\input{filename2}

另一个常用的导入命令是

\include{filename1}
\include{filename2}

区别在于,\include 时总是开始新的一页, \input 连续不分页。所以\include 适合 book 类按 chapter 分割。

较大的文件通常会编译很长时间,为了快速调试,可以部分编译

%\include{filename1}
\include{filename2}
\include{filename3}

只会编译 filename2.tex,filename3.tex。或者直接声明

\includeonly{filename2,filename3}

注意:filename之间除了逗号,不能有空格。

取自" http://wiki.ctex.org/index.php/LaTeX/%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86"

你可能感兴趣的:(LaTeX/基础知识)