LaTeX排版工具使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LaTeX排版工具使用相关的知识,希望对你有一定的参考价值。

专业的论文,都是用Latex、CTex等相关的工具。那么,用word写论文,缺点在哪?

latex 写的东西,最终要编译成pdf格式的。
里面的格式,尤其是数学类符号等,比较漂亮。这是word不能比的。
latex还有一个最大的特点是,写出来的东西比较规范。
比如:要写一篇论文,它规定要按一定的格式,如果是latex,只需要使用他的一个模板,编译出来自然符合他的格式。而如果是word,那就需要每个细节都要注意到,比较麻烦。
再有,latex是免费的,word是收费的,所以,很多老外不愿意用word。
他们的格式要求,都是用latex定的,要和他们接轨,只能是使用latex。
1.WORD的图表自动编号自动编号非常弱,如果中间添加一幅图,其图号全文都得一个个改回来。latex的图表自动编号非常规范且容易修改,设好格式后就不用管了。
2.不同版 本的WORD打开格式显示都不一样,会少一些,或不能显示 一些内容 。
3.word 如果需要转换为另一种版式,需一项一项逐项修改,latex 格式与内容是分开 ,只要将新要求的格式替换,一步就搞定了。
4.word 的内容包括各种图表等各种东西,打开很慢,维护不方便,latex的代码则可以用版本控制等软件记录每次修改的内容。
5.从写论文的角度,用latex写内容会让作者让思路集中在内容上,更方便作者写出高质量的内容。用word则会让自己写一段就核一次格式,思路经常中断(个人感受)。
 
 
 

平台:Gentoo 11.2

内核版本:Linux Kernel 3.2.1

即将面临毕业,要写毕业论文,由于自己一直使用Linux,而Linux下的Office软件兼容性实在是达不到论文的要求,以前也听说过Linux下的强大的排版工具--LaTeX。这样就不会出现换台电脑格式就会发生改变,然后忙着修改论文格式的窘境。

下面安装环境,看网络上好多都是使用texlive镜像安装,我看了一下,那镜像2个多G,好大。而且通过CJK解决中文问题(现在还不是很了解)。

下面是安装XeLaTeX的步骤

在Gentoo下直接emerge即可

Gentoo下Xetex和默认安装的texlive-core是互相block的,最终方式是选择安装texlive-xetex模块

emerge texlive-xetex -av

自动解决依赖问题。

XeLaTeX可以直接解决字体的问题,直接使用系统的字体,不用像LaTeX手动生成字体。

下面是sheriden2006的中文宏包的一个配置文件(字体得自己安装,可以从网上下载,也可以直接在win下copy)

[plain] view plain copy
 
  1. % xetex/xelatex 字体设定宏包  
  2.   
  3. \ProvidesPackage{zhfontcfg}  
  4. \usepackage[cm-default]{fontspec} %[cm-default]选项主要用来解决使用数学环境时数学符号不能正常显示的问题  
  5.   
  6. \usepackage{xunicode,xltxtra}  
  7. \defaultfontfeatures{Mapping=tex-text} %如果没有它,会有一些 tex 特殊字符无法正常使用,比如连字符。  
  8. % 中文断行  
  9. \XeTeXlinebreaklocale "zh"  
  10. \XeTeXlinebreakskip = 0pt plus 1pt minus 0.1pt  
  11. %将系统字体名映射为逻辑字体名称,主要是为了维护的方便  
  12. \newcommand\fontnamehei{Microsoft YaHei}  
  13. \newcommand\fontnamesong{SimSun}  
  14. \newcommand\fontnamekai{AR PL KaitiM GB}  
  15. \newcommand\fontnamemono{DejaVu Sans Mono}  
  16. \newcommand\fontnameroman{Times New Roman}  
  17. %%设置常用中文字号,方便调用  
  18. \newcommand{\erhao}{\fontsize{22pt}{\baselineskip}\selectfont}  
  19. \newcommand{\xiaoerhao}{\fontsize{18pt}{\baselineskip}\selectfont}  
  20. \newcommand{\sanhao}{\fontsize{16pt}{\baselineskip}\selectfont}  
  21. \newcommand{\xiaosanhao}{\fontsize{15pt}{\baselineskip}\selectfont}  
  22. \newcommand{\sihao}{\fontsize{14pt}{\baselineskip}\selectfont}  
  23. \newcommand{\xiaosihao}{\fontsize{12pt}{\baselineskip}\selectfont}  
  24. \newcommand{\wuhao}{\fontsize{10.5pt}{\baselineskip}\selectfont}  
  25. \newcommand{\xiaowuhao}{\fontsize{9pt}{\baselineskip}\selectfont}  
  26. \newcommand{\liuhao}{\fontsize{7.5pt}{\baselineskip}\selectfont}  
  27. %设置文档正文字体为宋体  
  28. \setmainfont[BoldFont=\fontnamehei]{\fontnamesong}  
  29. \setsansfont[BoldFont=\fontnamehei]{\fontnamekai}  
  30. \setmonofont{\fontnamemono}  
  31. %楷体  
  32. \newfontinstance\KAI {\fontnamekai}  
  33. \newcommand{\kai}[1]{{\KAI#1}}  
  34. %黑体  
  35. \newfontinstance\HEI{\fontnamehei}  
  36. \newcommand{\hei}[1]{{\HEI#1}}  
  37. %英文  
  38. \newfontinstance\ENF{\fontnameroman}  
  39. \newcommand{\en}[1]{\,{\ENF#1}\,} 
下面是一个tex测试文件input.tex
[plain] view plain copy
 
  1. \documentclass{article}  
  2.   
  3. \usepackage{zhfontcfg}  
  4. \usepackage[colorlinks,linkcolor=black]{hyperref}  
  5. %opening  
  6. \title{latex多字体简易示例}  
  7. \author{颜开}  
  8. \begin{document}  
  9. \maketitle  
  10. \section{楷体}  
  11. \kai{楷体}  
  12. \section{黑体}  
  13. \hei{黑体}  
  14. \end{document}  
使用命令xelatex input.tex

这样就生成了input.pdf文件

 


1、latex、tex、xelatex、xetex的关系

        LaTeX 是TeX 中的一种格式(format) ,是建立在TeX 基础上的宏语言,也就是说,每一个LaTeX 命令实际上最后都会被转换解释成几个甚至上百个TeX 命令。但是,普通用户可以无需知道这中间的复杂联系。就象编程的时候如果使用一些已经编译好的函数库和模板可以使我们仅仅用几个命令就实现很多功能一样,LaTeX 根据人们排版文章的习惯,定义了许多命令和模板,通过这些命令和模板,我们可以很快的得到漂亮的排版结果。

       XeTeX(/?zi?t?x/或/?zi?t?k/[1])是一种使用Unicode的TeX排版引擎,并支持一些现代字体技术,例如OpenType。其作者和维护者是Jonathan Kew,并以X11自由软件许可证发布。它原生的支持Unicode,并默认其输入文件为UTF-8编码。XeTeX可以在不进行额外配置的情况下直接使用操作系统中安装的字体,因此可以直接利用OpenType,Graphite中的高级特性,例如额外的字形,花体,合字,可变的文本粗细等等。

       XeLaTeX是使用LaTeX的排版引擎,也有上述XeTeX的优点,命令下直接使用xelatex ***.tex就会产生对应的PDF文件。

 

2、LaTeX和”所见即所得“排版工具的比较:『摘自lshort-cn.pdf』

优点:

*提供专业级的排版设计,使你的文档开起来如同印刷好的一样。
*可以更方便地排版数学公式。
*用户仅仅需要掌握少数容易理解的,用来说明文档之逻辑结构的命令,而无须对实际的页面设计做胡乱的修补。
*可以很容易的生成脚注、索引、目录和参考文献等复杂的结构。
 *有大量免费地可添加宏集,协助你完成许多基本的 LATEX 未直接支持的排版任务。例如,支持在文档中插入 PostScript 图形的宏集和排版符合各类标准的参考文献的宏集,等等。The LATEX Companion [3]中给出了大量的宏集说明。
*LATEX 鼓励作者写作具有良好结构的文章,因为 L TEX就是通过详细地说明文章的结构来进行其排版工作的。
*TEX 作为 LATEX 的格式化引擎是免费软件,且具有极高的可移植性。因此,他几乎可以在任何硬件平台上运行。

缺点:

*对于出卖其灵魂的人来说,LATEX 不能很好的工作。
* 尽管在预先定义好的版面中可以调节一些参数,设计全新的版面还是很困难的,需要耗费大量的时间 。
*LATEX 不适合于排版非结构化的、无序的文档。
*即使有一个令人振奋的开始,但你也有可能无法完全掌握其精髓。

3、文档实例

文档中的空格和空白行:

空格和制表符都看作是space,多个连续的space视为一个space,每段开始的space被忽略。

 

 

1、首先是vim-latex插件的安装

http://vim-latex.sourceforge.net/index.php?subject=download&title=Download官方下载插件包

将其解压到~/.vim目录下,注意这里是将包文件加中的文件和文件夹放在.vim目录下。

追加~/.vimrc中

 

[plain] view plain copy
 
  1. " REQUIRED. This makes vim invoke Latex-Suite when you open a tex file.  
  2. filetype plugin on  
  3.   
  4. " IMPORTANT: win32 users will need to have ‘shellslash‘ set so that latex  
  5. " can be called correctly.  
  6. set shellslash  
  7.   
  8. " IMPORTANT: grep will sometimes skip displaying the file name if you  
  9. " search in a singe file. This will confuse Latex-Suite. Set your grep  
  10. " program to always generate a file-name.  
  11. set grepprg=grep\ -nH\ $*  
  12.   
  13. " OPTIONAL: This enables automatic indentation as you type.  
  14. filetype indent on  
  15.   
  16. " OPTIONAL: Starting with Vim 7, the filetype of empty .tex files defaults to  
  17. " ‘plaintex‘ instead of ‘tex‘, which results in vim-latex not being loaded.  
  18. " The following changes the default filetype back to ‘tex‘:  
  19. let g:tex_flavor=‘latex‘  

添加 ~/.vim/ftplugin/tex.vim中

 

 

[plain] view plain copy
 
  1. " this is mostly a matter of taste. but LaTeX looks good with just a bit  
  2. " of indentation.  
  3. set sw=2  
  4. " TIP: if you write your \label‘s as \label{fig:something}, then if you  
  5. " type in \ref{fig: and press <C-n> you will automatically cycle through  
  6. " all the figure labels. Very useful!  
  7. set iskeyword+=:  

由于我是使用xelatex编译pdf文件,然后使用evince查看pdf文件,所以需要修改~/.vim/ftplugin/latex-suite/texrc文件

 

为了简单设置所有的TexLet g:Tex_DefaultTargetFormat = ‘pdf‘

设置所有的TexLet g:Tex_ViewRule_pdf = ‘evince‘

设置TexLet g:Tex_CompileRule_pdf = ‘xelatex -interaction=nonstopmode $*‘

重启vim即可。

常用快捷键

\ll 采用xelatex编译文档
\lv 使用evince预览生成的pdf文档
F5 插入数学公式环境,主要包括eqnarray,equation,align,$$
F7 插入引用,包括footnote,cite,pageref,label
shift+F5 变更插入环境
shift+F7 变更插入引用

下面就使用上面配置的环境来测试学习。

2、交叉引用

 

[plain] view plain copy
 
  1. \section{交叉引用}  
  2.  24 This is a ref \label{sec:this} example.See section~??? on the page~\pageref{sec:this}  
技术分享

 

3、强调

 

[plain] view plain copy
 
  1. \section{强调}  
  2. 我的\emph{CSDN}博客地址:\underline{blog.csdn.net/yming0221}  

技术分享

 

4、数学公式

LaTeX最强大的功能就是编辑美丽的数学和物理等公式,你不会遇到word中公式变形或无法显示的问题,你也不会为了好的兼容性而插入一张图片来代替所要写的公式,即不方便也有伤大雅。

比如爱因斯坦的公式:

 

[plain] view plain copy
 
  1. \begin{equation}  
  2.   e=m\cdot c^2   
  3. \end{equation}  
编译结果如下:

 

技术分享



 

 

[plain] view plain copy
 
  1. \section{数学公式}  
  2.  \begin{equation}  
  3.    e=m\cdot c^2 \;  
  4.  \end{equation}  
  5.  \begin{equation}  
  6.   \sum_{1}^{n} I_k=0 \;  
  7. \end{equation}  
  8. \begin{equation}  
  9.  I_D = I_F-I_R \;  
  10. end{equation}  

编译结果:

 

技术分享

5、引号

双引号使用符号上半部分``,下半部分‘‘,单引号是上半部分`,下半部分‘

 

[plain] view plain copy
 
  1. \section{引号}  
  2. ``Please press the `x‘ key‘‘\\  
技术分享
6、破折号与连字符

[plain] view plain copy

  1. \section{破折号}  
  2. daughter-in-law\\  
  3. pages 13--67\\  
  4. yes---or no\\  
  5. 0,1 and $-1$\\  

技术分享

7、~ 

[plain] view plain copy
 
  1. \section{~}  
  2. www.csdn.net/\~{}Demo \newline  
  3. www.csdn.net/$\sim$Demo \newline  

技术分享 

 

后注:LaTeX的功能是在是太强大了,命令也实在是太多了,LaTaX的学习是循序渐进的过程,在使用过程在慢慢学习。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 LaTeX使用--基本语法

  1.LaTeX文件的框架如下:

  
  /documentclass{article}
  /begin{document}
  This is the body of the article
  /end{document}
  
  如果是中文,将/documentstyle{article}改为
  /documentstyle{carticle}
  
   第一句:/documentclass[选项]{类},确定整篇文章的处理格式,期刊或者会议论文一般可选类为article,再付上控制全局格式的选 项,比如字体、字号、页面格式、纸张大小等等。也有期刊直接提供类模板,比如 Lecture Notes in Computer Science,只要把相应的类名放到{类}里就OK了,不需要自己去费神。老版本此处使用/documentstyle。
   接下来是包含一些使用的宏包来增强功能,/usepackage{宏包},宏包包含在.sty文件中,用过的宏包有:CJK 支持中文环境;times TIMES字体;graphicx 插图;pyperref引用超链接。也有期刊提供宏包来定制格式,比如 IEEE Computer Society Press。感觉就像C语言里的#include一样为第三方提供接口。有些提供的样例文件中在documentclass的选项中添加宏包,这是与老版 本兼容。
   以上为导言区,接着余下的都是正文部分,包含在/begin{document}和/end{document}内。Latex命令的作用对象和范围和 html的标签有点类似,有开始和结束标志,开始位置内会定义一些表现格式。导言区还可能有/pagestyle{选项},页面样式,比如empty选项 表示没有页眉和页脚。导言区还有其它全局性的设置等。
   正文部分首先是文章标题/title{标题},然后是作者信息/author{作者信息}。其中作者信息多行表示,用//断行,自动居中的。多个作者用/ and连接,自动按格式分列横排或者居中竖排。接着/maketitle表示本页为标题页,以便自动格式化。
   接着是文章正文内容各部分了。摘要/begin{abstract}.../end{abstract}。章节为/section{第一层标题}, /subsection{第二层标题}。
   再后面是参考文献部分,用过两个方法。第一个方法是手工逐条在正文尾部的/begin{thebibliography}{最大条数}... /end{thebibliography}内加入“/bibitem{关键词}文献信息”,文章中引用的地方用/cite{关键词},自动按加入的顺序 编号,形如[1]。第二个方法是使用bibTex。建立一个文献数据库文件:数据库名.bib,里面有按字段填写的文献信息,以及相应的“引用关键词”。 bibTex会生成.bbl文件,其中包含引用文献具体内容,在正文末尾用/bibliography{文献数据库名}包含该文件内容,注意文献数据库名 不能包含空格。文章中引用格式同前面的方法,文献数据库中被引用的文献按格式出现在文末,未被引用的文献可以使用/nocite{关键词}来使其出现在文 末。后一种方法的好处有:一、文献数据库可以共享;二、文献的内容与表现格式分离,内容填写更清晰,也可以更好的控制格式比如文献的排列顺序。格式控制是 在导言区加入/bibliographystyle{格式名},其中格式包含在.bst文件里,可以是Latex提供的,也可以是期刊单位提供的。
   从结构上看,文章算排版结束了。下面就文章正文内容的一些细节留些注意点。
  
  插图:使用graphics宏包很方便引用.eps格式图片,个人一般图片都是Matlab绘制图片,可以直接输出eps格式。特别地,PS的eps 不行。图片一般集中放当前目录下子目录中,使用子目录在导言中用/graphicspath{{子目录名/}},这个里面的{}不能少,图片文件名被引用 时即可省略子目录名,指明.eps时效率高。
  表格:表格单元都是由内容撑起的,可以使用 /rule[起始位置]{宽度}{高度}来撑起达到预期格式。rule定义的是一个矩形,起始位置指底线与当前行基准线的距离,负值表示底线在基准线下面。
  插图、表格、公式都可以贴上各自自动编号的标签/label{关键词},引用时/ref{关键词}可以自动出现相应编号。
   文章排版好了,输出文档需要注意几点。按照导言区格式设置,编译生成dvi作为中间预览基本不会有问题,但一般都需要最终pdf输出。
  

  2.简单的规则:

  (1)空格:Latex中空格不起作用。
  (2)换行:用控制命令“//”,或“ /newline”.
  (3)分段:用控制命令“/par” 或空出一行。
  (4)换页:用控制命令“/newpage”或“/clearpage”
  (5)特殊控制字符:#,$, %, &, - ,{, }, ^, ~
   要想输出这些控制符用下列命令:
   /# /$ /% /& /- /{ /} /^{} /~{} $/blackslash$表示“ /”.。
  

  3.西文字符转换表

  
  rm 罗马字体 /it 意大利字体
  /bf 黑体 /sl 倾斜体
  /sf 等线体 /sc 小体大写字母
  /tt 打字机字体 /mit 数学斜体
  

  4.字号转换命令表

  
  点数(pt) 相应中文字号 控制命令
  25 一号 /Huge
  20 二号 /huge
  17 三号 /LARGE
  14 四号 /Large
  12 小四号 /large
  10 五号 /normalsize
  9 小五号 /small
  8 六号 /footnotesize
  7 小六号 /scriptsize
  5 七号 /tiny
  

  5.纵向固定间距控制命令

  
  /smallskip /medskip /bigskip
  

  6.页面控制命令:

  
  /textwidth=14.5cm
  /textheight=21.5cm
  
  系统默认:字号10pt= 五号字;西文字体为罗马字体;
  textwidth=12.2cm,textheight=18.6cm。相当于美国标准信纸大小。
  

  7.常见数学公式排版命令

  
  (1)行中数学公式状态命令
  
   /begin{math} 数学公式 /end{math}
  简式1: /( 数学公式 /)
  简式2: $ 数学公式 $
  
  (2)独立数学公式状态命令
  
  /begin{displaymath} 数学公式 /end{displaymath}
  
  简式1: /[ 数学公式 /]
  简式2:

  
  (三)数学公式的编辑示例
  
  数学公式中的各种字体:
  
  $$
  /begin{array}{l}
  /mathrm{ABCDEFGHIJKLMNOPQRSTUVWXYZ}//%罗马字体
  /mathtt{ABCDEFGHIJKLMNOPQRSTUVWXYZ}//%打字机字体
  /mathbf{ABCDEFGHIJKLMNOPQRSTUVWXYZ}//%黑体
  /mathsf{ABCDEFGHIJKLMNOPQRSTUVWXYZ}//%等线体
  /mathit{ABCDEFGHIJKLMNOPQRSTUVWXYZ}//%意大利字体
  /end{array}
  $$
  
  文中数学公式用$作为定界符,对于独立公式用$$作为定界符。上标用“^”,下标用“_”。 例如:
  $ x^{y^{z^{w}}}=(1+{/rm e}^{x})^{-2xy^{w}} $,
  $y_1‘+y_2‘‘+y_3‘‘‘$,
  Su$^{/rm per}_{/rm b}$script等等。
  
  数学中花体字母”/cal”命令. 例如:
  $/cal {ABCDEFGHIJKLMNOPQRSTUVW}$
  
  下面是方程环境的控制命令:方程会自动加上序号(1)....
  /begin{equation}
  0.3x+y/2=4z
  /end{equation}
  
  求和与积分命令:
  
/sumni=1xi=/int10f(x)/,/rmdx

  
/sum1/lei/len/atop1/lej/lenaij

  $/sum/limits_{i=1}^{n} x_{i}=/int_{0}^{1}f(x)/, {/rm d}x $ $/oint $
  
  数学公式中省略号:
   $/cdots /ldots /vdots /ddots $
  
  求极限的命令:
  
/limn/rightarrow/infty/sinxn=0
%n趋于无穷符号在lim正下方
  $/lim_{n /rightarrow /infty}/sin x_{n}=0$ %趋于无穷符号在lim右下角
  
  分式的排版命令:
  
x=/fracy+z/2y2+/fracyx+1

  $$a_0+/frac 1{/displaystyle a_1
   +/frac 1{/displaystyle a_2
   +/frac 1{/displaystyle a_3
   +/frac 1{/displaystyle a_4
   +/frac 1{/displaystyle {a_5}}}}}}$$
  
  根式排版命令:
  
x=/sqrt1+/sqrt1+/sqrt[n]1+/sqrt[m]1+xp

  
x/pm=/fracb/pm/sqrtb24ac2a

  
  取模命令:
  $/gcd(m,n)=a/bmod b$
  
x/equivy/pmoda+b

  
  矩阵排版命令:
  $$
  /begin{array}{clcr}
  x+y+z & uv & a-b & 8//
  x+y & u+v & a & 88//
  x & 3u-vw & abc &888//
  /end{array}
  $$
  
  $$/left ( /begin{array}{c}
  /left |/begin{array}{cc}
  a+b&b+c//c+d&d+a
  /end{array}
  /right |//
  y//z
  /end{array}/right )
  $$
  
  数学符号的修饰:
  (1)上划线命令  
/overline1+/overline1+/overlinex3  
  (2)下划线  
/underline1+/underline1+/underlinex3
  (3)卧式花括号命令
/overbracex+y+z+w  
/overbracea+b+/cdots+y+z26=/alpha+/beta  
  (4)仰式花括号命令  
a+/underbraceb+/cdots+y24+z  
  (5)戴帽命令