МВЭ

МВЭ

biblatex-chicagoвключает bookseriesопцию, которую можно установить false, чтобы исключить серию книг из заметок (когда опция notesвключена). Это особенно деликатная операция, поскольку она затрагивает поле series, которое используется для двух совершенно разных целей:

  1. серия книг (например, «Трансформация классического наследия» или «Кембриджская история науки»)
  2. серия журнала в 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}

выход

Связанный контент