LaTeX/基础知识

来源:互联网 发布:linux mint 18界面美化 编辑:程序博客网 时间:2024/06/05 15:03
 

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

输入

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

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

如下的符号在 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 的条件语句,在其前面和后面写

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

宏包

宏包是对现有文档类的各种修改、增补的集合。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/下)描述.clstex/latex/base文档类.stytex/latex/packagename样式文件.bstbibtex/bst/packagename文献格式.mffonts/source/public/typefaceMETAFONT 轮廓字体.fdtex/latex/mfnfssMETAFONT 的字体定义文件.fdtex/latex/psnfssPostScript Type 1 字体定义文件.pfb/fonts/type1/foundry/typefacePostScript Type 1 轮廓字体.afm/fonts/afm/foundry/typefaceType 1 字体的 Adobe Font Metrics.tfm/fonts/tfm/foundry/typefaceMETAFONT 和 Type 1 字体的 TeX Font Metrics.vf/fonts/vf/foundry/typefaceTeX 虚拟字体.dvi/doc宏包帮助文档.pdf/doc宏包帮助文档otherstex/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"
原创粉丝点击