我正在做一个带注释的参考书目项目。我有一个 bib 文件,需要两个参考书目:一个按时间顺序排列,另一个按字母顺序排列。我希望两个参考书目都包含我的 bib 文件中的所有 bib 条目。此外,在 bib 文件中,每个条目都有一个注释字段,其中包含论文/书籍的摘要。在按时间顺序排列的参考书目中,会打印注释字段,但我不想将它们打印两次,因此它们不会打印在按字母顺序排列的参考书目中。由于项目的其他限制,我只能使用 biblatex(而不是 bibtex、amsrefs 等)。(编辑:看来我们能使用除 NOTE 之外的其他字段(例如 ANNOTE)来编写摘要。
我有两个问题:
我不知道如何管理按字母顺序排列的参考书目的标签。我曾经使用
labelprefix=A
像这样的参考标签[A1]
来避免与[1]
第一个参考书目中的标签混淆。然而,这会导致一种有趣的情况。在第一个参考书目条目的注释字段中,我们列出了该条目中引用的论文。我们希望看到类似的内容[2, 4]
,但现在看起来像[A2, 4]
(这只发生在一些参考文献中),参见图片。另一种解决方案是让第二个参考书目的标签为数字,但每个条目的编号与第一个参考书目中的相同。这样,每个条目都有一个参考编号,就不会出现问题。我看到了一些使用或处理类似情况的例子,refsection
但refsegment
我无法让它发挥作用。任何帮助/建议都将不胜感激。我手动定义了一个
\myspace
命令,使输出中的注释字段的间距看起来很漂亮。特别是,我已将此命令用于所有条目的注释字段开头。此外,一些较长的注释已被拆分成段落并\myspace
放在任意两个段落之间。有没有办法自动(或以更专业的方式)执行此操作?
梅威瑟:
ABCPNT.tex
:
\documentclass{amsart}
\usepackage{blindtext}
\usepackage[sorting=ynt, backend=biber, datamodel=mrnumber, style=numeric-comp, sortcites]{biblatex}
\usepackage[colorlinks=true, pdfstartview=FitH, linkcolor=blue,
citecolor=blue, urlcolor=blue]{hyperref}
\addbibresource{ABCPNT.bib} % File given below
\setlength\bibitemsep{0.2cm} % Space between references
\newcommand{\myspace}{\vspace*{0.3cm}\newline} % Space before/inside the NOTE field
\newbool{killnote} \AtEveryBibitem{\ifbool{killnote}{\clearfield{note}}{}} % To suppress the NOTE field in the second bibliography
\begin{document}
\nocite{*} % Include all the bib entries in bibliographies
\section{Chronological bibliography}
\printbibliography[heading=none] % The first bibliography, sorted by year
\section{Alphabetic bibliography}
\newrefcontext[sorting=nyt, labelprefix=A] % Change the sorting to name-year-title, adding a prefix A to the label of all entries
\booltrue{killnote} % Do not print the NOTE field in bib entires
\printbibliography[heading=none] % The second bibliography, sorted alphabetically
\end{document}
ABCPNT.bib
@article {ref1,
AUTHOR = {Chebyshev, P.},
TITLE = {{Lettre de M. le professeur Tchebychev a M. Fuss, sur un nouveau th{e}oreme relatif aux nombres premiers contenus dans la formes $4n+1$ et $4n+3$.}},
FJOURNAL = {Bull. de la Classe phys. math. de l'Acad. Imp. des Sciences St. Petersburg},
VOLUME = {11},
YEAR = {1853},
LANGUAGE = {French},
NOTE = {\myspace Chebyshev's paper which was the starting point of the subject.},
}
%%%-------------------------------------------------------------------------------
@article{ref2,
AUTHOR = {Phragmen, P.},
TITLE = {{Sur le logarithme integral et la fonction $f(x)$ de Riemann}},
YEAR = {1891},
FJOURNAL = {\"{O}fversigt af Kongl. Vetenskaps--Akademiens F\"{o}handlingar.},
LANGUAGE = {French},
VOLUME = {48},
NOTE = {\myspace \blindtext \myspace This article cites~\cites{ref4, ref5}.},
}
%%%-------------------------------------------------------------------------------
@article{ref3,
AUTHOR = {Landau, E.},
TITLE = {{U}ber einen {S}atz von {T}schebyschef},
JOURNAL = {Math. Ann.},
FJOURNAL = {Mathematische Annalen},
VOLUME = {61},
YEAR = {1906},
NUMBER = {4},
}
%%%-------------------------------------------------------------------------------
@article{ref4,
author={Littlewood, J. E. },
title={{Sur la distribution des nombres premiers}},
year={1914},
volume={158},
journal={Comptes Rendus de l'Acad. Sci. Paris},
language={French},
note = {\myspace This article cites~\cites{ref4, ref5}.}
}
%%%-------------------------------------------------------------------------------
@article{ref5,
author={Hardy, G. H. and Littlewood, J. E. },
title={{Contributions to the theory of the Riemann zeta-function and the theory of the distribution of primes}},
year={1916},
journal={Acta Math.},
volume={41},
number={1},
note = {\myspace This article cites~\cites{ref1, ref4, ref3}.},
}
答案1
由于除 之外的字段note
都是可以接受的,因此我建议您改用annotation
。默认情况下,大多数标准样式不会打印该字段,但我们可以快速更改这一点。
正如所讨论的https://github.com/plk/biblatex/issues/904参考书目中的引用情况有点棘手。通常我建议不要\cite
在参考书目中使用以避免此类问题。PLK\assignrefcontextentries
建议的显式 refcontext 分配(参见下面的 MWE)可能会有所帮助。
通过在打印字段内容之前发出(包装在 中),可以使首字母\myspace
变得多余。在字段内容中,新段落应该以 开头,遗憾的是,在文档的其余部分中像往常一样使用空行将不起作用。请参阅\par
\setunit
\par
.tex
参考书目字段中的多个段落通过双行分隔和使用 biber 解析 bib 文件时保留换行符/换行符。
需要重新定义环境bibliography
以便能够\parindent
控制\bibparindent
。
\documentclass{amsart}
\usepackage{blindtext}
\usepackage[sorting=ynt, backend=biber, style=numeric-comp]{biblatex}
\usepackage{hyperref}
\assignrefcontextentries*[sorting=nyt, labelprefix=A]{*}
\newtoggle{showannotation}
\toggletrue{showannotation}
\renewbibmacro*{finentry}{%
\iftoggle{showannotation}
{\setunit{\par}%
\printfield{annotation}}
{}%
\finentry}
\setlength{\bibitemsep}{.5\baselineskip}
\setlength{\bibparsep}{.5\bibitemsep}
\newlength{\bibparindent}
\setlength{\bibparindent}{0pt}
\defbibenvironment{bibliography}
{\list
{\printtext[labelnumberwidth]{%
\printfield{labelprefix}%
\printfield{labelnumber}}}
{\setlength{\labelwidth}{\labelnumberwidth}%
\setlength{\leftmargin}{\labelwidth}%
\setlength{\labelsep}{\biblabelsep}%
\addtolength{\leftmargin}{\labelsep}%
\setlength{\itemsep}{\bibitemsep}%
\setlength{\parsep}{\bibparsep}%
\setlength{\listparindent}{\bibparindent}}%
\renewcommand*{\makelabel}[1]{\hss##1}}
{\endlist}
{\item}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@article {ref1,
AUTHOR = {Chebyshev, P.},
TITLE = {{Lettre de M. le professeur Tchebychev a M. Fuss, sur un nouveau th{e}oreme relatif aux nombres premiers contenus dans la formes $4n+1$ et $4n+3$.}},
FJOURNAL = {Bull. de la Classe phys. math. de l'Acad. Imp. des Sciences St. Petersburg},
VOLUME = {11},
YEAR = {1853},
LANGUAGE = {french},
annotation = {Chebyshev's paper which was the starting point of the subject.},
}
@article{ref2,
AUTHOR = {Phragmen, P.},
TITLE = {{Sur le logarithme integral et la fonction $f(x)$ de Riemann}},
YEAR = {1891},
FJOURNAL = {\"{O}fversigt af Kongl. Vetenskaps--Akademiens F\"{o}handlingar.},
LANGUAGE = {French},
VOLUME = {48},
annotation = {\blindtext \par This article cites~\cite{ref4, ref5}.},
}
@article{ref3,
AUTHOR = {Landau, E.},
TITLE = {{U}ber einen {S}atz von {T}schebyschef},
JOURNAL = {Math. Ann.},
FJOURNAL = {Mathematische Annalen},
VOLUME = {61},
YEAR = {1906},
NUMBER = {4},
}
@article{ref4,
author={Littlewood, J. E. },
title={{Sur la distribution des nombres premiers}},
year={1914},
volume={158},
journal={Comptes Rendus de l'Acad. Sci. Paris},
language={French},
annotation = {This article cites~\cite{ref4, ref5}.}
}
@article{ref5,
author={Hardy, G. H. and Littlewood, J. E. },
title={{Contributions to the theory of the Riemann zeta-function and the theory of the distribution of primes}},
year={1916},
journal={Acta Math.},
volume={41},
number={1},
annotation = {This article cites~\cite{ref1, ref4, ref3}.},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\nocite{*}
\section{Chronological bibliography}
\printbibliography[heading=none]
\section{Alphabetic bibliography}
\togglefalse{showannotation}
\newrefcontext[sorting=nyt, labelprefix=A]
\printbibliography[heading=none]
\end{document}