如何在Word中优雅地插入伪代码

hxy    2019-06-13 11:10

首先匿名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

Last Modified: 2020-05-15 18:24
Views: 65.2K

[[total]] comments

Post your comment
  1. [[item.time]]
    [[item.user.username]] [[item.floor]]Floor
  2. Click to load more...
  3. Post your comment