Begin
检验安装
tex -v
latex -v
xelatex -v
更新
tlmgr update --all
编译
latex test.tex
生成.dvi
dvipdfmx test.dvi
转换.pdf
xelatex test.tex
直接生成.pdf
使用中文
- 将
.tex
保存为UTF-8
编码存储。 - 引入宏包
\usepackage{ctex}
XeTeX
原生支持Unicode
,并且可以方便地调用系统字体。
常用宏包
宏包 | 作用 |
---|---|
amsmath | 数学符号与公式宏包 |
amsfonts | 数学符号与字体 |
Ctex | 支持中文的排版 |
gaphicx | 插图处理 |
Xcolor | 颜色处理 |
Geometry | 版面尺寸 |
graphicx | 图像 |
Subfigure | 并排放置俩个图片 |
Fancyhdr | 自定义页眉页脚 |
Pdfpages | 插入首页 |
Verbatim | 用于注释 |
lastpage | 计算文档页数 |
booktabs | 三线表格制作 |
基本结构
% 导言区
\documentclass{article}
% book,report,letter
% ctexart,ctexbook,ctexrep,ctexbeamer
\usepackage{ctex}
\title{标题}
\author{作者}
\date{\today}
% 正文区
% 一个tex文件有且只能有一个document
\begin{document}
\maketitle
文本模式:嘤嘤嘤,\LaTeX 。
数学模式:$f(x)=3x^2+2x+5$
% 双$符号表示行间公式,单$表示行内公式
\end{document}
自带帮助文档
CTEX
texdoc ctex
简短介绍
texdoc lshort-zh
字体设置
\documentclass[10pt]{article}
% 设置normalsize 一般10-12pt
\usepackage{ctex}
% 定义新命令myfont
\newcommand{\myfont}{\textbf{\textsf{Fancy Text}}}
% 正文区
\begin{document}
% 字体族设置(罗马字体、无衬线字体、打字机字体)
\textrm{Roman Family} \textsf{Scan Serif Family}\texttt{Typewriter Family}
% \textrm等是字体命令,大括号里是作用到的文字
{\rmfamily Roman Family} {\sffamily Scan Serif Family}{\ttfamily Typewriter Family}
% \rmfamily是字体声明,后面的文字是作用到的文字
{\sffamily Who are you?you find self on everyone around.take you as the same as others!}
{\ttfamily Are you aiser than others?}
% 字体系列设置(粗细、宽度)
\textmd{Medium Series} \textbf{Boldface Series}
{\mdseries Medium Series} {\bfseries Boldface Series}
% 字体形状(直立、斜体、伪斜体、小型大写)
\textup{Upright Shape} \textit{Italic Shape}
\textsl{Slanted Shape} \textsc{Small Caps Shape}
{\upshape Upright Shape} {\itshape Italic Shape }
{\slshape Slanted Shape} {\scshape Small Caps Shape}
% 中文字体
{\songti 宋体} \quad{\heiti 黑体}\quad{\fangsong 仿宋}\quad {\kaishu 楷书}
% \quad表示空格
中文字体的\textbf{粗体}与\textit{斜体}
% 字体大小
{\tiny Hello }\\
{\scriptsize Hello }\\
{\footnotesize Hello }\\
{\small Hello }\\
{\normalsize Hello }\\
{\large Hello }\\
{\Large Hello }\\
{\LARGE Hello }\\
{\huge Hello }\\
{\Huge Hello }\\
% \\表示换行
% 中文字号设置
\zihao{5}你好!
% 使用新命令,格式与内容分离
\myfont
\end{document}
组织文章
章节和段落
在文档类 article/ctexart
中,定义了五个控制序列来调整行文组织结构。
% 小节
\section{·}
% 子小节
\subsection{·}
% 子子小节
\subsubsection{·}
\paragraph{·}
\subparagraph{·}
% \par 换行缩进
% \\ 只换行
在report/ctexrep
中,还有\chapter{·}
;在文档类book/ctexbook
中,还定义了\part{·}
。
插入目录
插入控制序列 \tableofcontents
ctexset
内容和格式分离。
\ctexset {⟨键值列表⟩}
是CTEX 宏集的通用控制命令,用来在宏包载入后控制宏包的各项功能。\ctexset
的参数是
一个键值列表,以通用的接口完成各项设置。\ctexset
的参数是一组由逗号分隔的选项列表,列表中的选项通常是一个⟨key⟩=⟨value⟩
特殊字符
- 空行分段,多个空行等同于1个。
- 自动缩进,不能使用空格代替。
- 英文中多个空格等同于1个,中文中空格被忽略。
- 汉字与其他字符的间距由XeLaTeX自动处理。
- 禁止使用中文全角空格。
\documentclass[10pt]{article}
% 设置normalsize 一般10-12pt
\usepackage{ctex}
% 正文区
\begin{document}
\section{空格的输入}
% 1em的空白
a\quad b
% 2em空白
a\qquad b
% 1/6em空白
a\,b
a\thinspace b
% 1/2空白
a\enspace b
% 空格
a\ b
% 硬空格(不可分割)
a~b
% 1pc = 12pt = 4.218mm
a\kern 1pc b
a\kern -1em b
a\hskip 1em b
a\hspace{35pt}b
% 占位宽度
a\hphantom{xyz}b
% 弹性长度
a\hfill b
\section{\ LaTex 控制符}
\# \$ \% \{ \} \~{} \_{} \^{} \textbackslash \&
\section{排版符号}
\S \P \dag \ddag \copyright \pounds
\section{\ Tex 标志符号}
\ TeX{} \ LaTeX{} \ LaTeXe{}
\section{引号}
`'
``
''
``测试''
% `表示左单引号,'表示右单引号。
\section{连字符}
- -- ---
\section{非英文字符}
\oe \OE \ae \AE \aa \AA \o \O \l \L \ss \SS !` ?`
\section{重音符号}
\`o \'o \^o \''o \~o \=o \.o \u{o} \v{o} \H{o} \r{o} \t{o} \b{o} \c{o} \d{o}
\end{document}
定界符
各种括号用 ()
, []
, \{\}
, \langle\rangle
等命令表示,注意花括号通常用来输入命令和环境的参数,所以在数学公式中它们前面要加 。因为 LaTeX 中 |
和 \|
的应用过于随意,amsmath
宏包推荐用 \lvert\rvert
和 \lVert\rVert
取而代之。
为了调整这些定界符的大小,amsmath
宏包推荐使用 \big
, \Big
, \bigg
, \Bigg
等一系列命令放在上述括号前面调整大小。
\documentclass[10pt]{article}
\usepackage{ctex}
\usepackage{amsmath}
\begin{document}
\[ \Biggl(\biggl(\Bigl(\bigl((x)\bigr)\Bigr)\biggr)\Biggr) \]
\[ \Biggl[\biggl[\Bigl[\bigl[[x]\bigr]\Bigr]\biggr]\Biggr] \]
\[ \Biggl \{\biggl \{\Bigl \{\bigl \{\{x\}\bigr \}\Bigr \}\biggr \}\Biggr\} \]
\[ \Biggl\langle\biggl\langle\Bigl\langle\bigl\langle\langle x
\rangle\bigr\rangle\Bigr\rangle\biggr\rangle\Biggr\rangle \]
\[ \Biggl\lvert\biggl\lvert\Bigl\lvert\bigl\lvert\lvert x
\rvert\bigr\rvert\Bigr\rvert\biggr\rvert\Biggr\rvert \]
\[ \Biggl\lVert\biggl\lVert\Bigl\lVert\bigl\lVert\lVert x
\rVert\bigr\rVert\Bigr\rVert\biggr\rVert\Biggr\rVert \]
\end{document}
插图
- 导言区:
\usepackage{graphicx}
- 语法:
\includegraphics[选项]{<文件名>}
\documentclass{ctexart}
\usepackage{graphicx}
\graphicspath{{img/}}
\begin{document}
\includegraphics{pic}
% 页面宽度的80%
\includegraphics[width = .3\textwidth]{pic}
% 页面高度的80%
\includegraphics[height= .3\textwidth]{pic}
% 缩放因子
\includegraphics[scale=.3]{pic}
% 固定宽度
\includegraphics[width=2cm]{pic}
% 固定高度
\includegraphics[height=2cm]{pic}
% 多个参数
\includegraphics[angle=45, width=5cm]{pic}
\end{document}
更多参数在帮助文档中查看texdoc graphicx
。
表格
符号 | 作用 |
---|---|
\\ | 表示换行 |
& | 表示不同的列 |
l | 左对齐 |
c | 居中对齐 |
r | 右对齐 |
p{<宽>} | 宽度固定,自动换行 |
\documentclass{ctexart}
\begin{document}
\begin{tabular}{l | c || p{2cm} | r |}
姓名 & 语文 & 数学 & 备注 \\
张三 & 34 & 23 & 23 \\
\end{tabular}
\begin{tabular}{l c c r}
姓名 & 语文 & 数学 & 备注 \\
张三 & 34 & 23 & 23 \\
\end{tabular}
\begin{tabular}{l c c r}
\hline
\hline
姓名 & 语文 & 数学 & 备注 \\
\hline
张三 & 34 & 23 & 23 \\
\hline
\end{tabular}
\end{document}
\begin{tabular}[<垂直对齐方式>]{<列格式说明>}
<表项> & <表项> & ... & <表项> \\
...
\end{tabular}
更多表格在帮助文档中查看texdoc booktab
,texdoc longtab
,texdoc tabu
。
浮动体
实现灵活分页,给图标添加标题,交叉引用。figure
环境(和table
环境类似):
\begin{figure}[<允许位置>]
<任意内容>
\end{figure}
htbp
选项用来指定插图的理想位置,这几个字母分别代表 here, top, bottom, float page
,也就是就这里、页顶、页尾、浮动页(专门放浮动体的单独页面或分栏)。\centering
用来使插图居中;\caption
命令设置插图标题,LaTeX 会自动给浮动体的标题加上编号。注意 \label
应该放在标题命令之后。
\documentclass{ctexart}
\usepackage{graphicx}
\graphicspath{{img/}}
\begin{document}
% 交叉引用
看不见我如图\ref{fig-pic}
\begin{figure}[htbp]
\centering
\includegraphics{pic}
\caption{我是标题}
\label{fig-pic}
\end{figure}
\begin{table}
\centering
\caption{我是表格}
\begin{tabular}{l c c r}
\hline
\hline
姓名 & 语文 & 数学 & 备注 \\
\hline
张三 & 34 & 23 & 23 \\
\hline
\end{tabular}
\end{table}
\end{document}
数学公式
常用语法
LaTeX 的数学模式有两种:行内模式 (inline) 和行间模式 (display)。前者在正文的行文中,插入数学公式;后者独立排列单独成行,并自动居中。
\documentclass{article}
\usepackage{ctex}
\usepackage{amsmath}
\begin{document}
\section{行内公式}
\subsection{美元符号}
交换律$a+b=b+a$,如$1+2=2+1$
\subsection{小括号}
交换律\(a+b=b+a\),如\(1+2=2+1\)
\subsection{math环境}
交换律
\begin{math}
a+b=b+a
\end{math}
\section{上下标}
\subsection{上标}
$2x^2+3x+5=6$
\subsection{下标}
$a_0,a_1,a_{100}$
\section{希腊字母}
$\alpha$
$\beta$
$\gamma$
$\epsilon$
$\pi$
$\omega$
$\Gamma$
$\Delta$
$\Theta$
$\Pi$
$\Omega$
$\alpha^3 + \beta^2 + \gamma = 0$
\section{数学函数}
$\log$
$\sin$
$\cos$
$\arccos$
$\arcsin$
$\ln$
$\sin^2x+\cos^2x=1$
$\sqrt{2}$
$\sqrt{x^2+y^2}$
$\sqrt{2+\sqrt{2}}$
$\sqrt[4]{x}$
\section{分式}
大约是原体积的$3/4$
大约是原体积的$\frac{3}{4}$
\section{行间公式}
\subsection{双\$}
$$2x^2+5x+3=6$$
\subsection{中括号}
\[a+b=b+a\]
\subsection{displayment}
\begin{displaymath}
2x^2+5x+3=6
\end{displaymath}
\subsection{自动编号公式}
交换律见式\ref{eq:commutative}
\begin{equation}
a+b=b+a \label{eq:commutative}
\end{equation}
\subsection{不带自动编号公式}
\begin{equation*}% 需要使用\usepackage{amsmath}
a+b=b+a
\end{equation*}
\end{document}
多行公式
\documentclass{ctexart}
%\usepackage{ctex}
\usepackage{amsmath}
\usepackage{amssymb}
\begin{document}
% gather 和 gather* 环境 (可以使用\\换行)
% 带编号
\begin{gather}
a + b = b + a \\
ab ba
\end{gather}
% 不带编号
\begin{gather*}
3+5 = 5+3 = 8 \\
3 \times 5 = 5 \times 3
\end{gather*}
% 在\\前使用\notag 阻止编号
\begin{gather}
3^2 + 4^2 = 5^2 \notag \\
5^2 + 12^2 = 13^2 \notag \\
a^2 + b^2 = c^2
\end{gather}
% align 和 align* 环境 (用 & 进行对齐)
% 带编号
\begin{align}
x &= t + \cos t + 1 \\
y &= 2\sin t
\end{align}
% 不带编号
\begin{align*}
x &= t & x &= \cos t & x &= t \\
y &= 2t & y &= \sin(t+1) & y &= \sin t
\end{align*}
% split 环境(对齐采用 align 环境的方式,编号在中间)
\begin{equation}
\begin{split}
\cos 2x &= \cos^2 x - \sin^2 x \\
&= 2\cos^2 x - 1
\end{split}
\end{equation}
% cases 环境
% 每行公式中使用 & 分隔为两部分,
% 通常表示值和后面的条件
\begin{equation}
D(x) = \begin{cases}
1, & \text{如果 } x \in \mathbb{Q}; \\
%\in 用于输出属于符号 mathbb用于输出花体字符 \text{} 用于在数学模式中输入中文
0, & \text{如果 } x \in \mathbb{R}\setminus\mathbb{Q}.
\end{cases}
\end{equation}
\end{document}
矩阵
\documentclass{ctexart}
% \usepackage{ctex}
\usepackage{amsmath}
\begin{document}
% 矩阵环境,用&分隔列,用\\分隔行
\[
\begin{matrix}
0 & 1\\
1 & 0
\end{matrix} \qquad
% pmatrix环境 加小括号
\begin{pmatrix}
0 & -i\\
i & 0
\end{pmatrix} \qquad
% bmatrix环境 加中括号
\begin{bmatrix}
0 & -i\\
i & 0
\end{bmatrix} \qquad
% Bmatrix环境 加大括号
\begin{Bmatrix}
0 & -i\\
i & 0
\end{Bmatrix} \qquad
% vmatrix环境 加单竖线
\begin{vmatrix}
0 & -i\\
i & 0
\end{vmatrix} \qquad
% Vmatrix环境 加双竖线
\begin{Vmatrix}
0 & -i\\
i & 0
\end{Vmatrix}
\]
% 可以使用上下标
\[
A = \begin{pmatrix}
a_{11}^2 & a_{12}^2 & a_{13}^2 \\
0 & a_{22} & a_{23} \\
0 & 0 & a_{33}
\end{pmatrix}
\]
% 常用省略号:\dots,\vdots,\ddots
\[
A = \begin{pmatrix}
a_{11} & \dots & a_{1n} \\
& \ddots & \vdots \\
0 & & a_{mn}
\end{pmatrix}_{n \times n}
% 数学模式中times命令排版乘号
\]
% 分块矩阵(矩阵嵌套)
% text命令在数学模式中临时切换到文本模式
\[\begin{pmatrix}
\begin{matrix}
1&0\\0&1
\end{matrix}
& \text{\Large 0}\\
\text{\Large 0}&\begin{matrix}
1&0\\0&1
\end{matrix}
\end{pmatrix}
\]
% 三角矩阵
% multicolumn合并多列
% raisebox调整高度
\[\begin{pmatrix}
a_{11}&a_{12}&\cdots&a_{ln}\\
&a_{22}&\cdots&a_{2n}\\
& &\dots &\vdots \\
\multicolumn{2}{c}{\raisebox{1.3ex}[0pt]{\Huge 0}}
& &a_{nn}
\end{pmatrix}
\]
% 跨列省略号:\hdotsfor{<列数>}
\[
\begin{pmatrix}
1&\frac 12 &\dots &\frac ln \\
\hdotsfor{4}\\
m&\frac m2& \dots &\frac mn
\end{pmatrix}
\]
% 行内小矩阵(smallmatrix)环境
复数$z=(x,y)$也可以用矩阵
\begin{math}
\left(% 需手动加上左括号
\begin{smallmatrix}
x & -y \\ y & x
\end{smallmatrix}
\right)% 需手动加上右括号
\end{math}来表示。
% array环境(类似表格环境tabular)
\[
\begin{array}{r|r}
\frac 12&0\\
% 或者\frac {1}{2}来区分分子分母
\hline
0 & -\frac abc\\
\end{array}
\]
% 用array环境构造复杂矩阵
% 省略
\end{document}
化学式
代码
引用代码
代码高亮
算法结构
参考文献排版
BibTex
一次管理一次使用
\documentclass{ctexart}
%\usepackage{ctex}
\bibliographystyle{plain}
% 指定排版样式 如plain unsrt alpha abbrv
\begin{document}
引用一篇文章\cite{article1},引用一本书\cite{book1}
\begin{thebibliography}{99}
\bibitem{article1}马化腾,雷军,李彦宏,张一鸣.\emph{基于LaTex的Web数学公式提取方法研究}[J].计算机科学.2014(06)
\bibitem{book1}Andy H,Bob,Cat,\emph{what does the fox say}
\end{thebibliography}
\end{document}
一次管理多次使用
- 在构建中设置默认文献工具为BibTex。
- 在谷歌学术中点击引用链接获取BibTex格式的引用数据。
- 新建
.bib
后缀的文件,复制到该参考文献数据库中。
\documentclass{ctexart}
%\usepackage{ctex}
\bibliographystyle{plain}
% 指定排版样式 如plain unsrt alpha abbrv
\begin{document}
这是一个参考文献的引用:\cite{scott1988social}
\bibliography{t}
\end{document}
t.bib
文件:
@article{scott1988social,
title={Social network analysis},
author={Scott, John},
journal={Sociology},
volume={22},
number={1},
pages={109--127},
year={1988},
publisher={British Sociological Association Publications Limited}
}
- 更多参考文献排版可以使用
natbib
宏包。 - 对于参考文献数据库文件,可以使用JabRef软件进行可视化管理。
BibLaTeX
BibLaTeX和biber宏包是新的TeX参考文献排版引擎。
参考文献样式文件.bbx
引用样式文件.cbx
自定义命令和环境
\documentclass{ctexart}
% \newcommand{cmd}{def}定义命令
% 命令只能由字母组成,不能以\end 开头
% \newcommand{命令}[参数个数][首字母默认值]{具体定义}
% \newcommand可以是简单字符串替代,例如:
% 使用\PRC 相当于 People's Republic of \emph{China} 这一串内容
\newcommand\PRC{People's Republic of \emph{China}}%\emph{text}表示强调
% \newcommand也可以使用参数
% 参数个数可以从1到9,使用时用 #1,#2,……,#9 表示
\newcommand\loves[2]{#1 喜欢 #2}
\newcommand\hatedby[2]{#2 不受 #1 喜欢}
% \newcommand的参数也可以有默认值
% 指定参数个数的同时指定了首个参数的默认值,那么这个命令的
% 第一个参数就成为可选的参数(要使用中括号指定)
\newcommand\love[3][喜欢]{#2#1#3}
% \renewcommand重定义命令
% 与\newcommand命令作用和用法相同,但只能用于已有命令
% \renewcommand<命令>[<参数个数>][<首参数默认值>]{<具体定义>}
\renewcommand\abstractname{内容简介}
% 定义和重定义环境
% \newenvironment{<环境名称>}[<参数个数>][<首参数默认值>]
{<环境前定义>}
{<环境后定义>}
% \renewenvironment{<环境名称>}[<参数个数>][<首参数默认值>]
{<环境前定义>}
{<环境后定义>}
% 为 book 类中定义摘要(abstract) 环境
\newenvironment{myabstract}[1][摘要]%
{\small
\begin{center}\bfseries #1\end{center}%
\begin{quotation}}%
{
\end{quotation}
}
\begin{document}
\PRC
\loves{猫儿}{鱼}
\hatedby{猫儿}{萝卜}
\love{猫儿}{鱼}
\love[最爱]{猫儿}{鱼}
\begin{abstract}
这是一段摘要...
\end{abstract}
\begin{myabstract}[我的摘要]
这是一段自定义格式的摘要...
\end{myabstract}
\end{document}
数据与排版分离
使用datatool
宏包读取CSV数据,booktabs
宏包绘制三线表,databar
绘制统计图。
版面设置
页边距
设置页边距,推荐使用 geometry
宏包。
将纸张的长度设置为 20cm、宽度设置为 15cm、左边距 1cm、右边距 2cm、上边距 3cm、下边距 4cm,可以在导言区加上这样几行:
\usepackage{geometry}
\geometry{papersize={20cm,15cm}}
\geometry{left=1cm,right=2cm,top=3cm,bottom=4cm}
页眉页脚
在页眉左边写上作者,中间写上今天的日期,右边写上电话;页脚的正中写上页码;页眉和正文之间有一道宽为 0.4pt 的横线分割,可以在导言区加上如下几行:
\usepackage{fancyhdr}
\pagestyle{fancy}
\lhead{\author}
\chead{\date}
\rhead{152xxxxxxxx}
\lfoot{}
\cfoot{\thepage}
\rfoot{}
\renewcommand{\headrulewidth}{0.4pt}
\renewcommand{\headwidth}{\textwidth}
\renewcommand{\footrulewidth}{0pt}
首行缩进
CTeX 宏集已经处理好了首行缩进的问题(自然段前空两格汉字宽度)。
行间距
通过 setspace
宏包提供的命令来调整行间距。比如在导言区添加如下内容,将行距设置为字号的 1.5 倍:
\usepackage{setspace}
\onehalfspacing
段间距
通过修改长度 \parskip
的值来调整段间距。例如在导言区添加以下内容:
\addtolength{\parskip}{.4em}
分页断行
导言区单独设置格式
参考链接:
- https://www.bilibili.com/video/BV15x411j7k6
- https://zhuanlan.zhihu.com/p/108779897
- https://liam.page/2014/09/08/latex-introduction/
- https://wdblink.github.io/2018/07/25/LaTeX%E9%9B%B6%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B/
- https://geminiplanet.cn/LaTeX%E5%9F%BA%E6%9C%AC%E6%93%8D%E4%BD%9C/
- https://www.bilibili.com/video/BV1s7411U7Pr
版权属于:moluuser
本文链接:https://archive.moluuser.com/archives/75/
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。
良心笔记,赞了
你的留言板不能兼容windows的表情包,就是win10输入法的表情 ,删了表情果然能留言了
网站不错,你真棒
相互学习啦~