我想使用该biblatex
包来管理我的参考书目。我还想将一组作者作为一个引文引用,因此我使用选项和命令mcite
。
我必须使用样式alphabetic
,但它没有给我我想要的东西。我希望作者集以他们的首字母出现在文本和参考书目中(所有作者,而不仅仅是第一个键的作者),也许还有年份(较早或较近,这并不重要)。
我在互联网、SX 或文档中找不到有关这种配置的任何信息。如果有人有自动或手动获取所需结果的方法,那就太好了!
以下是 MWE:
\documentclass{book}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{filecontent}
\begin{filecontents}{biblio.bib}
@book{Yvon_1935,
title = {La Th\'eorie Statistique Des Fluides et l'\'equation d'\'etat},
series = {Actualit\'es Scientifiques et Industrielles ; {{Th\'eories}} M\'ecaniques (Hydrodynamique-Acoustique)},
publisher = {{Hermann \& cie}},
date = {1935},
author = {Yvon, Jacques},
lccn = {37018772}
}
@article{Born_1946,
title = {A General Kinetic Theory of Liquids {{I}}. {{The}} Molecular Distribution Functions},
volume = {188},
issn = {2053-9169},
doi = {10.1098/rspa.1946.0093},
number = {1012},
journaltitle = {Proceedings of the Royal Society of London. Series A. Mathematical and Physical Sciences},
date = {1946-12-31},
pages = {10-18},
author = {Born, Max and Green, Herbert Sydney},
}
@article{Kirkwood_1946,
title = {The {{Statistical Mechanical Theory}} of {{Transport Processes I}}. {{General Theory}}},
volume = {14},
issn = {0021-9606, 1089-7690},
url = {http://aip.scitation.org/doi/10.1063/1.1724117},
doi = {10.1063/1.1724117},
number = {3},
journaltitle = {The Journal of Chemical Physics},
urldate = {2019-01-16},
date = {1946-03},
pages = {180-201},
author = {Kirkwood, John Gamble},
}
@article{Bogolioubov_1945,
title = {Kinetic {{Equations}}},
volume = {10},
number = {3},
journaltitle = {Journal of Physics USSR},
date = {1945},
pages = {265-274},
author = {Bogolioubov, Nikola\"i Nikola\"ievitch}
}
@article{Boncella_1984,
author = {Boncella, James M. and Andersen, Richard A.},
journal = {Inorg. Chem.},
pages = {432--437},
volume = {23},
year = {1984}
}
\end{filecontents}
\usepackage[citestyle=alphabetic, %
bibstyle=alphabetic, %
mcite=true, %
subentry, %
maxcitenames=3, %
backend=biber %
]{biblatex}
\addbibresource[datatype=bibtex]{biblio.bib}
\begin{document}
A first citation~\cite{Boncella_1984}.
And another that I want to cite as a set BBGKY45~\mcite{setBBGKY, *Yvon_1935,*Bogolioubov_1945,*Born_1946,*Kirkwood_1946}.
\printbibliography
\end{document}
答案1
在biblatex
概念中@set
,\difbibentryset
和也是\mcite
建立或建模的,主要遇到和开发用于数字引用。它也支持alphabetic
样式,可以与所有其他一起使用参考书目样式,但不会使用不属于numeric
或alphabetic
系列的样式生成可用的引文输出。即使有alphabetic
引文,预期结果应该是什么也值得怀疑。目前默认采用第一个条目将生成的标签。
如果您认为其他默认设置更好,或者希望此标签可自定义,则应在以下位置打开功能请求:https://github.com/plk/biblatex/issues。
如果您从使用创建的动态集转到\mcite
文件中的\defbibentryset
静态@set
条目.bib
,您可以手动确定整个集的标签。
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[style=alphabetic,
mcite=true,
subentry,
maxcitenames=3,
backend=biber
]{biblatex}
\makeatletter
% warning the file called \blxmset@bibfile@name will be
% overwritten without warning
\def\blxmset@bibfile@name{\jobname -msets.bib}
\newwrite\blxmset@bibfile
\immediate\openout\blxmset@bibfile=\blxmset@bibfile@name
\immediate\write\blxmset@bibfile{%
@comment{auxiliary file for \string\defbibentrysetlabel}^^J%
@comment{This file may safely be deleted.
It will be recreated as required.}}
\AtEndDocument{%
\closeout\blxmset@bibfile}
\newrobustcmd*{\defbibentrysetlabel}[3]{%
\@bsphack
\immediate\write\blxmset@bibfile{%
@set{#1, entryset = {\unexpanded{#3}}, %
shorthand = {\unexpanded{#2}},}%
}%
\nocite{#1}%
\@esphack}
\addbibresource{\blxmset@bibfile@name}
\makeatother
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{Yvon_1935,
title = {La Th\'eorie Statistique Des Fluides et l'\'equation d'\'etat},
series = {Actualit\'es Scientifiques et Industrielles ; {Th\'eories} M\'ecaniques (Hydrodynamique-Acoustique)},
publisher = {Hermann \& cie},
date = {1935},
author = {Yvon, Jacques},
lccn = {37018772}
}
@article{Born_1946,
title = {A General Kinetic Theory of Liquids {I}. {The} Molecular Distribution Functions},
volume = {188},
issn = {2053-9169},
doi = {10.1098/rspa.1946.0093},
number = {1012},
journaltitle = {Proceedings of the Royal Society of London. Series A. Mathematical and Physical Sciences},
date = {1946-12-31},
pages = {10-18},
author = {Born, Max and Green, Herbert Sydney},
}
@article{Kirkwood_1946,
title = {The Statistical Mechanical Theory of Transport Processes {I}. {General} Theory},
volume = {14},
url = {http://aip.scitation.org/doi/10.1063/1.1724117},
doi = {10.1063/1.1724117},
number = {3},
journaltitle = {The Journal of Chemical Physics},
urldate = {2019-01-16},
date = {1946-03},
pages = {180-201},
author = {Kirkwood, John Gamble},
}
@article{Bogolioubov_1945,
title = {Kinetic Equations},
volume = {10},
number = {3},
journaltitle = {Journal of Physics USSR},
date = {1945},
pages = {265-274},
author = {Bogolioubov, Nikola\"i Nikola\"ievitch}
}
@article{Boncella_1984,
author = {Boncella, James M. and Andersen, Richard A.},
journal = {Inorg. Chem.},
pages = {432--437},
volume = {23},
year = {1984},
}
\end{filecontents}
\addbibresource[datatype=bibtex]{\jobname.bib}
\begin{document}
\defbibentrysetlabel{setBBGKY}{BBGKY45}{Yvon_1935,Bogolioubov_1945,Born_1946,Kirkwood_1946}
A first citation~\cite{Boncella_1984}.
And another that I want to cite as a set BBGKY45\cite{setBBGKY}.
\printbibliography
\end{document}
以下 MWE 实现了一个宏\defbibentrysetlabel{<set key>}{<set label>}{<key_1>,...,<key_n>}
,可用于从.bib
文件中动态地手动指定集合条目的标签。这意味着您必须使用\defbibentrysetlabel
和\cite
而不是\mcite
,但我想这是可以接受的。
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[style=alphabetic,
mcite=true,
subentry,
maxcitenames=3,
backend=biber
]{biblatex}
\makeatletter
% warning the file called \blxmset@bibfile@name will be
% overwritten without warning
\def\blxmset@bibfile@name{\jobname -msets.bib}
\newwrite\blxmset@bibfile
\immediate\openout\blxmset@bibfile=\blxmset@bibfile@name
\AtEndDocument{%
\closeout\blxmset@bibfile}
\newrobustcmd*{\defbibentrysetlabel}[3]{%
\@bsphack
\begingroup
\immediate\write\blxmset@bibfile{%
@set{#1, entryset = {\unexpanded{#3}}, %
shorthand = {\unexpanded{#2}},}%
}%
\nocite{#1}%
\@esphack}
\addbibresource{\blxmset@bibfile@name}
\makeatother
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{Yvon_1935,
title = {La Th\'eorie Statistique Des Fluides et l'\'equation d'\'etat},
series = {Actualit\'es Scientifiques et Industrielles ; {Th\'eories} M\'ecaniques (Hydrodynamique-Acoustique)},
publisher = {Hermann \& cie},
date = {1935},
author = {Yvon, Jacques},
lccn = {37018772}
}
@article{Born_1946,
title = {A General Kinetic Theory of Liquids {I}. {The} Molecular Distribution Functions},
volume = {188},
issn = {2053-9169},
doi = {10.1098/rspa.1946.0093},
number = {1012},
journaltitle = {Proceedings of the Royal Society of London. Series A. Mathematical and Physical Sciences},
date = {1946-12-31},
pages = {10-18},
author = {Born, Max and Green, Herbert Sydney},
}
@article{Kirkwood_1946,
title = {The Statistical Mechanical Theory of Transport Processes {I}. {General} Theory},
volume = {14},
url = {http://aip.scitation.org/doi/10.1063/1.1724117},
doi = {10.1063/1.1724117},
number = {3},
journaltitle = {The Journal of Chemical Physics},
urldate = {2019-01-16},
date = {1946-03},
pages = {180-201},
author = {Kirkwood, John Gamble},
}
@article{Bogolioubov_1945,
title = {Kinetic Equations},
volume = {10},
number = {3},
journaltitle = {Journal of Physics USSR},
date = {1945},
pages = {265-274},
author = {Bogolioubov, Nikola\"i Nikola\"ievitch}
}
@article{Boncella_1984,
author = {Boncella, James M. and Andersen, Richard A.},
journal = {Inorg. Chem.},
pages = {432--437},
volume = {23},
year = {1984},
}
\end{filecontents}
\addbibresource[datatype=bibtex]{\jobname.bib}
\begin{document}
A first citation~\cite{Boncella_1984}.
And another that I want to cite as a set BBGKY45 \defbibentrysetlabel{setBBGKY}{BBGKY45}{Yvon_1935,Bogolioubov_1945,Born_1946,Kirkwood_1946}\cite{setBBGKY}.
\printbibliography
\end{document}