LINUX.ORG.RU

Схема удаленной компиляции LaTeX проекта

 


0

1

ЛОР, доброго времени суток!

Возникло у меня голове желание установить TeXLive не сервер и запускать компиляцию большого проекта удаленно. Казалось бы, бери ssh и компилируй, но хочется сделать как в фильмах про хакеров удобно.

Всяческие ShareLaTeX и Overleaf не советуйте, я не про это.

Сейчас работаю с проектами на локальной машине, редактирую код в Sublime Text с плагином LaTeXTools. Этот плагин добавляет в Sublime несколько Build систем, которые можно настраивать. Я пишу код, потом нажимаю CTRL+B и он запускает latexmk с нужными параметрами, а его выхлоп отображает в консоли редактора. Иногда просто запускаю latexmk из консоли.

Так вот, как хотелось бы видеть workflow:
1. Запускаю на локальной машине скрипт (из консоли или через build system редактора).
2. Скрипт отправляет мои локальные изменения на сервер (желательно только diff и только определенные файлы).
3. Скрипт запускает на сервере компиляцию.
4. Скрипт загружает на мою машину PDF и логи.

Собственно, вопрос. Как организовать все это наиболее изящно? Может кто-то из ЛОР'овцев уже упарывался подобным? Еще раз повторю, скопировать файлы не сервер, запустить по ssh latexmk и скачать результат я могу и так, но это слишком нудно для постоянного применения.

P.S. Если клиентскую часть потом можно будет настроить у моих коллег со слабыми машинами под Windows, то будет просто супер, но пока хочу обкатать схему на себе.

★★★★★

emacs + tramp Работаешь на удалённой машине, как на своей.

А ещё можно воспользоваться, сюрприз, сюрприз, сетевой прозрачностью X Window! Если с сетью проблема, то можно смотреть в сторону x2go.

Evgueni ★★★★★ ()
Последнее исправление: Evgueni (всего исправлений: 2)
Ответ на: комментарий от Evgueni

emacs + tramp Работаешь на удалённой машине, как на своей.

Не, хочу работать на локальной машине, но иногда «отправлять задание» на удаленную.

А ещё можно воспользоваться, сюрприз, сюрприз, сетевой прозрачностью X Window! Если с сетью проблема, то можно смотреть в сторону x2go.

Не, вот этого точно не хочу... Наелся...

aquadon ★★★★★ ()
Ответ на: комментарий от aquadon

Не, хочу работать на локальной машине, но иногда «отправлять задание» на удаленную.

emacs полностью локальный, просто в нём можно открыть текст по удалёнки, как и запустить удалённый shell, хотя я предпочитаю терминал+ssh на соседнем мониторе. Всё работает крайне стабильно и эффективно.

Не, вот этого точно не хочу... Наелся...

Ну и зря. Можно сразу wm запускать с сервера, а можно отдельные программы. Я длительное время запускал так emacs для работы, пока в какой-то момент моя локальная машина не стала в разы сильнее сервера. В менюшке было два emacs: тут и там. В зависимости от задачи выбирался один из них.

Evgueni ★★★★★ ()
Последнее исправление: Evgueni (всего исправлений: 1)
Ответ на: комментарий от Evgueni

Все то Вы меня, Евгений, подбиваете перейти на Emacs для работы с LaTeX =) Я и не против, в принципе, даже пометку себе сделал на будущее, но сейчас много работы и я пока буду придерживаться устоявшегося workflow. Но Emacs я уже установил и использую orgmode.

emacs полностью локальный, просто в нём можно открыть текст по удалёнки, как и запустить удалённый shell

То есть Вы предлагаете схему с хранением файлов на сервере и редактированием их через sshfs?

aquadon ★★★★★ ()
Последнее исправление: aquadon (всего исправлений: 1)
Ответ на: комментарий от aquadon

Дело не в вас. Это просто удобно! Я много всякой ерунды испробовал, так что могу сравнивать. emacs+auctex достаточно близок к идеалу, чтобы выбрать его.

То есть Вы предлагаете схему с хранением файлов на сервере и редактированием их через sshfs?

Так я тоже пробовал. tramp-mode это немножко не то.

Дистрибутив latex и файлы IMHO удобней держать в одном месте. В принципе короткие тексты без разницы как обрабатывать, но в случае больших проектах это критично. Для совместной работы и так и сяк будет нужна система контроля версий.

Evgueni ★★★★★ ()
Последнее исправление: Evgueni (всего исправлений: 4)

Всё в git и запускать компиляцию только на сервере.

anonymous ()

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

Silerus ★★★ ()

Вот, мне недавно самому надо было: gotex — докер контейнер с LaTeX. На входе http multipart-upload (tex файлы, катринки и т.д.), на выходе готовый pdf.

beastie ★★★★★ ()
Последнее исправление: beastie (всего исправлений: 1)
Ответ на: комментарий от legolegs

То есть директория храниться у меня локально, а монтируется на сервере сборки? Вот это здравая мысль, попробую так.

aquadon ★★★★★ ()
Ответ на: комментарий от aquadon

Как-то так:

ssh powerfulhost "mkdir -p ~/sshfs && sshfs mycomputer:project ~/sshfs && ~/sshfs/make.sh; fusermount -zu ~/sshfs"

Можно, конечно, sshfs заменить на рсинк.

legolegs ★★★★★ ()
Последнее исправление: legolegs (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.