ноците по выбору

ноците по выбору

Я хочу создать библиографию, выбрав все элементы из большого файла 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)

Связанный контент