数学符号
LaTex常用的具有数学意义的符号:
参考链接:https://blog.csdn.net/lanchunhui/article/details/54633576
以下需要使用宏包:\usepackage{amsmath,amssymb,amsfonts}
mathbb:blackboard bold,黑板粗体
mathcal:calligraphy(美术字)
mathrm:math roman
mathbf:math boldface
花体\mathcal
实例:
- \mathcal D: D \mathcal D D常用来表示数据集
- \mathcal L: L \mathcal L L常用来表示损失函数
- \mathcal N: N \mathcal N N常用来表示正态分布
- \mathcal U: U \mathcal U U常用来表示均匀分布
空心体\mathbb
实例:
- \mathbb D: D \mathbb D D
将字母的斜体变为正体:
x \Rightarrow {\rm{x}} x ⇒ x x \Rightarrow {\rm{x}} x⇒x
加粗符号:
需要使用宏包:\usepackage{bm}
w \Rightarrow \bm{w} w ⇒ w w \Rightarrow \bm{w} w⇒w
将字母的斜体变为正体并加粗:
x \Rightarrow {\mathbf{x}} x ⇒ x x \Rightarrow {\mathbf{x}} x⇒x
字母下标:\mathop{\mathbb{E}}_{x\sim pX(x)}
下标在字母的正下方
行间公式
\begin{equation}y = \sin{(x)}
\end{equation}
y = sin ( x ) y = \sin{(x)} y=sin(x)
实现公式的对齐换行:
\begin{align}&y=x+1 \notag \\% 表示不加编号&y=\sin{(x)} \tag{1.1} \\ % 在定义编号&y=x % 常规编号\end{align}
伪代码书写
参考:
https://blog.csdn.net/qq_34369618/article/details/61205638
https://blog.csdn.net/lwb102063/article/details/53046265
实例:
\documentclass{article}
% 所用宏包
\usepackage{algorithm}
\usepackage{algorithmicx}
\usepackage{algpseudocode}
\usepackage{amsmath} \floatname{algorithm}{Algorithm} % 算法的头名字
\renewcommand{\algorithmicrequire}{\textbf{Input:}} % 输入格式
\renewcommand{\algorithmicensure}{\textbf{Output:}} % 输出格式\begin{document} \begin{algorithm} \caption{The example of using LaTex} \begin{algorithmic}[1] %每行显示行号 \Require $Array a$,$n$ % 算法的输入\Ensure sum of $a$ % 算法的输出\Function {MergerSort}{$Array, left, right$} % 函数开始\State $result \gets 0$ \If {$left < right$} % if的开始\State $middle \gets (left + right) / 2$ % 书写语句\State $result \gets result +$ \Call{Merger}{$Array,left,middle,right$} % 调用函数\EndIf % if的结束\State \Return{$result$} % 返回结果 \EndFunction % 结束函数\State % 为空内容可以实现空一行\While{$i<middle$ \textbf{and} $j<right$} % while的开始\If{$Array[i]<Array[j]$} \State $B[k++]\gets Array[i++]$ \Else \State $B[k++] \gets Array[j++]$ \State $result \gets result + (middle - i)$ \EndIf \EndWhile % 结束while语句\For{$i = 0 \to k-1$} % for的开始\State $Array[left + i] \gets B[i]$ \EndFor % for的结束\end{algorithmic} \end{algorithm}
\end{document}
但是对你IEEE的LaTex模板,上述的命令语句必须改为大写,且引入的宏包也不相同。上述所用宏包为algorithmicx
,而IEEE模板中所用宏包为algorithmic
。两者命令的差异:https://blog.csdn.net/yeyang911/article/details/41758039。 在algorithmic
中没有找到与定义函数function相关的命令。
\usepackage{algorithmic}
\usepackage{algorithm}
\begin{algorithm} \caption{The example of using LaTex} \begin{algorithmic}[1] %每行显示行号 \REQUIRE $Array a$,$n$ % 算法的输入\ENSURE sum of $a$ % 算法的输出\STATE $result \gets 0$ \IF {$left < right$} % if的开始\STATE $middle \gets (left + right) / 2$ % 书写语句\STATE $result \gets result +$ %\CALL{Merger}{$Array,left,middle,right$} % 调用函数\ENDIF % if的结束\STATE \RETURN{$result$} % 返回结果 \STATE % 为空内容可以实现空一行\WHILE{$i<middle$ \textbf{and} $j<right$}\IF{$Array[i]<Array[j]$} \STATE $B[k++]\gets Array[i++]$ \ELSE \STATE $B[k++] \gets Array[j++]$ \STATE $result \gets result + (middle - i)$ \ENDIF \ENDWHILE % 结束while语句\FOR{$i = 0 \to k-1$} % for的开始\STATE $Array[left + i] \gets B[i]$ \ENDFOR % for的结束\end{algorithmic} \end{algorithm}