Рекомендуемая система сборки для латекса? [закрытый]

Компьютерная графика, специальные эффекты и 3D анимация

52
задан Paul Biggar 6 August 2009 в 06:36
поделиться

13 ответов

После рассмотрения всех этих вариантов в течение некоторого времени я остановился на следующем решении.

  • Настройте vim на непрерывную запись, когда я набираю .
  • Запустить сценарий в фон для непрерывного построения, обновляя PDF-файл по мере его продвижения. latexmk почти достаточно хорош, за исключением того, что он собирается на месте, который в неподходящий момент перезагружается в okular (моя программа просмотра).

Скрипт доступен по адресу https://github.com/pbiggar/texbuild .

Используйте резиновую информацию, чтобы получить ошибки и предупреждения из файла журнала. Приведенный выше сценарий сохраняет файл журнала в t.log. В vim:

autocmd FileType tex set makeprg=rubber-info\ t.log
autocmd FileType tex set errorformat=%f:%l:\ %m
10
ответ дан 7 November 2019 в 09:30
поделиться

«Лучше» - очень относительный термин ... что еще вы хотите сделать? Кажется, что этот make-файл обрабатывает совсем немного, и мне хочется, чтобы я запускал * nix на работе вместо Windows ... если есть другие вещи, которые вам нужно обработать с помощью make-файла, почему бы не добавить их?

Чтобы сделать его «лучше», вам нужно будет предоставить более подробную информацию о том, что именно вы делаете.

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

Все зависит от того, чем вы хотите заниматься ...

0
ответ дан 7 November 2019 в 09:30
поделиться

Я использую Eclipse с надстройкой TexEcplise для редактирования своих TeX-файлов. Он имеет подсветку синтаксиса для LaTeX. Когда вы запрашиваете предварительный просмотр неизмененного и уже скомпилированного tex-файла, он открывает файл в средстве просмотра. Когда tex-файл был изменен, он компилирует tex-файл перед его просмотром. Он выполняет необходимые итерации, но только при необходимости.

Еще одно преимущество состоит в том, что все ошибки и предупреждения собраны в рамке и выделены в текстовом файле! Это снимок экрана с домашней страницы TexEclipse .

5
ответ дан 7 November 2019 в 09:30
поделиться

Я сам ее не использовал, но слышал о Rubber как о хорошей альтернативе.

С их веб-сайта:

Rubber - это программа, цель которой - для решения всех задач, связанных с составление документов LaTeX. Эта включает составление документа сам, конечно, достаточно раз так что все ссылки определены, и запуск BibTeX для управления библиографическими Ссылки. Автоматическое выполнение dvips для создания документов PostScript также включен, а также использование pdfLaTeX для создания документов PDF.

10
ответ дан 7 November 2019 в 09:30
поделиться

Я только что попробовал latexmk. Если вы сделаете

latexmk -pvc file.tex 

, предварительный просмотр будет выполнен автоматически (по умолчанию DVI).

  • Обрабатывает зависимости
  • DVI, ps или pdf
  • Итерирует нормально.
  • Очень настраиваемый, см. man latexmk

] Недостатки:

  • Он не сжимает ошибки, что не очень полезно (обходной путь: используйте резиновую информацию отдельно)
  • Ошибка в файле man: " Иногда средство просмотра (gv) пытается прочитать обновленный файл .ps или .pdf после начала его создания, но до того, как файл будет завершен. Решение: вручную обновить (или повторно открыть) дисплей. ". Чтобы избежать этого, было бы лучше, если бы он создавался с помощью временного файла .pdf.
  • Не очень удобен для пользователя.
21
ответ дан 7 November 2019 в 09:30
поделиться

Я использую MikTeX в сочетании с TeXnicCenter . Он отлично подходит для моих целей. У меня никогда не было системы, скрывающей ошибки или предупреждения. Пользовательские сценарии сборки легко создавать и настраивать.

0
ответ дан 7 November 2019 в 09:30
поделиться

(Эта работа в процессе)

В данный момент я пробую vim-latexsuite. По сути, он превращает vim в IDE для латекса.

Кривая обучения:

  • Очень неинтуитивно, но после учебника , вроде нормально.
  • Он переопределяет некоторые ключи, которые мне нравятся, и я не могу их исправить.

Автозаполнение:

  • Упрощает использование некоторых встроенных макросов
  • Добавление << + >> to для пользовательских макросов очень раздражает.
  • По какой-то причине замена "на" и тому подобное приятно, пока вы не захотите ", тогда это упражнение в разочаровании.
  • Автозаполнение тоже может раздражать. Мне нужно перепрограммировать себя для работы с латексом.

Система сборки:

  • Ужасно
  • quickfix не работает - я часто попадаю не в тот файл
  • Когда latex сообщает об ошибках с результатом, разделенным на 2 строк, он его не обнаруживает.
1
ответ дан 7 November 2019 в 09:30
поделиться

ltx утверждает, что является оболочкой для латекса, чтобы ускорить компиляцию латексных документов. Однако заставить его работать не удалось (некоторые проблемы с initex).

0
ответ дан 7 November 2019 в 09:30
поделиться

Некоторое время пробую резину. Я сокращу результаты здесь:

  • Rubber автоматически конвертирует файлы .eps в .pdf для pfdlatex. Однако, похоже, это делается только для макросов includegraphics. Если у вас есть собственный макрос, его не будет.
  • rubber-info отлично, и это волшебство. Это, безусловно, лучше, чем что-либо еще, что я видел при получении сообщений об ошибках и строк. И вам на самом деле не нужно использовать резину для сборки, чтобы использовать его.
  • Кажется, он не знает, когда прекращать итерацию, часто останавливается раньше.
  • Он перезаписывает ваш PDF-файл по мере его создания, что раздражает ( ему не хватает приятной функции из latex-makefile, где он создается во временном файле).
4
ответ дан 7 November 2019 в 09:30
поделиться

Некоторое время я использовал latex-makefile . Это довольно хорошо, если вы пытаетесь использовать цикл редактирования-компиляции-предварительного просмотра:

  • Практически не требует конфигурации.
  • Строит .ps или .pdf.
  • Обрабатывает все необходимые итерации. Мне буквально нечего больше писать.
  • Достаточно надежный, но иногда ошибки и предупреждения искажаются.
  • Он не уничтожает старый PDF-файл, пока не будет создан новый.
  • Он создает другие файлы, например создание eps из gnuplot. Но я не нашел это очень полезным.
  • Автор очень быстро отвечает на запросы функций.
  • Я могу довольно легко воспроизвести преимущества latexmk с помощью:

     while [1]; сделать / usr / bin / make; сделанный 
  • Достаточно надежный, но иногда ошибки и предупреждения искажаются.
  • Он не уничтожает старый PDF-файл, пока не будет построен новый.
  • Он создает другие файлы, например, генерирует eps из gnuplot. Но я не нашел это очень полезным.
  • Автор очень быстро отвечает на запросы функций.
  • Я могу довольно легко воспроизвести преимущества latexmk с помощью:

     while [1]; сделать / usr / bin / make; сделанный 
  • Достаточно надежен, но иногда ошибки и предупреждения искажаются.
  • Он не уничтожает старый PDF-файл, пока не будет построен новый.
  • Он создает другие файлы, например, генерирует eps из gnuplot. Но я не нашел это очень полезным.
  • Автор очень быстро отвечает на запросы функций.
  • Я могу довольно легко воспроизвести преимущества latexmk с помощью:

     while [1]; сделать / usr / bin / make; сделанный
    

Некоторые недостатки:

  • Он позволяет создавать PDF-файлы только через dvi -> ps -> pdf, а не напрямую через pdftex.
  • Его вывод ошибок отличается от стандартного латексного, поэтому vim не переходит на правильная строка.
  • Он не всегда перекомпилирует изменения в bibtex и других источниках, отличных от Tex.
  • Если я удалю файл, он не удалит зависимость без make clean.
0
ответ дан 7 November 2019 в 09:30
поделиться

Я хотел использовать сценарий, который вы разместили в своем окончательном ответе .

К сожалению, он не работал с моими настройками (MacVim с vim-latexsuite, Skim как просмотрщик и XeTeX). Я также использую прямой поиск (т.е. я использую функцию, при которой нажатие \ ls в Vim переводит в соответствующую точку в документе PDF в открытом средстве просмотра).

Кроме того, мой документ не называется thesis.tex (большой сюрприз; это не диссертация). Поэтому я проделал еще кое-какие работы по настройке, которыми хотел бы поделиться. Внимание, мои навыки работы с bash ужасны.

#!/bin/bash

set -x
ulimit -t 10 # sometimes pdflatex gets stuck

if [ "$1" = "" ]; then
    echo "No target name specified"
    exit 1
fi

TARGET=$1
SOURCE=$1.tex
TMPSOURCE=_$TARGET.tex
TMPTARGET=_$TARGET

while [ 1 ]; do
    # Compile a different file ($TMPSOURCE.pdf) so that it doesn't reload mid-compile
    cp $SOURCE $TMPSOURCE
    # better than running pdflatex manually, as this wont rebuild if there's nothing there.
    latexmk -pdf -silent $TMPTARGET > /dev/null

    # For rubber-info
    cp $TMPTARGET.log $TARGET.log

    if [ -e $TMPTARGET.pdf ]; then # Check the compile succeeded first
        # No output file yet.
        [ ! -e $TARGET.pdf ]
        HASNOPDF=$?
        # ignore if it's unchanged.
        # OS X diff doesn't consider binary files. Single-line output, return value 2
        diff $TARGET.pdf $TMPTARGET.pdf
        OUTPUTDIFFERS=$?
        if [ $HASNOPDF -eq 0 -o $OUTPUTDIFFERS -ne 0 ]; then
            # Do NOT RM since Skim cannot deal with this.
            cp $TMPTARGET.pdf $TARGET.pdf
        fi
    fi

    sleep 1 # give it time to be killed by a CTRL-C
done

Это компилирует временный файл и копирует его обратно под любое заданное имя (а не наоборот, как это делает ваш скрипт); использование сценария:

./scriptname project

Где проект - имя файла TeX без расширения файла.

Я также изменил строку rubber-info :

autocmd FileType tex exe "set makeprg=rubber-info\\ _" . expand("%:t:r") . ".log"

И мне нужно было исправить мой latexmk , чтобы использовать XeTeX, поскольку имя исполняемого файла было жестко запрограммировано.

К сожалению, это по-прежнему уничтожает выходной файл PDF, когда я сохраняю свой документ перед завершением заявление, поскольку latexmk кажется всегда создает файл PDF, даже в случае ошибки - и его код возврата всегда равен 0, что отстой.

(Чтобы прояснить это, скажем, что я только что набрал emph { в свой документ и сохранил его. Фоновый скрипт незамедлительно скомпилировать документ и потерпеть неудачу. Но он все равно будет производить (в основном пустой) выходной файл).

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

Итак, это все еще совершенно неудовлетворительное решение, хотя я еще даже не включил непрерывное сохранение при вводе в MacVim.

Но он все равно будет производить (в основном пустой) выходной файл).

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

Итак, это все еще совершенно неудовлетворительное решение, хотя я еще даже не включил непрерывное сохранение при вводе в MacVim.

Но он все равно будет производить (в основном пустой) выходной файл).

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

Так что это все еще совершенно неудовлетворительное решение, хотя я еще даже не включил непрерывное сохранение при вводе в MacVim.

2
ответ дан 7 November 2019 в 09:30
поделиться

AUCTEX и превью-латекс с Emacs - еще один вариант.

Вы также можете заставить emacs открывать результирующий файл dvi или pdf, и если вы включите для этого режим автоматического возврата буфер, изменения будут отображаться каждый раз, когда вы перекомпилируете документ.

1
ответ дан 7 November 2019 в 09:30
поделиться

Взгляните на TeXMaker . : -)

особенности (из вики):

  • Встроенная проверка орфографии.
  • Редактор юникода для записи исходных файлов LaTeX (выделение синтаксиса, отмена-повтор, поиск-замена, проверка орфографии ...)
  • Можно вводить теги LaTeX и математические символы с помощью мыши
  • Шаблоны документов и разделов
  • Программы, связанные с LaTeX, могут быть запущены
  • Управление базой данных BibTeX
  • Схема или «вид структуры»
  • Файлы журнала во время компиляции LaTeX и возможность «пошагово» " исходных ошибок, обнаруженных компилятором
  • Интегрированный инструмент преобразования LaTeX в HTML

особенности (от меня):

  • полезные мастера для вставки таблиц, цитирования, ссылок
  • двунаправленная поддержка
  • полезные сочетания клавиш
  • Автозаполнение слов (особенно полезно со ссылками)
  • определение ваших собственных инструкций
0
ответ дан 7 November 2019 в 09:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: