Skip to content

Commit

Permalink
Add example for algorithm position problem
Browse files Browse the repository at this point in the history
  • Loading branch information
at15 authored and weijianwen committed Aug 25, 2016
1 parent dc25fcd commit 84482b7
Showing 1 changed file with 32 additions and 10 deletions.
42 changes: 32 additions & 10 deletions tex/example.tex
Original file line number Diff line number Diff line change
Expand Up @@ -373,20 +373,29 @@ \section{用listings插入源代码}
\section{用algorithm和algorithmicx宏包插入算法描述}

algorithmicx 比 algorithmic 增加了一些命令。
示例如\ref{algo:merge_sort},示例代码来自\href{http://hustsxh.is-programmer.com/posts/38801.html}{xhSong的博客}。
详细的使用方法见\href{http://mirror.hust.edu.cn/CTAN/macros/latex/contrib/algorithmicx/algorithmicx.pdf}{官方README}。
示例如算法\ref{algo:sum_100}和算法\ref{algo:merge_sort},
后者的代码来自\href{http://hustsxh.is-programmer.com/posts/38801.html}{xhSong的博客}。
algorithmicx的详细使用方法见\href{http://mirror.hust.edu.cn/CTAN/macros/latex/contrib/algorithmicx/algorithmicx.pdf}{官方README}。
使用算法宏包时,算法出现的位置不一定按照tex文件里的书写顺序。

总结一些注意事项:
这是写在第一个算法前面的一段话,它一般会出现在算法前面。

\begin{itemize}
\item
部分情况下,浮动时会出现图片出现在算法中间的情况。
参考
\href{http://tex.stackexchange.com/questions/165021/fixing-the-location-of-the-appearance-in-algorithmicx-environment}{这个问题}
使用H来强制定位,不允许浮动。
\end{itemize}
\begin{algorithm}
\label{algo:sum_100}
\caption{求100以内的整数和}
\begin{algorithmic}
\Ensure 100以内的整数和
\State $sum \gets 0$
\For{$i = 0 \to 100$}
\State $sum \gets sum + i$
\EndFor
\end{algorithmic}
\end{algorithm}

这是写在两个算法中间的一段话,但是它有可能出现在第一个算法前面。

\begin{algorithm}
% \begin{algorithm}[H] % 强制定位
\label{algo:merge_sort}
\caption{用归并排序求逆序数}
\begin{algorithmic}[1] %每行显示行号
Expand Down Expand Up @@ -429,3 +438,16 @@ \section{用algorithm和algorithmicx宏包插入算法描述}
\EndFunction
\end{algorithmic}
\end{algorithm}

这是写在第二个算法后面的一段话,但是它很有可能出现在第二个算法前面。

总结一些注意事项:

\begin{itemize}
\item
部分情况下,浮动时会出现图片出现在算法中间的情况。
参考
\href{http://tex.stackexchange.com/questions/165021/fixing-the-location-of-the-appearance-in-algorithmicx-environment}{这个问题}
使用H来强制定位,不允许浮动,但是会有明显的副作用。
\item 算法过长时会出现显示问题,比如\ref{algo:merge_sort}超过了单页的长度,可以改小字体或者分成多个小的算法来解决。
\end{itemize}

0 comments on commit 84482b7

Please sign in to comment.