/lectures

Primary LanguageTeX

Конспекты лекций.

Здесь мы собираем конспекты лекций, оформленные в TeX.

Общие советы по git и gitlab

  • Используйте ветки. Ветки (branches), дающие возможность удобной параллельной разработки - одно из основных преимуществ git. Если вы хотите, к примеру, внести какие-то существенные изменения в уже существующий файл, лучше использовать для этого отдельную ветку, дабы ничего не сломать.
  • Используйте issues. Issues - это хороший способ сообщить о проблеме, реквестировать новую функциональность Или декларировать свои планы.
  • Используйте Markdown. Markdown - лекгий и очень приятный язык разметки текста. Он позволяет быстро и просто писать форматированный текст - как, допустим, этот. В GitLab этот язык используется повсеместно - для README-файлов, комментариев и прочего.
  • Используйте все остальное. GitLab, как и многие другие "системы управления проектами", имеет много полезных фич. Можно, например, делиться друг с другом кусочками кода или вести вики.

Необходимый софт

Помимо, собственно, git для работы с репозиторием, вам потребуется XeTeX и Python 3 для сборки конспектов (почему именно XeTeX). В Debian-подобном дистрибутиве Linux для установки всего нужного будет достаточно команды:

sudo apt-get install git python3 texlive texlive-lang-cyrillic texlive-xetex texlive-generic-extra texlive-fonts-extra texlive-science fonts-cmu 

Что касается Windows, то XeTeX по умолчанию есть в составе MiKTeX.

Сборка

Для сборки нужно пользоваться утилитой build.py, находящейся в корне репозитория.

На линуксе это должно выглядеть как

./build.py

А на виндоусе как:

python build.py

Скрипт build.py поддерживает очень много различных опций, которые можно задать через консоль или файлы .config (общая конфигурация), .localconfig (локальная конфигурация).

Структура директорий

  • src/conspectname Содержит соответсвующий конспект. Все конспекты должны вестись в Tex (если есть принципиальное желание делать что-то другое, то это можно обсудить, но лучше Tex)

    Конспект должен состоять из одного основного файла (например conspect.tex), а также множества вспомогательных частей, включающихся в основной через \input.

  • pdf Тут живут выходные файлы

  • tmp Директория для временных файлов. Когда build.py собирает конспект, всё содержимое папки конспекта копируется сюда и вызывается xelatex. Если всё собралось, то выходная pdf будет скопирована в соответствующую директорию.

    Также здесь можно прочитать логи xelatex-а, если конспект откажется собираться.

  • .config, .localconfig Конфигурация системы сборки в формате json. Найстройки .localconfig перезаписывают найстройки в .config

Как создать новый конспект

  • Чтобы создать новый конспект достаточно скопировать содержимое псевдо-конспекта templatе (включая файл .tgconfig) в новую директорию и внести необходимые изменения.

  • Чтобы система сборки подхватила новый конспект его нужно добавить в список targets в .config (в главной папке репозитория) и создать файл .tgconfig внутри каталога с конспектом.

  • Проверьте, что конспект успешно собирается и хорошо читается.

  • Можно коммитить!

Получение доступа на запись

  • Чтобы получить доступ на запись нужно отправить письмо Саютину Дмитрию или сообщение вк с указанием ника на gitlab.

  • Не забудьте настроить git:

    git config --global user.name  "Alexander Pushkin"
    git config --global user.email "pushkin@mikhailovskoye.ru"

Бинарные файлы

  • После каждого изменения файла git будет хранить как новый файл, так и старый, даже если старый в текущей ветке удалён из дерева. Таким образом, если часто и много менять бинарные файлы, то репозиторий будет быстро-быстро толстеть. Не надо так.

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

  • Ещё раз, ни в коем случае в репозитории не должны оказаться pdf и прочие файлы, которые генерируются из остальных. Это репозиторий максимально настроен на то, чтобы у вас это не вышло, это не просто так.

Текстовые файлы

Все текстовые файлы должны хранится в кодировке utf-8.

Полезные ссылки