Как заставить LaTeX работать с Anki?

Изначально я собирался задать вопрос о том, как заставить LaTeX работать в Anki , но пока я писал вопрос, я пытался решить проблему самостоятельно. Я подумал, что другим могут быть полезны мои выводы, поэтому я решил опубликовать их здесь. Если вы заметили, что какой-либо из моих шагов неверен, пожалуйста, дайте мне знать. И я все еще не мог заставить его работать, поэтому, если вы прокрутите вниз до конца, вы увидите, где я застрял и все еще нуждаюсь в помощи.

Текущая проблема: как я могу установить libgd?


Я пытаюсь заставить Anki работать с LaTeX . Единственная информация, которую я смог найти о том, как это сделать, находится на этой странице :

  • [...] чтобы использовать LaTeX, вы должны установить его отдельно - он не входит в комплект Anki
  • [...] на OSX используйте MacTex
  • Dvipng также должен быть установлен.
  • В OSX, если вы используете MacPorts или аналогичный для установки LaTeX, убедитесь, что латекс и dvipng связаны в /usr/bin.

Стандартная установка MacTex занимает 3 ГБ, гораздо больше, чем необходимо, поскольку я не собираюсь использовать его приложение с графическим интерфейсом. Мне просто нужна библиотека LaTeX, если я правильно понимаю, которая должна быть меньше 3 ГБ. Поэтому вместо этого я устанавливаю версию BasicTeX , которая занимает всего около 100 МБ.

Я не уверен, установлен ли у меня уже Dvipng или нет, поэтому я перезапускаю Anki, чтобы посмотреть, работает он или нет. Я получил следующую ошибку:

Ошибка выполнения dvipng. [...] Вывод, записанный на tmp.dvi [...]

Так что мне, вероятно, нужно установить dvipng... В readme есть следующая информация:

Установка dvipng должна быть простой: просто ./configure',make и make install.

Предпосылки:

  • Библиотека GD Graphics Draw, libgd
  • Библиотека поиска путей kpathsea
  • libpng и либз

Опять же, я не уверен, какие из этих предварительных требований я уже установил, поэтому я просто продолжаю установку в надежде, что сообщения об ошибках укажут мне правильный путь.

После выполнения ./configвыдает ошибку:

настроить: ошибка: не удается найти/использовать libpng

... что я считаю странным, поскольку в файле readme говорится:

 To be able to compress and write PNG files to disk, dvipng (or
 really libgd) uses libpng which in turn uses libz. These should be
 available on any modern system, if not, download them and install
 them.

Я зашел на веб- сайт libpng и попытался найти «текущий двоичный файл», который работает с моей ОС (10.6/i386), но, похоже, ни в одной из последних трех версий нет двоичного файла, доступного для загрузки. Итак, я перешел в раздел «старые двоичные файлы», который привел меня на этот веб-сайт , на котором есть libpng v1.4.5. Я установил «Индивидуальный установочный пакет» для libpng.

Теперь, когда он установлен, я снова попытался установить Dvipng, и теперь он выдает следующую ошибку:

не могу найти/использовать libgd
Эту библиотеку чертежей можно загрузить с http://www.boutell.com/gd

Когда я захожу на этот сайт , я вижу, что страница перемещена и в настоящее время не работает. Есть только ссылка на исходники и нет бинарного дистрибутива. Я не уверен, куда мне идти отсюда... я должен загрузить исходный код и как-то его скомпилировать? Как только он будет выполнен, что мне с ним делать? Я запускаю какой-то файл, который он генерирует? Буду ли я перемещать файлы, которые он генерирует, в определенные папки? Как Dvipng узнает, как получить к нему доступ? Я не знаком с тем, как сделать что-то подобное, поэтому любая помощь будет оценена.


Вот краткое изложение (на данный момент) иерархии зависимостей, которая должна быть установлена, чтобы LaTeX работал с Anki:

  • MacTeX : установлен (получил версию BasicTeX для экономии места на диске).
  • Dvipng : не установлен (не может быть установлен без libgd).
    • libpng : установлен (получил индивидуальный пакет установщика).
    • libgd: не установлена ​​(не знаю, как это установить).
    • ???

Другие вопросы:

  • Есть ли лучший и надежный способ узнать, установлены ли какие-либо из этих зависимостей, а не запускать установщик, который зависит от них, и надеяться на осмысленное сообщение об ошибке?

Ответы (3)

Ваш вопрос очень помог мне заставить LaTeX работать с Anki, но я обнаружил, что есть более простой способ получить dvipng:

  1. Установите Мактекс. Я установил BasicTeX-2011.pkg (MacTeX-Additions-2011.mpkg НЕ требуется).
  2. Откройте терминал, введите «tlmgr update --self && tlmgr install dvipng» и нажмите Enter. Он обновит TeX Live Manager и установит последнюю версию dvipng.

Как только вы это сделаете, все должно быть готово.

Я согласен. Устанавливать пакеты в MacTex гораздо лучше через Tex Live Utility, чем через командную строку. Это предложение должно сработать.
Вопрос: Я единственный администратор в своей системе, но когда я пытаюсь запустить команду терминала «tlmgr update --self && tlmgr install dvipng», я получаю сообщение об ошибке, говорящее о том, что мне нужно запустить программу от имени администратора. Я админ! Как запустить эту программу? Мне это нужно для правильной настройки латекса на OSX10.6 (Snow Leopard), потому что у меня возникают ошибки pdflatex/dvipng после новой установки BasicTex. Спасибо!
Для потомков: ответ на вопрос @ user21373 — использовать команду «sudo».

У меня была именно эта проблема, но команда «обновление tlmgr --self && tlmgr install dvipng» не сработала, и я получил ошибку, которую мне нужно запустить в качестве администратора.

Учетная запись пользователя, которую я использовал, была учетной записью администратора. Вместо этого я запускал каждую команду отдельно как sudo: В командной строке терминала Mac OS X:

$ sudo tlmgr update --self

(подождите, пока эта команда получит обновления и начнет конкурировать)

$ sudo tlmgr install dvipng

Это сработало и установило обновления tlmgr, а также dvipng, заставив Anki отображать вывод LaTeX!

Вы можете запускать эти команды как однострочник сsudo tlmgr update --self && sudo tlmgr install dvipng

Если у вас установлен Homebrew , самый простой способ:

brew install basictex && sudo tlmgr update --self && sudo tlmgr install dvipng
Это работает отлично. Я думаю, что это должен быть принятый ответ.