
У меня есть следующая проблема, проиллюстрированная простым примером: если я цитирую статью автора Т. Ковена в своем документе, то результатом будет «Ковен (2004b)». Если я цитирую приложение к этой статье, то результатом будет «Ковен (2004a)». Теперь приложение всплывает гораздо реже, чем исходная статья, поэтому я хотел бы изменить порядок (поменять местами «a» и «b» в ссылках). Возможно ли это?
Я использую Biblatex. Вот bib-файл примера выше (назван: lib.bib):
@article{co:2004,
author = {T. Coven},
title = {Title A},
journaltitle = {The X Journal},
date = {2004}
}
@article{coapp:2004,
author = {T. Coven},
title = {Appendix to Title A},
journaltitle = {The X Journal},
date = {2004}
}
МВЭ:
\documentclass[a4paper, 12pt, headsepline, headings=small,]{scrreprt}
\usepackage[backend=bibtex8,
style=authoryear-icomp,
dashed=false,
autocite=footnote,
maxcitenames=3,
mincitenames=1,
maxbibnames=100,
firstinits=true,
sorting=nty
]{biblatex}
\bibliography{lib}
\begin{document}
\cite{co:2004} and \cite{coapp:2004}
\end{document}
решение1
Что ж, вам придется вручную настроить сортировку, указав какое-либо sort...
поле для biblatex
, чтобы он знал, как сортировать записи.
Вы используете authoryear
стиль, но nty
сортировка (сортировка "имя-заголовок-год") кажется странной. Если вы хотите придерживаться этого, идите с полем sorttitle
и сделайте что-то вроде
@article{coapp:2004,
author = {T. Coven},
title = {Appendix to Title A},
journaltitle = {The X Journal},
date = {2004},
sorttitle = {Title A/Appendix},
}
МВЭ
\documentclass[a4paper, 12pt, headsepline, headings=small,]{scrreprt}
\usepackage{filecontents}
\usepackage[backend=biber,
style=authoryear-icomp,
dashed=false,
autocite=footnote,
maxcitenames=3,
mincitenames=1,
maxbibnames=100,
firstinits=true,
sorting=nty,
]{biblatex}
\begin{filecontents*}{\jobname.bib}
@article{co:2004,
author = {T. Coven},
title = {Title A},
journaltitle = {The X Journal},
date = {2004},
}
@article{coapp:2004,
author = {T. Coven},
title = {Appendix to Title A},
journaltitle = {The X Journal},
date = {2004},
sorttitle = {Title A/Appendix},
}
\end{filecontents*}
\addbibresource{\jobname.bib}
\begin{document}
\nocite{co:2004,coapp:2004}
\printbibliography
\end{document}
Более естественным выбором сортировки для стиля Автор-Год будет sorting=nyt
или даже sorting=nyvt
(сортировка по "имя-год-название" и "имя-год-том-название" соответственно). В этом случае вы можете использовать
@article{co:2004,
author = {T. Coven},
title = {Title A},
journaltitle = {The X Journal},
date = {2004},
sortyear = {2004-1},
}
@article{coapp:2004,
author = {T. Coven},
title = {Appendix to Title A},
journaltitle = {The X Journal},
date = {2004},
sortyear = {2004-2},
}
или (еще раз спасибо lockstep)
@article{co:2004,
author = {T. Coven},
title = {Title A},
journaltitle = {The X Journal},
date = {2004},
}
@article{coapp:2004,
author = {T. Coven},
title = {Appendix to Title A},
journaltitle = {The X Journal},
date = {2004},
sortyear = {2004/1},
}
МВЭ
\documentclass[a4paper, 12pt, headsepline, headings=small,]{scrreprt}
\usepackage{filecontents}
\usepackage[backend=biber,
style=authoryear-icomp,
dashed=false,
autocite=footnote,
maxcitenames=3,
mincitenames=1,
maxbibnames=100,
firstinits=true,
sorting=nyt,
]{biblatex}
\begin{filecontents*}{\jobname.bib}
@article{co:2004,
author = {T. Coven},
title = {Title A},
journaltitle = {The X Journal},
date = {2004-1},
}
@article{coapp:2004,
author = {T. Coven},
title = {Appendix to Title A},
journaltitle = {The X Journal},
date = {2004},
sortyear = {2004-2},
}
\end{filecontents*}
\addbibresource{\jobname.bib}
\begin{document}
\nocite{co:2004,coapp:2004}
\printbibliography
\end{document}
Оба метода дают
решение2
Используйте поле. Подробности sorttitle
см. в разделе 2.2.3 руководства .biblatex
\documentclass{article}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@article{co:2004,
author = {T. Coven},
title = {Title A},
journaltitle = {The X Journal},
date = {2004}
}
@article{coapp:2004,
author = {T. Coven},
title = {Appendix to Title A},
sorttitle = {Title A/Appendix},
journaltitle = {The X Journal},
date = {2004}
}
\end{filecontents}
\usepackage[backend=bibtex8,
style=authoryear-icomp,
dashed=false,
sorting=nty
]{biblatex}
\addbibresource{\jobname.bib}
\begin{document}
\cite{co:2004} and \cite{coapp:2004}
\printbibliography
\end{document}