首先匿名diss一下网上各种采用Nodepad++导出的,我需要插入伪代码,不是源代码并且不优雅……接下来说说常见的几种方式:
Aurora, EqualX, Mathtype, texsword
1. Aurora
下载地址:https://xiazai.xiazaiba.com/Soft/A/aurora-setup_XiaZaiBa.zip
中文翻译为 极光;曙光;就是这个呼声最高,可以作为 Word 的一个加载项,据说成功之后的样子是这样的。
亲测,没成功。因为 Aurora 目前还不支持 64 位的Word,有前辈说了卸载,装32位Office,反正没区别啊!作为一名 资深强迫症 当然不想就这么放弃……强装提示句柄错误,按了几十个回车强制结束了进程。于是继续搜索其他解决办法。
2. EqualX
下载地址:http://sourceforge.net/projects/equalx/files/EqualX-0.7/Installer-Equalx-0.7.0_64.exe/download
这个据说可以将伪代码导出为可用的格式。亲测,各种报错,Latex 的 Bug 找起来真的很头大啊。
这货就各种报错啊,一顿Google之后,还是没解决。
Latex Error, Float(s) lost.
Latex Error, Float(s) lost.
Latex Error, Float(s) lost.
3. texsword.0.8
下载地址:https://sourceforge.net/projects/texsword/
据说极为轻便,是Word的一个宏,好高大上有木有?安装过程也是极为简单,复制解压后的 texsword.dotm 文件到 C:\Users\Administrator\AppData\Roaming\Microsoft\Word\STARTUP(路径请根据实际情况自行修改)
文件夹下面之后重启 Word 即可。效果如下图:
点击Tex, 插入代码:
\documentclass{article}
\usepackage{multirow}
\usepackage{algorithm}
\usepackage{algpseudocode}
\usepackage{amsmath}
\usepackage{geometry}
\usepackage{algorithmicx}
\usepackage{algpseudocode}
\renewcommand{\algorithmicrequire}{\textbf{Input:}} % Use Input in the format of Algorithm
\renewcommand{\algorithmicensure}{\textbf{Output:}}
\pagestyle{empty}
\begin{document}
\begin{algorithm}[h]
\caption{algorithm1}
\label{your label}
\begin{algorithmic}[1]
\Require
Enter .....;
\Ensure
Outpur......
\State state1......
\State state2......
\State state3......
\While{(a$>$b)}
\State state4......
\If { c$<$d}
\State state5......
\Else
\State state6......
\EndIf
\State state7......
\EndWhile
\For{aaa}
\State state8......
\EndFor
\end{algorithmic}
\end{algorithm}
\end{document}
然后点击 Run Latex,效果还行吧。
还挺好看的吧
~~~~~~~~~~~~~~~~我是华丽的分割线~~~~~~~~~~~~~~~
然而,在一个Word中占据这么大位置,除了能调字体大小,其他的就不能调了。
最后,无视错误提示,强装Aurora吧,(对,坚持了强迫症的底线,我木有卸载64位Office, 强行安装了2.2版本,没有工具栏,只能这么用了)
用法如下:打开 Word, 插入对象,Aurora Equation ,
然后蹦出来这个对话框,让插入代码,不急,先点击 Properties.
在 Packages 加入包
也就是下面这段代码,放到packages选项卡中。
\documentclass{article}
\usepackage{multirow}
\usepackage{algorithm}
\usepackage{algpseudocode}
\usepackage{amsmath}
\usepackage{geometry}
\usepackage{algorithmicx}
\usepackage{algpseudocode}
\renewcommand{\algorithmicrequire}{\textbf{Input:}} % Use Input in the format of Algorithm
\renewcommand{\algorithmicensure}{\textbf{Output:}}
然后点击 【确定】,在打开的对话框中(删除$ $) 加入伪代码的Latex版本:
\begin{algorithm}[H]
\caption{algorithm1}
\label{your label}
\begin{algorithmic}[1]
\Require
Enter .....;
\Ensure
Outpur......
\State state1......
\State state2......
\State state3......
\While{(a$>$b)}
\State state4......
\If { c$<$d}
\State state5......
\Else
\State state6......
\EndIf
\State state7......
\EndWhile
\For{aaa}
\State state8......
\EndFor
\end{algorithmic}
\end{algorithm}
然后刷新:
可调字体,可调宽度,但是需要注意避免被坑:Aurora中 \algorithm[h] 的小h 要换成大H. 代表在当前位置插入,而不是顶部。
感谢 https://blog.csdn.net/taoyafan/article/details/80380651 指出
下边举一个例子说明 LaTeX 和 Aurora 的区别,很重要的就是 Aurora 上没有以下这些语句,而 usepackage 要在 properties 里面的 packages 里面添加,而且 begin{algorithm}[h] 中的 h 应该为大写的 H 。
\documentclass[11pt]{ctexart}
\usepackage[top=2cm, bottom=2cm, left=2cm, right=2cm]{geometry}
\usepackage{algorithm}
\usepackage{algorithmicx}
\usepackage{algpseudocode}
\usepackage{amsmath}\begin{document}
\end{document}
我的 packages 里面的内容如下:\usepackage{amsmath}
\usepackage{amssymb}
% \usepackage{euler}
\providecommand{\abs}[1]{\left\lvert#1\right\rvert}
\providecommand{\norm}[1]{\left\lVert#1\right\rVert}
\usepackage{bbm}
\usepackage{CJK}
\usepackage{listings}
\usepackage{xcolor}
\usepackage{listings}
\usepackage{amsmath,bm,graphicx,multirow,bm,bbm,amssymb,psfrag,algorithm,subfigure,color,mdframed,wasysym,subeqnarray,multicol}\usepackage{algorithm}
\usepackage{algpseudocode}
\usepackage{amsmath}
\renewcommand{\algorithmicrequire}{\textbf{Input:}}
\renewcommand{\algorithmicensure}{\textbf{Output:}}
真香。。。
PS:博主也测试了Mtahtype插件的Tog Latex, 对于伪代码不适用就不贴图了。
其他小问题:algorithm2e编号问题默认从1开始,但是想要自定义伪代码编号就需要加入如下代码,例如设置当前伪代码编号为2:
\SetAlgoRefName{2}
最后的最后,如果不需要那么优雅,也可以使用表格,参考:
https://www.neusncp.com/user/blog?id=329