-
Notifications
You must be signed in to change notification settings - Fork 0
Russian‐Phd‐LaTeX‐Dissertation‐Template
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
- Быстрый старт
- Компиляция черновика
- Простые ошибки
- Установка
- Сборка PDF из командной строки
- Разное
- Скачать шаблон в архиве или клонировать этот репозиторий.
- Установить в вашей среде компиляции (например, в редакторе TeXStudio) движок
библиографии
Biber
. - Скомпилировать
dissertation.tex
для получения диссертации иsynopsis.tex
для получения автореферата. - Убедиться, что всё успешно компилируется на вашем компьютере (
Warning
в*.log
файле компиляции допустимы). - Если что-то не устраивает в оформлении — проверьте закомментированые
возможности в файлах шаблона, много тонкостей в ГОСТ не определены. Например, в
файле
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 требуется около двух
секунд).
Если не собирается библиография, ссылки на литературу отображаются вопросами или жирными названиями:
- Попробовать поменять параметр
bibliosel
в соответствующем файлеsetup.tex
, подробнее читать «в случае проблем с библиографией». - Очистить папки проекта от прошлых временных файлов (
*.aux
,*.toc
,*.bbl
,*.bcf
,*.synctex.gz
и прочие подобные). - Убедиться, что в вашей среде компиляции (например, в редакторе TeXStudio)
правильно выбран движок библиографии (в соответствии с параметром
bibliosel
в каждом из файловsetup.tex
). - Провести несколько компиляций проекта.
- Если ничего из предыдущих пунктов не помогло, запустить
latexmk
на главном файле автореферата или диссертации, или выполнить соответствующийmake
.
Если компилируется с ошибками, то изучение соответствующего *.log
файла может
помочь определить причину (как правило, ошибки вызваны отсутствием необходимых
пакетов или их версий). Часто первая ошибка в *.log
файле является
первопричиной остальных.
Протестировано в 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 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 10.
Установка аналогична Ubuntu.
Для установки шрифтов Microsoft должен быть подключен репозиторий contrib
.
Протестировано на 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 лежит относительно старая версия TeXLive и сопутствующих пакетов, однако особых проблем с ними возникнуть не должно. Следует учитывать лишь два момента:
- Устаревший
dev-tex/latexmk
(на 31.05.2019). В репозитории лежит версия 456, которая не позволит собрать проект. Необходимо создать собственный репозиторий и скопировать в него ебилд от 456 версии, переименовав в соответствии с актуальной (на данный момент это 464a). (Если просто скопировать ебилд под новым именем в тот же самый главный репозиторий, то при очередномemerge --sync
он будет перезатерт.) - Стилевой файл
impnattypo.sty
, необходимый для сборки проекта, отправлен мейнтейнерами в пакетdev-texlive/texlive-langfrench
, поэтому кроме основных пакетов необходимо установить и его.
How to install «vanilla» TeXLive on Debian or Ubuntu? — инструкция на английском языке, как ставить TeXLive на Linux в обход привязанных к конкретному линуксу пакетам (на примере Debian и Ubuntu).
Для установки в среде 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 — это пакет красивых русских шрифтов для LaTeX. К сожалению, его нужно
устанавливать отдельно. Если он у вас не установлен, то ничего страшного —
шаблон заработает и без него. Ну лучше бы его всё-таки поставить. Инструкции по
установке PSCyr для различных конфигураций приведены
в файле PSCyr/README.md
внутри
репозитория.
Если вы не нашли подходящую вам инструкцию, но смогли выполнить установку
самостоятельно, то большая просьба
поделиться
вашими наработками.
(компиляция из инструкции на 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
- Скачать файлы со шрифтами и распаковать их в одну папку.
- Создать/отредактировать файл
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
- Запустить полученный скрипт с помощью
sudo
:
sudo bash ./install.sh
Аналогично тому как в Ubuntu не проходит, возникают сложности с правами доступа к некоторым файлам. Разбираюсь в чем дело. Выводит в лог следующее сообщение:
/usr/local/share/texmf/tex/latex/pscyr/pscyr.sty: Permission denied /usr/share/texmf/tex/latex/pscyr/pscyr.sty: Permission denied
Сборку можно производить следующими командами:
- диссертация:
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
.
- Шаблон по умолчанию включает ряд распространённых пакетов, чтобы вы могли
сразу ими пользоваться. Однако, на вашей машине какие-то пакеты могут быть не
установлены. Если вам они не нужны, то вы можете их просто удалить (команда
\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 файлам. Наиболее типичными являются:
- отсутсвие прозрачности
- задание всех цветов в CMYK
- использование формата PDF версии 1.3
Для приведения pdf в соотвествие с данными требованиями можно использовать команду:
make compress-cmyk
Принцип работы и возможные побочные эффекты описаны в compress.mk
.
Для вывода на экран в конце сборки информации о затраченном времени можно
использовать флаг TIMERON=1
.
К примеру, запуск команды
make synopsis TIMERON=1
выведет на экран в конце сборки информацию о времени, затраченном на каждый вызов используемого движка latex, а также суммарно затраченное время.
В процессе создания графики с использованием библиотеки 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 позиций), то скрипт считает маловероятным обнаружить публикации одного и того же автора в разных работах на одной странице. Если такое происходит — выводится уведомление. Вторая часть скрипта проверяет, все ли ссылки, внесённые в файл библиографии, были использованы в тексте диссертации.
В некоторых советах принято литературу разбивать на подсписки: ВАК (или, например, рекомендованные для защиты в диссертационном совете МГУ по специальности), не из списка ВАК (другие) и прочее (тезисы докладов и т.п.).
В любом случае разбиение подразумевает в т.ч. подзаголовки в списке литературы. Пример:
См. подробные обсуждения #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
3.1 существует баг, поэтому её не стоит использовать. - Предупреждение в логе
Package biblatex Warning: 'babel/polyglossia' detected but 'csquotes' missing.
(biblatex) Loading 'csquotes' recommended.
является рекомендацией автора biblatex
и csquotes
.
\usepackage{csquotes}
уберёт этот warning-recommendation,
только смысла в этом пакете для русскоязычной диссертации нет — он для
западноевропейских языков. Для русского языка babel
и polyglossia
(с параметром babelshorthands
) что могут — то решают.
- Посредством этой связки решается вопрос подсчета авторских литературных источников.
- В 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/.
Доработанный шаблон 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
- Hint
- Без обновления шаблона
- С обновлением
- Если что-то пошло не так
- Синхронизация с upstream (для продвинутых пользователей)
При использовании Git может оказаться полезным добавить нужные для пакета
gitinfo2
файлы в локальную копию .git/hooks
, тогда в режиме черновика на каждой странице диссертации будет указываться используемая ревизия документа (короткий хэш коммита) и дата его внесения.
Описанную ниже схему можно использовать для того, чтобы писать свою диссертацию на GitHub используя шаблон Russian-Phd-LaTeX-Dissertation-Template
-
Создаём учётную запись на GitHub.
-
Логинимся, жмём значок Fork на главной странице шаблона. После этого шаблон появится в списке репозиториев уже вашей учётной записи.
-
Открываем свою копию шаблона. Жмём кнопку Branch:master, в поле «Find or create a branch» пишем имя для ветки репозитория под свой диссер. У меня (@kostyfisik) это «disser-Ladutenko». Если после нажатия на кнопку в поле ввода вы видите надпись «Filter branches/tags» — вы в чужой копии репозитория.
-
Дальше можно клонировать шаблон к себе на компьютер. Делать это надо из СВОЕЙ копии шаблона!
-
Пишем диссер в своей ветке, радуемся возможностям системы контроля версии, например можно утром посмотреть, а что именно ты менял по тексту вчера в 3 часа ночи…
Или научник наделал правок по всему тексту, делаем новую ветку, заменяем свой файл на исправленный, на сайте делаем compare, смотрим что поменялось.
Продвинутый неленивый научник сделает вам pull request с предлагаемыми изменениями. Хорошей идей может оказаться использовать инструменты для code review и collaboration, существующие на GitHub. Перед тем как вносить изменения уже в ветку со своими изменениями — создаёте ещё одну ветку, а потом из неё делаете pull request в свою основную ветку дисера. Ссылку на изменения в PR можно послать научнику, а он может прямо на сайте добавлять комментарии именно по предлагаемым изменениям (т.е. он их сможет просматривать инкрементально, а не по всему дисеру сразу). Можно заводить личные issue (или их может добавлять научник), вроде «добавить картинку XXX», «изменить описание эффекта YYY» и т.д. Оптимизируйте ваш рабочий процесс, сделайте его максимально эффективным!
Остальные инструкции выполняются из командной строки в Linux, а для Windows\Mac есть программы для работы с git… в которых тоже можно выполнять указанные ниже команды! Нужны они для того, чтобы улучшения в основном шаблоне можно было наложить поверх уже начатого дисера.
- Указываем в своей локальной копии (на компьютере), что откуда она должна получать обновления. Это делается один раз для каждой локальной копии.
git remote add upstream https://github.com/AndreyAkinshin/Russian-Phd-LaTeX-Dissertation-Template
- Теперь в любой момент можно обновить свою локальную копию и свою копию на сайте GitHub следующим набором команд.
Переключаемся в master ветку: git checkout master
Синхронизируем локальную копию с своей копией на сайте: git pull
Получаем актуальные обновления: git fetch upstream
Смотрим что поменялось: git diff upstream/master
Сливаем изменения в свою локальную копию: git merge upstream/master
Отправляем их в свою копию на сайте: git push
- Не сложно подтянуть обновления уже непосредственно в свой диссер. Для этого (подставлено имя моей ветки диссера):
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
- В противном случае может потребоваться ручное разрешение конфликтов. Например,
$ 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!
Шаблон время от времени обновляется, и может возникнуть желание
добавить полезные изменения к себе в работу.
Однако делать это при помощи 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