the алфавитныйстиль библатекса уже очень близок к моим требованиям, но учитывая следующую запись
@BOOK{smith1,
author = {John Smith and Mike Someone},
title = {The book with a very very very very very long title},
year = {2005},
publisher = {Publisher},
location = {New York}
}
Я хотел бы иметь такой лейбл[Смит, 2005]вместо [Smi+05]. Другими словами:
[<first author's last name>, <year with 4 digits>]
В случае, если имеется более одной записи с одним и тем же автором и одним и тем же годом, следует добавить одну букву сразу после года, как в[Смит, 2005а](алфавитныйуже делает это по умолчанию).
решение1
С помощью biblatex 2+
и biber 1+
вы можете настроить буквенные метки с помощью \DeclareLabelalphaTemplate
. Вот пример.
\documentclass{article}
\usepackage[style=alphabetic,maxalphanames=1]{biblatex}
\addbibresource{biblatex-examples.bib}
\renewcommand*{\labelalphaothers}{}
\DeclareLabelalphaTemplate{
\labelelement{
\field[final]{shorthand}
\field{labelname}
\field{label}
}
\labelelement{
\literal{,\addhighpenspace}
}
\labelelement{
\field{year}
}
}
\begin{document}
\cite{knuth:ct:a,knuth:ct:b,knuth:ct:c,baez/article,baez/online}
\printbibliography
\end{document}
Пара замечаний:
Аргумент to
\literal
должен быть определен глобально. Обычно мы указываем один или несколько символов. Мы также можем использоватьbiblatex
команды пробелов 's. В отличие отbiblatex
команд пунктуации 's (например\addcomma
), они не ограничены цитатами и библиографиями.Аналогичные результаты можно получить с помощью BibTeX, изменив стиль «автор-год» (например,Стили библиографии, такие как authordate2 в biblatex или natbib?), но добиться правильного выравнивания меток элементов в библиографии непросто.