zoukankan      html  css  js  c++  java
  • 机器学习笔记之LATEX数学公式基本语法

    作者:@houkai
    本文为作者原创,转载请注明出处:https://www.cnblogs.com/houkai/p/3399646.html


    0x00 概述

    TEX 是Donald E. Knuth 编写的一个以排版文章及数学公式为目标的计算机程序。TEX的版本号不断趋近于π,现在为3.141592。由Pascal 语言写成,特点: 免费、输出质量高、擅长科技排版、有点像编程。

    LATEX 目前使用最广泛的TEX 宏集。 每一个LATEX 命令实际上最后都会被转换解释成几个甚至上百个TEX命令。

    CTEX 国内致力于TEX 推广的网站:http://www.ctex.org/。该网站提供了CTEX 中文套装,这个安装程序把MiKTEX(TEX 在Windows 操作系统上的实现版本)和一些相关工具(如WinEdt、GSview 等)打包在一起,同时对中文接口进行了配置,以实现对中文文本的编辑。

    如果想学习LATEX安装CTEX套装就可以了。LATEX 的功能和宏包有很多,每个人用到的功能是有限的;边用边学,建立了基本的概念以后,在使用中根据需求去解决问题就可以了。本文主要简单介绍LATEX的数学排版。

    0x01 基础知识

    1.1 LATEX控制序列的概念(类似于函数)

    控制序列可以是作为命令:以“”开头,参数:必须参数{}和可选参数[]。

    1.2 环境概念

    以“bengin 环境名”开始,并以“end 环境名”结束。

    1.3.LATEX可以排版公式与文字

    故分为:数学模式和文本模式。如果你想要在公式中排版普通的文本(直立字体和普通字距),那么你必须要把这些文本放在 extrm{...} 命令中。

    1.4 在数学模式中又分为两种,一种是公式排版在一个段落之中;另一种是公式独立形式排版。

    前一种,公式直接放在文字之间,公式高度一般受文本高度限制;后一种,公式另起一行,高度可调整。处于段内的数学文本要放在\( 与\) 之间, 之间,或者\begin{math} 与\end{math} 之间;处于段外的数学文本放在\[ 与\] 之间,

    之间,或者\begin{displaymath} 与\end{displaymath} 之间(为了网页显示,这里用双斜杠表示单斜杠)。如下:

    a.$sum_{i=0}^{n}i^2$  

    b.$$sum_{i=0}^{n}i^2$$

    $sum_{i=0}^{n}i^2$    %第一种
    $$sum_{i=0}^{n}i^2$$    %第二种

    0x02 数学公式基本语法

    2.1 上标与下标

    上标命令是 ^{角标},下标命令是 _{角标}。当角标是单个字符时可以不用花括号(在 LaTeX 中,花括号是用于分组,即花括号内部文本为一组)。

    $$x_1$$
    $$x_1^2$$
    $$x^2_1$$
    $$x_{22}^{(n)}$$
    $${}^*!x^*$$    %(“!” 表示其前后字符之间无间隙)

    $$x_1$$$$x_1^2$$  、x^2_1x_{22}^{(2)}$${}^*!x^*$$

    2.2 分式

    输入较短的分式时,最简单的方法是使用斜线,譬如输入 (x+y)/2,可得到(x+y)/2

    要输入带有水平分数线的公式,可用命令:frac{分子}{分母}。

    $$frac{x+y}{2}$$
    $$frac{1}{1+frac{1}{2}}$$

    $$frac{x+y}{2}$$  、$$frac{1}{1+frac{1}{2}}$$

    2.3 根式

    排版根式的命令是:开平方:sqrt{表达式};开 n 次方:sqrt[n]{表达式}

    $$sqrt{2}<sqrt[3]{3}$$
    $$sqrt{1+sqrt[p]{1+a^2}}$$
    $$sqrt{1+sqrt[^p!]{1+a^2}}$$

    $$sqrt{2}<sqrt[3]{3}$$
$$sqrt{1+sqrt[p]{1+a^2}}$$
$$sqrt{1+sqrt[^p!]{1+a^2}}$$

    注意:上面第三个示例与第二个示例的区别,有时候 LaTeX 公式需要经过这样的微调会更美观。

    2.4 求和与积分

    排版求和符号与积分符号的命令分别为 sum 和 int,它们通常都有上下限,在排版上就是上标和下标。

    $$sum_{k=1}^{n}frac{1}{k}$$
    $sum_{k=1}^nfrac{1}{k}$
    $$int_a^b f(x)dx$$
    $int_a^b f(x)dx$
    微分符直体:$$int_a^b f(x)mathrm{d}x$$

    在数学模式中,TEX 根据上下文选择字体大小。例如,上标会排版成较小的字体。如果你想要把等式的一部分排版成罗马字体,不要用 extrm 命令,只因 extrm 会暂时切换到文本模式, 而此时字体大小切换机制将不起作用。使用mathrm 来保持字体大小切换机制的正常惊讶

    $$sum_{k=1}^{n}frac{1}{k}$$sum_{k=1}^{n}frac{1}{k}$$int_a^b f(x)dx$$$int_a^bf(x)dx$$$int_a^b f(x)mathrm{d}x$$

    2.5.公式中的空格

    LaTeX 能够自动处理公式中的大多数字符之间的空格,但是有时候需要自己手动进行控制。

    复制代码
    紧贴 $a!b$
    没有空格 $ab$
    小空格 a\,b
    中等空格 a;b
    大空格 a b
    quad空格 $aquad b$
    两个quad空格 $aqquad b$
    复制代码

    $a!b$
aba\,ba;ba baquad baqquad b

    注意:不同的TEX解析器给出的结果稍有不同,这里使用Google API生成的公式空格的间隔大小就和CTEX中不同。貌似在这里空格的差别不大...,看来Google API功能削减了一些。

    在公式中灵活的运用空格命令可以起到美化公式的作用。

    $$int_a^b f(x)mathrm{d}x$$
    插入小空格:$$int_a^b f(x)\,mathrm{d}x$$

    $$int_a^b f(x)mathrm{d}x$$$$int_a^b \,f(x)mathrm{d}x$$

    2.6 公式中的定界符

    这里所谓的定界符是指包围或分割公式的一些符号

    复制代码
    $($    %(
    $)$    %)
    $[$    %[
    $]$    %]
    ${$    %{
    $}$    %}
    $|$    %|
    $|$    %||
    复制代码

    在上述这些定界符之前冠以 left(修饰左定界符)或 ight(修饰右定界符),可以得到自适应缩放的定界符,它们会根据定界符所包围的公式大小自适应缩放。

    $$left(sum_{k=frac{1}{2}}^{N^2}frac{1}{k}
    ight)$$

    $$left(sum_{k=frac{1}{2}}^{N^2}frac{1}{k}
ight)$$

    2.7 矩阵

    对于少于 10 列的矩阵,可使用 matrix,pmatrix,bmatrix,Bmatrix,vmatrix 和 Vmatrix 等环境。

    $$begin{matrix}1 & 2\3 &4end{matrix}$$
    $$begin{pmatrix}1 & 2\3 &4end{pmatrix}$$
    $$begin{bmatrix}1 & 2\3 &4end{bmatrix}$$
    $$begin{Bmatrix}1 & 2\3 &4end{Bmatrix}$$
    $$begin{vmatrix}1 & 2\3 &4end{vmatrix}$$
    $$begin{Vmatrix}1 & 2\3 &4end{Vmatrix}$$

    $$egin{matrix}1 & 2\3 &4end{matrix}$$$$egin{pmatrix}1 & 2\3 &4end{pmatrix}$$
$$egin{bmatrix}1 & 2\3 &4end{bmatrix}$$
$$egin{Bmatrix}1 & 2\3 &4end{Bmatrix}$$
$$egin{vmatrix}1 & 2\3 &4end{vmatrix}$$
$$egin{Vmatrix}1 & 2\3 &4end{Vmatrix}$$

    2.8 排版数组

    当矩阵规模超过 10 列,或者上述矩阵类型不敷需求,可使用 array 环境。该环境可把一些元素排列成横竖都对齐的矩形阵列。

    复制代码
    $$
    mathbf{X} =
    left( begin{array}{ccc}
    x_{11} & x_{12} & ldots \
    x_{21} & x_{22} & ldots \
    vdots & vdots & ddots
    end{array} 
    ight)
    $$
    复制代码

    $$
mathbf{X} =
left( egin{array}{ccc}
x_{11} & x_{12} & ldots \
x_{21} & x_{22} & ldots \
vdots & vdots & ddots
end{array} 
ight)
$$

    mathbf大写控制符,\表示换行,{ccc}表示列样式。array 环境也可以用来排版这样的表达式,表达式中使用一个“.” 作为其隐藏的 ight 定界符。

    复制代码
    $$
    y = left{ egin{array}{ll}
    a & 	extrm{if $d>c$}\
    b+x & 	extrm{in the morning}\
    l & 	extrm{all day long}
    end{array} 
    ight.
    $$
    复制代码

    $$
y = left{ egin{array}{ll}
a & 	extrm{if $d>c$}\
b+x & 	extrm{in the morning}\
l & 	extrm{all day long}
end{array} 
ight.
$$

    你也可以在array 环境中画线,如分隔矩阵中元素。

    复制代码
    $$
    left(begin{array}{c|c}
    1 & 2 \
    hline
    3 & 4
    end{array}
    ight)
    $$
    复制代码

    $$
left(egin{array}{c|c}
1 & 2 \
hline
3 & 4
end{array}
ight)
$$

    LATEX还有很多的数学符号,整理了下表格,可下载参考。

  • 相关阅读:
    GNU make manual 翻译(九十九)
    GNU make manual 翻译( 九十五)
    Shell的 for 循环小例子
    makefile中对目录遍历的小例子
    GNU make manual 翻译(九十三)
    GNU make manual 翻译( 一百)
    GNU make manual 翻译( 九十七)
    GNU make manual 翻译( 九十八)
    mapserver4.8.3 的readme.win32的中文翻译文件
    遥控器编程
  • 原文地址:https://www.cnblogs.com/JetpropelledSnake/p/12081013.html
Copyright © 2011-2022 走看看