![Ссылка на запись BibLaTeX установлена как отдельная ссылка](https://rvso.com/image/328803/%D0%A1%D1%81%D1%8B%D0%BB%D0%BA%D0%B0%20%D0%BD%D0%B0%20%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D1%8C%20BibLaTeX%20%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B0%20%E2%80%8B%E2%80%8B%D0%BA%D0%B0%D0%BA%20%D0%BE%D1%82%D0%B4%D0%B5%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F%20%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D0%B0.png)
BibLaTeX позволяет создаватьнаборы для входакоторый состоит из ряда ссылок, например
@set{set1,
entryset = {member1, member2}
}
Однако при цитировании с использованием \cite{set1}
все ссылки отображаются как один элемент в окончательной библиографии. Есть ли возможность показать каждого члена набора как отдельный элемент? По сути, я хочу добиться того же эффекта, что и \cite{member1,member2}
, но ссылаясь на имя набора вместо отдельных членов.
решение1
Из комментариев следует, что наборы записей не являются релевантной концепцией, и вы просто ищете сокращение для перечисления нескольких ссылок. Для этого достаточно простых макросов LaTeX. Просто определите
\newcommand{\myreflist}{key1,key2,...}
и затем вы можете использовать \cite{\myreflist}
и т. д., как вам удобно, чтобы ссылаться на эти записи.
Вот пример, демонстрирующий, что такие функции, как сортировка по цитированию, все еще работают.
\documentclass{article}
\usepackage[sortcites=true]{biblatex}
\addbibresource{biblatex-examples.bib}
\newcommand{\myreflist}{westfahl:space,glashow,baez/article}
\begin{document}
Here some citations \cite{\myreflist}.
\printbibliography
\end{document}
решение2
Вы можете использоватьusebib
пакет по@egregдля этой цели. В документации пакета есть практически все необходимые пояснения, а именно следующие шаги, которые следует добавить в преамбулу в последовательности:
- включить
\usepackage{usebib}
(после загрузкиhyperref
); - включите
entryset
клавишу с помощью\newbibfield{entryset}
; - укажите ему файл bib, используя
\bibinput{filename}
без.bib
расширения; - то вы можете получить доступ к значению ключа,
entryset
используя\usebibentry{cite_key}{entryset}
.
В целом, вы получаете то, что хотите через \cite{\usebibentry{set1}{entryset}
. Конечно, если хотите, вы также можете определить простую команду newcommand, которая сокращает это, например
\newcommand{\citeset}[1]{\cite{\usebibentry{#1}{entryset}}}
то вы можете просто использовать \citeset{set1}
. Ниже приведен минимальный рабочий пример.
тест.bib
@misc{foo1,
author = {Foo, F. and Bar, B.},
year = {2021},
title = {Foo 1},
}
@misc{foo2,
author = {Foo, F. and Bar, B.},
year = {2021},
title = {Foo 2},
}
@set{foo,
entryset = {foo1, foo2}
}
тест.текс
\documentclass{article}
\usepackage{biblatex}
\addbibresource{test.bib}
\usepackage{usebib}
\newbibfield{entryset}
\bibinput{test}
\begin{document}
This is the entryset key: \usebibentry{foo}{entryset}
Here we cite foo as individual references.\autocite{\usebibentry{foo}{entryset}}
\printbibliography
\end{document}