BibLaTeX. Ссылка на программный продукт
BibLaTeX. Ссылка на программный продукт.
Содержание
1 Общая информация
- В BibLaTeX есть стандартное поле
software
. - Однако в стандартных стилях оно не реализовано (вернее, просто является заглушкой).
2 Пакет biblatex-software
- CTAN: https://ctan.org/pkg/biblatex-software
- Репозиторий: https://gitlab.inria.fr/gt-sw-citation/bibtex-sw-entry
- Добавляет поддержку четырёх типов записей программного обеспечения к любому другому стилю BibLaTeX.
- Состоит из следующих компонентов:
- стиль ссылок (
software.bbx
); - расширение модели данных (
software.dbx
); - файлы локализации строк (
<lang>-software.lbx
).
- стиль ссылок (
2.1 Типы записей
- Четыре типа записей:
@software
;@softwareversion
;@softwaremodule
;@codefragment
.
2.1.1 @software
- Применение : программное обеспечение.
- Обязательные поля :
author
/editor
,title
,url
,year
. - Дополнительные поля :
abstract
,date
,doi
,eprint
,eprintclass
,eprinttype
,file
,hal_id
,hal_version
,institution
,license
,month
,note
,organization
,publisher
,related
,relatedtype
,relatedstring
,repository
,swhid
,urldate
,version
.
2.1.2 @softwareversion
- Применение : конкретная версия программного обеспечения.
- Наследует значения отсутствующих полей из записи, упомянутой в поле
crossref
. - Обязательные поля :
author
/editor
,title
,url
,version
,year
. - Дополнительные поля :
abstract
,crossref
,date
,doi
,eprint
,eprintclass
,eprinttype
,file
,hal_id
,hal_version
,institution
,introducedin
,license
,month
,note
,organization
,publisher
,related
,relatedtype
,relatedstring
,repository
,swhid
,subtitle
,urldate
.
2.1.3 @softwaremodule
- Применение : конкретный модуль более крупного программного проекта.
- Наследует значения отсутствующих полей из записи, упомянутой в поле
crossref
. - Обязательные поля :
author
,subtitle
,url
,year
. - Дополнительные поля :
abstract
,crossref
,date
,doi
,eprint
,eprintclass
,eprinttype
,editor
,file
,hal_id
,hal_version
,institution
,introducedin
,license
,month
,note
,organization
,publisher
,related
,relatedtype
,relatedstring
,repository
,swhid
,title
,urldate
,version
.
2.1.4 @codefragment
- Применение : фрагмент кода (например, конкретный алгоритм в программе или библиотеке).
- Наследует значения отсутствующих полей из записи, упомянутой в поле
crossref
. - Обязательные поля :
url
. - Дополнительные поля :
author
,abstract
,crossref
,date
,doi
,eprint
,eprintclass
,eprinttype
,file
,hal_id
,hal_version
,institution
,introducedin
,license
,month
,note
,organization
,publisher
,related
,relatedtype
,relatedstring
,repository
,swhid
,subtitle
,title
,urldate
,version
,year
.
2.2 Дополнительные поля
- Пакет вводит новые поля, специфичные для пакета:
hal_id
: цифровой идентификатор для запись программного обеспечения, включая его описание и метаданные в HAL;hal_version
: версия записи программного обеспечения HAL;license
: лицензия на право собственности в формате SPDX;introducedin
: если это программный модуль или фрагмент, версия содержащего проекта, в которой он был впервые представлен;repository
: URL-адрес репозитория кода (например, на GitHub, GitLab);swhid
: идентификатор цифрового объекта (https://docs.softwareheritage.org/devel/swh-model/persistent-identifiers.html):swh-id
: внутренний идентификатор элемента;swh:cnt
: для содержимого;swh:dir
: для каталога;swh:rev
: для ревизия;swh:rel
: для выпуска.
2.3 Использование
- Добавить модель данных к
biblatex
:1\usepackage[datamodel=software]{biblatex}
- Подключить стиль:
1\usepackage{software-biblatex}
- Установите опции пакета:
- Опции пакета:
swlabels=true|false
: программное обеспечение — это особый результат исследования, отличный от публикаций, поэтому записи о программном обеспечении в библиографии по умолчанию помечаются специальной меткой;license=true|false
: информация о лицензии (по умолчаниюtrue
);halid=true|false
: включением идентификатора в репозитории HAL (по умолчаниюtrue
);swhid=true|false
: включением идентификатора в архиве Software Heritage (SWHID) (по умолчаниюtrue
);shortswhid=true|false
: способ отображения SWHID; еслиtrue
, в печатную версию будет включена только основная часть SWHID, а в гиперссылке будет сохранен полный SWHID со всей контекстной информацией (по умолчаниюfalse
);vcs=true|false
: URL-адрес платформы размещения кода, на которой разрабатывается программное обеспечение, описанное в записи (по умолчаниюtrue
).
2.4 Примеры
2.4.1 software, softwareversion
Пример описания выпуска программного обеспечения с использованием одной записи
@softwareversion
:1@softwareversion {delebecque:hal-02090402-condensed, 2 title = {Scilab}, 3 author = {Delebecque, Fran{\c c}ois and Gomez, Claude and Goursat, Maurice and Nikoukhah, Ramine and Steer, Serge and Chancelier, Jean-Philippe}, 4 url = {https://www.scilab.org/}, 5 date = {1994-01}, 6 file = {https://hal.inria.fr/hal-02090402/file/scilab-1.1.tar.gz}, 7 institution = {Inria}, 8 license = {Scilab license}, 9 hal_id = {hal-02090402}, 10 hal_version = {v1}, 11 swhid = {swh:1:dir:1ba0b67b5d0c8f10961d878d91ae9d6e499d746a;origin=https://hal.archives-ouvertes.fr/hal-02090402}, 12 version = {1.1}, 13 note = {First Scilab version. It was distributed by anonymous ftp.}, 14 repository= {https://github.com/scilab/scilab}, 15 abstract = {Software for Numerical Computation freely distributed.} 16}
Эту же информацию можно также представить с помощью пары
@software
и@softwareversion
; общая информация в@software
, изменения в@softwareversion
:1@software {delebecque:hal-02090402, 2 title = {Scilab}, 3 author = {Delebecque, Fran{\c c}ois and Gomez, Claude and Goursat, Maurice and Nikoukhah, Ramine and Steer, Serge and Chancelier, Jean-Philippe}, 4 date = {1994}, 5 institution = {Inria}, 6 license = {Scilab license}, 7 hal_id = {hal-02090402}, 8 hal_version = {v1}, 9 url = {https://www.scilab.org/}, 10 abstract = {Software for Numerical Computation freely distributed.}, 11 repository= {https://github.com/scilab/scilab}, 12} 13 14@softwareversion {delebecque:hal-02090402v1, 15 version = {1.1}, 16 date = {1994-01}, 17 file = {https://hal.inria.fr/hal-02090402/file/scilab-1.1.tar.gz}, 18 swhid = {swh:1:dir:1ba0b67b5d0c8f10961d878d91ae9d6e499d746a;origin=https://hal.archives-ouvertes.fr/hal-02090402}, 19 note = {First Scilab version. It was distributed by anonymous ftp.}, 20 crossref = {delebecque:hal-02090402} 21}
2.4.2 softwaremodule
- Если программный продукт содержит много модулей, то может потребоваться ссылаться конкретно на конкретный модуль, который отличает авторов, и, возможно, он будет включен в проект позднее:
1@software {cgal, 2 title = {The Computational Geometry Algorithms Library}, 3 author = {The CGAL Project}, 4 editor = {CGAL Editorial Board}, 5 date = {1996}, 6 url = {https://cgal.org/} 7} 8 9@softwareversion{cgal:5-0-2, 10 crossref = {cgal}, 11 version = {5.0.2}, 12 url = {https://docs.cgal.org/5.02}, 13 date = {2020}, 14 swhid = {swh:1:rel:636541bbf6c77863908eae744610a3d91fa58855; 15 origin=https://github.com/CGAL/cgal/} 16} 17 18@softwaremodule{cgal:lp-gi-20a, 19 crossref = {cgal:5-0-2}, 20 author = {Menelaos Karavelas}, 21 subtitle = {{2D} Voronoi Diagram Adaptor}, 22 license = {GPL}, 23 introducedin = {cgal:3-1}, 24 url = {https://doc.cgal.org/5.0.2/Manual/packages.html#PkgVoronoiDiagram2}, 25}
- Можно использовать только одну запись, чтобы получить эквивалентный результат:
1@softwaremodule{cgal:lp-gi-20a-condensed, 2 title = {The Computational Geometry Algorithms Library}, 3 subtitle = {{2D} Voronoi Diagram Adaptor}, 4 author = {Menelaos Karavelas}, 5 editor = {CGAL Editorial Board}, 6 license = {GPL}, 7 version = {5.0.2}, 8 introducedin = {cgal:3-1}, 9 date = {2020}, 10 swhid = {swh:1:rel:636541bbf6c77863908eae744610a3d91fa58855; 11 origin=https://github.com/CGAL/cgal/}, 12 url = {https://doc.cgal.org/5.0.2/Manual/packages.html#PkgVoronoiDiagram2}, 13}
2.4.3 codefragment
- Если необходимо, чтобы определённый фрагмент кода появился в библиографии:
1@software {parmap, 2 title = {The Parmap library}, 3 author = {Di Cosmo, Roberto and Marco Danelutto}, 4 date = {2012}, 5 institution = {{Inria} and {University of Paris} and {University of Pisa}}, 6 license = {LGPL-2.0}, 7 url = {https://rdicosmo.github.io/parmap/}, 8 repository= {https://github.com/rdicosmo/parmap}, 9} 10 11@softwareversion {parmap-1.1.1, 12 crossref = {parmap}, 13 date = {2020}, 14 version = {1.1.1}, 15 swhid = {swh:1:rel:373e2604d96de4ab1d505190b654c5c4045db773; 16 origin=https://github.com/rdicosmo/parmap; 17 visit=swh:1:snp:2a6c348c53eb77d458f24c9cbcecaf92e3c45615}, 18} 19 20@codefragment {simplemapper, 21 subtitle = {Core mapping routine}, 22 swhid = {swh:1:cnt:43a6b232768017b03da934ba22d9cc3f2726a6c5; 23 origin=https://github.com/rdicosmo/parmap; 24 visit=swh:1:snp:2a6c348c53eb77d458f24c9cbcecaf92e3c45615; 25 anchor=swh:1:rel:373e2604d96de4ab1d505190b654c5c4045db773; 26 path=/src/parmap.ml; 27 lines=192-228}, 28 crossref = {parmap-1.1.1} 29}
- Можно использовать только одну запись:
1@codefragment {simplemapper-condensed, 2 title = {The Parmap library}, 3 author = {Di Cosmo, Roberto and Marco Danelutto}, 4 date = {2020}, 5 institution = {{Inria} and {University of Paris} and {University of Pisa}}, 6 license = {LGPL-2.0}, 7 url = {https://rdicosmo.github.io/parmap/}, 8 repository= {https://github.com/rdicosmo/parmap}, 9 version = {1.1.1}, 10 subtitle = {Core mapping routine}, 11 swhid = {swh:1:cnt:43a6b232768017b03da934ba22d9cc3f2726a6c5; 12 origin=https://github.com/rdicosmo/parmap; 13 visit=swh:1:snp:2a6c348c53eb77d458f24c9cbcecaf92e3c45615; 14 anchor=swh:1:rel:373e2604d96de4ab1d505190b654c5c4045db773; 15 path=/src/parmap.ml; 16 lines=192-228} 17}