数学公式
首先是引入一些必要的宏包:
\usepackage[namelimits]{amsmath} %数学公式
\usepackage{amssymb} %数学公式
\usepackage{amsfonts} %数学字体
\usepackage{mathrsfs} %数学花体
这是上面公式的LaTeX代码:
\begin{equation}
%分隔一个过长的公式分行显示使用split环境
\begin{split}
arg \min_{\substack{\Theta, W}} L_{feedback}+L_{content} =
& - \sum_{\left(m,i,j\right) \in D_s} \ln f \left( r_{mij}\right) + \lambda\|\theta\|^2\\
& + \|A^eW^e-Y^e\|^2_F + \frac 12 \sum_{e\in \{u,v\}}\lambda^e\|W^e\|^2_F
\end{split}
\end{equation}
如果想在下面堆叠符号需要在行间公式环境下进行,行内公式环境不起作用。使用$$ \min_{\substack{\Theta, W}} $$
可得到下面的效果:
另外,\limits
也可使得符号强制出现在下方。
$H(x) = \text{arg max}\sum\limits_{\hspace{-5em}y \in \mathcal{Y}} {}_{t=1}^T\mathbb{I}\left(h_t\left(\bm{x}\right) = y\right)$
效果如下:
arg min如何堆叠符号
机器学习的问题经常可见求解最优化问题,上面的符号堆叠方法似乎对于下面的写法走了“歪路”:
要想达到上面的效果,需要使用amsopn
的underset
命令:
\begin{equation}
\hat{h}=\underset{\{\beta_m,\gamma_m\}_{1}^M}{\arg\min}
\end{equation}
数学符号加粗
LaTeX中数学公式有个\mathbf
命令,可能会有人误认为是对数学公式的字体进行加粗处理,实则不然。你会发现虽然加了粗体,但是字体却变了,就像下面正确加粗\bm
的
\mathbf
错误加粗的
想要对数学公式符号进行加粗可以有两种方式:至少有一个是使用 bm package 的 \bm
指令,一个是使用amsmath package 的 \boldmath
指令。
如何引用数学公式
引用数学公式使用\eqref
, 而不要使用\ref
。如下图,\eqref
加上了括号,\ref
没有括号。
省略号
公式中的\ldots和\cdots。“\ldots”是列举中的省略符号,而“\cdots”用于运算(如连加、连乘等)中的省略,二者主要区别在于位置一高一低,切勿混用;
公式标点
文中,特别是在equation环境下,如果要插入公式,则公式后一定要有标点“逗号”或“句号”。使用方法:在公式后加入“,,”(逗号)或“,.”(句号)即可。不推荐使用\text{,}或\text{.}。因为\text{}环境下的标点长相与“,,”或“,.”不同,且“,,”或“,.”前会自动与公式隔出一段距离,更加正式、美观;
指定函数
\exp \log等。公式中如果有指数或对数表示,要用\exp或\log命令。不能用\text{exp}或\text{log}(虽然这种方法可能看起来跟\exp \log效果一样),更不能直接输入exp或log来表示。
对于一些没有的数学符号,也可进行自定义:
% 定义数学符号
\DeclareMathOperator{\argmin}{arg\,min\,} % \, 是为了能有些许间隙
\DeclareMathOperator{\argmax}{arg\,max\,}
\DeclareMathOperator{\sign}{sign}
范数
\ell的用法。在很多机器学习和视觉文章中会用到范数,正确的一范数或二范数表示应为
零向量
公式中的单位向量或零向量要用向量写法:\vec{1} 或\vec{0},有时也用\bm{1}加粗来表示向量。否则会被误认为标量;