显示标签为“LaTex”的博文。显示所有博文
显示标签为“LaTex”的博文。显示所有博文

2013年1月18日星期五

LaTex支持中文的问题小结

<一>
一般的模板如果不直接支持中文,可以通过下面两个简单的步骤搞定:

1. 添加\usepackage{CJK}.

2. 在\begin{document}下面添加\begin{CJK*}{UTF8}{bsmi},在\end{document}上面添加\end{CJK*}.

这样运行就OK了。

<二>
一些小tips:

—— \begin{CJK*}{}{}后两个选项可以替换,如Ubuntu下有:
\begin{CJK*}{UTF8}{gkai}         简体 楷体
\begin{CJK*}{UTF8}{gbsn}         简体 宋体
\begin{CJK*}{UTF8}{bkai}         繁体 楷体
\begin{CJK*}{UTF8}{bsmi}        繁体 宋体

而在Windows下有:

\begin{CJK*}{GBK}{kai}         简体 楷体
\begin{CJK*}{GBK}{song}        简体 宋体

等等;

—— 如果不想每次开个tex文件都手动加这几行,可以修改document class文件如下:

1. 在你所用的模板的.cls文件中(如article.cls)找到RequirePackage这一部分,加入\RequirePackage{CJK}.

2. 找到\AtBeginDocument{XXXX},加入一行使之变成\AtBeginDocument{XXXX begin{CJK*}{UTF8}{bsmi}}.

3. 同理,将\AtEndDocument{XXXX}变为\AtEndDocument{XXXX end{CJK*}},这样以后生成文件就自动加入中文了。

<三>
上述方法在某些模板下面还是会发生问题,例如用moderncv,直接运行会提示\section神马吧啦吧啦的错误。这个时候,你需要找到moderncv.cls文件,找到关于section的这一段,看它到底干了什么,具体问题具体分析。

可能的解决途径:

—— 有的时候document class本身是没有close section的,就需要手动在.tex文件的\end{CJK*}之前加入一行\closesection.

—— 对于moderncv.cls,可供参考的解决方法是注释掉\newcommand*{\section}[1]{}里面的两句话:
\phantomsection{}
\addcontentsline{toc}{part}{#1}

类似的问题都可以这样解决。



参考文章:http://blog.csdn.net/donglin425/article/details/7714295

2012年7月25日星期三

LaTex中使用BibTex插入Reference

改论文时老板对文献格式大有意见,小菜鸟我只好折腾了一下,用比较正规的插入格式如下:

1.在文章末尾\end{document}之前加入以下三行:
\renewcommand\refname{Reference}
\bibliographystyle{plain}
\bibliography{Thesis}
其中第一行是参考文献的标题,标题是Reference;第二行是格式,还有其他格式见此处,这里用plain;第三行是一个bib格式文件的名字,最好和tex文件名称一致,编译起来方便一些。
(有一点小小要注意的地方:最常见的引用格式是plain,它是按作者字母排序的,如果要按引用顺序来排序,推荐用格式unsrt)

2.建立一个.bib文件,如Thesis.bib。如果只引用文章和书,可以用以下模板:
@book{Landau,
title = "Fluid Mechanics",
author = "L. D. Landau and E. M. Lifschitz",
publisher = "Pergamon Press, Oxford",
year = "1987"
}

@Article{Cattaneo,
author = {F. Cattaneo, T. Emonet, and N. Weiss},
journal = "Astrophys. J.",
year = {2003},
volume = {588},
pages = {1183},
}
还有其他各种格式模板见此处。

3.在.tex文件中正文里引用某些文章或书的地方加入一句\cite{},例如上面的book已经被命名为Landau,于是在引Landau这本书时就插一句\cite{Landau}.

4.运行.tex文件,生成一个.pdf文件的同时会生成.aux文件,这个.aux文件就是引用文献的关键。运行.tex文件可以在Tex编译器中,也可以用命令行pdflatex Thesis。

5.运行.bib文件,这里会用到步骤4中生成的.aux文件,所以一定要先4再5哦。运行.tex文件可以在Bib编译器中,也可以用命令行bibtex Thesis。

6.再运行两遍.tex文件。运行两遍的原因是第一遍是插入,第二遍是排序。

2012年5月30日星期三

Latex目录标题\section{}中如何换行

写论文时目录里面标题太长,却没有自动换行,撑破了版面窘窘窘。

\tableofcontent
\section{xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx}

用换行号\\是不行的,\protect\\或者\protect\linebreak或者\newline也一样没法用。

可供选择的解决办法是使用\section[xxx]{xxxxxxxxxxxxxxxxxxx}
其中中括号内是缩略标题,显示在目录;大括号内是长标题,显示在正文。

最简单的办法是检查是否用了\usepackage{hyperref}这个宏包,有用的话就用%注释掉,就OK了。