Giter Site home page Giter Site logo

Comments (27)

AndreyAkinshin avatar AndreyAkinshin commented on May 14, 2024

Идею одобряю, буду рад пулл-реквесту. Только такая просьба: команды сборки в README оставьте, а в дополнение припишите, что Makefile лежит там-то.

from russian-phd-latex-dissertation-template.

ulysses4ever avatar ulysses4ever commented on May 14, 2024

Замечательно, спасибо.

from russian-phd-latex-dissertation-template.

ulysses4ever avatar ulysses4ever commented on May 14, 2024

Добавлено #46.

from russian-phd-latex-dissertation-template.

Lenchik avatar Lenchik commented on May 14, 2024

https://github.com/olegrog/my_phd_thesis/blob/master/Dissertation/Makefile
Положу сюда эту ссылку — может быть будет полезно, если кто-то соберётся дорабатывать makefile.

from russian-phd-latex-dissertation-template.

ulysses4ever avatar ulysses4ever commented on May 14, 2024

Ссылка для тех, кто не слыхал про latexmk ;)

from russian-phd-latex-dissertation-template.

Lenchik avatar Lenchik commented on May 14, 2024

А можете сделать такой вариант, чтобы сразу собирал в трёх компиляторах и метил вида disertation_pdflatex.pdf, dissertation_xelatex.pdf, dissertation_lualatex.pdf и с synopsis так же?
По-хорошему, нужно и для Presentation makefile.

Кстати, он biber'ом может обрабатывать в случае использования опции biblatex?

from russian-phd-latex-dissertation-template.

ulysses4ever avatar ulysses4ever commented on May 14, 2024

Что-то я не могу разобраться, как указать имя выходного файла для latexmk.

Если что, принцип make простой: вы после all: в каждой следующей строке, начинающейся со знака табуляции, пишете команду — при вызове make они все выполнятся. Так что там по идее просто добавить по две копии строки, которая уже есть с latexmk, и поменять в копиях pdflatex на xelatex/luatex.

from russian-phd-latex-dissertation-template.

ulysses4ever avatar ulysses4ever commented on May 14, 2024

В общем, примерно так должно быть:

all:
    latexmk -pdf -jobname='dissertation_pdflatex' -ps- -dvi- -recorder -silent dissertation.tex
    latexmk -xelatex -jobname='dissertation_xelatex' -ps- -dvi- -recorder -silent dissertation.tex 
    latexmk -laulatex -jobname='dissertation_laulatex' -ps- -dvi- -recorder -silent dissertation.tex 

Важно только, что перед командами должен быть знак табуляции, а не пробелы: кажется ГитХаб заменяет табы на пробелы.

Опции silent и recorder опциональны :)

  • silent выключает вывод, что ускоряет процесс сборки.
  • recorder создаёт ещё один вспомогательный файл, который помогате latexmk экономить на перезапусках.

-ps- и -dvi- на всякий случай: явно говорим, что они нам не нужны.

На самом деле, вы хотите довольно странного. Когда работаешь с большим документом, основная проблема — медленная сборка. С тремя запусками будет ещё медленней. Я вот наоборот ищу возможности ускорять.

Ещё есть хорошая опция auxdir (отдельный каталог для вспомогательных файлов), но у меня почему-то выдаёт ошибку про слишком много запусков pdflatex, если её включить :(

from russian-phd-latex-dissertation-template.

ulysses4ever avatar ulysses4ever commented on May 14, 2024

С auxdir разобрался: она реализована только для MiKTeX.

from russian-phd-latex-dissertation-template.

dustalov avatar dustalov commented on May 14, 2024

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

from russian-phd-latex-dissertation-template.

ulysses4ever avatar ulysses4ever commented on May 14, 2024

Дааа, тому, кто придумает, можно выдать приз за изобретательность! Хотя лучше было бы подумать над механизмом раздельной сборки глав (и рисунков), чтобы ускорить общее время сборки.

from russian-phd-latex-dissertation-template.

dustalov avatar dustalov commented on May 14, 2024

Возможно, было бы лучше что-то подобное.

# Please change it here unless you are OK with `pdflatex`.
all: pdflatex
pdflatex:
    latexmk -pdf -jobname='dissertation_pdflatex' -ps- -dvi- -recorder -silent dissertation.tex
xelatex:
    latexmk -xelatex -jobname='dissertation_xelatex' -ps- -dvi- -recorder -silent dissertation.tex 
lualatex:
    latexmk -lualatex -jobname='dissertation_laulatex' -ps- -dvi- -recorder -silent dissertation.tex 

from russian-phd-latex-dissertation-template.

timtonk avatar timtonk commented on May 14, 2024

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

Возможно, это нужно для того, чтобы иметь в репе демонстрационные документы разных сборок. А для этого не вводить каждый раз эти команды, а разок вызвать latexmk.

from russian-phd-latex-dissertation-template.

dustalov avatar dustalov commented on May 14, 2024

Это было бы очень удобно, но git создан не для того, чтобы хранить в нём часто изменяемые стокилобайтовые блобы. Для этого нужно что-то другое (см. Large File Storage).

from russian-phd-latex-dissertation-template.

ulysses4ever avatar ulysses4ever commented on May 14, 2024

Мне кажется, я уже писал где-то: у ГитХаба есть интеграция с ShareLatex, чтобы не хранить pdf в репе. В ридми просто делается ссылка на шарелатех. Единственное: там нужно руками пересобирать (нажимать кнопочку билд в шарелатехе).

from russian-phd-latex-dissertation-template.

ulysses4ever avatar ulysses4ever commented on May 14, 2024

Оффтоп: я бы также вынес файлы с гостами куда-то (дропбокс?) и добавил ссылку, скажем, в тот же ридми.

from russian-phd-latex-dissertation-template.

timtonk avatar timtonk commented on May 14, 2024

Sharelatex в бесплатной редакции вроде не подходит под этот проект. А за остальные платить никто не будет.

from russian-phd-latex-dissertation-template.

ulysses4ever avatar ulysses4ever commented on May 14, 2024

Что значит, не подходит под этот проект? Меня как-то пытались убедить, что для этого требуются деньги: это получилось бы, если бы я сам не делал интеграцию для своих проектов совершенно бесплатно. Пример тут с ссылкой из ридми в шарелатех.

from russian-phd-latex-dissertation-template.

timtonk avatar timtonk commented on May 14, 2024

Это значит, что за бесплатно кто-то один должен будет поддерживать проект в шарелатехе и жать волшебную кнопку билд. А тут как минимум двое могут вносить изменения в репу.
И что потом делать, если @Lenchik сейчас создаст там проект, а потом забьёт по неизвестным нам причинам? Про автобусный фактор я вообще молчу.

from russian-phd-latex-dissertation-template.

ulysses4ever avatar ulysses4ever commented on May 14, 2024

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

from russian-phd-latex-dissertation-template.

AndreyAkinshin avatar AndreyAkinshin commented on May 14, 2024

По поводу собранных документов: если есть возможность сделать автоматический билд с помощью внешнего сервиса, то я за, это было бы очень удобно. Вроде бы ShareLaTeX это умеет: https://www.sharelatex.com/github/ (Поддерживаются pdflatex, lualatex, xelatex).
По поводу файлов ГОСТ-ов: не вижу причин переносить их куда-то из репы. Они занимают всего 1 мегабайт и никому не мешают. Зато для конечного пользователя дополнительное удобство: скачал репу — и все нужные ГОСТы уже у тебя, не нужно ещё куда-то лезть.

from russian-phd-latex-dissertation-template.

Lenchik avatar Lenchik commented on May 14, 2024

@ulysses4ever Спасибо
Я думаю в репозиторий кинуть ещё bat/cmd для пользователей Windows, у которых make нет, а latexmk из дистрибутивов ТеХа есть.
Да, три версии ради демонстрации. Да и для отладки удобно.

@dustalov
Ключ all он вообще как работает? Это как некоторое условие на вызов из внешнего файла (как в репозитории make верхнего уровня)?

@ulysses4ever Если текст внутри глав ссылается на что-то внешнее по отношению к ним? На текст приложений, формулы и рисунки в других главах. Я думаю, что в этом случае поглавная сборка даст сбой. А рисунки из tikz в отдельных внешних файлах можно автоматизировать до pdf и pdf в итоговый документ подключать.
С другой стороны, внедрить в файлы спеиальные команды или комментарии, или всю структуру переделать, чтобы можно было на выходе, при обработке всех исходных файлов, получать только конкретную главу (с правильными ссылками, соответственно) или даже комбинации --- тоже интересный вариант. Или даже комбинации --- «О, великий latexmk, дай мне главу 1, главу 3, приложения и список литературы!»

@AndreyAkinshin Автоматический билд заманчивая идея, но там же лучше заводить какой-нибудь открытый sharelatex аккаунт/репозиторий, чтобы в нём они складировались и были всем доступны. А @tonkonogov правильно заметил, что в долгосрочной перспективе это может быть ненадёжно. Там те ребята, что внесли его в темплейты не предоставляют ли опции автоматической компиляции демонстрационных примеров? И кстати, там же не автоматическая закачка свежей версии шаблона с гитхаба, так ведь?

from russian-phd-latex-dissertation-template.

AndreyAkinshin avatar AndreyAkinshin commented on May 14, 2024

@Lenchik, я ребятам из ShareLaTeX несколько часов назад письмо написал по поводу синхронизации с GitHub-ом, посмотрим, что ответят.
По дефолту автоматической закачки нет, но в прошлый раз я выпросил доступ к шаблону: могу его обновлять, но только руками. В текущем варианте синхронизация с гитхабом — платная фича, надо 15$ в месяц платить.

from russian-phd-latex-dissertation-template.

dustalov avatar dustalov commented on May 14, 2024

@Lenchik имя задаётся произвольно. Можно all, можно default, как угодно. make выполняет сборку первой объявленной цели, если она не задана явным образом: либо в командной строке (make xelatex), либо при помощи .PHONY в GNU make.

from russian-phd-latex-dissertation-template.

AndreyAkinshin avatar AndreyAkinshin commented on May 14, 2024

Ребята из ShareLaTeX ответили, что бесплатно нам синхронизацию делать никто не будет: шаблон будет обновляться только руками или по запросу.

from russian-phd-latex-dissertation-template.

Lenchik avatar Lenchik commented on May 14, 2024

@ulysses4ever если подключить главы через \include, то не ускорится, случайно?

from russian-phd-latex-dissertation-template.

ulysses4ever avatar ulysses4ever commented on May 14, 2024

Я читал несколько рецептов, нигде такого не было. Сам не экспериментировал. Единственное, во что я верю (тоже вычитал), что tikz сильно замедляет сборку.

from russian-phd-latex-dissertation-template.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.