Как распечатать любое поле из файла .bib?
Например, как мне распечатать заголовок из следующей записи?
@article{Gerace2019,
Author = {Gerace, Dario and Laussy, Fabrice and Sanvitto, Daniele},
Journal = {Nature Materials},
Number = {3},
Pages = {200--201},
Title = {Quantum nonlinearities at the single-particle level},
Volume = {18},
Year = {2019}
}
Я хочу сделать что-то вроде:
The title of the paper \cite{Gerace2019} is \printtitle{Gerace2019}
решение1
Если вы используете biblatex
команду, которую ищете, она называется \citetitle
.
Для наиболее распространенных полей biblatex
есть выделенные \cite...
команды ( \citeauthor
, \citetitle
, \citedate
, \cityear
, \citeurl
) если поле, которое вы хотите распечатать, отсутствует среди них, то вы можете использовать общий \citefield{<key>}{<field>}
. Поскольку biblatex
различает поля, списки и списки имен, есть \citefield
, \citelist
и \citename
, см. такжеКак извлечь записи BibTeX (в виде DOI, аннотации и т. д.). Можно создать собственную \cite...
команду для полей, у которых ее еще нет (см. также предыдущую ссылку).
\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[style=numeric, backend=biber]{biblatex}
%\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@article{Gerace2019,
author = {Gerace, Dario and Laussy, Fabrice and Sanvitto, Daniele},
journal = {Nature Materials},
number = {3},
pages = {200--201},
title = {Quantum nonlinearities at the single-particle level},
volume = {18},
year = {2019},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
The title of the paper \cite{Gerace2019} is \citetitle{Gerace2019}
\printbibliography
\end{document}
Если вы используете решение на основе BibTeX, вы можете загрузитьusebib
упаковкаи используйте его \usebibentry
команду.
Обратите внимание, что usebib
не анализирует содержимое полей, как BibTeX или Biber. В частности, списки имен и другие списки не разделяются, как обычно. Это означает, что хотя можно отображать поля имен, как author
с помощью usebib
, вывод будет выглядеть точно так же, как ввод в .bib
файле.
\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage{usebib}
%\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@article{Gerace2019,
author = {Gerace, Dario and Laussy, Fabrice and Sanvitto, Daniele},
journal = {Nature Materials},
number = {3},
pages = {200--201},
title = {Quantum nonlinearities at the single-particle level},
volume = {18},
year = {2019},
}
\end{filecontents}
\bibinput{\jobname} % give the file name of your .bib file here (without extension)
% just as in \bibliography
\begin{document}
The title of the paper \cite{Gerace2019} is \usebibentry{Gerace2019}{title}
\bibliographystyle{plain}
\bibliography{\jobname}
\end{document}