Skip to content

Russian‐Phd‐LaTeX‐Dissertation‐Template

Bankn8II©$A edited this page Nov 12, 2024 · 1 revision

Welcome to the Russian-Phd-LaTeX-Dissertation-Template wiki!

ღRußIAN Phd ЛОтЭ€ ძიßÆrტა©i°ჼ 🏛 TempladE

https://barionleg.github.io/Russian-Phd-LaTeX-Dissertation-Template/

От ჼАРйонЛЕг: исходя От изучения учении спасённых в моей семья, рокировка sience 1783 - 2024 [241 Летие создания гОСтСтРАжХовкА, илижек ростков "ГОСТРАХ"], и рокировка sience 1932 - 2024 [8 Лет до юбилея💯 l00Эвакуации ЭрАкоЛЯR ჼижянჹии илижек ОКСиД ჼиянги = ნიანგი Ираклий в Грузии, = Коля в СибÄРиЯR იКРОКОДИЛ и Союзов COMPOSARC ©КОМПОЗА℞] для обогащения гена µიРАჼнНов, путём обядинения ключевых направлении движении прогресса и обоснованное на естественной любви двоюродных и троюродных сестёр и братьев, как ЗЕМЛЯКОВ Я|R ВОКАЛМЗЕ ...

русский = Physic Chemie skY 🕰 COM₽A$SAAT, как и СААТ ИРА Ли [ßიЛ₾]


https://barionleg.github.io/Russian-Phd-LaTeX-Dissertation-Template/PSCyr/


PSCyr — это набор красивых русских шрифтов для LaTeX.

Установка PSCyr для различных конфигураций:

PSCyr включает следующие шрифты:

  • Шрифты с засечками:
    • AcademyPSCyr в начертаниях Regular, Bold, Italic.
    • AntiquaPSCyr в начертаниях Regular, Bold, Italic, Bold Italic.
    • HandbookPSCyr в начертаниях Regular, Bold, Italic.
    • CollegePSCyr в начертаниях Regular, Bold, Italic.
    • JournalPSCyr в начертаниях Regular, Bold, Italic.
    • Lazurski в начертании Regular.
    • TimesNewRomanPSMT в начертаниях Regular, Bold, Italic, Bold Italic.
  • Рубленые шрифты:
    • ArialMT в начертаниях Regular, Bold, Italic, Bold Italic и Black (сверхжирный).
    • TextbookPSCyr в начертаниях Regular, Bold, Italic.
    • MagazinePSCyr в начертаниях Regular, Bold, Italic.
  • Моноширинные шрифты:
    • CourierNewPSMT в начертаниях Regular, Bold, Italic, Bold Italic.
    • ERKurierPSCyr в начертаниях Regular, Bold, Italic, Bold Italic.
  • Декоративные шрифты:
    • CooperPSCyr.
    • AdvertisementPSCyr.

https://barionleg.github.io/Russian-Phd-LaTeX-Dissertation-Template/Readme/Installation


Установка и сборка

Быстрый старт

  1. Скачать шаблон в архиве или клонировать этот репозиторий.
  2. Установить в вашей среде компиляции (например, в редакторе TeXStudio) движок библиографии Biber.
  3. Скомпилировать dissertation.tex для получения диссертации и synopsis.tex для получения автореферата.
  4. Убедиться, что всё успешно компилируется на вашем компьютере (Warning в *.log файле компиляции допустимы).
  5. Если что-то не устраивает в оформлении — проверьте закомментированые возможности в файлах шаблона, много тонкостей в ГОСТ не определены. Например, в файле biblatex.tex можно отключить отображение в списке литературы полей DOI и ISBN, а в styles.tex строчкой \linespread{1.42} можно сделать полуторный интервал между строчками «как в Ворде» (несколько шире, чем общепринятый «типографский», поэтому на страницу влезет меньше текста).

Компиляция черновика

Для включения режима черновика можно выполнить любое из следующих действий:

  • в файле usercfg.mk добавить строчку DRAFTON ?= 1
  • в файле setup.tex поменять значение параметра draft на 1
  • запустить команду make draft или make DRAFTON=1

При этом шаблон будет собираться с некими отклонениями от ГОСТ, но в несколько раз быстрее (в основном отличия касаются оформления списка литературы). Этот режим удобен при промежуточных сборках, например, во время набора формул. Обратите внимание: нумерация работ в списке литературы при использовании режима черновика может быть неверной. Кроме того, при использовании biblatex в режиме черновика не ведётся подсчёт количества пунктов в списке литературы.

Пользователи Linux могут применять команды make dissertation-preformat и make synopsis-preformat, чтобы использовать предварительное форматирование преамбулы диссертации и автореферата (может потребоваться установка пакета texlive-mylatexformat). Это позволяет ускорить сборку ещё приблизительно в 1.5 раза (на повторную сборку черновика диссертации на компьютере с процессором Intel i5 требуется около двух секунд).

Простые ошибки

Если не собирается библиография, ссылки на литературу отображаются вопросами или жирными названиями:

  1. Попробовать поменять параметр bibliosel в соответствующем файле setup.tex, подробнее читать «в случае проблем с библиографией».
  2. Очистить папки проекта от прошлых временных файлов (*.aux, *.toc, *.bbl, *.bcf, *.synctex.gz и прочие подобные).
  3. Убедиться, что в вашей среде компиляции (например, в редакторе TeXStudio) правильно выбран движок библиографии (в соответствии с параметром bibliosel в каждом из файлов setup.tex).
  4. Провести несколько компиляций проекта.
  5. Если ничего из предыдущих пунктов не помогло, запустить latexmk на главном файле автореферата или диссертации, или выполнить соответствующий make.

Если компилируется с ошибками, то изучение соответствующего *.log файла может помочь определить причину (как правило, ошибки вызваны отсутствием необходимых пакетов или их версий). Часто первая ошибка в *.log файле является первопричиной остальных.

Установка

В Ubuntu с TexLive внутри контейнера DockerTex

Протестировано в Ubuntu 16.04 LTS и Ubuntu 18.04 LTS

Для обеспечения максимальной воспроизводимости сборки проекта рекомендуется использовать специализиарованный Docker-контейнер от проекта dockertex, базирующийся на Debian Buster 10 и TexLive 2018, с минимальной модификацией (добавлением пакета шрифтов от Microsoft - ttf-mscorefonts-installer и набора шрифтов Liberation в виде пакета fonts-liberation). Образ контейнера объемом около 2.5 Гб будет загружен из сети, при этом с учетом этапа распаковки в системе потребуется около 8 Гб свободного места в каталоге /var.

Установка контейнера в вашу систему выполняется путем запуска соответствующего скрипта, находящегося в корне этого шаблона:

sh install-dockertex.sh

Далее необходимо выйти из системы и зайти снова (либо перезагрузиться).

После этого станут доступны две новых команды - dockertex и dockertexstudio. Для TexStudio будет создан ярлык с названием Docker TexStudio (texlive2018) в категории Office.

Команда dockertex используется для сборки проекта - диссертации, автореферата и презентации (по сути это make без аргументов):

dockertex make

После выполнения команды будут созданы три PDF-файла: dissertation.pdf, presentation.pdf и synopsis.pdf.

При необходимости можно запустить make clean:

dockertex make clean

Остальные аргументы make могут быть вызваны аналогично.

Команда dockertexstudio используется для запуска TexStudio из контейнера:

dockertexstudio

После открытия файла dissertation.tex и нажатия будет создан PDF диссертации.

В Ubuntu

Протестировано на Ubuntu 19.04. Для LTS-версий рекомендуется использование DockerTex

Для установки XeTeX в Ubuntu и необходимых дополнительных пакетов можно использовать команду:

sudo apt-get install make texlive-xetex texlive-generic-extra texlive-lang-cyrillic texlive-lang-french texlive-science fonts-liberation latexmk biber

или для установки полного комплекта программ:

sudo apt-get install texlive-full

Для использования шрифтов Microsoft требуется их установка. Например, для Ubuntu это можно сделать так:

sudo apt-get install ttf-mscorefonts-installer
sudo fc-cache -fv

В Debian

Протестировано на Debian 10.

Установка аналогична Ubuntu.

Для установки шрифтов Microsoft должен быть подключен репозиторий contrib.

В Fedora

Протестировано на Fedora 27.

Для установки XeTeX необходимо установить следующие пакеты:

sudo dnf install texlive-xetex latexmk texlive-hyphen-russian biber \
                    texlive-extsizes texlive-cm texlive-amscls texlive-nag \
                    texlive-polyglossia texlive-euenc texlive-multirow \
                    texlive-makecell texlive-ec texlive-was texlive-zapfding \
                    texlive-totcount texlive-totpages texlive-interfaces \
                    texlive-tocloft texlive-tabulary texlive-floatrow \
                    texlive-biblatex texlive-biblatex-gost texlive-cite \
                    texlive-bibtex texlive-impnattypo texlive-cleveref \
                    texlive-tabu texlive-mwe

Далее можно установить шрифты из набора Microsoft's Core Fonts. Например, так:

sudo dnf install http://downloads.sourceforge.net/project/mscorefonts2/rpms/msttcore-fonts-installer-2.6-1.noarch.rpm
sudo fc-cache -fv

В Fedora 23 есть проблема (#84) с компиляцией библиографии с помощью biblatex и biber, поэтому необходимо переключиться на использование bibtex. Для этого в файле Dissertation/setup.tex переключите \setcounter{bibliosel}{1} в 0, чтобы получилось \setcounter{bibliosel}{0}. Ту же самую операцию повторите в файле Synopsis/setup.tex.

В Gentoo

В репозиториях Gentoo лежит относительно старая версия TeXLive и сопутствующих пакетов, однако особых проблем с ними возникнуть не должно. Следует учитывать лишь два момента:

  • Устаревший dev-tex/latexmk (на 31.05.2019). В репозитории лежит версия 456, которая не позволит собрать проект. Необходимо создать собственный репозиторий и скопировать в него ебилд от 456 версии, переименовав в соответствии с актуальной (на данный момент это 464a). (Если просто скопировать ебилд под новым именем в тот же самый главный репозиторий, то при очередном emerge --sync он будет перезатерт.)
  • Стилевой файл impnattypo.sty, необходимый для сборки проекта, отправлен мейнтейнерами в пакет dev-texlive/texlive-langfrench, поэтому кроме основных пакетов необходимо установить и его.

TeXLive на Linux в обход привязанных к конкретному линуксу пакетам

How to install «vanilla» TeXLive on Debian or Ubuntu? — инструкция на английском языке, как ставить TeXLive на Linux в обход привязанных к конкретному линуксу пакетам (на примере Debian и Ubuntu).

В MacOS 10.10 и выше

Для установки в среде MacOS достаточно установить пакет MacTeX отсюда. После установки необходимо добавить пути к установленным файлам в переменную окружения PATH, например, так:

export PATH=$PATH:export PATH=$PATH:/Library/TeX/texbin

Чтобы сделать эффект постоянным можно добавить эту строку в .bash_profile:

echo "export PATH=$PATH:export PATH=$PATH:/Library/TeX/texbin" >>~/.bash_profile

Теперь при следующем логине, вам будут доступны утилиты из пакета, необходимые для работы make-скриптов.

Установка шрифтов PSCyr

PSCyr — это пакет красивых русских шрифтов для LaTeX. К сожалению, его нужно устанавливать отдельно. Если он у вас не установлен, то ничего страшного — шаблон заработает и без него. Ну лучше бы его всё-таки поставить. Инструкции по установке PSCyr для различных конфигураций приведены в файле PSCyr/README.md внутри репозитория. Если вы не нашли подходящую вам инструкцию, но смогли выполнить установку самостоятельно, то большая просьба поделиться вашими наработками.

Рабочий способ установки в Ubuntu 15.10

(компиляция из инструкции на welinux и файлов, которые есть в шаблоне)

Нужно скачать шаблон, найти в папке PSCyr файл pscyr0.4d.zip и распаковать его содержимое куда угодно. Чтобы не переписывать пути, папка с содержимым должна называться PSCyr, а не pscyr, как в архиве. Затем надо зайти в терминал, перейти к тому каталогу, где лежит папка PSCyr с содержимым, и выполнить команды из вышеупомянутого руководства:

mkdir ./PSCyr/fonts/map ./PSCyr/fonts/enc
cp ./PSCyr/dvips/pscyr/*.map ./PSCyr/fonts/map/
cp ./PSCyr/dvips/pscyr/*.enc ./PSCyr/fonts/enc/
echo "fadr6t AdvertisementPSCyr \"T2AEncoding ReEncodeFont\"" > ./PSCyr/fonts/map/pscyr.map

Дальше надо узнать, где у вас локальный каталог texmf. Для этого выполняем

kpsewhich -expand-var='$TEXMFLOCAL'

С вероятностью около единицы результат будет /usr/local/share/texmf/. Копируем всё туда:

sudo cp -R ./PSCyr/* /usr/local/share/texmf/

Ну и подключаем:

sudo texhash
updmap --enable Map=pscyr.map
sudo mktexlsr

Установка в MacOS 10.x

  1. Скачать файлы со шрифтами и распаковать их в одну папку.
  2. Создать/отредактировать файл install.sh, чтобы он содержал следующее:
#!/bin/sh

INSTALLDIR=`kpsewhich -expand-var='$TEXMFLOCAL'`
mkdir -p $INSTALLDIR/{tex/latex,fonts/tfm/public,fonts/vf/public,fonts/type1/public,fonts/map/dvips,fonts/afm/public,doc/fonts}/pscyr
mv dvips/pscyr/* $INSTALLDIR/fonts/map/dvips/pscyr
mv tex/latex/pscyr/* $INSTALLDIR/tex/latex/pscyr
mv fonts/tfm/public/pscyr/* $INSTALLDIR/fonts/tfm/public/pscyr
mv fonts/vf/public/pscyr/* $INSTALLDIR/fonts/vf/public/pscyr
mv fonts/type1/public/pscyr/* $INSTALLDIR/fonts/type1/public/pscyr
mv fonts/afm/public/pscyr/* $INSTALLDIR/fonts/afm/public/pscyr
mv LICENSE doc/README.koi doc/PROBLEMS ChangeLog $INSTALLDIR/doc/fonts/pscyr

mktexlsr

echo "Map pscyr.map\n" >> $INSTALLDIR/web2c/updmap.cfg
updmap-sys
  1. Запустить полученный скрипт с помощью sudo:
sudo bash ./install.sh

Рабочий способ установки в Debian 9

Аналогично тому как в Ubuntu не проходит, возникают сложности с правами доступа к некоторым файлам. Разбираюсь в чем дело. Выводит в лог следующее сообщение:

/usr/local/share/texmf/tex/latex/pscyr/pscyr.sty: Permission denied /usr/share/texmf/tex/latex/pscyr/pscyr.sty: Permission denied

Сборка PDF из командной строки

Сборку можно производить следующими командами:

  • диссертация: latexmk -pdf -pdflatex="xelatex %O %S" dissertation
  • автореферат: latexmk -pdf -pdflatex="xelatex %O %S" synopsis

Либо можно использовать make-файлы (движок xelatex): из корневого каталога выполнять

  • make для сборки всего
  • make dissertation для сборки диссертации,
  • make synopsis для сборки автореферата,
  • make presentation для сборки презентации для доклада,
  • make dissertation-draft для сборки диссертации в режиме черновика,
  • make synopsis-draft для сборки автореферата в режиме черновика,
  • make synopsis-booklet для сборки автореферата для печати,
  • make presentation-booklet для сборки презентации для печати,
  • make presentation-handout для сборки раздаточных материалов,
  • make draft для быстрой сборки диссертации и автореферата в режиме черновика,
  • make release для сборки всего и внесения финальных *.pdf файлов в систему контроля версий git
  • make clean очистка от временных файлов
  • make distclean очистка всех генерируемых файлов (включая .pdf)
  • make pdflatex сборка полной версии с движком pdflatex (несколько быстрее для автореферата, чем xelatex, движок для библиографии в соответствии с настройками setup.tex).

Презентация может собираться собираться любым из трёх движков: pdflatex, xelatex, lualatex.

Разное

Пакеты и версии LaTeX

  • Шаблон по умолчанию включает ряд распространённых пакетов, чтобы вы могли сразу ими пользоваться. Однако, на вашей машине какие-то пакеты могут быть не установлены. Если вам они не нужны, то вы можете их просто удалить (команда \usepackage{<имя пакета>}).
  • Лучше всего использовать актуальные и полные версии LaTeX-дистрибутивов, это поможет избежать многих проблем. Например, MikTeX 2.9.6361+ для Windows или TeXLive 2017+ для множества ОС.

Редактирование текста

  • Если у вас ещё не сформировались предпочтения по LaTeX-редактору, то обратите внимание на TeXStudio, существующий для всех основных платформ.
  • Некоторые редакторы (в том числе TeXStudio) позволяют подключить проверку грамматики с помощью Language Tool (есть поддержка русского языка). Полностью от ошибок он не спасёт, но поиск простых случаев облегчает. Например, в предложении «Как правило слон больше черепахи.» он попросит поставить запятую, если одно и то же слово используется подряд (или с интервалом в несколько слов) — LT второе слово подчёркнет и при необходимости не сложно понять, есть смысл использовать синоним, может быть написать «этот, который» или так и оставить. Подобных простых проверок — сотни.

Форматирование исходного кода

Программа latexindent позволяет форматировать исходный код .tex файлов. Это делает код более читаемым и единообразным.

Для форматирования пользовательских документов можно использовать команду:

make indent

Можно указывать другой файл для форматирования. Например, для форматирования только файла MyFILE.tex:

make indent INDENT_FILES=MyFILE.tex

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

make indent INDENT_SETTINGS=mysettings.yaml

Сжатие файлов

Размер выходных .pdf файлов может быть большим. Особенно, если в тексте присутствует много рисунков с большим разрешением. Программа gs позволяет значительно уменьшить размер .pdf файлов за счёт снижения качества растровых изображений.

Для сжатия файла диссертации можно использовать команду:

make compress-lowdpi

Сжатый файл будет создан с суффиксом *_lowdpi.pdf

По умолчанию, разрешение изображений снижается до 144 DPI. Изменить разрешение и другие нюансы можно путём редактирования файла compress.mk

Сжать произвольный pdf файл somefile.pdf можно командой:

make compress-lowdpi COMPRESS_FILE=somefile

Пересборка pdf для типографии

Типографии могут выдвигать специальные требования к pdf файлам. Наиболее типичными являются:

  • отсутсвие прозрачности
  • задание всех цветов в CMYK
  • использование формата PDF версии 1.3

Для приведения pdf в соотвествие с данными требованиями можно использовать команду:

make compress-cmyk

Принцип работы и возможные побочные эффекты описаны в compress.mk.

Отчёт о времени сборки

Для вывода на экран в конце сборки информации о затраченном времени можно использовать флаг TIMERON=1. К примеру, запуск команды

make synopsis TIMERON=1

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

Сборка графики .tikz

В процессе создания графики с использованием библиотеки tikz требуется частая компиляция исходного файла. Производить её вместе с остальным текстом довольно затратно по времени.

Для ускоренной компиляции файлов .tikz отдельно от остального шаблона предусмотрен рецепт make tikz. Для запуска компиляции рисунка требуется задать путь к файлу .tikz при помощи переменной TIKZFILE.

Например,

make tikz TIKZFILE=Presentation/images/tikz_plot.tikz

сгенерирует файл tikz_plot.pdf в корневой папке.

Генерация раздаточного материала

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

Для генерации раздаточных материалов в шаблоне предусмотрен файл presentation_handout.tex. Первым делом требуется сгенерировать саму презентацию presentation.pdf. Далее, в файле presentation_handout.tex надо добавить слайды с соответствующими комментариями при помощи макро \includeslide. Выходной файл presentation_handout.pdf генерируется при помощи команды

make presentation-handout

https://barionleg.github.io/Russian-Phd-LaTeX-Dissertation-Template/Readme/Bibliography


Библиография

Общие замечания

  • Данный шаблон рассчитан на поддержку работы двух реализаций автоматизированного формирования списка литературы и управления библиографией:
    • встроенная реализация с загрузкой файла через движок bibtex при поддержке шаблонов пакета gost;
    • реализация пакетом biblatex через движок biber (рекомендуемая) при поддержке шаблонов пакета biblatex-gost.
  • Лучше всего всегда обрамлять значение BibTeX-атрибутов в фигурные скобки или кавычки (то есть вместо month = jul писать month = {jul}).
  • Также лучше всегда указывать язык BibTeX-записи (например, language = {russian} или language = {english}). Запись языков всегда должна вестись строчными (маленькими) буквами.
  • Параметр langid заполнять не нужно -- он копируется из параметра language.
  • Для пометки базы своей статьи (ВАК, Scopus, Web of Science), можно использовать addendum = {(ВАК, Scopus, Web of Science)}.
  • Для автоматического подсчёта публикаций требуется добавить поля в публикациях в файле biblio/author.bib:
    • authorvak = {true} если публикация индексирована ВАК,
    • authorscopus = {true} если публикация индексирована Scopus,
    • authorwos = {true} если публикация индексирована Web of Science,
    • authorconf = {true} для докладов конференций,
    • authorother = {true} для других публикаций.
  • Автоматический подсчёт патентов и зарегистрированных программ для ЭВМ осуществляется путём добавления в файл biblio/registered.bib полей:
    • authorpatent = {true} для патентов,
    • authorprogram = {true} для зарегистрированных программ.
  • Для оптимального оформления списка литературы стоит убедиться, что исходный *.bib файл заполнен правильным образом. Примеры заполнения записей и результаты применения к ним основных стилей приведены в описании стилей пакета gost и в примерах применения пакета biblatex-gost.

Назначение и размещение файлов с библиографией

Файлы с библиографией расположены в папке biblio/:

  • работы автора — author.bib;
  • зарегистрированные патенты и программы для ЭВМ — registered.bib;
  • чужие работы, на которые автор ссылается — external.bib.

Кроме того, в этой же папке находится файл для автоматической проверки библиографической информации на возможные дубликаты — check-bib-dupes-and-usage.py Скрипт пытается найти повторяющиеся библиографические записи, которые внесены в файлы с разными тегами (такое может произойти, если у вас уже есть несколько публикаций, подготовленных в LaTeX. Их списки литературы могут пересекаться если разные соавторы вносили их в разные исходные публикации под разными тегами). Т.к. обычно список литературы достаточно небольшой (около 200 позиций), то скрипт считает маловероятным обнаружить публикации одного и того же автора в разных работах на одной странице. Если такое происходит — выводится уведомление. Вторая часть скрипта проверяет, все ли ссылки, внесённые в файл библиографии, были использованы в тексте диссертации.

Настройка библиографии

Группированные подсписки литературы (ВАК, Web of Science и т.п.)

В некоторых советах принято литературу разбивать на подсписки: ВАК (или, например, рекомендованные для защиты в диссертационном совете МГУ по специальности), не из списка ВАК (другие) и прочее (тезисы докладов и т.п.).

В любом случае разбиение подразумевает в т.ч. подзаголовки в списке литературы. Пример:

Пример подписка в МГУ

См. подробные обсуждения #361 и #362.

В автореферате

Настройка возможна в режиме biblatex (biber), но не bibtex. Для настройки подобного поведения в автореферате достаточно установить значение bibgrouped в 1 в файле Synopsis/setup.tex следующим образом:

\@ifundefined{c@bibgrouped}{
  \newcounter{bibgrouped}
  \setcounter{bibgrouped}{1}  % 0 --- единый список работ автора;
                              % 1 --- сгруппированные работы автора
}{}

В тексте диссертации

По умолчанию вся цитируемая литература выводится единым списком. Вывод литературы в тексте диссертации регулируется следующими строками в файле Dissertation/references.tex:

\insertbibliofull                           % Подключаем Bib-базы: все статьи единым списком
% Режим с подсписками
%\insertbiblioexternal                      % Подключаем Bib-базы: статьи, не являющиеся статьями автора по теме диссертации
% Для вывода выберите и расскомментируйте одно из двух
%\insertbiblioauthor                        % Подключаем Bib-базы: работы автора единым списком
%\insertbiblioauthorgrouped                 % Подключаем Bib-базы: работы автора сгруппированные (ВАК, WoS, Scopus и т.д.)

Чтобы настроить вывод работ автора, необходимо закомментировать команду \insertbibliofull, раскомментировать \insertbiblioexternal и одну из двух команд, подключающих работы автора. Например, для вывода группированных работ автора настройка выглядит так:

% \insertbibliofull                           % Подключаем Bib-базы: все статьи единым списком
% Режим с подсписками
\insertbiblioexternal                      % Подключаем Bib-базы: статьи, не являющиеся статьями автора по теме диссертации
% Для вывода выберите и расскомментируйте одно из двух
%\insertbiblioauthor                        % Подключаем Bib-базы: работы автора единым списком
\insertbiblioauthorgrouped                 % Подключаем Bib-базы: работы автора сгруппированные (ВАК, WoS, Scopus и т.д.)

Выбор групп для отображения

По умолчанию выводятся группы: ВАК, Web of Science, Scopus, тезисы конференций и прочие работы автора. Чтобы не выводить какую-то из указанных групп, достаточно закомментировать одну из следующих команд \printbibliography в файле biblio/biblatex.tex:

    \section*{\bibtitleauthor}
    \ifsynopsis
    \printbibliography[heading=pubsubgroup, section=0, keyword=biblioauthorvak,    title=\bibtitleauthorvak,resetnumbers=true] % Работы автора из списка ВАК (сброс нумерации)
    \else
    \printbibliography[heading=pubsubgroup, section=0, keyword=biblioauthorvak,    title=\bibtitleauthorvak,resetnumbers=false] % Работы автора из списка ВАК (сквозная нумерация)
    \fi
    \printbibliography[heading=pubsubgroup, section=0, keyword=biblioauthorwos,    title=\bibtitleauthorwos,resetnumbers=false]% Работы автора, индексируемые Web of Science
    \printbibliography[heading=pubsubgroup, section=0, keyword=biblioauthorscopus, title=\bibtitleauthorscopus,resetnumbers=false]% Работы автора, индексируемые Scopus
    \printbibliography[heading=pubsubgroup, section=0, keyword=biblioauthorconf,   title=\bibtitleauthorconf,resetnumbers=false]% Тезисы конференций
    \printbibliography[heading=pubsubgroup, section=0, keyword=biblioauthorother,  title=\bibtitleauthorother,resetnumbers=false]% Прочие работы автора

Наименование списков и подсписков литературы

Может потребоваться изменить наименование списка\подсписка литературы. Например, с наименования по-умолчанию "В изданиях из списка ВАК РФ" на "Статьи в рецензируемых научных изданиях, рекомендованных для защиты в диссертационном совете МГУ по специальности". Для этого достаточно отредоактировать следующие строки в файле common/newnames.tex:

%%% Заголовки библиографии:

% для автореферата:
\newcommand{\bibtitleauthor}{Публикации автора по теме диссертации}

% для стиля библиографии `\insertbiblioauthorgrouped`
\newcommand{\bibtitleauthorvak}{В изданиях из списка ВАК РФ}
\newcommand{\bibtitleauthorscopus}{В изданиях, входящих в международную базу цитирования Scopus}
\newcommand{\bibtitleauthorwos}{В изданиях, входящих в международную базу цитирования Web of Science}
\newcommand{\bibtitleauthorother}{В прочих изданиях}
\newcommand{\bibtitleauthorconf}{В сборниках трудов конференций}

% для стиля библиографии `\insertbiblioauthorimportant`:
\newcommand{\bibtitleauthorimportant}{Наиболее значимые \protect\MakeLowercase\bibtitleauthor}

% для списка литературы в диссертации и списка чужих работ в автореферате:
\newcommand{\bibtitlefull}{Список литературы} % (ГОСТ Р 7.0.11-2011, 4)

Строгость соответствия ГОСТ

В соответствии с пунктом 5.6.7 ГОСТ Р 7.0.11-2011 СИБИД. Диссертация и автореферат диссертации. Структура и правила оформления библиографические записи в списке литературы оформляют согласно ГОСТ 7.1. Последний предписывает оформление записей в списке литературы примерно таким образом:

Лермонтов, М. Ю. Собрание сочинений: в 4 т. / М. Ю. Лермонтов. –– М. : Терра-Кн. клуб, 2009. –– 4 т.

Фамилия, И. О. Название статьи / И. О. Фамилия, И. О. Фамилия2, И. О. Фамилия3 // Журнал. –– 2013. –– Т. 1, № 5. –– С. 100––120.

Подобное дублирование ФИО первого автора многих неподготовленных к строгости ГОСТ 7.1 читателей может сильно смутить. Кроме того, в вашем диссертационном совете может быть не принято строго соответствовать ГОСТ в этой части, и такой вид списка литературы может быть воспринят как следствие ошибки.

В этом случае на свой страх и риск можно понизить строгость ГОСТ, закомментировать следующие строки файла biblio/biblatex.tex:

\ltx@iffilelater{biblatex-gost.def}{2017/05/03}%
{\toggletrue{bbx:gostbibliography}%
\renewcommand*{\revsdnamepunct}{\addcomma}}{}

Список литературы теперь будет выглядеть так:

Лермонтов М. Ю. Собрание сочинений: в 4 т. –– М. : Терра-Кн. клуб, 2009. –– 4 т.

Фамилия И. О., Фамилия2 И. О., Фамилия3 И. О. Название статьи // Журнал. –– 2013. –– Т. 1, № 5. –– С. 100––120.

Подробнее, смотрите обсуждения в #341, #215.

Замечания по реализациям библиографии

biblatex + biblatex-gost + biber

  • В версии biblatex 3.1 существует баг, поэтому её не стоит использовать.
  • Предупреждение в логе
Package biblatex Warning: 'babel/polyglossia' detected but 'csquotes' missing.
(biblatex) Loading 'csquotes' recommended.

является рекомендацией автора biblatex и csquotes. \usepackage{csquotes} уберёт этот warning-recommendation, только смысла в этом пакете для русскоязычной диссертации нет — он для западноевропейских языков. Для русского языка babel и polyglossia (с параметром babelshorthands) что могут — то решают.

Встроенная + gost + bibtex

  • В bibtex отсутствует встроенная возможность создавать несколько списков литературы для одного документа, поэтому для автореферата придётся обходиться без ссылок на работы других авторов, оставляя нужный по ГОСТ список работ автора по теме диссертации.
  • Отечественный ГОСТ очень суров, в настоящее время ещё не создали такой BibTeX-стиль, который бы ему полностью соответствовал. В данном шаблоне используется стиль utf8gost71u.bst, он более или менее вменяемый и достаточно близок к стандарту. Впрочем, при написании диссертации редко кто требует точного соответствия ГОСТ-у, лишь всё было оформлено красиво и однообразно. Если utf8gost71u.bst вас не устраивает, то вы можете выбрать любой другой стиль (из папки BibTeX-Styles или найденный в интернете). В файле biblio.bib аккуратно приведена вся библиография из ГОСТ Р 7.0.11–2011 и примеры всех типов документов на английском, так что вы можете попробовать все интересующие вас стили и увидеть, как каждый из них форматирует библиографию.
  • В стилевых файлов русских ГОСТ-ов многие типы документов (например, PHDTHESIS или TECHREPORT) сделаны очень плохо. В большинстве случаев лучше их вполне можно заменить на ARTICLE или BOOK.
  • bibtex(bibtex8) некорректно работает с преобразованиями юникодных символов, потому сокращения до инициалов или возможности по изменению регистра с utf8 работать не будут. Соответствующим образом надо заполнять *.bib файл.
  • Подборка русских стилевых пакетов BibTeX под UTF-8 размещена в папке BibTeX-Styles/.

ugost2008mod.bst

Доработанный шаблон ugost2008.bst:

  • Теперь не ругается на тип @Mastersthesis.
  • Теперь есть три функции (вместо одной) для выделения текста: авторы, журнал, том издания, которыми можно управлять. По умолчанию выделения нет. Пример задания выделения перед вызовом библиографии (авторы — курсив, журнал — жирный, том — подчеркнутый):
\providecommand*{\BibEmph}[1]{\emph{#1}}
\providecommand*{\BibEmphi}[1]{\textbf{#1}}
\providecommand*{\BibEmphii}[1]{\underline{#1}}
  • Ссылка DOI, при наличии у любого типа записей теперь проставлена у первых пунктов после номера в списке литературы, а не только у названия журнала или книги.

  • Если у записи есть DOI, но нет URL или eprint, то в конец записи в списке литературы пишется DOI: …

  • Для того, чтобы убрать DOI из отображения, перед запуском библиографии пишется:

\makeatletter %http://tex.stackexchange.com/questions/40590/is-there-a-command-to-ignore-the-following-character
\def\?#1{}        % средство удаления последующего знака
\makeatother
\providecommand*{\BibDOI}[1]{\?}   % Пустой DOI, съедающий следующую за собой точку
  • Как и у базового ugost2008.bst можно отключить разделительное тире между элементами записи, записав перед вызовов библиографии:
\providecommand*{\BibDash}{}
  • Теперь, если авторов больше трёх, то они перемещаются правее заглавия, в область указания ответственности, и там сокращаются до первого «[и др.]» (согласно распространённой практике применения библиографических ГОСТов).

Список статей в презентации

В списке статей презентации не требуется соблюдение ГОСТ. Для экономии места на слайде можно убрать лишнюю информацию о статьях автора, оставив лишь самое необходимое. Для этого в файле biblatex.tex/ находится Список лишних полей в презентации. В нём можно выбрать поля, которые требуется убрать из списка статей презентации.

Дополнительная информация

Справка к пакету biblatex-gost рассказывает о взаимосвязи ГОСТов на библиографию.

Цитирование в диссертации: рекомендации по оформлению.

В случае проблем

Многие проблемы связаны с несоответствием выбранного движка данного шаблона и движка настроенного в пользовательской системе для компиляции по умолчанию. Движок настраивается в файлах setup.tex в строчке кода:

\setcounter{bibliosel}{1}           % 0 --- встроенная реализация с загрузкой файла через движок bibtex8; 1 --- реализация пакетом biblatex через движок biber

В случае проблем компиляции встроенной библиографии на движке bibtex, попробуйте настроить в среде компиляции запуск bibtex8:

bibtex8.exe -B -c utf8cyrillic.csf %

где % — имя файла без расширения, или

bibtex8.exe -B -c utf8cyrillic.csf dissertation.aux

Если выводится в ошибка

I found no \citation commands---while reading file dissertation.aux

то, например под windows/texlive 2015/texstudio «лечится» изменением в Параметры-Конфигурация TeXStudio-Построение настройки Библиография по умолчанию на Biber (стоит часто BibTeX, и не работает, если в файлах setup.tex настроено \setcounter{bibliosel}{1}). Если используется WinEdt и MikTEX: Options-Execution Modes- вкладка Console Applications- в списке слева пункт BibTEX. Параметр Executable меняем с bibtex.exe на biber.exe.

Если нумерация списка литературы начинается с неправильного номера, то возможной причиной является старые версии используемых пакетов biblatex и biber. Решается обновлением пакетов, обновлением всей установки TeX, или можно в файле biblatex.tex выставить в false или закомментировать опцию пакета biblatex:

defernumbers=true,

рискуя при этом получить иные проблемы с нумерацией списка литературы.

Режим черновика

При сборке в режиме черновика нумерация работ может быть неверной (для ускорения сборки). Для правильной сортировки работ требуется:

  • откомментировать строку defernumbers=true, в файле biblio/biblatex.tex,
  • в файле common/characteristic.tex вынести строку \printbibliography[heading=nobibheading,section=0,env=countexternal,keyword=biblioexternal] за пределы условного оператора.

https://barionleg.github.io/Russian-Phd-LaTeX-Dissertation-Template/Readme/github


Как писать диссертацию на GitHub?

Hint

При использовании Git может оказаться полезным добавить нужные для пакета gitinfo2 файлы в локальную копию .git/hooks, тогда в режиме черновика на каждой странице диссертации будет указываться используемая ревизия документа (короткий хэш коммита) и дата его внесения.

Без обновления шаблона

Описанную ниже схему можно использовать для того, чтобы писать свою диссертацию на GitHub используя шаблон Russian-Phd-LaTeX-Dissertation-Template

  1. Создаём учётную запись на GitHub.

  2. Логинимся, жмём значок Fork на главной странице шаблона. После этого шаблон появится в списке репозиториев уже вашей учётной записи.

  3. Открываем свою копию шаблона. Жмём кнопку Branch:master, в поле «Find or create a branch» пишем имя для ветки репозитория под свой диссер. У меня (@kostyfisik) это «disser-Ladutenko». Если после нажатия на кнопку в поле ввода вы видите надпись «Filter branches/tags» — вы в чужой копии репозитория.

  4. Дальше можно клонировать шаблон к себе на компьютер. Делать это надо из СВОЕЙ копии шаблона!

  5. Пишем диссер в своей ветке, радуемся возможностям системы контроля версии, например можно утром посмотреть, а что именно ты менял по тексту вчера в 3 часа ночи…

Или научник наделал правок по всему тексту, делаем новую ветку, заменяем свой файл на исправленный, на сайте делаем compare, смотрим что поменялось.

Продвинутый неленивый научник сделает вам pull request с предлагаемыми изменениями. Хорошей идей может оказаться использовать инструменты для code review и collaboration, существующие на GitHub. Перед тем как вносить изменения уже в ветку со своими изменениями — создаёте ещё одну ветку, а потом из неё делаете pull request в свою основную ветку дисера. Ссылку на изменения в PR можно послать научнику, а он может прямо на сайте добавлять комментарии именно по предлагаемым изменениям (т.е. он их сможет просматривать инкрементально, а не по всему дисеру сразу). Можно заводить личные issue (или их может добавлять научник), вроде «добавить картинку XXX», «изменить описание эффекта YYY» и т.д. Оптимизируйте ваш рабочий процесс, сделайте его максимально эффективным!

С обновлением

Остальные инструкции выполняются из командной строки в Linux, а для Windows\Mac есть программы для работы с git… в которых тоже можно выполнять указанные ниже команды! Нужны они для того, чтобы улучшения в основном шаблоне можно было наложить поверх уже начатого дисера.

  1. Указываем в своей локальной копии (на компьютере), что откуда она должна получать обновления. Это делается один раз для каждой локальной копии.

git remote add upstream https://github.com/AndreyAkinshin/Russian-Phd-LaTeX-Dissertation-Template

  1. Теперь в любой момент можно обновить свою локальную копию и свою копию на сайте GitHub следующим набором команд.

Переключаемся в master ветку: git checkout master

Синхронизируем локальную копию с своей копией на сайте: git pull

Получаем актуальные обновления: git fetch upstream

Смотрим что поменялось: git diff upstream/master

Сливаем изменения в свою локальную копию: git merge upstream/master

Отправляем их в свою копию на сайте: git push

  1. Не сложно подтянуть обновления уже непосредственно в свой диссер. Для этого (подставлено имя моей ветки диссера):

git checkout disser-Ladutenko

по желанию: git diff master

git merge master

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

Updating 22ca047..112b54a
Fast-forward
 Dissertation/disstyles.tex                |  16 +++++++++-
 README.md                                 |   8 +++--
 Bibliography.md => Readme/Bibliography.md |   0
 Installation.md => Readme/Installation.md |   6 ++--
 Links.md => Readme/Links.md               |   0
 Readme/github.md                          | 163 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 Synopsis/synstyles.tex                    |  19 ++++++++---
 Synopsis/title.tex                        |  77 ++++++++++++++++++++++-----------------------
 Synopsis/userstyles.tex                   |   1 +
 biblio/biblatex.tex                       |   8 ++---
 common/data.tex                           |  18 ++++++-----
 common/styles.tex                         |   6 ----
 synopsis.tex                              |  33 ++++++++++++++++++--
 13 files changed, 284 insertions(+), 71 deletions(-)
 rename Bibliography.md => Readme/Bibliography.md (100%)
 rename Installation.md => Readme/Installation.md (96%)
 rename Links.md => Readme/Links.md (100%)
 create mode 100644 Readme/github.md
  1. В противном случае может потребоваться ручное разрешение конфликтов. Например,
$ git merge master
Auto-merging dissertation.tex
Auto-merging common/styles.tex
CONFLICT (content): Merge conflict in common/styles.tex
Auto-merging common/packages.tex
CONFLICT (content): Merge conflict in common/packages.tex
Auto-merging Dissertation/userstyles.tex
Auto-merging Dissertation/userpackages.tex
Auto-merging Dissertation/part3.tex
CONFLICT (content): Merge conflict in Dissertation/part3.tex
Auto-merging Dissertation/part2.tex
CONFLICT (content): Merge conflict in Dissertation/part2.tex
Auto-merging Dissertation/appendix.tex
CONFLICT (content): Merge conflict in Dissertation/appendix.tex
Automatic merge failed; fix conflicts and then commit the result.

Тогда надо каждый файл с конфликтом открыть и исправить конфликт вручную.

Для файлов partX.tex это, как правило, означает, что надо удалить строчку

<<<<<<< HEAD

в начале файла, найти строчку

=======

и удалить от неё до строчки

>>>>>>> master

Чаще всего хочется оставить HEAD, но могут быть варианты. Например:

<<<<<<< HEAD
%%% Макет страницы %%%
% Выставляем значения полей (ГОСТ 7.0.11-2011, 5.3.7)
\geometry{a4paper,top=2cm,bottom=2cm,left=2.5cm,right=1cm}

=======
>>>>>>> master

Описание к геометрии уехало в другой файл, так что его удаляем, а от master останется пустое место.

Ещё пример:

<<<<<<< HEAD
%%% Интервалы %%%
\usepackage[onehalfspacing]{setspace} % Опция запуска пакета правит не только интервалы в обычном тексте, но и формульные
\usepackage{needspace}

%%% Разрывы страниц %%%
% \needspace{2\baselineskip} располагает две последующие строчки на
% одной странице. Тут используется, чтобы слово "задачи" и "положения"
% оказались на одной странице со списком из задач и положений
%\usepackage{needspace}
\makeatletter
\newcommand\mynobreakpar{\par\nobreak\@afterheading}
\makeatother

=======
>>>>>>> master

Объявления \usepackage переехали в другой файл, их тут удаляем, блок про разрыв страниц оставляем. Служебные

<<<<<<< HEAD
=======
>>>>>>> master

разумеется, удаляем.

После того как все конфликты разрешены — не забудьте сделать финальный коммит, который я обычно называю merge.

Собственно всё, ничего другого, чтобы поддерживать уже частично написанный диссер в соответствии с усилиями авторов шаблона достичь идеала не требуется.

Если что-то пошло не так

Ничего страшного, всегда есть возможность откатиться к коммиту прямо перед тем, как вы начали делать merge!

Синхронизация с upstream (для продвинутых пользователей)

Шаблон время от времени обновляется, и может возникнуть желание добавить полезные изменения к себе в работу. Однако делать это при помощи merge может быть проблематично. Для таких случаев удобно использовать команду git rebase.

Рассмотрим ситуацию -- вы начали писать свою работу после коммита номер 3 в ветке master. После этого шаблон был обновлён в ветке upstream. Эта ситуация проиллюстрирована на рисунке ниже.

+--------+     +--------+     +--------+     +--------+     +--------+
|commit 1+----->commit 2+----->commit 3+--+-->commit 4+----->commit 5|   upstream
+--------+     +--------+     +--------+  |  +--------+     +--------+
                                          |
                                          |
                                          |  +--------+     +--------+
                                          +-->commit 6+----->commit 7|   master*
                                             +--------+     +--------+

Для merge в данном случае наверняка понадобится разрешать множество конфликтов. git предоставляет более лёгкий способ синхронизации изменений -- rebase.

Для слияния веток введите команду:

git rebase upstream

После этого git применит Ваши изменения начиная с последнего коммита ветки upstream. Результат этой операции будет выглядеть так:

                                                             upstream
+--------+     +--------+     +--------+     +--------+     +--------+     +---------+     +---------+
|commit 1+----->commit 2+----->commit 3+----->commit 4+----->commit 5+----->commit 6*+----->commit 7*|   master
+--------+     +--------+     +--------+     +--------+     +--------+     +---------+     +---------+

Такой подход вызовет минимальное количество конфликтов (если у веток только одно пересечение).

Минусом данного подхода является то, что hash всех коммитов ветки master будет изменён. Следствием этого будет то, что ссылки на эти коммиты в issue tracker будут сломаны, так что данный способ лучше не использовать при наличии ссылок на коммиты в issue tracker.

Кроме того, при загрузке изменений на сервер потребуется использовать силу:

git push --force origin master

А при последующей синхронизации на другом компьютере надо будет использовать:

git fetch origin
git reset --hard origin/master

☀ Sun мАйкровзёхеРÅm майкробзёхером

Clone this wiki locally