Latex排版全解

LATEX(英语发音:/ˈleɪtɛk/ LAY-tek或英语发音:/ˈlɑːtɛk/ LAH-tek,音译“拉泰赫”),是一种基于TEX的排版系统,由美国电脑学家莱斯利•兰伯特在20世纪80年代初期开发,利用这种格式,即使用户没有排版和程序设计的知识也可以充分发挥由TEX所提供的强大功能。对于生成复杂表格和数学公式,这一点表现得尤为突出。因此它非常适用于生成高印刷质量的科技和数学类文档。这个系统同样适用于生成从简单的邮件到完整书籍的所有其他种类的文档。

和Microsoft Office Word 等所见即所得的办公软件不同,用LATEX 排版文档,首先要用文本编辑器编辑好tex 文档,然后通过各种程序编译,得到pdf 文档用于打印或者阅读。基本的排版流程如下图:

一般我们经常用pdflatex 或者xelatex 程序直接从tex 文件生成pdf 文件。如果是中文tex 文档,优先使用xelatex 程序编译。

WinEdt是一款Microsoft Windows平台下的文本编辑器。它主要是用来创建TeX(或者LaTeX)文档,但是同时也能处理HTML或者其他文本文档。它被很多TeX系统如MiKTeX用来当作输入前端,且无缝整合。
本文利用WinEdt来实现对latex的学习与应用。

第一部分 软件安装

1.首先安装LATEX

下载地址:http://www.miktex.org/download。按照步骤安装,新版Latex会自带文档编辑器TeXworks。

TeXworks 是在TUG(TeX Users Group)的支持下开发的一个全新的TeX/LaTeX 编辑器。它的首要特点如下:自带了一个pdf 浏览器,编辑latex文件时可以迅速预览排版后的pdf 文件;还有就是它的设计目标是简单易用,所以只支持直接生成并预览pdf,避免dvi, ps, pdf 各种文件格式对初学者的干扰。

TeXWorks 支持命令补全(command completion)。使用方法是在输入若干字母后按Shift+Tab(或Ctrl+Tab)。比如,输入i 之后按Ctrl+Tab 就会变成\item。如果有几种可能的补全方式,多按次就会在这几种方式之间循环,按Ctrl+Tab 和按Shift+Tab 循环方向相反。

2.安装WinEdt

下载地址:http://www.winedt.com/download.html。按照步骤安装,在完成时,增加勾选关联关于Tex的项。

1)熟悉WinEdt软件,几个重要的区域:

①插入图片
②插入表格
③插入超链接
④插入文章的结构:part、chapter等

⑤文字的居左、中、右。
⑥列表样式

⑦显示左侧的框区,区域13
⑧显示数学符号

⑨编译,运行;旁边的放大镜为预览。
⑩将此项改为LaTex或PDFTexify;PDFTexify运行后自动生成PDF文件打开
⑪处理参考文献
⑫将DVI格式转换为PDF;10设置为LaTex时,需要用它转换成PDF文件
⑬点击Set Main File,显示文章的树型结构大纲

⑭代码编辑区
⑮Console,工作台,代码出错会在这里报错。

蓝框内表示:第一个错误出现在第6行。
红框内表示:错误的信息。
在Console内,按enter键跳过错误,继续执行后面的代码;所有当修改错误后,要点击Console区域的×号停止编译,然后重新编译。

2)TIPS

a.大小写敏感

b.设置编辑区代码行数:View->Line Numbers(或Ctrl+=);

c. WinEdt中的环境(\begin{}...\end{})自动补足功能。以\begin{equation}...\end{equation}为例:
▪输入时使用\begin{equation}}
▪输入时使用\begin{equation}>,如果之后没有\end{...},则与第一种方法相同;如果之后有个别的\end{...},如\end{document},则系统将弹出窗口提示Change Environment,输入equation,则自动将\end{document}改为\end{equation}
▪输入时使用\end{{

d. 编辑区左侧的小箭头将这行代码转到PDF文件对应的区域

相比较,WinEdt功能更强,且无缝整合LaTex,选择WinEdt作为编辑器。当然除了TeXWorks、WinEdt,还有很多其他的软件,此处不再介绍。

第二部分 LaTex排版

一.英文文档

1.最简单的LATEX 英文文档
  1. % hello.tex
  2. \documentclass[a4paper]{article}
  3. \usepackage{hyperref}
  4. \begin{document}
  5. Hello World!
  6. \end{document}

①% 符号后面的内容都表示注释

②在LATEX 文档中,用\ 开始的字母串来表示一个命令。命令后面用花括号{} 包含的内容是该命令的参数,必不可少。

③这里的\documentclass 是LATEX 文档的基本命令,用于指明文档类。\documentclass[选项]{文档类}

文档类

article    排版科技期刊、短报告、程序文档、邀请函等。
report    排版多章节的长报告、短篇的书籍、博士论文等。
book    排版书籍。
slides    排版幻灯片。其中使用了较大的 sans serif 字体。也可以考虑使用 FoilTEX 来得到相同的效果。

文档类的选项

纸张大小(a4paper,a5paper,b4paper,letterpaper,legalpaper,executivepaper):
默认的letterpaper 纸张常见于美国,和国内常用的A4 纸张的大小稍有差别,建议自己指定。

字体大小(10pt,11pt,12pt):默认为10pt。

纸张方向(portrait,landscape):默认为portrait(纵向),在屏幕阅读也许landscape(横向)更方便。

草稿定稿(draft,final):默认为final(定稿);如果是draft(草稿),页面内容有溢出时会显示粗黑条。

单面双面(oneside,twoside):对于article 和report 文档类,默认设置为单面,页码总是在右边;对于book 文档类,默认设置为双面,奇数页页码在右边,偶数页页码在左边,这样双面打印时页码总在外侧。

新章开始(openright,openany):仅对book 文档类有效,默认值为openright,即每章都从奇数页开始;如果设置为openany,则每章仅从新的一页开始,不管奇偶页。

④\usepackage 命令也是LATEX 的基本命令,用于载入LATEX 宏包。LATEX 系统中包含了各种各样的宏包,对LATEX 的基本功能作了各种扩展。

⑤\begin{document} 和\end{document} 之间的部分我们称为正文区,一般用于正文内容的撰写。这个例子的正文内容只有简单的Hello World!。对应的,在\documentclass 和\begin{document} 命令之间的部分我们称为导言区,一般用于载入宏包,定义命令和调整格式。

⑥LaTeX 的命令也有不同的类型,形如\begin{环境名}...\end{环境名}的命令组合我们称为环境。

LATEX 文档把格式和内容部分分开,是一种良好的设计准则。

二.中文文档

LaTeX 中文文档的排版有各种方式,例如CCT,CJK,xeCJK 等等。目前最优秀的方式是用ctex 文档类来排版中文文档,它在其它各种方式的基础上以一致的方式解决了中文排版的问题。例如:

  1. \documentclass[UTF8]{ctexart}
  2. \begin{document}
  3. 中文内容测试!
  4. \end{document}

使用这种方式,只需要将文档类从英文的article 改成ctexart,所有中文环境和章节编号等等都已经按照中文习惯设置好了,简单易行。另外,对于book 和report 文档类,也有对应的ctexbook 和ctexrep 中文文档类,其用法类似。

例子中的UTF8 这个可选参数指明了中文文档的编码。编码主要有这两种:GBK 和UTF8,而不同的LaTeX 编辑器对中文文档的默认编码不同。WinEdt 编辑器的默认中文编码为GBK,而TeXworks 编辑器的默认中文编码为UTF8。

三.主要编辑(使用图形加快编辑)

1.输入特殊字符

输入 \# \$ \% \& \{ \} \ _ \^{} \~{} \textless \textgreater \textbar \textbackslash
输出 # $ % & { } _ ^ ~ < > | \

2.段落换行

用一个空行或者\par 命令可以开始新的段落,同时会有默认的首行缩进。用\\ 或者\newline 可以强制换行在下一行继续,且在下一行不会有缩进。

3.列表环境

列表环境有三种:无序列表(itemize)、有序列表(enumerate)和描述列表(description)。使用⑥的图标,自动生成代码。
  1. \documentclass[UTF8]{ctexart}
  2.  
  3. \begin{document}
  4.  
  5. \begin{itemize}
  6. \item javascript
  7. \item html
  8. \item css
  9. \end{itemize}
  10.  
  11. \begin{enumerate}
  12. \item javascript
  13. \item html
  14. \item css
  15. \end{enumerate}
  16.  
  17. \begin{description}
  18. \item[javascript] javascript
  19. \item[html] html
  20. \item[css] css
  21. \end{description}
  22.  
  23. \end{document}
显示效果如下:

4.标题摘要

用下面的代码可以加入文章的标题、作者、日期信息和内容摘要:

  1. \documentclass[UTF8]{ctexart}
  2.  
  3. \begin{document}
  4.  
  5. \title{LatexWinedt}
  6. \author{jingwhale}
  7. \date{January 25, 2015}
  8. \maketitle
  9.  
  10. \begin{abstract}
  11. LATEX(英语发音:/ˈleɪtɛk/ LAY-tek或英语发音:/ˈlɑːtɛk/ LAH-tek,音译“拉泰赫”),是一种基于TEX的排版系统,由美国电脑学家莱斯利•兰伯特在20世纪80年代初期开发,利用这种格式,即使用户没有排版和程序设计的知识也可以充分发挥由TEX所提供的强大功能。对于生成复杂表格和数学公式,这一点表现得尤为突出。因此它非常适用于生成高印刷质量的科技和数学类文档。这个系统同样适用于生成从简单的邮件到完整书籍的所有其他种类的文档。
  12. \end{abstract}
  13.  
  14. \end{document}

显示效果如下:

如果\date{} 命令的参数为空,则不显示日期信息。如果不出现\date 命令,则默认显示当前的日期。

5.章节目录

在book 和report 文档类中,可以使用\part、\chapter、\section 、\subsection、\subsubsection、\paragraph、\subparagraph 这些章节命令,在article 文档类中,除了\chapter 不能用,其它的都可以用。

用\tableofcontents 命令可以自动从各章节标题生成目录。

在导言区中用下面的命令载入hyperref 宏包\usepackage{hyperref}就可以让生成的文章目录有链接,点击时会自动跳转到该章节。而且也会使得生成的pdf 文件带有目录书签。
例如下面的代码:

  1. \documentclass[UTF8]{ctexart}
  2.  
  3. \usepackage{hyperref}
  4.  
  5. \begin{document}
  6.  
  7. \tableofcontents
  8.  
  9. \part{部分标题}
  10. %\chapter{章标题}这一章我们介绍这些内容。
  11. \section{节标题}这一节我们介绍这些内容。
  12. \subsection{小节标题}这一小节我们介绍这些内容。
  13. \subsubsection{子节标题}这一子节我们介绍这些内容。
  14. \paragraph{段标题}这一段我们介绍这些内容。
  15. \subparagraph{小段标题}这一小段我们介绍这些内容。
  16.  
  17. \end{document}

显示效果如下:

要调整章节标题在目录页中的格式,可以用titletoc 宏包。该宏包的基本命令参数如下:

  1. \titlecontents{标题层次}[左间距]{整体格式}{标题序号}{标题内容}{指引线和页码}[下间距]

6.参考文献

引用文献的基本环境是:

  1. \begin{thebibliography}{}
  2. \bibitem[显示符号]{引用标签} Book Title, Author
  3. \end{thebibliography}

其中\begin{thebibliography}{}的大括号内填入的数字表示最大标号值。
\bibitem表示一条文献记录。其中[显示符号]表示在参考文献区域显示的标号,可不填,默认使用数字1,2,3进行编号。引用标签则是在正文中引用的标签。参考文献的引用和其他的引用有点不同,需要用\cite{引用标签}来引用。

在LaTeX 中使用参考文献很容易,代码如下:

  1. \documentclass[UTF8]{ctexart}
  2.  
  3. \begin{document}
  4.  
  5. \begin{thebibliography}{}
  6. \bibitem {JW1}Jingwhale, T.A.O.C.P. , Yunlong Zhang , 2015,Vol. 1.
  7. \bibitem {JW2}Jingwhale, T.A.O.C.P. , Yunlong Zhang , 2015,Vol. 6.
  8. \bibitem {JW2}Jingwhale, T.A.O.C.P. , Yunlong Zhang , 2015,Vol. 8.
  9. \end{thebibliography}
  10.  
  11. \end{document}

显示效果如下:

TIPS:

▪默认thebibliography会自动添加标题Reference,所以无需重复添加
▪默认参考文献的行间距为一行,这有时候显得太大了。可以在\begin{thebibliography}{}后添加\addtolength{\itemsep}{-1.5ex}来缩小行间距。-1.5ex表示每行缩小1.5ex。其实细心观察可以发现,thebibliography其实是一个枚举环境,因此对于itemize和enumerate,可以用同样的方法缩小行间距。

▪thebibliography是十分繁琐的。因为你还需要把作者等信息一个个地填上去。有没有什么更好的方法呢?答案是:有的。那就是bibtex!bibtex是一个引用数据库,一般以bib后缀结尾。各大论文网站都会提供bibtex格式的文献引用。这里不做详解,可以到网上搜所一下。

7.插入表格

插入表格经常使用的是tabular 环境,这个环境是LaTeX 中预先定义好的。

①.tabular 环境插入表格

在WinEdt中点击,选择Tabular,选择3行3列表格,代码如下:

  1. \begin{tabular}{||||}
  2. \hline
  3. % after \\: \hline or \cline{col1-col2} \cline{col3-col4} ...
  4.  &  &  \\
  5.  &  &  \\
  6.  &  &  \\
  7. \hline
  8. \end{tabular}

▪首先,tabular 环境的参数|l|c|r| 指明了各列的对齐方式,l、c 和r 分别表示左对齐、居中对齐和右对齐。中间的竖线| 指明各列之间有竖线分隔,如果在某些地方不需要竖线,去掉相应位置的| 即可。
▪表格各行的元素之间用& 号分隔,两行内容用\\ 分隔。\hline 表示两行之间的横线;你可以用连续两个\hline 得到双横线,或者去掉\hline 以不显示该横线。
▪如果需要在某个单元格中填写多行内容,不能直接用\\ 或\newline 命令,而应该将它们放在一个盒子里面(比如\parbox 盒子)。

我们修改代码如下:

  1. \documentclass[UTF8]{ctexart}
  2.  
  3. \begin{document}
  4.  
  5. \begin{tabular}{|l|c|r|}
  6. \hline
  7. % after \\: \hline or \cline{col1-col2} \cline{col3-col4} ...
  8. 左列 & 中列 & 右列 \\
  9. \hline
  10. 21 & 22 & 23 \\
  11. \hline
  12. 31 & 32 & 33 \\
  13. \hline
  14. 41 & 42 & 43 \\
  15. \hline
  16. \end{tabular}
  17.  
  18. \end{document}

显示效果如下:

②.跨列表格

复杂的表格经常需要跨行和跨列,在tabular 环境中,我们可以用命令\multicolumn 得到跨列表格,而跨行表格需要使用multirow 宏包,我们暂不介绍。

  1. \documentclass[UTF8]{ctexart}
  2.  
  3. \begin{document}
  4.  
  5. \begin{tabular}{|l|c|r|}
  6. \hline
  7. % after \\: \hline or \cline{col1-col2} \cline{col3-col4} ...
  8. 左列 & 中列 & 右列 \\
  9. \hline
  10. 21 & 22 & 23 \\
  11. \hline
  12. \multicolumn{}{|c|}{跨越2015} & 33 \\
  13. \hline
  14. 41 & 42 & 43 \\
  15. \hline
  16. \end{tabular}
  17.  
  18. \end{document}

显示效果如下:

\multicolumn 命令的第一个参数指明要横跨的列数,第二个参数指明对齐和边框线,第三个参数指明该单元格的内容。

③.浮动表格

前面所说的插入表格的例子中,表格是在tabular 环境对应的位置排版出来的。如果表格高度大于当前页剩余高度,表格就会被放置到下一页中,造成这一页下部留出很大空白。大部分时候我们并不需要严格限定表格出现的位置,而只要求表格在该段正文的附近出现即可。此时,我们可以用table 浮动环境来达到自动调整位置的效果。

我们只需,在WinEdt中点击,代码如下:

  1. \begin{table}
  2. \centering
  3. 
  4. \caption{}\label{}

将表格代码插进去就行了,示例代码如下:

  1. \documentclass[UTF8]{ctexart}
  2.  
  3. \begin{document}
  4.  
  5. \begin{table}[htbp!]
  6. \centering
  7.  
  8. \begin{tabular}{|l|c|r|}
  9. \hline
  10. % after \\: \hline or \cline{col1-col2} \cline{col3-col4} ...
  11. 左列 & 中列 & 右列 \\
  12. \hline
  13. 21 & 22 & 23 \\
  14. \hline
  15. 31 & 32 & 33 \\
  16. \hline
  17. 41 & 42 & 43 \\
  18. \hline
  19. \end{tabular}
  20.  
  21. \caption{示例表格}\label{we}
  22. \end{table}
  23.  
  24. \end{document}

其中的可选参数里,h(here,当前位置)、t(top,页面顶部)、b(bottom,页面底部)、p(page,单独一页)表明允许将表格放置在哪些位置,而! 表示不管某些浮动的限制。用table 浮动环境,还可以用\caption命令指明表格的名称,并得到表格的自动编号。

8.插入图片

在LATEX 文档中插入现有的图形,可以使用graphics。我们这里只介绍graphicx 宏包。需要载入graphicx 宏包

  1. \usepackage{graphicx}
①.图文混排。

命令:\includegraphics[选项]{图形文件} 。如下的代码:

  1. \documentclass[UTF8]{ctexart}
  2.  
  3. \usepackage{graphicx}
  4.  
  5. \begin{document}
  6.  
  7. Microsoft Office Word 等所见即所得的办公软件不同,用
  8. \raisebox{-2mm}{\includegraphics[scale=0.8]{picture/tupian.jpg}}
  9. 排版文档,首先要用文本编辑器编辑好tex文档,然后通过各种程序编译,得到pdf 文档用于打印或者阅读。
  10.  
  11. \end{document}

显示效果如下:

▪\includegraphics 命令有许多选项,上面例子中使用的选项scale=0.03 指明了整体的伸缩因子,常用的选项还有宽度值和高度值选项,例如width=64mm 和height=48mm 等等。如果宽度值和高度值只指明一项,将按同比例对另一项作伸缩。
▪默认情况下,图片是和正文的基线对齐的,当图片高度比行距大时,结果不是很美观。可以用\raisebox命令稍微降低图片的位置。

②.图文分开

如果插入的图片需要独立居中显示。这可以通过把插入的图片放在center 环境中来实现。如下面的代码:

  1. \documentclass[UTF8]{ctexart}
  2.  
  3. \usepackage{graphicx}
  4.  
  5. \begin{document}
  6.  
  7. Microsoft Office Word 等所见即所得的办公软件不同,用
  8. \begin{center}
  9. \includegraphics{picture/tupian.jpg}
  10. \end{center}
  11. 排版文档,首先要用文本编辑器编辑好tex文档,然后通过各种程序编译,得到pdf 文档用于打印或者阅读。
  12.  
  13. \end{document}

显示效果如下:

图片最好设置宽和高,让它按照我们的约定显示。图片的伸缩因子需要计算有些麻烦,如果将它设为页芯宽度\textwidth 的某个因子,如\includegraphics[width=0.9\textwidth]{picture/tupian.jpg},图片将页芯宽度显示。

③.浮动图片

同表格的插入情形类似,自动调整图片的位置。用figure 浮动环境来达到这个效果。

在WinEdt中点击,出现代码代码如下:

  1. \begin{figure}
  2. \centering
  3. % Requires \usepackage{graphicx}
  4. \includegraphics[width=]{}\\
  5. \caption{}\label{}
  6. \end{figure}

修改代码如下:

  1. \documentclass[UTF8]{ctexart}
  2.  
  3. \usepackage{graphicx}
  4.  
  5. \begin{document}
  6.  
  7. Microsoft Office Word 等所见即所得的办公软件不同,用
  8. \begin{figure}[h]
  9. \centering
  10. % Requires \usepackage{graphicx}
  11. \includegraphics{picture/tupian.jpg}\\
  12. \caption{latex}
  13. \end{figure}
  14. 排版文档,首先要用文本编辑器编辑好tex文档,然后通过各种程序编译,得到pdf文档用于打印或者阅读。
  15.  
  16. \end{document}

显示效果如下:

9.插入公式

在LATEX 中,数学公式有两种:即行内公式(inline formula)和行间公式(displayed formula)。

一般地,对于行内公式,我们常用$...$ 形式;而对于行间公式,我们常用\[...\] 形式。

行内公式和正文在同一行中显示,示例如下:

  1. \documentclass[UTF8]{ctexart}
  2.  
  3. \usepackage{graphicx}
  4.  
  5. \begin{document}
  6.  
  7. From $ a+b>c $, we have ...
  8.  
  9. \end{document}

显示效果如下:

行间公式在单独一行居中显示,示例如下:

  1. \documentclass[UTF8]{ctexart}
  2.  
  3. \usepackage{graphicx}
  4.  
  5. \begin{document}
  6.  
  7. Since
  8. \[ x^n + y^n = z^n, \]
  9. we have...
  10.  
  11. \end{document}

显示效果如下:

①公式编号

用$$...$$ 形式来输入行间公式,除了输入麻烦外还有其它缺点。但它有一个特有的好处,就是可以用\eqno命令指定公式的编号,例如:

  1. $$x_1+y_1>z_1 \eqno{(1)}$$

另外,我们可以用equation 环境来得到自动编号的行间公式。例如:

  1. \begin{equation}
  2. x^n+y^n=z^n
  3. \end{equation}

显示效果如下:

②数学函数

点击WinEdt的,选择你要编辑的公式或符号,进行编辑即可,示例如下:

  1. \[
  2. \int\frac{}{x} dx = \ln |x| + C
  3. \]

③配对括号

我们可以用\left 和\right命令来得到自动调整大小的括号,例如

自动调整大小的括号有时候效果仍然差强人意,这时候你也可以自己指定括号的大小:

  1. \[ \Bigg< \bigg\{ \Big[ \big( xyz \big) \Big] \bigg\} \Bigg> \]

注意:{ 和} 是特殊字符,需要用\{ 和\} 来表示。

④多行公式

要方便地输入多行公式,可以使用美国数学会的amsmath 宏包

  1. \usepackage{amsmath}

得到对齐的公式,用align 环境。例如:

  1. \begin{align}
  2. x + y &= 5 \\
  3. 2x + 3y &= 8
  4. \end{align}

其中& 符号后面的字符就是各行间对齐的位置。

显示效果如下:

各行之间是不对齐的,可以用gather 环境的多行公式里面,

  1. \begin{gather}
  2. x + y = 5 \\
  3. 2x + 3y = 8
  4. \end{gather}

前面两个环境中的多行公式都是自动编号的。如果不要编号,可以用对应的gather* 和align* 环境。将{}修改为对应的gather* 和align*即可。

⑤折行公式

一个公式太长需要拆为几行,这种折行公式应该只需要一个编号,可以使用equation 环境中的\split 环境。例如:

  1. \begin{equation}
  2. \begin{split}
  3. (3+3)\cdot111 &= 3\cdot111 + 3\cdot111 \\
  4. &= 666
  5. \end{split}
  6. \end{equation}

⑥复杂公式

  1. \documentclass{article}
  2.  
  3. \usepackage{amsmath}
  4.  
  5. \begin{document}
  6.  
  7. \begin{equation}
  8. \left.
  9. \begin{aligned}
  10. x+y &> 5 \\
  11. y-y &> 11
  12. \end{aligned}
  13. \ \right\}\Rightarrow x^2 - y^2 > 55
  14. \end{equation}
  15.  
  16. \end{document}

⑦定理环境

定理命题的撰写的简单例子:

  1. \newtheorem{thm}{Theorem}[subsection]
  2. \newtheorem{cor}[thm]{Corollary}
  3. \begin{thm}
  4. This is a theorem.
  5. \end{thm}
  6. \begin{cor}
  7. This is a corollary.
  8. \end{cor}

这里的例子是对于article 文档类来说的,如果是book 文档类,最前面的subsection应改为section。

四.中文排版

1.使用LaTeX 排版中文文档

传统的方法有两种:一是用CJK 宏包,二是用CCT 宏包。这里先介绍CJK 的中文排版。

CJK 是国外人编写的,不仅支持中文,而且也支持其它双字节语言(实际上CJK 就是Chinese,Japanese 和Korean 这三个词语的缩写)。安装之后就可使用。

  1. \documentclass{article}
  2. \usepackage{CJK}
  3. \begin{document}
  4. \begin{CJK}{GB}{gbsn}
  5. 欢迎来到CJK!这里使用的是CJK宏包里有的文鼎宋体。
  6. \end{CJK}
  7. \end{document}

然后就用latex 编译就可以得到中文文档了。

▪要把中文部分放在\begin{CJK} 和\end{CJK} 之间。

▪上面代码中的GB 指的是编码,对于简体中文来说,常见的有GB 编码和GBK 编码两种。

▪而gbsn 指使用的字体为文鼎宋体。

CTeX 里另外多了GBK 编码的六种中文字体(宋体、仿宋、楷体、黑体、隶书和幼圆),如果你安装了CTeX,就可以类似下面的例子来使用这几种字体:

  1. \documentclass{article}
  2. \usepackage{CJK}
  3. %\begin{document}
  4. \begin{CJK}{GBK}{song}
  5. CTeX里中文默认用宋体!
  6. \CJKfamily}{GBK}{hei} 这是CTeX里的黑体!
  7. \CJKfamily{fs} 这是CTeX里的仿宋体!
  8. \CJKfamily{kai} 这是CTeX里的楷体!
  9. \CJKfamily{li} 这是CTeX里的隶书!
  10. \CJKfamily{you} 这是CTeX里的幼圆体!
  11. \end{CJK}
  12. \end{document}

CCT 和CJK 就是两种外挂而已,很容易就出现比如pdf 书签乱码之类的问题。XeTeX 和LuaTeX 从底端就支持各种文字包括中文,而且能够直接使用系统自带的字体,生成的文档更为美观。本文介绍用XeTeX 排版LaTeX 文档的方法。

XeTeX 对TeX 的改动主要集中在字体的使用上,因此原来的LaTeX 文档稍为修改下就能够用XeTeX 编译了。最新的MiKTeX(CTeX)和TeXLive 套装都包含XeTeX 程序。示例如下:

  1. % !TEX program = xelatex
  2. \documentclass [12pt ,a4paper ]{article}
  3. \usepackage[cm -default ]{ fontspec}
  4. \usepackage{xunicode}
  5. \usepackage{xltxtra}
  6. \setmainfont[BoldFont=SimHei ,ItalicFont=KaiTi_GB2312 ]{ SimSun}
  7. \setsansfont[BoldFont=SimHei ]{ KaiTi_GB2312}
  8. \setmonofont{NSimSun}
  9. \XeTeXlinebreaklocale "zh"
  10. \XeTeXlinebreakskip = 0pt plus 1pt
  11. \begin{document}
  12. \XeTeX\ Show: $\alpha$ , $a^2+b^2=c^2$
  13. 中文字体!
  14. \end{document}

然后使用xelatex 编译,就得到一个中文文档了。当然里面还有很多细节要注意。

2.字体大小

在LaTeX 中可以用各种命令来改变文本字体的大小,它的实际大小和文档类的正常字体大小(即\normalsize 的大小)设置有关。在代码里,直接添加字体命令即可。

3.段落对齐

①居中对齐

在LaTeX 中,可以用center 环境得到居中的文本段落,其中可以用\\ 换行。例如:

  1. LATEX(英语发音:/ˈleɪtɛk/ LAY-tek或英语发音:/ˈlɑːtɛk/ LAH-tek,音译“拉泰赫”),是一种基于TEX的排版系统,由美国电脑学家莱斯利•兰伯特在20世纪80年代初期开发,利用这种格式,即使用户没有排版和程序设计的知识也可以充分发挥由TEX所提供的强大功能。
  2. \begin{center}
  3. 对于生成复杂表格和数学公式,这一点表现得尤为突出。
  4. \end{center}
  5. 因此它非常适用于生成高印刷质量的科技和数学类文档。这个系统同样适用于生成从简单的邮件到完整书籍的所有其他种类的文档。

②单侧对齐

可以用flushleft 和flushright 环境分别得到向左对齐和向右对齐的文本段落。例如:

  1. \begin{flushleft}
  2. LATEX(英语发音:/ˈleɪtɛk/ ),
  3. \end{flushleft}
  4. \begin{flushright}
  5. 是一种基于TEX的排版系统,
  6. \end{flushright}
  7. 由美国电脑学家莱斯利•兰伯特在20世纪80年代初期开发,利用这种格式,即使用户没有排版和程序设计的知识也可以充分发挥由TEX所提供的强大功能。

③调整页面布局

现在我们来说说如何定制页面的布局,比如正文区域的宽度和高度,和各个边距的大小。LATEX 中一般推荐用geometry 宏包来调整页面的布局。例如本文档(页面为B5 纸张大小)的页面布局就是用如下的代码设定的:

  1. \usepackage[text={125mm,195mm},centering]{geometry}

其中的geometry 包的text={width,height} 选项指明了页面正文区域的宽度和高度大小,而后面的centering 选项表示将正文区域自动居中(即上下边距相等,而且左右边距也相等)。

第三部分 如何做论文模板

本节以清华大学论文模板为例,主要是通过学习模板总结如何去做。

清华大学论文模板下载地址:https://github.com/cnblogs-/latex-model

1.ThuThesis 的主要文件及功能介绍:


thuthesis.cls和thuthesis.cfg 可由thuthesis.ins和thuthesis.dtx生成。

2.建立步骤

思想:让形式与内容分离,这也是前端的思想。

①最主要的就是写宏。

▪thuthesis模板类。按照论文要求定义字体、目录、字号、行高等等。

▪写thubib参考文献样式模板

▪thutiles.sye:包含的宏包。

②建立data文件夹用于存放文章的内容

建立figures用于存储图片

建立ref存放参考文献

③建立main.tex,调用之前写的宏,写论文,引用相应的数据到相应的区块。

  1. %%% Local Variables:
  2. %%% mode: latex
  3. %%% TeX-master: t
  4. %%% End:
  5.  
  6. \documentclass[doctor]{thuthesis}
  7. % \documentclass[%
  8. % bachelor|master|doctor, % mandatory option
  9. % xetex|pdftex|dvips|dvipdfm, % optional
  10. % secret,
  11. % openany|openright,
  12. % arialtoc,arialtitle]{thuthesis}
  13.  
  14. % 所有其它可能用到的包都统一放到这里了,可以根据自己的实际添加或者删除。
  15. \usepackage{thutils}
  16.  
  17. % 你可以在这里修改配置文件中的定义,导言区可以使用中文。
  18. % \def\myname{薛瑞尼}
  19.  
  20. \begin{document}
  21.  
  22. % 定义所有的eps文件在 figures 子目录下
  23. \graphicspath{{figures/}}
  24.  
  25. %%% 封面部分
  26. \frontmatter
  27. \input{data/cover}
  28. \makecover
  29.  
  30. % 目录
  31. \tableofcontents
  32.  
  33. % 符号对照表
  34. \input{data/denotation}
  35.  
  36. %%% 正文部分
  37. \mainmatter
  38. \include{data/chap01}
  39. \include{data/chap02}
  40.  
  41. %%% 其它部分
  42. \backmatter
  43.  
  44. % 本科生要这几个索引,研究生不要。选择性留下。
  45. \makeatletter
  46. \ifthu@bachelor
  47. % 插图索引
  48. \listoffigures
  49. % 表格索引
  50. \listoftables
  51. % 公式索引
  52. \listofequations
  53. \fi
  54. \makeatother
  55.  
  56. % 参考文献
  57. \bibliographystyle{thubib}
  58. \bibliography{ref/refs}
  59.  
  60. % 致谢
  61. \include{data/ack}
  62.  
  63. % 附录
  64. \begin{appendix}
  65. \input{data/appendix01}
  66. \end{appendix}
  67.  
  68. % 个人简历
  69. \include{data/resume}
  70. \end{document}

参考:

1.LaTex Help e-Book

2.http://zzg34b.w3.c361.com/index.htm

3.latex排版学习笔记

转载需注明转载字样,标注原作者和原博文地址。

Latex排版全解的更多相关文章

  1. Latex排版全解【转载】

    Latex排版全解 https://www.cnblogs.com/jingwhale/p/4250296.html

  2. Latex排版全解(转)

    Latex排版全解 http://blog.csdn.net/langb2014/article/details/51354238

  3. Windows下LATEX排版论文攻略—CTeX、JabRef使用介绍

    Windows下LATEX排版论文攻略—CTeX.JabRef使用介绍 一.工具介绍 TeX是一个很好排版工具,在学术界十分流行,特别是数学.物理学和计算机科学界. CTeX是TeX中的一个版本,指的 ...

  4. 易全解token获取

    //易全解app             string strClientID = "2016061711434943493606";             string str ...

  5. IOS-UITextField-全解

    IOS-UITextField-全解   //初始化textfield并设置位置及大小   UITextField *text = [[UITextField alloc]initWithFrame: ...

  6. 什么是JavaScript闭包终极全解之一——基础概念

    本文转自:http://www.cnblogs.com/richaaaard/p/4755021.html 什么是JavaScript闭包终极全解之一——基础概念 “闭包是JavaScript的一大谜 ...

  7. Sql Server函数全解<五>之系统函数

    原文:Sql Server函数全解<五>之系统函数  系统信息包括当前使用的数据库名称,主机名,系统错误消息以及用户名称等内容.使用SQL SERVER中的系统函数可以在需要的时候获取这些 ...

  8. Sql Server函数全解<四>日期和时间函数

    原文:Sql Server函数全解<四>日期和时间函数   日期和时间函数主要用来处理日期和时间值,本篇主要介绍各种日期和时间函数的功能和用法,一般的日期函数除了使用date类型的参数外, ...

  9. 九度oj题目&amp;吉大考研11年机试题全解

    九度oj题目(吉大考研11年机试题全解) 吉大考研机试2011年题目: 题目一(jobdu1105:字符串的反码).    http://ac.jobdu.com/problem.php?pid=11 ...

随机推荐

  1. .NET环境下使用水晶报表

    .NET环境下使用水晶报表 听语音 | 浏览:3280 | 更新:2013-12-20 13:36 1 2 3 4 5 6 7 分步阅读 水晶报表(Crystal Reports)-商务智能软件,通常 ...

  2. mvc手把手教你写excel导入

    实习狗的每天新知识日常 准备工作: 1.在项目中添加对NPOI的引用,NPOI下载地址:http://npoi.codeplex.com/releases/view/38113 2.NPOI学习系列教 ...

  3. Jsp&Servlet入门级项目全程实录第2讲

    惯例广告一发,对于初学真,真的很有用www.java1234.com,去试试吧! 1.导入jquery-easyui-1.3.3包( http://www.jeasyui.com/) 2.在页面导入e ...

  4. [日常] Go语言圣经前言

    https://books.studygolang.com/gopl-zh/ go语言圣经 1.Go语言有时候被描述为“C类似语言”,或者是“21世纪的C语言”. 2.Go语言中和并发编程相关的特性是 ...

  5. [日常] mysql的索引使用情况测试

    1.索引(Index)是帮助MySQL高效获取数据的数据结构,可以理解为“排好序的快速查找数据结构”,在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据, ...

  6. manven springmvc 项目中 slf4j 的配置使用(结合log4j 或者 logback)

    前言:每个maven springmvc 都应该有日志功能,SLF4J(Simple logging facade for Java)就是一种日志规范,它提供了一个共通接口,可以适配多种不同的LOG实 ...

  7. DICOM简介

    背景: DICOM分为两大类(这里只是从DICOM相关从业者日常工作角度出发来分类的):1)DICOM医学图像处理,即DCM文件中具体数据的处理,说图像可能有些狭隘,广义上还包括波形(心电).视频(超 ...

  8. Python Django migrate 报错解决办法

    1. 在现有基础上又添加一个表的时候migrate报错 migrate报错django.db.utils.OperationalError: (1050, "Table 'cmdb_eidc ...

  9. 【学习笔记】--- 老男孩学Python,day14 python内置函数大全

    参考:  https://www.cnblogs.com/pyyu/p/6702896.html http://www.runoob.com/python3/python3-built-in-func ...

  10. box-sizing 属性

    box-sizing属性可以为三个值: content-box,border和padding不计算入width之内 padding-box,padding计算入width内 border-box,bo ...