Latex遇到的問題

關於各種宏包

如果要用 \geq 大於/小於號,

需要添加宏包

\usepackage{amsmath} \usepackage{amssymb}

 

僞代碼

僞代碼有多種包可用,但是不能混用

比如使用algorithm2e,需要先導入
\usepackage[linesnumbered,boxed,ruled,commentsnumbered]{algorithm2e}

方括號中的 ruled 是讓標題顯示在上面,否則算法的標題則在下面。 linesnumbered  讓算法中顯示行號。 boxed, 讓算法排版時好像插入在一個盒子裏。

舉個例子

\IncMargin{1em} % 使得行號不向外突出
\begin{algorithm}
	
	\SetAlgoNoLine % 不要算法中的豎線
	隨機初始化$Q(s)$和$\pi(s)$ ;\\
	\Repeat
	{\text{策略保持不變$\pi '(s)=\pi(s),\forall s$}}
	{對於當前策略 $\pi$,使用迭代式策略評價的算法估計 $v_{\pi}(s)$ 得到$Q(s)$ \\
		使用貪婪策略提升得到$\pi '(s)$  }
	% {}
	
	\caption{策略迭代算法 (利用迭代式策略評價)\label{al4}}
\end{algorithm}
\DecMargin{1em}

顯示效果: 

 

貼一個別人的例子

\begin{algorithm}[t]
	\SetAlgoNoLine % 不要算法中的豎線
	\caption{每次訪問蒙特卡羅更新}
	\label{algo:event}
	\LinesNumbered
	\KwIn{FFT Bins $B_{1}, B_{2}, B_{3}, ..., B_{n}$}
	\KwOut{Event start point $S$, end point $E$}
	\For{i=1:n}{	
		\eIf{max($B_{i}$) : max($B_{(i+4)}$)$>$-80}{
			$S$=i; \tcp*{Start Point}
		\For{j=S:n}{
			\eIf{max($B_{j}$) : max($B_{(j+4)}$)$<$-100}{
				$E$=j; \tcp*{End Point}
				Return [$S,E$];
			}{j++;}
		}
	}{
	i++;}
}
\end{algorithm}

 

書寫代碼時也有一些專門的命令:

\;    在行末添加分號,並自動換行

\caption{}       插入標題          

\KwData {輸入信息}      排版爲        Data:輸入信息
\Kwln {輸入信息}           排版爲         In: 輸入信息

\KwOut {輸出信息}        排版爲:    Out: 輸出信息
\KwResult {輸出信息}   排版爲:    Result: 輸出信息

\For {條件循環語句}       排版爲     for 條件do 循環語句endo

\If {條件肯定語句}           排版爲     if 條件then 肯定語句end

\While {條件循環語句}   排版爲    while 條件do 循環語句end

使用 \renewcommand{\algorithmcfname}{算法} 命令修改算法顯示。

該工具包的使用手冊下載地址:

http://mlg.ulb.ac.be/files/algorithm2e.pdf

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章