Краткое содержание
Это занятие учит писать документ вместе с несколькими авторами, не теряя работы и не путая версии. В нём объясняется, почему обмен версиями по электронной почте не работает и почему исходный текст в виде простого текста позволяет сравнивать и объединять изменения построчно; Overleaf представлен как общий онлайн-редактор: приглашение в проект, одновременное редактирование, комментарии, отслеживание изменений, история с помеченными версиями, выбор LuaLaTeX и загрузка локального проекта; излагается минимальный порядок работы с Git в проекте LaTeX: файл .gitignore, запись по одному предложению на строку и разрешение конфликта в файле .tex, с настоящим выводом тестового репозитория; описываются интеграция Overleaf с Git и синхронизация с GitHub; собраны соглашения, о которых должна договориться команда; в завершение рассматривается latexdiff, который создаёт PDF с отмеченными изменениями между двумя версиями.
Цели обучения
- Объяснить, почему исходный текст в виде простого текста позволяет сравнивать и объединять работу нескольких авторов и почему файл текстового процессора не позволяет делать это тем же образом.
- Открыть доступ к проекту Overleaf с подходящими правами, комментировать, рецензировать с отслеживанием изменений и восстанавливать прежнюю версию из истории.
- Вести проект LaTeX в Git: создать репозиторий, фиксировать изменения, читать историю и различия, синхронизировать его с удалённым репозиторием.
- Написать
.gitignore, который исключает вспомогательные файлы, не исключая того, что нужно документу. - Предсказывать, когда два одновременных изменения приведут к конфликту, и разрешать его в файле
.tex, проверяя затем, что документ компилируется и говорит то, что должен. - Договориться в команде об общей преамбуле, общей библиографической базе, разбиении на файлы и соглашении о метках, а также получить с помощью latexdiff PDF, показывающий изменения между двумя версиями.
Почему писать вместе трудно
Самый распространённый способ писать в команде одновременно и самый хрупкий: один автор отправляет файл по электронной почте, другой правит его и возвращает под новым именем, и через несколько недель в папке лежат отчёт-итог.docx, отчёт-итог-2.docx и отчёт-итог-правки-анны.docx. Если два автора работали одновременно над одной и той же версией, кто-то должен вручную перенести изменения одного в файл другого, и то, что при этом забыли, пропадает незаметно для всех. Текстовый процессор не помогает сравнивать, потому что его файл не читаемый текст, а сжатый пакет, в котором содержание смешано с оформлением; средства сравнения у него есть, но они не позволяют автоматически объединить две независимые линии работы.
Исходный файл LaTeX устроен иначе: это простой текст, который любая программа может читать построчно. Отсюда следуют две операции, недоступные в текстовом процессоре. Первая из них различие (по-английски diff): по двум версиям файла программа точно указывает, какие строки удалены и какие добавлены. Вторая слияние (по-английски merge): получив два набора изменений, сделанных в одной и той же версии, программа сама соединяет их, если они затрагивают разные места файла, и просит вмешаться автора лишь тогда, когда оба изменили одно и то же место. Однако, чтобы эти операции приносили пользу, нужна ещё и организация: общее место, где хранится действующая версия, и запись о том, кто, что и когда изменил. На этом занятии представлены два способа её добиться, которыми пользуется курс: Overleaf, решающий задачу в браузере, и Git, решающий её на компьютере каждого автора, с Texmaker в качестве редактора.
Загрузка содержимого…