我在公司和家里使用两台不同的计算机,有时用一台计算机编译我的论文,有时用另一台计算机。大多数情况下,两个版本是一致的,但对于算法,我注意到相同的代码在两台机器上给出不同的输出。特别是,如果我编译以下代码:
\begin{algorithm}[!t]
\caption{The GaussSieve algorithm}
\begin{algorithmic}[1]
\State Initialize an empty list $L$ and an empty stack $S$
\Repeat
\State Get a vector $\vec{v}$ from the stack (or sample a new one)
\For{\textbf{each} $\vec{w} \in L$}
\State Reduce $\vec{v}$ with $\vec{w}$
\State Reduce $\vec{w}$ with $\vec{v}$
...
然后在一台计算机上我得到:
如果我在另一个上进行编译,我会得到:
换句话说:在一台机器上输出有一条水平线(我认为应该如此),而在另一台机器上则没有。在这两台机器上我都使用了和algorithmicx
包algpseudocode
,以及十几个其他包。
所以我的问题是:如何使输出一致?特别是,如何让两台计算机都添加水平线?是否有一个简单的命令可以强制两台机器在那里输出水平线?或者我是否可以强制两台计算机使用相同版本的软件包,例如将相同的 .sty 文件放在某个文件夹中?
此外:第二个例子中标题和第一行之间的间距比第一个例子中的大,这导致两台机器上的页码不同(因为在第一种情况下,一个部分刚好适合页面,而在第二种情况下则不适合)。
提前致谢!
答案1
更新软件包algorithmicx
并algorithms
没有帮助,但事实上问题是一台机器上的一个软件包已经过时了。
在两台机器上的 MiKTeX 软件包管理器中彻底搜索/比较软件包日期后,我发现一个系统上的软件包日期caption
与另一个系统上的软件包日期不同。卸载旧版本、同步存储库并安装最新版本或此软件包(日期为 2013-05-21)解决了该问题。