Comments (27)
Идею одобряю, буду рад пулл-реквесту. Только такая просьба: команды сборки в README оставьте, а в дополнение припишите, что Makefile лежит там-то.
from russian-phd-latex-dissertation-template.
Замечательно, спасибо.
from russian-phd-latex-dissertation-template.
Добавлено #46.
from russian-phd-latex-dissertation-template.
https://github.com/olegrog/my_phd_thesis/blob/master/Dissertation/Makefile
Положу сюда эту ссылку — может быть будет полезно, если кто-то соберётся дорабатывать makefile.
from russian-phd-latex-dissertation-template.
Ссылка для тех, кто не слыхал про latexmk
;)
from russian-phd-latex-dissertation-template.
А можете сделать такой вариант, чтобы сразу собирал в трёх компиляторах и метил вида disertation_pdflatex.pdf, dissertation_xelatex.pdf, dissertation_lualatex.pdf и с synopsis так же?
По-хорошему, нужно и для Presentation makefile.
Кстати, он biber'ом может обрабатывать в случае использования опции biblatex?
from russian-phd-latex-dissertation-template.
Что-то я не могу разобраться, как указать имя выходного файла для latexmk.
Если что, принцип make простой: вы после all: в каждой следующей строке, начинающейся со знака табуляции, пишете команду — при вызове make они все выполнятся. Так что там по идее просто добавить по две копии строки, которая уже есть с latexmk, и поменять в копиях pdflatex на xelatex/luatex.
from russian-phd-latex-dissertation-template.
В общем, примерно так должно быть:
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.
С auxdir разобрался: она реализована только для MiKTeX.
from russian-phd-latex-dissertation-template.
Отлично. Осталось придумать практическое применение одновременной сборке шаблона в трёх разных компиляторах.
from russian-phd-latex-dissertation-template.
Дааа, тому, кто придумает, можно выдать приз за изобретательность! Хотя лучше было бы подумать над механизмом раздельной сборки глав (и рисунков), чтобы ускорить общее время сборки.
from russian-phd-latex-dissertation-template.
Возможно, было бы лучше что-то подобное.
# 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.
Отлично. Осталось придумать практическое применение одновременной сборке шаблона в трёх разных компиляторах.
Возможно, это нужно для того, чтобы иметь в репе демонстрационные документы разных сборок. А для этого не вводить каждый раз эти команды, а разок вызвать latexmk.
from russian-phd-latex-dissertation-template.
Это было бы очень удобно, но git создан не для того, чтобы хранить в нём часто изменяемые стокилобайтовые блобы. Для этого нужно что-то другое (см. Large File Storage).
from russian-phd-latex-dissertation-template.
Мне кажется, я уже писал где-то: у ГитХаба есть интеграция с ShareLatex, чтобы не хранить pdf в репе. В ридми просто делается ссылка на шарелатех. Единственное: там нужно руками пересобирать (нажимать кнопочку билд в шарелатехе).
from russian-phd-latex-dissertation-template.
Оффтоп: я бы также вынес файлы с гостами куда-то (дропбокс?) и добавил ссылку, скажем, в тот же ридми.
from russian-phd-latex-dissertation-template.
Sharelatex в бесплатной редакции вроде не подходит под этот проект. А за остальные платить никто не будет.
from russian-phd-latex-dissertation-template.
Что значит, не подходит под этот проект? Меня как-то пытались убедить, что для этого требуются деньги: это получилось бы, если бы я сам не делал интеграцию для своих проектов совершенно бесплатно. Пример тут с ссылкой из ридми в шарелатех.
from russian-phd-latex-dissertation-template.
Это значит, что за бесплатно кто-то один должен будет поддерживать проект в шарелатехе и жать волшебную кнопку билд. А тут как минимум двое могут вносить изменения в репу.
И что потом делать, если @Lenchik сейчас создаст там проект, а потом забьёт по неизвестным нам причинам? Про автобусный фактор я вообще молчу.
from russian-phd-latex-dissertation-template.
Кажется, там билд уже автоматический. Во всяком случае, ничто не мешает попробовать, сохраняя блобы в репе, если они уж так вам дороги по каким-то причинам.
from russian-phd-latex-dissertation-template.
По поводу собранных документов: если есть возможность сделать автоматический билд с помощью внешнего сервиса, то я за, это было бы очень удобно. Вроде бы ShareLaTeX это умеет: https://www.sharelatex.com/github/ (Поддерживаются pdflatex, lualatex, xelatex).
По поводу файлов ГОСТ-ов: не вижу причин переносить их куда-то из репы. Они занимают всего 1 мегабайт и никому не мешают. Зато для конечного пользователя дополнительное удобство: скачал репу — и все нужные ГОСТы уже у тебя, не нужно ещё куда-то лезть.
from russian-phd-latex-dissertation-template.
@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.
@Lenchik, я ребятам из ShareLaTeX несколько часов назад письмо написал по поводу синхронизации с GitHub-ом, посмотрим, что ответят.
По дефолту автоматической закачки нет, но в прошлый раз я выпросил доступ к шаблону: могу его обновлять, но только руками. В текущем варианте синхронизация с гитхабом — платная фича, надо 15$ в месяц платить.
from russian-phd-latex-dissertation-template.
@Lenchik имя задаётся произвольно. Можно all
, можно default
, как угодно. make выполняет сборку первой объявленной цели, если она не задана явным образом: либо в командной строке (make xelatex
), либо при помощи .PHONY
в GNU make.
from russian-phd-latex-dissertation-template.
Ребята из ShareLaTeX ответили, что бесплатно нам синхронизацию делать никто не будет: шаблон будет обновляться только руками или по запросу.
from russian-phd-latex-dissertation-template.
@ulysses4ever если подключить главы через \include
, то не ускорится, случайно?
from russian-phd-latex-dissertation-template.
Я читал несколько рецептов, нигде такого не было. Сам не экспериментировал. Единственное, во что я верю (тоже вычитал), что tikz сильно замедляет сборку.
from russian-phd-latex-dissertation-template.
Related Issues (20)
- Оформление списка литературы по ГОСТ Р 2.105-2019 HOT 7
- Перенос текста на следующую страницу (отступ снизу) HOT 2
- Выравнивание отдельных заголовков по центру HOT 13
- Подержка Overleaf HOT 1
- Обновление команд siunitx HOT 4
- Нумерация раздела "Выводы по главе" HOT 1
- Ошибка: `tabu.sty' не найден. HOT 1
- Не выводится список литературы HOT 2
- Как поменять шрифт основного текста на Times New Roman? HOT 7
- Компиляция диссертации в pdf/a-1b. Ошибка Width information for rendered glyphs is inconsistent HOT 3
- Не собирается с использованием dockertex make HOT 5
- Отдельный вывод фамилии и инициалов диссертанта в библиографических записях HOT 9
- Не печатается список литературы и публикации автора HOT 1
- Нет отличий между \phi (вида ф) и \varphi. HOT 2
- Перестало работать в Overleaf (с TexLive 2022) HOT 4
- Список литературы полностью на английском (сокращения и пр.) HOT 4
- Расопожение номеров страниц HOT 5
- Библиография пропадает из содержания диссертации при выводе работ автора отдельным списком HOT 7
- Курсив и отступы в библиографии HOT 2
- Windows. MikTeX. PSCyr. The ftmbi6a source file could not be found HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from russian-phd-latex-dissertation-template.