这里保存了我的 LaTeX 笔记。
LaTeX
LaTeX 是最流行的 TeX 宏包。
基本设置
我一般喜欢用 11pt 的字体,所以我的第一行是这样的:
\documentclass[a4paper,11pt]{article}
编译时加入的包:
\usepackage {graphicx} %图片支持
\usepackage {CJK} %中文支持
\usepackage {indentfirst} %使第一段的第一行缩进
\usepackage {geometry} %使我能精细调节页面布局
\usepackage {amsmath} %美国数学协会的包
图片
调整图片与图片、图片与内容的间距:
\setlength{\floatsep} {10pt plus 3pt minus 2pt}
\setlength{\textfloatsep} {12pt plus 2pt minus 2pt}
\setlength{\abovecaptionskip}{0pt}
\setlength{\belowcaptionskip}{10pt}
要加入图片时,使用浮动图形环境:
\begin {figure}
\centering %图片居中
\includegraphics[scale=x]{file name} % x 为缩放比例。e.g.: scale=0.5
\caption{一张很鸟的图片} %图片的标题,默认标在图片下方
\label{fig:bird} %交叉引用
\end{figure}
如果要产生并排的图片,可以使用 minipage 环境。
关于公式
这个基本没什么好说的,TeX 的公式太强了,强到每个人都会一点。不过这里还 是有一点小技巧。
split 环境的使用
很多人都不知道 split 是什么,lshort 里也没提到。说到产生对齐的公式,一般第一反应是用 align 环境,其实 split 比 align 更加灵活,因为它还可以嵌套在别的环境里。比如要产生两个对齐的不编号的公式,可以用
\[
\begin{split}
\imath\hbar\,\spartial{\psi_1}{t} &= U_1\psi_1+K\psi_2\\
\imath\hbar\,\spartial{\psi_2}{t} &= U_2\psi_2+K\psi_1
\end{split}
\]
把上面的 \[
和 \]
换成 equation 环境,这两个公式就是编号的。
使用 \newcommand
使用 \newcommand
指令可以节省键盘。比如上面的那个 \spartial{}{}
(simplified partial :-p) 指令就是我自己定义的,表示一个偏微分。
\newcommand{\spartial}[2] % [2]表示这个指令接受两个参数
{\frac{\partial#1}{\partial#2}}
通过这个定义,我在输入一个偏微分时节省了一半的键盘敲击次数。假如你要写 一篇关于偏微分方程的论文,这个会让你感觉倍儿爽 :-p
中文支持
CJK 宏包
曾几何时,我们一度把 TTF 的中文字体转成 Type1,然后在 CJK 包中使用…
\begin{CJK*}{GBK}{song} % 使用宋体作为缺省字体
\CJKindent % 首行缩进
\begin{document}
\CJKtilde % 让~来表示一个可以换行的小空隙
NB 的中文!!
\end{document}
\end{CJK*}
我相信很多人都和我有一样的疑问,那就是怎么临时改变字体。总不能先
\end{CJK*}
再 \begin
一个吧~\~\~
在 google 了无数次之后(真不知道怎么就没人说说这个事),我发现了改变字
体的真谛,那就是 \CJKfamily{}
指令,参数是字体的名字。比如你想变为黑
体打一行字再变回来,就要这么写:
\CJKfamily{hei}
真 tm 黑!
\CJKfamily{song}
不黑了。
Introducing XeTeX
…但是在若干年前,诞生了一种叫做 XeTeX 的神器。配合 Fontspec,它可以 让 TeX 使用操作系统里安装的字体!!…
\documentclass[a4paper]{article}
\usepackage{CJKutf8}
\usepackage{CJKulem}
\usepackage{xCJK}
\usepackage{fontspec}
\setmainfont[Mapping=tex-text]{Arno Pro}
\setCJKmainfont[BoldFont={STHeiti},ItalicFont={KaiTi}]{AR PL SungtiL GB}
\setCJKmonofont[Scale=0.9]{WenQuanYi Zen Hei}
\begin{document}
\begin{CJK*}{UTF8}{song}
...
注意如果使用 XeLaTeX,要使用 xCJK 来进行中英混排。这个宏包的数量稀少, 网上很难找到,这里提供一份。上面的代码设置英文字体为 Arno Pro (fontspec 提供的功能),中文字体为某种宋体,中文等宽字体为 WQY 正黑,同 时中文粗体为 STHeiti,中文意大利斜体为 KaiTi (xCJK + fontspec 提供的功 能)。
编译时使用 xelatex filename.tex
就行了。
-
不过遗憾的是,XeTeX 现在已经停止开发(← 此处误)。LuaTeX 提供了访问系统字体的 功能,正在发掘中…
其他设置
有些字符串是文档类里定义的,需要把它改成中文。以下是我找到的一些要改的
\renewcommand{\contentsname}{目~录}
\renewcommand{\listfigurename}{图~目~录}
\renewcommand{\listtablename}{表~目~录}
\renewcommand{\appendixname}{附~录}
\renewcommand{\abstractname}{摘~要}
\renewcommand{\refname}{参考资料} % 这个我没用过
\renewcommand{\bibname}{参~考~文~献}
\renewcommand{\figurename}{图}
\renewcommand{\tablename}{表}