Компьютерная графика, специальные эффекты и 3D анимация
После рассмотрения всех этих вариантов в течение некоторого времени я остановился на следующем решении.
Скрипт доступен по адресу 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
«Лучше» - очень относительный термин ... что еще вы хотите сделать? Кажется, что этот make-файл обрабатывает совсем немного, и мне хочется, чтобы я запускал * nix на работе вместо Windows ... если есть другие вещи, которые вам нужно обработать с помощью make-файла, почему бы не добавить их?
Чтобы сделать его «лучше», вам нужно будет предоставить более подробную информацию о том, что именно вы делаете.
Например, вы могли бы заставить его анализировать файл .log с помощью grep, искать ошибки или предупреждения, выгружать их в другой файл, затем откройте новый файл, чтобы вы могли прочитать ошибки.
Все зависит от того, чем вы хотите заниматься ...
Я использую Eclipse с надстройкой TexEcplise для редактирования своих TeX-файлов. Он имеет подсветку синтаксиса для LaTeX. Когда вы запрашиваете предварительный просмотр неизмененного и уже скомпилированного tex-файла, он открывает файл в средстве просмотра. Когда tex-файл был изменен, он компилирует tex-файл перед его просмотром. Он выполняет необходимые итерации, но только при необходимости.
Еще одно преимущество состоит в том, что все ошибки и предупреждения собраны в рамке и выделены в текстовом файле! Это снимок экрана с домашней страницы TexEclipse .
Я сам ее не использовал, но слышал о Rubber как о хорошей альтернативе.
С их веб-сайта:
Rubber - это программа, цель которой - для решения всех задач, связанных с составление документов LaTeX. Эта включает составление документа сам, конечно, достаточно раз так что все ссылки определены, и запуск BibTeX для управления библиографическими Ссылки. Автоматическое выполнение dvips для создания документов PostScript также включен, а также использование pdfLaTeX для создания документов PDF.
Я только что попробовал latexmk. Если вы сделаете
latexmk -pvc file.tex
, предварительный просмотр будет выполнен автоматически (по умолчанию DVI).
man latexmk
] Недостатки:
Я использую MikTeX в сочетании с TeXnicCenter . Он отлично подходит для моих целей. У меня никогда не было системы, скрывающей ошибки или предупреждения. Пользовательские сценарии сборки легко создавать и настраивать.
(Эта работа в процессе)
В данный момент я пробую vim-latexsuite. По сути, он превращает vim в IDE для латекса.
ltx утверждает, что является оболочкой для латекса, чтобы ускорить компиляцию латексных документов. Однако заставить его работать не удалось (некоторые проблемы с initex).
Некоторое время пробую резину. Я сокращу результаты здесь:
Некоторое время я использовал latex-makefile . Это довольно хорошо, если вы пытаетесь использовать цикл редактирования-компиляции-предварительного просмотра:
Я могу довольно легко воспроизвести преимущества latexmk с помощью:
while [1]; сделать / usr / bin / make; сделанный
Я могу довольно легко воспроизвести преимущества latexmk с помощью:
while [1]; сделать / usr / bin / make; сделанный
Я могу довольно легко воспроизвести преимущества latexmk с помощью:
while [1]; сделать / usr / bin / make; сделанный
Некоторые недостатки:
Я хотел использовать сценарий, который вы разместили в своем окончательном ответе .
К сожалению, он не работал с моими настройками (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.
AUCTEX и превью-латекс с Emacs - еще один вариант.
Вы также можете заставить emacs открывать результирующий файл dvi или pdf, и если вы включите для этого режим автоматического возврата буфер, изменения будут отображаться каждый раз, когда вы перекомпилируете документ.
Взгляните на TeXMaker . : -)
особенности (из вики):
- Встроенная проверка орфографии.
- Редактор юникода для записи исходных файлов LaTeX (выделение синтаксиса, отмена-повтор, поиск-замена, проверка орфографии ...)
- Можно вводить теги LaTeX и математические символы с помощью мыши
- Шаблоны документов и разделов
- Программы, связанные с LaTeX, могут быть запущены
- Управление базой данных BibTeX
- Схема или «вид структуры»
- Файлы журнала во время компиляции LaTeX и возможность «пошагово» " исходных ошибок, обнаруженных компилятором
- Интегрированный инструмент преобразования LaTeX в HTML
особенности (от меня):
- полезные мастера для вставки таблиц, цитирования, ссылок
- двунаправленная поддержка
- полезные сочетания клавиш
- Автозаполнение слов (особенно полезно со ссылками)
- определение ваших собственных инструкций