![ноците по выбору](https://rvso.com/image/286980/%D0%BD%D0%BE%D1%86%D0%B8%D1%82%D0%B5%20%D0%BF%D0%BE%20%D0%B2%D1%8B%D0%B1%D0%BE%D1%80%D1%83.png)
Я хочу создать библиографию, выбрав все элементы из большого файла BIB, которые содержат определенного автора и были опубликованы в определенном году.
До сих пор я видел команду nocite только с *, что означает все, или указание отдельных элементов вручную, но не видел ни одного примера с более общим правилом.
Похоже, что печатная библиография придерживается некоторых правил, но первые тесты показывают, что элементы не будут последовательно пронумерованы, поскольку она выбирает их из полного списка.
Я мог бы импортировать файл bib в какой-нибудь графический инструмент, например Zotero, выбрать там нужные элементы и снова экспортировать его как новый файл, но мне хотелось бы иметь решение, которое оставалось бы в рамках TeX и могло бы, например, быть расширено для автоматизации выбора разных лет, авторов и т. д.
решение1
Вот решение с Biblatex и «картами источников», которые игнорируют записи, которые нас не интересуют:
\begin{filecontents}{\jobname.bib}
@book{one,
author={Someone Else},
year={2014},
title={Uninteresting book},
}
@book{two,
author={This Author},
year={1999},
title={Book that's too early},
}
@book{three,
author={Author, This},
year={2014},
title={An interesting book},
}
@book{four,
author={This Author},
year={2014},
title={Another interesting book},
}
@book{five,
author={Someone Else and This Author},
year={2014},
title={Joint effort},
}
\end{filecontents}
\documentclass{article}
\usepackage{biblatex}
\addbibresource{\jobname.bib}
\DeclareSourcemap{
\maps{
\map{
% Remove those not by chosen author
\step[fieldsource=author,
notmatch=\regexp{Author,\s+This|This\s+Author},
final]
\step[entrynull]
}
\map{
% Remove those not from chosen year
\step[fieldsource=year,
notmatch={2014},
final]
\step[entrynull]
}
}
}
\begin{document}
\nocite{*}
\printbibliography
\end{document}
Вам придется написать регулярное выражение, соответствующее имени автора. Это будет смотреть только на author
поле. Возможно, кто-то захочет использовать дополнительные правила для editor
поля и других.
решение2
bib2bib — это то, что я искал. (интуитивно противоположное содержится в пакете bibtex2html)