biblatex-chicago
включает bookseries
опцию, которую можно установить false
, чтобы исключить серию книг из заметок (когда опция notes
включена). Это особенно деликатная операция, поскольку она затрагивает поле series
, которое используется для двух совершенно разных целей:
- серия книг (например, «Трансформация классического наследия» или «Кембриджская история науки»)
- серия журнала в
article
записях bib-номера (цифра типа «2» для вывода «2-я сер.»)
Есть ли способ расширить bookseries=false
опцию так, чтобы она исключала серию книг (и соответствующий номер из number
поля) не только в сносках?но и в библиографии?
МВЭ:
\documentclass{article}
\usepackage[notes,bookseries=false]{biblatex-chicago}
\begin{filecontents*}{\jobname.bib}
@book{lindberg.shank2013camb.hist.sci:med.sci,
Address = {Cambridge},
Editor = {Lindberg, David C. and Shank, Michael H.},
Number = {2},
Publisher = {Cambridge University Press},
Series = {The Cambridge History of Science},
Title = {Medieval Science},
Year = {2013}}
\end{filecontents*}
\addbibresource{\jobname.bib}
\begin{document}
\cite{lindberg.shank2013camb.hist.sci:med.sci}
\printbibliography
\end{document}
Выходной ток:
Дэвид С. Линдберг и Майкл Х. Шэнк, ред.,Средневековая наука(Кембридж: Издательство Кембриджского университета, 2013)
Рекомендации
Линдберг, Дэвид С. и Майкл Х. Шэнк, ред.Средневековая наука. Кембриджская история науки 2. Кембридж: Издательство Кембриджского университета, 2013.
Желаемый результат:
Дэвид С. Линдберг и Майкл Х. Шэнк, ред.,Средневековая наука(Кембридж: Издательство Кембриджского университета, 2013)
Рекомендации
Линдберг, Дэвид С. и Майкл Х. Шэнк, ред.Средневековая наука. Кембридж: Издательство Кембриджского университета, 2013.
решение1
Если вы посмотрите, то chicago-notes.cbx
обнаружите, что cser+num
(используется в цитатах) определяется следующим образом:
\newbibmacro*{cser+num}{%
\iftoggle{cms@bookseries}
{\printfield{series}%
\printfield[sernum]{number}}
{}}
Тогда как ser+num
(используется в библиографии) определяется как:
\newbibmacro*{ser+num}{%
\printfield{series}%
\printfield[sernum]{number}}
Есть несколько типов записей, которые не используют ser+num
, но переопределение этого макроса должно дать желаемый результат практически в каждом случае.
МВЭ
\documentclass{article}
\usepackage[notes,bookseries=false]{biblatex-chicago}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{lindberg.shank2013camb.hist.sci:med.sci,
Address = {Cambridge},
Editor = {Lindberg, David C. and Shank, Michael H.},
Number = {2},
Publisher = {Cambridge University Press},
Series = {The Cambridge History of Science},
Title = {Medieval Science},
Year = {2013}}
\end{filecontents}
\addbibresource{\jobname.bib}
\renewbibmacro*{ser+num}{%
\iftoggle{cms@bookseries}
{\printfield{series}%
\printfield[sernum]{number}}
{}}
\begin{document}
\cite{lindberg.shank2013camb.hist.sci:med.sci}
\printbibliography
\end{document}