TEX 学习笔记
小编本科在物理学院用过不少laTex,而今全面转向Web的同时排版工具也全面转向Markdown了。将laTex的使用心得以及大小坑记录在此以备后用。
编译器
Windows
- 安装CTEX,可很好地支持各种编译器并获得良好的中文支持。
Linux
安装 texlive。
arch: texlive-core texlive-bin texlive-langcjk texlive-latexextra
ubuntu: texlive texlive-xetex texlive-lang-cjk
Startup
安装好TEX编译器后已经使用gbsn,gkai等字体,但这些字体库不全。可以编译简单的中文:
\documentclass{article}
\usepackage{CJKutf8}
\begin{document}
\begin{CJK}{UTF8}{gkai}
我是楷体
\end{CJK}
\begin{CJK}{UTF8}{gbsn}
我是宋体
\end{CJK}
\end{document}
使用 xelatex 编译,可以方便地编译中文。首先,在导言区添加:
\usepackage[cm-default]{fontspec}
然后在文档中添加:
\setmainfont[Mapping=tex-text]{WenQuanYi Micro Hei}
%for beamer:
\setsansfont[Mapping=tex-text]{WenQuanYi Micro Hei}
为了能够在Linux中使用 windows 字体,首先拷贝字体到用户的字体库:
cp -r $win_dir/Windows/Fonts ~/.fonts/winfonts
然后更改 xelatex 字体映射:
- 打开
/usr/share/texlive/texmf-dist/tex/latex/ctex/fontset/ctex-xecjk-winfonts.def
; - 将这里指定等win字体更改为系统中存在的字体(使用 fc-list查看),如SimSun, KaiTI等
编辑器
TexMaker、TexStudio、Kile、LaTex Editor、SciTE LaTex IDE、Texlipse、LaTex Lab、JaxEdit、BaKoMa Tex Word等。以下介绍常用的几种。
WinEdt
这是CTEX默认的编辑器,功能强大;中文支持很好;有大量的CTex库 收费软件;更新困难;可配置性差;智能识别上不够方便;程序文件庞大;文档支持不好。
快捷键
- F5 编译树结构
- F9 编译
- Ctrl+Enter 自动补全
显示行号
状态栏有显示;在行首显示快捷键:Ctrl+=
自动完成
-
输入
\begin{sth} }
会自动完成\end
-
输入
\end{ {
会自动完成\begin
-
在
\begin{XXX}
后输入>
自动解决begin和end不匹配 -
输入
\ref{}
,会显示所有标签
####更改编码方式
CTEX 默认编码为System.打开UTF8时乱码解决方案:
方案一、文件开头添加
% !Mode:: "TeX:UTF-8"
方案二、Options->Preferences->Unicode->Enable UTF-8:
Format for Modes 加Tex(改为Tex;UTF-8……)
TexMaker
以及新版的 TexMakerX(即TexStudio),跨平台,界面简洁。可以自定义编译命令,实现一键编译。自动补全较强。但是依赖于后台编译器如texLive。
快捷键
自动补全 Ctrl+Space,与输入法冲突可以更改 跳转到下一个编辑块 Ctrl+Right
Kile
- Linux KDE
- 界面友好
- 文档很全
Vim、Emacs
- 纯文本编辑工具
- 易于与bash集成,使用Makefile编译
语法
字号
从小到大依次为
\tiny
\scriptsize
\footnotesize
\small
\normalsize
\large
\Large
\LARGE
\huge
\Huge
目录索引
去掉编号前多余的零
\renewcommand{\thesection}{\arabic{section}}
特殊字符
-
特殊字符用
\
转义,例如\%
-
@
字符//控制@字符的特殊含义,便于定义命令,诸如 \newcommand{\figcaption}{\def\@captype{figure}\caption} \makeatletter \makeatother
标题页
-
report中添加标题页
\thispagestyle{empty} //标题页不占页码 \maketitle
-
article中添加标题页
\thispagestyle{empty} //标题页不占页码 \maketitle \newpage
-
作者
\author{a \and b}
图表
- ps文件应编译为PDF后引入tex文件,否则文件名路径不能有多个
.
- caption中换行:
\protect\\
-
表格边框
\toprule //表格上边框 \bottonrule //表格下边框 \midrule //标题栏下边框 \hline //横穿一行的横线 \cline{m-n} //从第m列到第n列画横线 //竖线在tabular参数中用|来指定。 \textwidth为页面文字宽度 \linewidth为当前环境下允许的宽度 \minipage{.59\linewidth}之间要有间隔否则会自动换行
公式
-
数学函数
\sin //sin函数
-
分段函数
f(x)=\begin{cases} 1 & x<0 \\ -1 & n>1 \end{cases}
-
定界符:
\left.
,\right|
布局
-
页眉页脚
\usepackage{fancyhdr} \pagestyle{fancy} \lhead{} \chead{} \rhead{\bfseries The performance of new graduates} \lfoot{From: K. Grant} \cfoot{To: Dean A. Smith} \rfoot{\thepage} \renewcommand{\headrulewidth}{0.4pt} \renewcommand{\footrulewidth}{0.4pt}
-
控制页码格式
\pagenumbering{num_style} % arabic - Arabic numerals % roman - Lowercase roman numerals % Roman - Uppercase roman numerals % alph - Lowercase letters % Alph - Uppercase letters
-
空格
空格样式 | 代码 | 宽度 —|—|— 两个quad空格 |
a \qquad b
| 两个m的宽度 quad空格 | ` a \quad b| 一个m的宽度 大空格 |
a\ b| 1/3m宽度 中等空格 |
a\;b| 2/7m宽度 小空格 |
a\,b| 1/6m宽度 没有空格 |
ab| 0 紧贴 |
a!b| 缩进1/6m宽度 缩进 |
\indent` | a缩进Tab
交叉引用
定义:\label{sth}
引用:\ref{sth}
- 公式引用:
\eqref{sth}
- label应放在caption下面,否则ref标号会不正确
中文
-
间距
\begin{CJK}{GBK}{song} //英文换行,换行时默认加空格 \begin{CJK*}{GBK}{song} //中文换行,避免多余的空格 CJKtilde //重定义‘~’, 使得这个符号不再代表一个不可断行的空格, 而是一个可断行的弹性距离, 加在中文和英文之间调整它们的距离(一般是一个 CJK 字符的 1/4 大小的空格).
-
标题
\renewcommand\tablename{表} %表标题为中文而不是table \renewcommand\figurename{图}
-
日期
\renewcommand{\today}{\number\year 年 \number\month 月 \number\day 日} %\today时显示中文日期
本文采用 知识共享署名 4.0 国际许可协议(CC-BY 4.0)进行许可,转载注明来源即可: https://harttle.land/2015/05/02/tex-note.html。如有疏漏、谬误、侵权请通过评论或 邮件 指出。