LaTeX常用语法及技巧
软件安装及配置
- MikTeX(tex环境,windows系统首推,轻量级,~200MB)
https://miktex.org/download - Sublime text 3(可选,编辑器,搜索sublime text配置tex)
参考资料及众多经典教程
公众号特里斯丹
回复latex教程
获取百度云下载链接。
或者在本文文末查看。
支持中文的三种方式
- 使用 ctexart 文档类(英文:documentclass)
- 使用 ctex 宏包(英文:package)
使用 ctex 宏包(推荐)
除了使用 ctexart 文档类,你可以可以选择使用 ctex 宏包,一个简单例子如下:
\documentclass{article}
\usepackage[UTF8]{ctex}
\begin{document}
你好,这是一个中文测试文档。
\end{document}
% ctex_test.tex
\documentclass[UTF8]{article}
\usepackage{ctex}
\begin{document}
这是一个CTEX的utf-8编码例子,{\kaishu 这里是楷体显示},{\songti 这里是宋体显示},{\heiti 这里是黑体显示},{\fangsong 这里是仿宋显示},{\lishu 这里是隶书显示},{\youyuan 这里是幼圆显示}。
\end{document}
使用以上代码的 LaTeX 源文件可以使用 latex,pdflatex,xelatex 或者 lualatex 命令来编译生成 PDF 文件。CTeX 开发者推荐使用 xelatex 命令编译源文件。
使用 ctexart
如果你的文章主要由中文构成,你可以考虑使用 CTeX 中的 ctexart 文档类,下面的例子展示了如何使用 ctexart 文档类来写中文文档:
\documentclass[UTF8]{ctexart}
\usepackage[T1]{fontenc}
\begin{document}
你好,这是一个测试文档。
\end{document}
使用 ctexart documentclass 时候,最好加上 \usepackage[T1]{fontenc},否则某些符号显示不正确。
使用cjk
\documentclass{article}
\usepackage{CJK}
\begin{document}
\begin{CJK}{UTF8}{kai}
支持中文
\end{CJK}
\end{document}
latex 常用单位
LaTEX常用的長度單位有:
in 英吋
mm 公吋
com 公分
pt point (1pt=0.35mm)
em M字母的寬度
ex X字母的高度
两栏
\documentclass[a4paper,twocolumn, 11pt]{article}
表格或图像的位置
\begin{figure}[<位置>]
图片
\end{figure}
位置参数指定浮动体摆放的偏好
h当前位置(here),
t顶部(top),
b底部(bottom),
p单独成页(p)
!htb为忽略美学标准,
htbp为浮动图形
插入图片、引用图片
% 首先需要引入图片包
\usepackage{graphicx} % 插入图片的包
\usepackage{float} %设置图片浮动位置的宏包
\usepackage{subfigure} %插入多图时用子图显示的宏包
% 引用图片 ~\ref{fig:my_pic}
% 加不加~会有细微空格区别:
% 不加:figure1
% 加 :figure 1
Please refer to figure~\ref{fig:my_pic}
% 插入图片
\begin{figure}[H] %H为当前位置,!htb为忽略美学标准,htbp为浮动图形
\centering %图片居中
\includegraphics[width=0.7\textwidth]{quiz1-5.png} %插入图片,[]中设置图片大小,{}中是图片文件名
\caption{Main name 2} %最终文档中希望显示的图片标题
\label{fig:my_pic} %用于文内引用的标签
\end{figure}
强制换页
\newpage
\clearpage
在两栏模式下有区别,其中clearpage会把剩下的内容都空出来,直接到下一页;
而newpage只会空出当前栏的剩余内容,在下一栏接着`
强制换行
\
\newline
\linebreak
強制換行的三種方法
居中、左、右
% 居中
\begin{center}
center information.
\end{center}
% 居左
\begin{flushleft}
left information.
\end{flushleft}
% 居右
\begin{flushright}
right information.
\end{flushright}
留白
%纵向留白, 负数表示向上留白
\vspace{3cm}
另外幾個常用的縱向空間指令如:
\bigskip(空出12pt)、
\medskip(空出6pt)、
\smallskip(空出3pt)
字体大小
\tiny 5pt
\scriptsize 7pt
\footnotesize 8pt
\small 9pt
\normalsize 10pt
\large 12pt
\Large 14pt
\LARGE 17pt
\huge 20pt
\Huge 25pt
注意使用{}限定作用范围。
字体类型
\rm (roman)
\bf (boldface)
\it (italic)
\sc (small caps)
\sf (sans serif)
\tt (typewriter)
下划线
underline
Welcome to \underline{TaiWan}
公式
两种模式:
$...$
inline模式(更紧凑,放在同一行里,方便排版)\(…\)
display模式(字体更大,更方便阅读)
上面两种都是显示在同一行中,下面两种公式单独占一行
- `$$ … $$
- `[…]
公式中间不能有空行(可以换行书写,但不能有空白行)
有编号的公式\begin{equation}
% 有编号的公式\begin{equation}
\begin{equation}
a + b = c
\end{equation}
% 第二个有编号的公式,注意,这里加了label,可以通过label引用该公式,引用方式:\ref{eq:abc1}
\begin{equation}
a + b = c\label{eq:abc1}
\end{equation}
编号多行公式eqnarray
%编号多行公式eqnarray
%& = & 表示多行公式之间,以等号为基准对齐
\begin{eqnarray}
a + b &=& c \label{eq:abc11} \\
a + b &=&c \label{eq:abc12} \\
a^2 + b^2 &=& c^2 \label{eq:abc21}\\
a + b &+&c \label{eq:abc22}
\end{eqnarray}
不编号多行公式eqnarray*
& = & 表示多行公式之间,以等号为基准对齐
%不编号多行公式eqnarray*
\begin{eqnarray*}
a + b &=& c \label{eq:abc11} \\
a + b &=&c \label{eq:abc12} \\
a^2 + b^2 &=& c^2 \label{eq:abc21}\\
a + b &+&c \label{eq:abc22}
\end{eqnarray*}
引用公式
% 引用公式
[\ref{eq:abc1}] % 显示的格式为[1]
\ref{eq:abc1} % 显示的格式为 1
公式字体大小(四种)
在數學式模式中,使用的文字大小有下列四種:
\displaystyle
\textstyle
\scriptstyle
\scriptscriptstyle
使用方法:類似改變字體方法
(1)\textstyle ……
(2){\textstyle …… }
inline模式一般使用\textstyle大小,
display模式則使用\displaystyle大小
% 改变公式大小 示例
% 正常大小模式
\[ a_0+\frac{1}{a_1+\frac{1}{a_2+ \frac{1}{a_3}}} \]
% 修改为显示大小
\[ a_0+\frac{1}{a_1+\displaystyle\frac{1}{a_2+ \displaystyle\frac{1}{a_3}}} \]
% 或者
$$ a_0+\frac{1}{a_1+\displaystyle\frac{1}{a_2+ \displaystyle\frac{1}{a_3}}}$$
公式中字符之间的空白
% 不加处理的话,会自动去除所有空格、连在一起
\[ This is an example : \frac XY \]
% 小空白、大空白
\[ This\, is\, an\, example :\; \frac XY \]
\, 小空白
\: 中空白
\; 大空白
\! 小空白(負)
方法二, \mbox在公式中插入字符描述
\[ \mbox{This is an example} : \frac XY \]
或
$$ \mbox{This is an example} : \frac XY $$
自定义公式
\not 与 \stackrel
% 自己制造新符号
% 方法一, \not
$$ x \not < y$$
$$ x \not =y$$
% 方法二, \stackrel{上面}{下面}
$$ f(x) \stackrel{def}{=}x+1$$
$$ f(x) \stackrel{defination}{=}x+1$$
$$ \sum_{\stackrel{i, j=0}{i\not = j}}{n}$$
复杂公式 示例
書寫技巧:
不用刻意寫在一行中,
可以適時地換行,
但是不要留空白行。
\[
s_{k,i}(x)
\stackrel{\triangle}{=}
\frac 1{\displaystyle\sum_{\stackrel{j=0}{j\not=1}}
(x_{k+i}-x_{k+j})}
\]
一行公式分成多行
\nonumber
去掉编号
% 一个公式分多行写
\begin{eqnarray}
|f(z)| & = & {|e^{z^2-4}-1|}^{\frac 13} \\
&\leq& {(|e^{z^2-4}|+1)}^{\frac 13} \\
& = & {(e^{x^2-y^2-4}+1)}^{\frac 13}
\end{eqnarray}
% 去掉前两个部分的编号
\begin{eqnarray}
|f(z)| & = & {|e^{z^2-4}-1|}^{\frac 13}\nonumber \\
&\leq& {(|e^{z^2-4}|+1)}^{\frac 13} \nonumber\\
& = & {(e^{x^2-y^2-4}+1)}^{\frac 13}
\end{eqnarray}
使用array写数组
两种位置方式, 表示現在行的基線對齊的位置
- [t],
- [b]
- 預設
四种对齐方式 (与tabular 一致)
- l(left)
- c(center)
- r(right)
- |行與行間的直線
% 使用方式
%% 表格
\begin{tabular} [位置] {行對齊}
...
\end{tabular}
%% array
\begin{array} [位置] {行對齊}
...
\end{array}
% 使用array实现多行公式
%實例說明:
This is an example for array.
\begin{array}[b]{lcr} % lcr 表示有三列,第一列居左对齐,第二列居中,第三列居右
0.1 & a & 1\\
0.01 & a+b & 10\\
0.001 & a+b+c & 100\\
0.0001 & a+b+c+d &1000\\
0.00001 & a+b+c+d+e &10000
\end{array}
\begin{array}[b]{rcl}
0.1 & a & 1\\
0.01 & a+b & 10\\
0.001 & a+b+c & 100\\
0.0001 & a+b+c+d &1000\\
0.00001 & a+b+c+d+e &10000
\end{array}
% 一个矩阵例子
\[
A= \left(
\begin{array}{ccc}
a_{11} & a_{12}& a_{13}\\
a_{21} & a_{22}& a_{23}\\
a_{31} & a_{32}& a_{33}
\end{array}
\right)
\]
array进阶 在矩阵中添加横线、竖线
- 横线: 可以在对齐方式中添加,如 {c|cc}
- 竖线: 可以使用 \hline 在有需要的地方添加
\[
A= \left(
\begin{array}{c|cc}
a_{11} & a_{12}& a_{13}\\
\hline
a_{21} & a_{22}& a_{23}\\
a_{31} & a_{32}& a_{33}
\end{array}
\right)
\]
另一个复杂数学式,重复使用array
\[ \left(
\begin{array}{cc}
\left( \begin{array}{cc}
a_{11}&a_{12}\\
a_{21}&a_{22}
\end{array} \right)
& B\\
B^T &
\left( \begin{array}{cc}
c_{11}&c_{12}\\
c_{21}&c_{22}
\end{array} \right)
\end{array}
\right) \]
列表(有序、无序)
参考教程:https://blog.xulihang.me/use-list-in-latex/
有序列表\begin{enumerate}[(1)]
\item [] 可以加中括号,中括号的内容会被加粗
默认标识符(最多四层):
- 1.
- (a)
- i
- A.
\begin{enumerate}
\item This is the first item
\item This is the second item
\item This is the third item
\item second
\end{enumerate}
修改有序列表序号格式
在\begin{enumerate}後面加入:
\renewcommand{\label }{ }
在 第一个空格 裡面是放想要更改的位置:
(第一層:enumi,第二層enumii,
第三層enumiii,第四層enumiv)
在 第二个空格 裡面則是放想要改的樣子:
\Romon{ }是羅馬字體大寫,
\romon{ }是小寫
\arabic{ }是阿拉伯數字
\Alph{ }是英文字母大寫,
\alph{ }是小寫
% 示例
想將第一層改為羅馬字體
大寫加(),如:(I),(II)
想將第三層改為
a.1, a.2, …
ANS:
在第一層的\begin{enumerate}後加入
\renewcommand{\labelenumi}{(\Roman{enumi})}
在第三層的\begin{enumerate}後加入
\renewcommand{\labelenumiii} {\theenumii.\arabic{enumiii}}
无序列表 \begin{itemize}
无需列表默认标识符:
- ●
- —
- *
- ‧
\begin{itemize} % 无序列表,\item 表示新字段
\item [item1] first row
\begin{itemize} % 嵌套
\item [sub item 1] 1.1 second row
\item [sub item 2] 1.2 second row
\end{itemize}
\item [item2] Whitespace at the start
of a line is generally ignored, and a
single line break is treated as ‘‘whitespace.’’.
\end{itemize}
### 还可以使用description实现无序列表
```latex
\begin{description}
\item [項目名 1] 項目1
\item [項目名 2] 項目2
.
.
.
\item [項目名 n] 項目n
\end{description}
[項目名]中的字體會以 \bf(粗體)印出,如果要更改字體可以加入變更字體的指令。
多级列表
% 多级列表
\begin{enumerate}
\item a
\item b
\begin{enumerate} % 列表里面嵌套列表
\item b.1
\item b.2
\end{enumerate}
\item c
\end{enumerate}
引用他人文章段落
引用他人文章, 前后有空行、左右有空白(每行字数变短)
有三種引用文環境:
(1)quotation
(2)quote
(3)verse
三种方式的区别:
quotation時,只是每行長度縮短,其他與平常的段落一樣,取文頭空白,遇空白行視為新段落。
quote時,不會空出文頭空白,遇空白行新段落會空出小的垂直空白。
verse時,與quote類似,只是引文區前的空白會更大
使用方式
\begin{quote}
待引用的文章
\end{quote}
verbatim原文照妖镜模式
verbatim環境是把環境中的內文原原本本絲毫不改變的印出。
用法
\begin{verbatim}
……
\end{verbatim}
包含空白與特殊符號亦不例外。不過只能使用\tt字體(typewrite)。
单行照妖镜模式
% 单行照妖镜模式 \verb+ ... +
% 两个加号中间的都照原样输出,常用于输入特殊符合
A Latin Capital Letter
\verb+\\\B Latin Capital Letter///+
定理环境
\newtheorem{name}{caption}[within]
舉例來說明:\newtheorem{thm}{Theorem}[section]
代表環境定義為:此後LaTEX在section 2看到第一個\begin{thm}…\end{thm}就知道要將此段設為Theorem 2.1,定理內容以斜體印出。
步驟一:將
\newtheorem{thm}{Theorem}[section]放在前言區
步驟二:使用定理時,輸入環境指令及定理內文
\begin{thm}
Suppose graph G=FH(n). If n is odd, ……
\end{thm}
則印出時,定理環境部分會斜體,
也可以定义多种格式、指定编号范围
如下面1行,先定义了同一个编号域 thm
接下来3行,都是在同一个thm域里面,编号累加
\newtheorem{thm}{Theorem}
\newtheorem{lemma}[thm]{Lemma}
\newtheorem{fact}[thm]{Fact}
\newtheorem{cor}[thm]{Corollary}
% 使用自定义的thm环境
\begin{thm}
This is the overall environment of theorem. It contains lemma, fact, corollary.
\begin{lemma}
lemma environment 1
\end{lemma}
\begin{lemma}
lemma environment 2
\end{lemma}
\begin{fact}
fact environment 1
\end{fact}
\begin{fact}
fact environment 2
\end{fact}
\begin{cor}
corollary environment 1 % 推论
\end{cor}
\end{thm}
定理环境的特点是,自动编号、标题大写,不止可以用于定理
\newtheorem{eg}{Example}
\newtheorem{ex}{Exercise}
\newtheorem{defi}{Definition}
\newtheorem{hw}{Problem}
表格环境: tabular
\begin{tabular}[竖向位置]{列格式}
第一行 字段一 & 第一行 字段二 & 第一行 字段三 \\
第二行 字段一 & 第二行 字段二 & 第二行 字段三 \\
第三行
\end{tabular}
- 竖向位置,表格在竖直方向上与外部文本行的相对位置,可选t(top顶部对齐)、b(bottom底部对齐),缺省值为居中
- 列格式
- 指定文本位置,l,c,r, 左中右
- 指定边界线格式, |, || 等
表格中间用 & 表示分割, \ 表示换行
表格横线
\hline表示与表格同宽的横线;
\cline{m-n}表示从m列到第n列结束的水平线
表格竖线
\vline,表示在当前位置画一条与行同高的竖线
合并相邻多列
\multicolumn{列数}{列格式}{文本内容}
附录
article里可以用\section
report里面用\chapter
% 附录
\begin{appendix}
\section{Proof of Theorem 1}
balabala 1
\section{Proof of Theorem 2}
balabala 2
\end{appendix}
参考文献
教程:https://www.cnblogs.com/yifdu25/p/8330652.html
方法一 不使用BibTeX, 自己写
格式: \bibitem[印出標記]{名字}參考資料一
其中:
- 印出标记:印出來的方式如果不設定,則預設方式是[1],[2],[3]…
- 名字:名字的使用方式是在文中加上\cite{名字}則會顯示[1]
% 参考文献
\begin{thebibliography}{99} % 99表示参考文献的最大数目为99条
\bibitem[Lamport 86]{lam}Leslie Lamport. {\it A document Prepatation System}, Addison-Wesley Pulishing Co., 1986.
\end{thebibliography}
在正文中引用参考文献的方法是:
\cite{ref1}
\cite{ref1, ref5}
这样编译后就可以得到:
[1]
[1, 5]
方法二:使用BibTeX
这种方法需要建立参考文献数据库,引用的时候调用所需要的参考文献。
BibTeX 是一种格式和一个程序,用于协调LaTeX的参考文献处理.
BibTeX 使用数据库的的方式来管理参考文献. BibTeX 文件的后缀名为 .bib . 先来看一个例子
@article{name1,
author = {作者, 多个作者用 and 连接},
title = {标题},
journal = {期刊名},
volume = {卷20},
number = {页码},
year = {年份},
abstract = {摘要, 这个主要是引用的时候自己参考的, 这一行不是必须的}
}
@book{name2,
author ="作者",
year="年份2008",
title="书名",
publisher ="出版社名称"
}
说明:
第一行@article 告诉 BibTeX 这是一个文章类型的参考文献,还有其它格式, 例如 article, book, booklet, conference, inbook, incollection, inproceedings,manual, misc, mastersthesis, phdthesis, proceedings, techreport, unpublished 等等.
接下来的”name1”,就是你在正文中应用这个条目的名称.
其它就是参考文献里面的具体内容啦.
在LaTeX中使用BibTeX
为了在LaTeX中使用BibTeX 数据库, 你必须先做下面三件事情:
1) 标记引用 (Make citations). 当你在文档中想使用引用时, 插入 LaTeX 命令
\cite{引用文章名称}
“引用文章名称” 就是前边定义@article后面的名称.
2) 告诉LaTeX生成参考文献列表,在 LaTeX 的结束前输入
\bibliography{bibfile}
这里bibfile 就是你的 BibTeX 数据库文件 bibfile.bib .
运行 BibTeX
分为下面四步
- 用LaTeX编译你的 .tex 文件 , 这是生成一个 .aux 的文件, 这告诉 BibTeX 将使用那些应用;
- 用BibTeX 编译 .bib 文件;
- 再次用LaTeX 编译你的 .tex 文件,这个时候在文档中已经包含了参考文献,但此时引用的编号可能不正确;
- 最后用 LaTeX 编译你的 .tex 文件,如果一切顺利的话, 这是所有东西都已正常了.
%例子:将上面的 BibTeX 的的例子保存为 bibtex-example.bib . \documentclass{article} \usepackage{CJK}
\begin{document}
\begin{CJK}{UTF8}{gkai}
%我是在linux下用使用latex的, window用户将上一行改为\begin{CJK}{GBK}{kai}
text\cite{name1}\cite{name2}
中文
把Latex中的 Reference 写成中文的”参考文献” %如果文档类是article之类的, 用\renewcommand\refname{参考文献}
%如果文档类是book之类的, 用\renewcommand\bibname{参考文献}
\renewcommand\refname{参考文献}
\bibliographystyle{plain}
\bibliography{ bibtex-example.bib}
\end{CJK}
\end{document}
## 参考教程:
链接: https://pan.baidu.com/s/1XG60jJ6ohZvKbUMZLZQI6Q 提取码: c1cq