1 Recognize \(\LaTeX\)
通过更换文档类型,可以正确显示中文。
1 | % English environment, can't display chinese |
1.1 从一个例子说起
1 | % -*- coding:UTF-8 -*- |
整个文章的框架为:
- 前面以百分号
%
开头的行是注释,TeXStudio 中的多行注释快捷键为ctrl
+T
,取消多行注释快捷键为ctrl
+U
- 第 4 行是文档类,中文短文所以使用 ctexart,并用 [UTF8] 说明编码
- 第 6-8
行声明了整个文章的标题、作者和写作日期,这些信息通过
\maketitle
出现在排版中 \bibliographstyle
声明参考文献的格式
以上\begin{document}
之前的部分为导言区(preamble),导言区用来对文档的性质做一些设置,或自定义一些命令
\begin{document}
和\end{document}
声明了一个 document 环境,里面是论文的正文部分,也就是直接输出的部分。\tableofcontents
命令输出目录\bibliography{math}
提示 \(\TeX\) 从文献数据库 math 中获取文献信息,打印参考文献列表为了格式上的清晰,源文件中适当使用了一些空行作为分隔,在正文外的部分,空行不表示任何意义。
通常汉字后的空格会被忽略,其他符号后面的空格会被保留
1.2 Command and Enviroment
Command
\footnote
:脚注\emph{Text}
:强调\zihao{number}
:字号\qquad
:产生2 em
(大约 2 个 ’M‘ 的宽度)的空白
Environment
格式为
1
2
3\begin{envi name}
< content >
\end{envi name}quote
:引用环境abstract
:摘要环境euqation
:公式环境
特殊环境
1
2
3
4
5
6
7
8\newtheorem{thm}{定理}
\begin{thm}[勾股定理]
直角三角形斜边的平方等于两腰的平方和。
可以用符号语言表述为……
\end{thm}
1.3 graph
\includegraphics[width]{pic_dir}
:插图
1 | \begin{center} |
插入的图形就是一个有内容的矩形盒子,在正文中和一个很大的字符没有区别。除了一些很小的标志图形,一般很少把插图直接夹在文字之中,而是使用可以变动相对位置的环境列出,称为浮动体(float)
1.4 Table
表格与\includegraphics
命令得到的插图一样,都是比较大的盒子。一般也放在浮动环境table
中
1 | % 参数 H 表示 ‘就放在这里,不浮动’,需要 \usepackage{float} |
tabular
环境有一个参数,里面声明了表格中列的模式:
|c|c|c|
:三列,居中对其,不同列数据用表格线隔开\\
:表格换行,内部不同数据单元用&
分隔\hline
:横向表格线
上表和正文是直接连在一起,不允许浮动,这里本来不应该使用浮动table
环境的,但仍然使用了table
环境,在表示位置的参数处使用了[H]
,表示
“就放在这里,不浮动”,该参数是
float
宏包提供的功能,需要在导言区使用\usepackage{float}
。
1.5 Bibliography
BibTeX 是专用于处理 $ $
文档文献列表的程序,此时编译test.tex
文档时运行程序四次:
- xelatex test.tex
- bibtex test.tex
- xelatex test.tex
- xelatex test.tex
正文中通过用命令\cite{label}
引用文献,使用\cite
命令会在引用的位置显示文献在列表中的编号,同时在辅助文件中说明文献将被引用。
如果要在列表中显示并不直接引用的文献,可以使用\nocite
命令,一般是放在\bibliography{name}
之前
引用不仅局限于文献,图表、、公式的编号,只要事先设定了
label,同样可以通过\ref
进行引用。实际中引用公式非常常用,数学宏包
amsmath
就定义了\eqref
命令,专用于公式的引用,并能产生括号。
1.6 设计文章格式
- 设计页面尺寸可以使用
geometry
宏包
1 | \usepackage{geometry} |
- 改变图表标题格式可以使用
caption
宏包
1 | \usepackage[format=hang,font=small.textfont=it]{caption} |
- 增加目录的项目可以用
tocbibind
宏包
1 | \usepackage[nottoc]{tocbibind} |
- 标题和作者的字体更改:
1 | \title{\heiti 杂谈勾股定理} % 黑体 |
- 修改
quote
环境字体
1 | \newenviroment{myquote} |
取消连字(ligature)
\(\LaTeX\) 在排版中会将单词中的一些字母连写为一个字符,连字的有无和多少一般由使用的字体决定,偶尔出于美观的考虑,需要取消连字,可以用空的分组,或借用
\/
命令:1
shelfful shelf{}ful shelf\/ful
2 Organize article
2.1 标点
引号 `
和
'
引号在 \(\LaTeX\) 中使用 `
(左引号)或
'
(右引号 表示,如果遇到单引号和双引号连续出现的情况,则在中间用\
,命令分开:1
``\,`a' and `b'\,''
\
, 命令会产生很小的间隔减号
-
-
在 \(\LaTeX\) 正文中有多种用途-
:连字符(hyphen)--
: en dash,用来表示数字范围,但按照中文的协作习惯,表示数字范围也常用符号:\(\sim\)---
:em dash,即破折号1
2
3
4
5n inter-word dash or, hyphen, as in X-ray.
An medium dash for number range, like 1--2.
A punctuation dash---like this.
省略号
\ldots
和\dots
西文的省略号(ellipsis)使用
\ldots
和\dots
命令产生,相比直接输入三个句号,它所拉开的间距要合理的的:Good: One, twe, three\(\dots\)
Bad: One, two, three...
西文的省略号在句中时,前后都需要加空格,而在句末时应该使用 4 个点。由于
\ldots
本身的后面也有间距,通常将其放入数学模式中,避免前后间距不一1
2She $\ldots$ she got it
I've no idea \ldots不能直接录入的标点符号:
~, #, $, %, ^, &, {, }, _, , x
1
\# \quad \$ \quad \% \quad \& \quad \{ \quad \} \quad \_ \quad \textbackslash \times
可以使用没有字母的重音
\~{}
和\^{}
输出~
和^
,但着连个符号一般不直接出现在普通正文中标点格式
\(\LaTeX\) 并不会自动处理号汉字标点的宽度和间距,甚至不能保证标点的禁则(如娟红不允许出现在一行的开始)。
中文标点一般由
xeCJK
宏包控制,其提供了多种标点格式,默认时全角式,即所有标点占一个汉字宽度,只在行末和个别标点之间进行挤压。还支持其他一些标点格式,可以使用
\punctstyle
命令修改:1
2
3
4
5
6
7
8
9\punctstyle{quanjiao} 全角式,所有标点全角,有挤压。例如,“标点挤压”。又如《标点符号用法》。
\punctstyle{banjiao} 半角式,所有标点半角,有挤压。例如,“标点挤压”。又如《标点符号用法》。
\punctstyle{kaiming} 开明式,部分的标点半角,有挤压。例如,“标点挤压”。又如《标点符号用法》。
\punctstyle{hangmobanjiao} 行末半角式,仅行末挤压。例如,“标点挤压”。又如《标点符号用法》。
\punctstyle{plain} 无格式,只有禁则,无挤压。例如,“标点挤压”。又如《标点符号用法》。
2.2 空格和换行
文本中的空格起分割单词的作用,任意多个空格与一个空格的功能相同;只有字符后面的空格式有效的,每行最前面的空格则会被忽略,这样有利于复杂代码的对其,单个换行也被视作一个空格。
带空格的宏
以字母命名的宏,后面空格会被忽略。如果要在命令后面使用空格,可以在空格前加
\
带子
~
有一种不可打断的空格,在 \(\TeX\) 中被称为带子(tties),用
~
表示。\(\TeX\) 禁止在这种空格之间分行,因而可以用来表示一些不宜分开的情况1
2
3
4
5Question~1 %名称与编号之间
Donald~E. Knuth % 教名之间,但姓可以断行
Mr. Knuth % 称谓缩写与名字间
function~$f(x)$ % 名字后的短公式
1,~2, and ~3 % 序列的部分符号间幻影(phantom)
\phantom
有一个参数,作用是产生于参数内容一样大小的空盒子,没有内容,就像是参数的一个幻影一样,用来完成一些特殊的展位和对齐效果。1
2幻影\phantom{参数}快速隐形
幻影参数快速隐形类似的还有
\hphantom
和\vphantom
,分别表示水平方向和垂直方向的幻影(另一个方向大小为零)分段
通常用两个换行表示分段,段与段之间会自动得到何使的缩进。
分段也可以用
\par
命令生成,这种用法一般只在命令或环境定义的内部使用,普通正文中不宜出现。另起一行不分段:
\\
命令直接另起一行,上一行保持原来的样子;该命令可以带一个可选的长度参数,表示换行后增加的额外垂直间距,如\\[2cm]
。如果\\
后面需要使用方括号,则应加空的分组以示分隔。\linebreak
指定一行的断点,上一行仍按完整一行分散对齐。可以带一个 0-4 的可选参数,表述允许断行的程度:0 表示允许断行,默认的 4 表示必须断行;类似的,也有一个\nolinebreak
命令,参数意义与\linebreak
相反。1
2
3
4
5
6
7
8这是一行文字\\ 另一行
这是一行文字\\{}[] 另一行
这是一行文字\\[1em] 另一行
这是一行文字\linebreak 另一行
这是一行文字\linebreak[4] 另一行\\
一般用在特殊环境中,如排版诗歌的verse
环境,特别是在对齐、表格和数学公式中使用广泛,很少出现在普通正文中。
西文句末
西文的标点后面都会加空格,这可以保证正确的间隔,也能保证正确的换行。
\(\LaTeX\) 在西文句末(包括句号、问好和感叹号)后面使用的距离比单词间的距离大些。\(\LaTeX\) 默认把大写字母后的点看作缩写标记,把小写字母后的点看作式句子结束,并对它们使用不同的间距。
偶尔也会有大写字母结束的句子,或小写字母的缩写,这是必须明确告诉 \(\LaTeX\) 使用普通单词间的空格(空格前加
\
),或使用\@.
指明式大写字母后的句末。1
2
3
4A sentence, And anotehr.
U.S.A. means United States Army?
Tinker et al.\ mad the double play.
Roman number XII\@. Yes.- 有时也需要整体禁止这种标点后的不同间距,法语排版的习惯就是如此,此时可以使用
\frenchspacing
命令来禁止标点后的额外间距。
- 有时也需要整体禁止这种标点后的不同间距,法语排版的习惯就是如此,此时可以使用
中英文混排
汉字后的空格会被忽略,使用
xelatex
编译中文文档时,汉字和其他内容之间如果没有空格,xeCJK
宏包会自动添加。个别时候需要忽略汉字和其他内容之间由xeCJK
产生的空格,这是可以把汉字放进一个盒子里:1
\mbox{条目}-a 不同于条目-b
有时需要完全禁用汉字和其他内容之间的空格,这是可以使用
CJKsetecglue
手工设置汉字与其他内容之间的内容为空(默认为一个空格)。
2.3 字体
更改字体
\(\LaTeX\)提供了带参数和命令、字体声明两种修改字体的命令,前者用于少量字体的更换,后者用于分组或环境中字体的整体更换。
1
2\textit{Italic font test} % 少量字体的更换
{\bfseries Bond font test} % 分组或环境中字体的整体更换Result:
\(\LaTeX\) 预定义命令中的字体信息如下:
fig. 4-1 预定义命令中的字体信息
fig. 4-2 字体坐标:族、形状和系列
字体恢复默认
除了上面列举的字体命令,还有
\textnormal{<text>}
和\normalfont
命令,用来将字体设置为 ”普通“的格式,默认为\rmfamily \mdseries \upshape
。普通字体适用于复杂的字体环境中恢复普通的字体,尤其是在宏定义这类不知道外部字体设置的情况下,如:
1
{\sffamily\textbf{This is a paragraph of bold and \textit{italic font, sometimes returning to \textnormal{normal font} is necessary.}}
Result:
斜体倾斜校正
使用斜体声明
\itshape
、slshape
时,最后一个倾斜的字母会超出边界,使得后面的文字与它相距过紧,而使用带参数的命令\textit
、\textsl
可以自动修正距离,也可以手工使用\/
命令进行这种倾斜校正(italic correction),会在字母后面加上一个小的距离,如:1
2
3
4{\itshape M}M
\textit{M}M
{\itshape M\/}M
\textit{M\nocorr}M % 取消倾斜校正Result:
很少情况下,
\textit
自动加入的倾斜校正时不必要的,此时可以使用\nocorr
命令禁止校正。中文字体
中文字体通常没有西文字体那样复杂的成套的 变体,各个字体之间一般都是独立的。对于中文字体,一般只使用不同的字体族进行区分。
xeCJK
和CJK
宏包机制下, 中文字体的选择命令和西文字体是份力的,选择中文字体用\CJKfamily
命令,如:1
2{\CJKfamily{zhehei}这是黑体}
{\CJKfamily{zhkai}这是楷书}在
ctex
宏包及文档类下有一些预定义,在默认情况下(winfonts 选项)针对 Windows 常用字体配置了的四种字体族:zhsong(宋体)、zhhei(黑体)、zhkai(楷书)、zhfs(仿宋)。为了方便使用,ctex
提供了简化的命令:1
{\songti 宋体} \quad {\heiti 黑体} \quad {\fangsong 仿宋} \quad {\kaishu 楷书}
组合字体
ctex
宏包及文档类(如ctexart
)另外定义了一些组合字体,可以让中文也具备使用粗体(\bfsereies
)和意大利体(\itshape
)的功能。默认中文字体族为 rm,其正常字体是宋体,粗体是黑体,意大利体是楷体。类似的,
\sffamily
(对应 sf 中文字体族)和\ttfamily
(对应 tt 中文字体族)也可以同时用作西文和中文,分别相当于幼圆和仿宋体。1
2
3{\rmfamily \textbackslash rmfamily 中文字体族下,正常字体是宋体,其\textbf{粗体}与\textit{斜体}。}
{\sffamily \textbackslash sffamily 中文字体族下,正常字体是幼圆,其\textbf{粗体}与\textit{斜体}。}
{\ttfamily \textbackslash ttfamily 中文字体族下,正常字体是宋体,其\textbf{粗体}与\textit{斜体}。}修改默认字体
通过fontspec 宏包的机制来调用字体,最基本的是设置正文罗马字体族、无衬线体字族和打字机字体族的命令:
\setmainfont[<可选选项>]\{<字体名>\}
\setsansfont[<可选选项>]\{<字体名>\}
\setmnonofont[<可选选项>]\{<字体名>\}
1
2
3
4
5% 设置全文字体为 Windows 提供的 Timees New Roman, Verdana, Courier New 字体
\usepackage{fontspec}
\setmainfont{Times New Roman}
\setsansfont{Verdana}
\setmonofont{Courier New}此时
\rmfamily
,\sffamily
,\ttfamily
就分别对应设置的三种字体,而且fontspec
宏包会自动找到并匹配对应的粗体、斜体等编题,尽量使\bfseries
,\itshap
等命令也有效。除此之外,还可以定义新的字体族命令:
\newfontfamily<命令>[<可选选项>]{<字体命>}
1
2
3
4
5% preamble
\newfontfamily\lucidasans{Lucida Sans}
% 正文
{\lucidasans This is Lucida Sans.}xeCJK
宏包(ctex
宏包或文档类会自动调用)提供了与fontspec
对应的中文字体设置命令
\setCJKmainfont[<可选选项>]\{<字体名>\}
\setCJKsansfont[<可选选项>]\{<字体名>\}
\setCJKmonofont[<可选选项>]\{<字体名>\}
\setCJKfamilyfont[<可选选项>]\{<字体名>\}
2.4 强调文字
\emph{}
and\em
1
2
3
4
5
6
7
8
9\begin{itemize}
\item 命令形式:
You \emph{should} use fonts carefully.
% 常使用意大利体表示夹在正文中的强调句
\textit{You \emph{should} use fonts carefully.}
% 常使用正文夹在意大利体中表示强调
\item 声明形式:
This is {\em emphasized\/} text
% \/ 为斜度校正Result:
重新定义
\Emph
命令有时仍然使用大写、小型大写或粗体进行更醒目的强调,此时可以定义一个新的
\Emph
命令:1
2\newcommand\Emph{\textbf} % bold
This is \Emph{emphasized} text.Result:
\underline
1
\underline{Emphasized} text and \underline{another}.
Result:
\underline
的一个很大确定是下划线部分不能换行,并且下划线与文字的距离参差不齐。\uline
\ulem
宏包的\uline
命令解决了上述\underline
的命令,并把默认的\emph
命令也改为使用下划线方式(texlive 2018)中并未修改),如果不希望用下划线线替代标准的\emph
命令,可以给\ulem
宏包加normalem
参数,或使用\normalem
和\ULforem
命令切换两种强调除了下划线,
ulem
宏包也提供了其他修饰文字的命令:1
\uuline{urgent} \qquad \uwave{boat} \qquad} \sout{wrong} \qquaad \xout{removed} \qquad \dashuline{dashing} \qquda \dotuline{dotty}
Result:
CJKfntef
宏包对汉字也提供了类似的功能,同时进行了一些扩充:1
2\CJKunderdot{汉字,下点线} \phantom{汉字下点线} \CJKunderline{汉字,单下划线} \phantom{字下点线} \CJKunderdblline{汉字,双下划线} \\
\CJKunderwave{汉字,下划波浪线} \phantom{下点线} \CJKsout{汉字,删除线} \phantom{爱好下点线} \CJKxout{汉字,斜删除线}Result:
此外,
CJKfntef
宏包,还提供了CJKfilltwosides
环境,让汉字分散对齐:1
2
3\begin{CJKfilltwosides}{5cm}
汉字,分散对齐
\end{CJKfilltwosides}在
ctex
宏包及文档中,可以使用\CTEXunderline
等以\CTEX
开头的命令代替以\CJK
命令开头的命令:1
\CTEXunderdot{汉字,加点}
2.5 字号
西文字体大小
fig. 4-3 预定义的西文字体调整命令
中文字体大小
fig. 4-4 预定义中文字号
字号命令表示的具体尺寸随所使用的文档类和大小选项不同而不同。在标准 $$ 文档类 aritcle,report 和 book 中,可以设置文档类选项 10pt,11pt 和 12pt,全局地设置文档内的字号,默认为10pt,即
\normalsize
的大小为 10pt。不同文档类选项下的字号命令
fig.4-5 不同文档类选项下的字号
2.6 水平间距
水平间距
\(\LaTeX\) 中的长度有如下几种:
fig. 4-6 水平间距
fig. 4-7 水平间距
使用水平间距的命令要注意适用,如
\,
是不可断行的,因而就不适用于分隔很长的内容,单用来代替逗号给长数字分段就很合适:1,234,567,890。- 负距离
负距离
\negthinspace
则可以用来细调符号距离或拼接两个符号。1
\dag\negthinspace\dag versus \dag\dag
此外,还可以使用
\hspace{距离}
命令来产生指定的水平间距,该命令产生的距离是可断行的。Space 1,cm
Result:
- 强制段首空格
\hspace
的作用是分隔左右的内容,在某些只有一边内容的地方(如强制断行的行首),\(\LaTeX\) 会忽略产生的距离,此时可以用带星号的命令\hspace* {distance}
阻止命令被忽略。1
2
3Space\linebreak \hspace{1cm} 1\,cm
Space\linebreak \hspace*{1cm} 1\,cmResult:
橡皮长度
\hspace
可以产生随内容可伸缩的长度,即橡皮长度,这样才能保证在分行行末的对齐,语法为:1
<normal legnth>plus<可伸长长度>minus<可缩短长度>
有一种特殊的橡皮长度
\fill
,\fill
可以从零开始无限延伸,此时橡皮长度就真的像一个弹簧,可以用来把几个内容均匀排列在一行之中:1
2
3left \hspace{\fill} middle \hfill left
left \hspace{\fill} middle \dotfill left
left \hspace{\fill} middle \hrulefill leftResult:
\hfill
是命令\hspace\{fill}
的简写,还可以用\stretcg{<times>}
产生具有指定“弹力”的橡皮长度,如\stretch{2}
相当于两倍的\fill
。\hrulefill
和\dotfill
与\hfill
功能类似,只是中间填充内容不一样(横线和点线).自定义长度变量
setlength
\(\LaTeX\) 预定义了一些长度变量控制排版的参数,可以通过
\setlength
命令来设置,如段首缩进:1
2%导言处
\seglegth \parindent\{8em\}长度累加
addtolength
可以通过
\addtolength
命令在长度变量上做累加,如1
2
3Para\par
\addtolength\parindent{2em}Para\par
\addtolength\parindent{2em}Para\parResult:
2.7 盒子
盒子 (box) 处理 \(\TeX\) 中的基本处理单位,一个字符、一行文字、一个页面、一张表格在 \(\TeX\) 中都是一个盒子。
mbox and makebox
最简单的命令是
\box{<text>}
,它产生一个内容以左右模式排列的盒子,可以用它表示不允许断行的内容,如果不在行末,其与普通内容无异,如:1
\mbox{cannot be broken}
\makebox
与\mbox
类似,但可以带两个可选参数,指定盒子的宽度和对齐方式(c(center, default), l(left), r(right), s(scatter)):1
\textbackslash makebox[<width>][<loc>]\{<contex>\}
还可以使用
\makebox
产生宽度为 0 的盒子,产生重叠(overlap) 的效果:1
\makebox[0pt][l]{word} 文字
Result:
overlap
\(\LaTeX\) 已经提供了两个命令来专门生成重叠的效果,即
\llap
和\rlap
,分别表示把参数中的内容向当前位置的左侧和右侧重叠:1
2语言文字 \llap{word}\\
\rlap{word}语言文字Result:
frame
命令
\fbox
和\framebox
产生带边框的盒子,语法与\mbox
和\makebox
类似:1
\fbox{framed} \qquad \framebox[3cm][s]{framed box}
Result:
边框与内容的距离由长度变量
\fboxsep
控制(默认为 3pt),边框线的粗细则由长度变量\fboxrule
控制(默认为 0.4 pt)。1
2\setlength\fboxsep{0pt} \fbox{tight}
\setlength\fboxsep{1em} \fbox{loose}Result:
在
\makebox
、\framebox
等盒子命令的参数中,可以使用\width
、\height
、\depth
、\totalheight
来分别表示盒子内容的自然宽度、深度、以及高度和深度之和。如下产生的盒子总宽度恰好是文字自然宽度的 3 倍:1
\framebox[3\width]{带边框}
Result:
4 玩转数学公式
4.1 Mathematic formula
1 | \[ |
- amsmath package(P 223,表 4.1)
amsmath 提供的 命令可以用来在数学公式中插入数字
1 | $ \text{被减数} - \text{减数} = \text{差}$ |
$ - = $
Note:在普通的文本中使用数学公式时也应该注意随时在文本模式和数学模式下转换。例如,行内数学公式中逗号等标点处不能换行,因此列举多项公式时就应该把每项放在单独的数学环境中,项项之间用逗号或句号隔开:
已知的变量有 \(a\), \(b\), \(c\) 和 \(T\)
4.2 Mathematic structure
上下标:
$ A_{ij} = 2 ^ {i + j} \(,\) A_i^j = B^k_i$, \(K_{n_i} = K_{2^i} = 2^{n_i}\),\(3^{3^{3^{\cdot^{\cdot^3}}}}\)
撇号
'
:数学公式中的撇号
'
就是一种特殊的商标,表示用符号\prime
(即'
)作上标。撇号可以与下标混用,也可以连续使用(普通上标不能连续使用),但不能与上标直接混用:$ a = a' = a^{}\(,\)b_0' = b_0''\(,\){c'}^2 = (c')^2$
角度:
1
2
3
4$ \angle a = \angle BAC = 90 ^\circ = \pi / 2 $
% 或者定义一个意义明显的命令
\newcommand\degree{^\circ}$ a = BAC = 90 ^= /2 $
特殊上下标
数学算子: \[ \max_n f(n) = \sum_{i=0}^n A_i \] 积分算子: \[ \int_0^1 f(t) \rm{d}t = \iint_D g(x,y) \mathrm{d}x \mathrm{d}y \]
1
2
3
4
5
6
7
8% 多数数学算子的上下标,位置时正上或正下方,但行内公式仍在角标位置
\[
\max_n f(n) = \sum_{i=0}^n A_i
\]
% 对于积分等个别算子,显示公式中的上下标在右上右下角
% 导言区 \DeclareMathOperator\dif{d\!}
$\int_o^1 f(t) \dif t = \iint_D g(x,y) \dif x \dif y$在上下标前面使用
\limits
会使上下标在正上正下方,这是通常上下限(limits)的排版方式,而使用\nolimits
则会使上下标在角标: \[ \iiint\limits_D \mathrm{d}f = \max\nolimits_D g \] 有时需要在符号的左上、左下加角标,此时可以使用${}_m^n{H}_i^j$
的形式得到 \({}_m^n{H}_i^j\),但这种方式得到的效果不尽人意,间距和对齐都不合理,此时可以使用amsmath
包提供的\sideset
命令,如: \[ \sideset{_m^n}{_i^j} H\limits_{i = 0}^n \]\[ \sideset{_m^n}{_c^d} \sum_{i = 0}^ n \]
或者是
mathtools
宏包的\prescript<up><down><element>
来处理1
2
3
4% \usepackage{mathtools}
$\prescript{n}{m}{H}_i^j < L $
% 或
$ \sideset{_m^n}{_i^j} H $此外,
amsmath
还提供了\overset
,\underset
命令,用来给任意符号的上下方添加标记,这种命令有点像是加了\limits
的巨算符的上下标:\(\overset{*}{X}\),\(\underset{*}{X}\)\(A_m{}^n\)或\(A_m^{\phantom{m}n}\)
化学式
将化学式直接作为数学式输入看起来十分笨拙,可以使用专业的化学宏包
mhchem
(使用最为广泛的化学宏包)1
2
3
4
5
6
7
8% \usepackage{mhchem}
醋中主要有 \ce{H2O},含有 \ce{CH3COO-}。
\ce{^{227}_{90}Th} 元素具有强放射性
\begin{equation}
\ce{2H2 + O2 -> [\text{燃烧}] 2H2O}
\end{equation}Result:
醋中主要有$ $,含有 \(\ce{CH3COO-}\)。 \(\ce{^{227}_{90}Th}\) 元素具有强放射性
$ $
上下划线
\overline
和\underline
命令可以用来在公式的上方和下方划横线,例如: \[ \overline{a+b} = \overline a + \overline b \]\[ \underline a = (a_0, a_1, a_2, \dots) \]
\[ \overline{\underline{\underline a} + \overline{b}^2} - c^{\overline n} \]
amsmath
还提供了在公式上下加箭头的命令,使用方法与\overline
和\underline
类似:1
2
3
4
5
6$\overleftarrow{a + b}$,
$\overrightarrow{a+b}$,
$\overleftrightarrow{a+b}$,
$\underleftarrow{a+b}$,
$\underrightarrow{a+b}$,
$\underleftrightarrow{a+b}$$ \(,\)\(,\)\(,\)\(,\)\(,\)$
向量:\(\vec{a}\)
花括号 \[ \overbrace{a+b+c} = \underbrace{1+2+3} \] 使用上下标在花括号上下作标注: \[ \overbrace{a_0, a_1, \dots, a_n}^{\text{共}\ n+1\ \text{项}} = \underbrace{1+2+3}_{n} \] 类似的,
mathtools
宏包还提供了在数学公式上下加方括号的命令:\underbracket[<线宽>][<伸出高度>]{<内容>}
\overbracket[<线宽>][<伸出高度>]{<内容>}
1
2
3
4% \usepackage{mathtools}
\[
\underbracket{\overbracket{1+2}+3}_3
\]\overbrace
和\underbrace
等命令可以嵌套,但本身不能交错,如要实现交错可以分别生成两个括号:先为一部分公式的幻影\phantom
加括号,为另一部分加括号,然后使用重叠\rlap
的盒子将两部分合在一起: \[ a+\rlap{\overbrace{\phantom{b+c+d}}^m}b+\underbrace{c+d+e}_n +f \]分式
\frac<分子><分母>
: \[ \frac{1}{2} + \frac 1{a} = \frac{2+a}{2a} \] 行内公式会用较小的字号排版,以免超出文本高度:\(\frac 12 + \frac 1a + \frac{2+a}{2a}\)已经在分子或分母中的分式,也会按行内公式的大小排版:\(\frac 1{\frac 12(a+b)}\)
有时需要指定格式,可以使用
amsmath
提供的\dfrac
和\tfrac
分别指定显示格式(display style)和正文格式(text style)的分式: \[ \tfrac 12 f(x) = \frac{1}{\dfrac 1a + \dfrac 1b + c} \] 连分式(continued fraction),amsmath
提供的\cfrac
专用于输入连分式,\cfrac
可以带一个可选参数l
或r
,分别表示左、右对齐,默认居中对齐:1
\cfrac{1}{1+\cfrac{2}{1+\cfrac{3}{1+x}}} = \cfrac[r]{1}{1+\cfrac{2}{1+\cfrac[l]{3}{1+x}}}
4.3 Symbol and type
4.3.2 希腊字母
小写希腊字母:
\alpha
: \(\alpha\)\beta
: \(\beta\)\gamma
: \(\gamma\)\delta
: \(\delta\)\epsilon
: \(\epsilon\)\zeta
: \(\zeta\)\eta
: \(\eta\)\theta
: \(\theta\)\iota
: \(\iota\)\kappa
: \(\kappa\)\lambda
: \(\lambda\)\mu
:\(\mu\)\nu
: \(\nu\)\xi
: \(\xi\)\pi
: \(\pi\)\rho
: \(\rho\)\sigma
: \(\sigma\)\tau
: \(\tau\)\upsilon
: \(\upsilon\)\phi
: \(\phi\)\chi
: \(\chi\)\psi
: \(\psi\)\omega
: \(\omega\)\varepsilon
: \(\varepsilon\)\vartheta
: \(\vartheta\)\varkappa
: \(\varkappa\)'\varpi
: \(\varpi\)\varrho
: \(\varrho\)\varsigma
: \(\varsigma\)\varphi
: \(\varphi\)\digamma
: \(\digamma\)'Note:前面带
var
的命令是原来字母的编题,\digamma
(\(\digamma\))是\gamma
(\(\gamma\))的变体;'
标记的符号需要amssymb
或类似的宏包大学希腊字母:
\Gamma
: \(\Gamma\)\Delta
: \(\Delta\)\Theta
: \(\Theta\)\Lambda
: \(\Lambda\)\Xi
: \(\Xi\)\Pi
: \(\Pi\)\Sigma
: \(\Sigma\)\Upsilon
: \(\Upsilon\)\Phi
: \(\Phi\)\Psi
: \(\Psi\)\Omega
: \(\Omega\)\varGamma
: \(\varGamma\)\varDelta
: \(\varDelta\)\varTheta
: \(\varTheta\)\varLambda
: \(\varLambda\)\varXi
: \(\varXi\)\varPi
: \(\varPi\)\varSigma
: \(\varSigma\)\varUpsilon
: \(\varUpsilon\)\varPhi
: \(\varPhi\)\varPsi
: \(\varPsi\)\varOmega
: \(\varOmega\)特殊字符
fig. 4-8 特殊字符
表(3)中,不带
\text
前缀的是文本模式和数学模式通用的。\symbol
命令可以直接用符号在字体中的编码来输入符号,\symbol{num}
表示法 语法形式 例 十进制 <数字> 90 十六进制 ''<数字> ''5A 八进制 '<数字> '132
1 | | 表示法 | 语法形式 | 例 | |
注:如果字符形式中的字符是特殊字符,则需要在前面加`\`进行转义。
1 | {% pdf ./Latex.pdf 600px %} |