【需求】在用word寫小論文的時候想插入漂亮的偽代碼,搜索發現有latex這個排版軟件可以實現。
【思路】
1、利用Aurora插件在word中插入對象時打開latex編輯。(這個出現“problems running latex”多種方法均未被解決,遂放棄,仍想試試的見http://hqium.blog.163.com/blog/static/253625026201712110504726/#)
2、利用CTeX里面的WinEdt編輯。(直接用Latex,但怎么將生成的結果導入到word未研究,或者直接用Latex排版小論文)
【下載】
[MiKTeX] https://miktex.org/download
[Aurora2.2] http://www.xiazaiba.com/html/31107.html
[Aurora 2.x keygen] http://download.csdn.net/detail/studentalei/4600437
[CTeX] http://www.ctex.org/CTeXDownload
[algorithm宏包] https://www.ctan.org/
【步驟】
1、如果按照思路1安裝前三個,如果按照思路2安裝CTeX。
找了一個例子[1],在winedt新建文檔,粘貼編碼保存,選擇XeLaTex運行(首次使用出現了‘algorithm.sty’ not found的問題)
2、所以要給MikTex安裝對應宏包(package),利用Miktex Package Manager(在工具欄Tex里面有)找到algorithm自動安裝出現一直連不上服務器的問題“The remote package redository is not online.”,后根據知乎[2]改用從本地文件夾安裝還是根據博客[3]更換鏡像都出現了問題:包括“本地地址does not seem to be a local package repository”、“Windows API error 87: 鍙傛暟閿欒銆?” 【由於最后失敗就不詳細說明了,可能只是我個人問題,想試試該方法的自行打開文末網址[2][3]】
3、按照【下載】里的地址找到algorithm宏包下載到本地並解壓,新建一個文件夾放一下(我的是:E:\Miktex_pac\algorithms)
4、打開命令提示符界面(windows+R ,cmd),進入路徑(E:,cd Miktex_pac\algorithms),輸入”latex algorithms.ins”, 經過一段時間編譯,生成algorithm.sty。(下載宏包解壓后自帶了pdf幫助文檔,如果沒有就再輸入”latex algorithms.dtx”生成)
5、將生成的algorithm.sty文件放到LaTeX能夠識別的路徑下(我的是”C:\CTEX\MiKTeX\tex\latex”),新建一個文件夾algorithms,放進去。
6、找到MikTex Options(在CTeX的工具欄Tex里面有,或者在開始找到MikTex里面的Setting(Admin)),點擊general選項卡的Refresh FNDB按鈕,等待~
7、然后重新運行步驟1的編碼,成功就會看到工具欄的pdf變成紅色,點擊打開pdf。(編碼例子有中文的,沒有顯示出來,后續研究)
參考資料:
[1] http://blog.csdn.net/yeyang911/article/details/41758039
[2] https://www.zhihu.com/question/26584112
[3] http://www.nexoncn.com/read/ed4f5ad1d8d480de07e3b3a2.html
[4] http://www.cnblogs.com/csucat/p/5142459.html
【方便附上編碼測試】
\documentclass[11pt]{article} \usepackage{CJK} \usepackage[top=2cm, bottom=2cm, left=2cm, right=2cm]{geometry} \usepackage{algorithm} \usepackage{algorithmicx} \usepackage{algpseudocode} \usepackage{amsmath} \floatname{algorithm}{算法} \renewcommand{\algorithmicrequire}{\textbf{輸入:}} \renewcommand{\algorithmicensure}{\textbf{輸出:}} \begin{document} \begin{CJK*}{UTF8}{gkai} \begin{algorithm} \caption{用歸並排序求逆序數} \begin{algorithmic}[1] %每行顯示行號 \Require $Array$數組,$n$數組大小 \Ensure 逆序數 \Function {MergerSort}{$Array, left, right$} \State $result \gets 0$ \If {$left < right$} \State $middle \gets (left + right) / 2$ \State $result \gets result +$ \Call{MergerSort}{$Array, left, middle$} \State $result \gets result +$ \Call{MergerSort}{$Array, middle, right$} \State $result \gets result +$ \Call{Merger}{$Array,left,middle,right$} \EndIf \State \Return{$result$} \EndFunction \State \Function{Merger}{$Array, left, middle, right$} \State $i\gets left$ \State $j\gets middle$ \State $k\gets 0$ \State $result \gets 0$ \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{$i<middle$} \State $B[k++] \gets Array[i++]$ \EndWhile \While{$j<right$} \State $B[k++] \gets Array[j++]$ \EndWhile \For{$i = 0 \to k-1$} \State $Array[left + i] \gets B[i]$ \EndFor \State \Return{$result$} \EndFunction \end{algorithmic} \end{algorithm} \end{CJK*} \end{document}