近在写论文,但是准备投的会议只有word模板,那么如何在word里写格式优雅的伪代码呢?上网查过结论就是,利用名叫Aurora的word插件来完成。
安装
- 下载安装包: 链接 ,密码ms6q。
Aurora的 官网 :反正我是打不开,FQ也打不开,据说软件到2009年就不更新了,可能官网也gg了吧。此安装包来自网络,是带有注册机的破解版。
- 关闭word。双击安装Aurora,不勾选miktex选项。安装完成。
- 如果电脑中没有miktex,建议安装最新版miktex2.9。从 官网 下载并双击安装,记住安装位置。
不建议勾选安装过程中的miktex选项,是因为如果勾选了这个选项的话,在aurora自己安装完成后会试图联网下载miktex2.5并安装。我试过,这样会联网失败下载不下来,并且据说2.5版本不太支持。此外,2.8版本也不支持。
- 将电脑系统时间调到2009年某天,双击下载的破解机,输入任意英文字母进行破解。破解成功。
调整系统时间后会不能正常上网,windows可能也会显示未激活,如果你的word版本像我(2016)一样在2009年之后的话。不要在意这些,没什么大问题。
- 打开word。如果是32位word,会在选项卡中出现Aurora选项。如果是64位office,不会出现选项卡,只能通过插入——对象——Aurora Equation 来插入latex代码。不要勾选显示为图标选项框。
- 点击插入Aruora Equation 对象,会出现一个窗口,在窗口中可进行latex代码编辑。首先,点击properties——paths,将安装的miktex中latex,dvipng和pdflatex的路径填写在对应的位置。修改完成后点击应用。
路径通过刚才记住的安装位置查找,如果实在找不到,可搜索miktex文件夹。以下是我的安装路径(默认,无修改)可供参考。latex,dvipng 和pdflatex都在此文件夹下C:\Users\moonshine\AppData\Local\Programs\MiKTeX 2.9\miktex\bin\x64
- 在properties选项卡,将Rendering method修改为第三个,Vector(render all fonts),点击确定。
Rendering method指的是渲染方式,一共有三种:Raster(位图),Vector(矢量图)和 Vector(render all fonts)。如果有需要在没有安装Aurora插件的电脑的word查看公式,应使用第一种或第三种。但如果生成PDF再查看的话就不需要Aurora插件了。miktex2.9使用第一种方式会报错 problem running latex,因此只能选择后两种。具体的不同,可参见Aurora manual的Formula properties部分。
- 在编辑栏输入简单的latex代码后点击refresh进行测试,如果显示Done并在word文档的相应位置显示出编译得到的内容后,就证明安装成功。
以上内容全部在系统时间2009年的时候完成。如果显示Done之后,就可以把系统时间调回正常了。
编译遇到错误:Problems running LaTex
可能原因如下:
- miktex的latex,dvipng和pdflatex路径不对;
- 系统时间没有调整至2009年。在一次运行成功后就可以把时间调回来了;
- Rendering method 选择的不对。据说不同版本的miktex所能成功渲染的方法也不同,可以多试试;
- 修改了packages选项卡,引入了还没有安装的package(下文会讲)。
插入伪代码
首先,Aurora只是插件并无调试功能,任何在aurora出现的problem都是可以通过miktex调试的,miktex成功了,Aurora就不会有大问题。因此,想要在Aurora中插入比较复杂的公式,需要引入一些包的时候,最好先在miktex中调试成功。使用miktex自带编辑器TeXworks就可以。其次,由于之前我安装的是basic版的miktex,包含的宏包较少。如果直接在Aurora的packages选项卡引入没有安装过的宏包时,系统就会报错Problem running Latex。因此,需要提前在miktex中进行调试,因为此时系统会根据代码自动安装需要的宏包,例如,\usepackage{mathtools}这句话会让系统自动搜索并安装mathtools宏包。如果想要进行包管理的话,可以打开miktex console的packages选项卡查看宏包的安装情况。在这里也可以进行宏包的安装和卸载。
一个例子
1.假设以下宏包都已经在miktex中成功安装。在word中插入Aurora对象,并修改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:}}
2.在公式框中粘贴以下代码。如果你的伪代码段在miktex编译通过但是在Aurora会出问题,试一试像如下代码一样,在\begin{algorithm}后加上[H]。
\renewcommand{\thealgorithm}{1}
\begin{algorithm}[H]
\caption{*******************************************}
\label{ABCLFRS}
\begin{algorithmic}[1]
\Require{S,$\lambda$,T,k}
\Ensure{$\mathbf{w}_{222}$}\\
\textbf{initialize}: Set $\mathbf{w}_1 = 0$
\For{$t = 1,2,...,T$}
\State Choose $A_t \subset[m]$
\EndFor
\end{algorithmic}
\end{algorithm}
3.Refresh。完成。