BibLaTeX. Отображение кода EDN
BibLaTeX. Отображение кода EDN.
Содержание
1 Общая информация
- Реализуется отображение кода eLibrary EDN (см. EDN - идентификатор eLibrary.ru).
2 Реализация
2.1 Расширение модели данных
- Создаётся файл описания модели данных
edn.dbx
:\ProvidesFile{edn.dbx}[2023/10/18 add EDN field to biblatex] \DeclareDatamodelFields[type=field,datatype=verbatim]{edn} \DeclareDatamodelEntryfields{edn} \endinput
- Модель данных подключается следующим образом:
\usepackage[style=gost-numeric,datamodel=edn]{biblatex}
3 Задание нового поля
- Задаётся новая запись для поля:
\newtoggle{bbx:edn} \newtoggle{cbx:edn} \DeclareBibliographyOption{edn}[true]{% \global\settoggle{bbx:edn}{#1}% \global\settoggle{cbx:edn}{#1}} \ExecuteBibliographyOptions{edn} \DeclareFieldFormat{edn}{% \mkbibacro{EDN}\addcolon\space \ifhyperref{ \lowercase{\href{https://elibrary.ru/#1}}{\nolinkurl{#1}} }{\nolinkurl{#1}} }
4 Изменение макросов для отображения
- Подключаем пакет для исправления макросов:
\usepackage{xpatch}
- Исправляем стандартный макрос:
\xapptobibmacro{doi+eprint+url}{ \ifcitation{ \iftoggle{cbx:edn} {\printfield{edn}} {} }{ \iftoggle{bbx:edn} {\printfield{edn}} {} }% }{}{}
- В стиле
biblatex-gost
используется другой макрос. Исправляем и его:\xapptobibmacro{doi+eprint+url+note}{ \newunit\newblock \ifcitation{ \iftoggle{cbx:edn} {\printfield{edn}} {} }{ \iftoggle{bbx:edn} {\printfield{edn}} {} }% }{}{}