
Используя два разных компьютера на работе и дома, я иногда компилирую свою диссертацию на одном компьютере, а иногда на другом. В большинстве случаев обе версии согласованы, но для алгоритмов я заметил, что один и тот же код дает разный вывод на двух машинах. В частности, если я компилирую следующий код:
\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) решили проблему.