9.LaTex中的浮动体
代码:
% 导言区
documentclass{ctexart} % ctexbook, ctexrep
% 浮动体
% 实现灵活分页(避免无法分割的内容产生的页面留白)
% 给图表添加标题
% 交叉引用
% figure环境(table环境与之类似)
% begin{figure}[<允许位置>]
% < 任意位置 >
% end{figure}
% <允许位置>参数(默认tbp)
% h,此处(here)——代码所在的上下文位置
% t,页顶(top)——代码所在页面或之后页面的顶部
% b,页底(bottom)——代码所在页面或之后页面的底部
% p,独立一页(page)——浮动页面
% 标题控制(caption、bicaption等宏包)
% 并排与子图表(subcation、subfig、floatrow等宏包)
% 绕排(picinpar、wrapfig等宏包)
%usepackage{ctex}
usepackage{graphicx}
graphicspath{{figures/},{pics/}} % 图片在当前目录下的 figures 目录
% 正文区(文稿区)
begin{document}
LaTeX{}中的插图:
LaTeX{}中TeX 系统的吉祥物---小狮子见图ref{fig-lion}。
begin{figure}[htbp]
centering
includegraphics[scale=0.3]{lion.jpg}
caption{TeX 系统的吉祥物---小狮子 }label{fig-lion}
end{figure}
当然,在LaTeX{}中也如以使用表ref{tab-score}所示的表格:
begin{table}[h]
centering
caption{考试成绩单}label{tab-score}
begin{tabular}{| l | c | c | c | r |}
hline
姓名 & 语文 & 数学 & 外语 & 备注
hline
张三 & 87 & 100 & 93 & 优秀
hline
李四 & 75 & 64 & 52 & 补考另行通知
hline
王二 & 80 & 82 & 78 &
hline
end{tabular}
end{table}
end{document}
效果:
10.LaTeX中的数学公式初步
代码:
% 导言区
documentclass{article} % ctexbook, ctexrep
usepackage{ctex}
usepackage{amsmath}
% 正文区(文稿区)
begin{document}
section{简介}
LaTeX{}将排版内容分为文本模式和数学模式。文本模式用于普通文本排版,数学模式用于数学公式排版。
section{行内公式}
subsection{美元符号}
交换律是 $a+b=b+a$,如 $1+2=2+1=3$。
subsection{小括号}
交换律是 (a+b=b+a),如 (1+2=2+1=3)。
subsection{math环境}
交换律是 begin{math}a+b=b+aend{math},如 begin{math}1+2=2+1=3end{math}。
section{上下标}
subsection{上标}
$3x^{20} - x + 2 =0$
$3x^{3x^{20} - x + 2 =0} - x + 2 =0$
subsection{下标}
$a_0, a_1, a_2$
$a_0, a_1, a_2, ..., a_{3x^{20} - x + 2 =0} $
section{希腊字母}
$alpha$
$beta$
$gamma$
$epsilon$
$pi$
$omega$
$Gamma$
$Delta$
$Theta$
$Pi$
$Omega$
$alpha^3 + beta^2 + gamma =0$
section{数学函数}
$log$
$sin$
$cos$
$arcsin$
$arccos$
$ln$
$sin^2 x + cos^2 x = 1$
$y = arcsin x$
$y = sin^{-1} x$
$y = log_2 x$
$y = ln x$
$sqrt{2}$
$sqrt{x^2 + y^2}$
$sqrt{2 + sqrt{2}}$
$sqrt[4]{x}$
section{分式}
大约是原体积的$3/4$。
大约是原体积的$frac{3}{4}$。
$frac{x}{x^2 + x + 1}$
$frac{sqrt{x-1}}{sqrt{x+1}}$
$frac{1}{1 + frac{1}{x}}$
$sqrt{frac{x}{x^2 + x + 1}}$
section{行间公式}
subsection{美元符号}
交换律是
$$a+b=b+a$$
如
$$1+2=2+1=3$$
subsection{中括号}
交换律是
[a+b=b+a]
如
[1+2=2+1=3]
subsection{displaymath环境}
交换律是
begin{displaymath}
a+b=b+a
end{displaymath}
如
begin{displaymath}
1+2=2+1=3
end{displaymath}
subsection{自动编号公式equation环境}
交换律见式ref{eq:commutative}
begin{equation}
a + b = b + a label{eq:commutative}
end{equation}
subsection{不编号公式equation*环境}
交换律见式ref{eq:commutative2}
begin{equation*}
a + b = b + a label{eq:commutative2}
end{equation*}
公式的编号与交叉引用也是自动实现的,大家在排版中,要习惯于采用自动化的方式处理诸如图、表、公式的编号与交叉引用。再如公式ref{eq:pol}:
begin{equation}
x^5 -7x^3 + 4x = 0 label{eq:pol}
end{equation}
end{document}
效果(部分):
11.LaTeX数学公式的矩阵
代码:
% 导言区
documentclass{ctexart} % ctexbook, ctexrep
%usepackage{ctex}
usepackage{amsmath}
newcommand{adots}{mathinner{mkern2mu%
raisebox{0.1em}{.}mkern2muraisebox{0.4em}{.}%
mkern2muraisebox{0.7em}{.}mkern1mu}}
% 正文区(文稿区)
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 & -1
1 & 0
end{bmatrix} qquad
% Bmatrix环境
begin{Bmatrix}
1 & 0
0 & -1
end{Bmatrix} qquad
% vmatrix环境
begin{vmatrix}
a & b
c & d
end{vmatrix} qquad
% Vmatrix环境
begin{Vmatrix}
a & b
c & d
end{Vmatrix} qquad
]
% 可以使用上下标
[
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、adots
[
A = begin{bmatrix}
a_{11} & dots & a_{1n}
adots & ddots & vdots
0 & & a_{nn}
end{bmatrix}_{n times n}
]
% 分块矩阵(矩阵嵌套)
[
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}
]
% 三角矩阵
[
begin{pmatrix}
a_{11} & a_{12} & cdots & a_{1n}
& a_{22} & cdots & a_{2n}
& & ddots & vdots
multicolumn{2}{c}{raisebox{1.3ex}[0pt]{Huge 0}} & & a_{nn}
end{pmatrix}
]
% 跨列的省略号:hdotsfor{<列数>}
[
begin{pmatrix}
1 & frac 12 & dots & frac 1n
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{1}{2} & 0
hline
0 & -frac a{bc}
end{array}
]
% 用array环境构造复杂矩阵
[
% @{<内容>}-添加任意内容,不占表项计数
% 此处添加一个负值空白,表示向左移-5pt的距离
begin{array}{c@{hspace{-5pt}}l}
% 第1行,第1列
left(
begin{array}{ccc|ccc}
a & cdots & a & b & cdots & b
& ddots & vdots & vdots & adots
& & a & b hline
& & & c & cdots & c
& & & vdots & & vdots
multicolumn{3}{c|}{raisebox{2ex}[0pt]{Huge 0}}
& c & cdots & c
end{array}
right)
&
% 第1行第2列
begin{array}{l}
% left.仅表示与right}配对,什么都不输出
left.rule{0mm}{7mm}right}p
left.rule{0mm}{7mm}right}q
end{array}
[-5pt]
% 第2行第1列
begin{array}{cc}
underbrace{rule{17mm}{0mm}}_m &
underbrace{rule{17mm}{0mm}}_m
end{array}
& % 第2行第2列
end{array}
]
end{document}
效果(部分):
12.LaTeX数学公式的多行公式
代码:
% 导言区
documentclass{ctexart} % ctexbook, ctexrep
% 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 &= 2sin 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
&= 2cos^2 x - 1
end{split}
end{equation}
% cases环境
% 每行公式中使用 & 分隔为两部分,
% 通常表示值和后面的条件
begin{equation}
D(x) = begin{cases}
1, & text{如果} in mathbb{Q};
0, & text{如果} in mathbb{R}setminusmathbb{Q}.
end{cases}
end{equation}
end{document}
效果:
13.LaTeX中的参考文献BibTex
代码:
% 导言区
documentclass{ctexart} % ctexbook, ctexrep
% usepackage{ctex}
usepackage{amsmath}
usepackage{amssymb}
% 正文区(文稿区)
begin{document}
% 一次管理,一次使用
% 参考文献格式:
% begin{thebibliography}{编号样本}
% bibitem[记号]{引用标志}文献条目1
% bibitem[记号]{引用标志}文献条目2
% ......
% end{thebibliography}
% 其中文献条目包括:作者,题目,出版社,年代,版本,页码等。
% 引用时候要可以采用:cite{引用标志1,引用标志2,...}
引用一篇文章cite{articlel} 引用一本书cite{book1}等等
begin{thebibliography}{99}
bibitem{articlel}陈立辉,苏伟,蔡川,陈晓云.emph{基于LaTeX的Web数学公式提取方法研究}[J].计算机科学. 2014(06)
bibitem{book1}William H. Press,Aaul A. Teukolsky, William T. Vetterling,Brian P. Flannery, emph{Numerical Recipes 3rd Edition: The Art of Scientific Computing} Cambridge University Press ,New York,2007.
bibitem{latexGuide} Kopka Helmut, W. Daly Patrick, emph{Guide to LaTeX}, $4^{th}$ Edition. Available at texttt{http://www.amazon.com}.
bibitem{latexMath} Graetzer George, emph{Math Into LaTeX}, BirkhAMuser Boston;3 edition(June 22,2000).
end{thebibliography}
end{document}
效果:
14.LaTeX中的参考文献BibLaTeX
(将来用到时再仔细学习,这里略过)
15.LaTeX中的自定义新命令和环境
代码:
% 导言区
documentclass{ctexart} % ctexbook,ctexrep
% newcommand-定义命令
% 命令只能由字母组成,不能以end 开头
% newcommand<命令>[<参数个数>][<首参数默认值>]{<具体定义>}
newcommandPRC{People's Republic of emph{China}}
% newcommand也可以使用参数
% 参数个数可以从1到9,使用时用 #1,#2,......,#9表示
newcommandloves[2]{#1 喜欢 #2}
newcommandhateby[2]{#2 不受 #1 喜欢}
% newcommand的参数也可以有默认值
% 指定参数个数的同时指定了首个参数的默认值,那么这个命令的
% 第一个参数就可以成为可选的参数(要使用中括号指定)
newcommandlove[3][喜欢]{#2#1#3}
% renewcommand-重定义命令
% 与newcommand命令作用和用法相同,但只能用于已有命令
% renewcommand<命令>[<参数个数>][<首参数默认值>]{<具体定义>}
renewcommandabstractname{内容简介}
% 定义和重定义环境
% newenvironment{<环境名称>}[<参数个数>][<首参数默认值>]
% {<环境前定义>}
% {<环境后定义>}
% renewenvironment{<环境名称>}[<参数个数>][<首参数默认值>]
% {<环境前定义>}
% {<环境后定义>}
% 为 book 类中定义摘要(abstract)环境
newenvironment{myabstract}[1][我的摘要] %
{small
begin{center}bfseries #1end{center} %
begin{quotation}} %
{end{quotation}}
% 环境参数只有<环境前定义>中可以使用参数,
% <环境后定义>中不能再使用环境参数。
% 如果需要,可以先把前面得到的参数保存在一个命令中,在后面使用:
newenvironment{Quotation}[1] %
{newcommandquotesource{#1} %
begin{quotation}} %
{parhfill--- 《textit{quotesource}》 %
end{quotation}}
% 正文区(文稿区)
begin{document}
PRC
loves{猫儿}{鱼}
hateby{猫儿}{萝卜}
love{猫儿}{鱼}
love[最爱]{猫儿}{鱼}
begin{abstract}
这是一段摘要...
end{abstract}
begin{myabstract}
这是一段自定义格式的摘要...
end{myabstract}
begin{Quotation}{易$cdot$乾}
初九,潜龙勿用。
end{Quotation}
定义命令和环境是进行LaTeX{}格式定制、达成内容与格式分离目标的利器。使用自定义的命令和环境把字体、字号、缩进、对齐、间距等各种琐细的内容包装起来,赋予一个有意义的名字,可以使文档结构清晰、代码整洁、易于维护。在使用宏定义的功能时,要综合利用各种已有的命令、环境、变量等功能,事实上,前面所介绍的长度变量与盒子、字体号等内容,大多并不直接出现在文档正文中,而主要是用在实现各种结构化的定义里。
end{document}
效果: