我正在尝试解决一个相当奇怪的参考书目排序问题。我想让数字引用按引用顺序显示。但是,我想按另一种样式对参考文献组进行排序。
我认为它会与其他问题类似:相同的书目,但排序不同,但该解决方案不起作用。
例如,如果我有
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[backend=biber,style=ieee, citestyle=numeric-comp, sortcites, sorting=nyt]{biblatex}
\usepackage{filecontents}
\begin{filecontents*}{biblatex-ieee.bib}
@book{candy1992,
editor = "J. C. Candy and G. C. Temes",
title = "Oversampling Delta-Sigma Data Converters Theory,
Design and Simulation",
publisher = "{IEEE} Press.",
location = "New York",
year = "1992"
}
@inbook{anderson2000,
author = "J. B. Anderson and K. Tepe",
title = "Properties of the Tailbiting {BCJR} Decoder",
booktitle = "Codes, Systems and Graphical Models",
series = "{IMA} Volumes in Mathematics and Its Applications",
publisher = "Springer-Verlag",
location = "New York",
year = "2000"
}
@book{bul1964,
author = "B. K. Bul",
title = "Theory Principles and Design of Magnetic Circuits",
publisher = "Energia Press",
loction = "Moscow",
year = "1964",
pages = "464",
note = "(in Russian)"
}
\end{filecontents*}
\addbibresource{biblatex-ieee.bib}
\begin{document}
\cite{candy1992, anderson2000} \cite{bul1964}
\newrefcontext[sorting=none]
\printbibliography[title=Unsorted]
\end{document}
我得到
当我期待
即,按出现的顺序获取连续的引用。但每个引用的内容需要排序(按特定方案)。
有没有办法使用 biblatex 来实现这一点?
答案1
就 Biber 而言,如果两个条目在同一个目录中首次被引用,则\cite
在使用排序时它们的优先级相同sorting=none
(即\sort{\citeorder}
),通过考虑条目在其中被引用的顺序来打破平局\cite
。但您也可以通过添加其他排序功能(例如,复制内容)来以不同的方式打破平局nyt
。这是在以下情况下实现的BibLaTeX:如何按引文中的年份对参考文献进行排序和https://github.com/plk/biblatex/issues/5在https://github.com/plk/biber/commit/f74af1c946675b829e19743dd77ad62aec901f3d. 只需定义排序方案nonenyt
如下
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[backend=biber,style=ieee, citestyle=numeric-comp, sortcites]{biblatex}
\DeclareSortingTemplate{nonenyt}{
\sort{\citeorder}
\sort{
\field{presort}
}
\sort[final]{
\field{sortkey}
}
\sort{
\field{sortname}
\field{author}
\field{editor}
\field{translator}
\field{sorttitle}
\field{title}
}
\sort{
\field{sortyear}
\field{year}
}
\sort{
\field{sorttitle}
\field{title}
}
\sort{
\field{volume}
\literal{0}
}
}
\ExecuteBibliographyOptions{sorting=nonenyt}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@book{candy1992,
editor = {J. C. Candy and G. C. Temes},
title = {Oversampling Delta-Sigma Data Converters Theory,
Design and Simulation},
publisher = {{IEEE} Press.},
location = {New York},
year = {1992},
}
@inbook{anderson2000,
author = {J. B. Anderson and K. Tepe},
title = {Properties of the Tailbiting {BCJR} Decoder},
booktitle = {Codes, Systems and Graphical Models},
series = {{IMA} Volumes in Mathematics and Its Applications},
publisher = {Springer-Verlag},
location = {New York},
year = {2000},
}
@book{bul1964,
author = {B. K. Bul},
title = {Theory Principles and Design of Magnetic Circuits},
publisher = {Energia Press},
loction = {Moscow},
year = {1964},
pages = {464},
note = {(in Russian)},
}
\end{filecontents*}
\addbibresource{\jobname.bib}
\begin{document}
\cite{candy1992, anderson2000} \cite{bul1964}
\printbibliography
\end{document}