%20%D0%9A%D0%B0%D0%BA%20%D1%81%D0%BA%D1%80%D1%8B%D1%82%D1%8C%20%D0%BF%D0%BE%D0%BB%D0%B5%20%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D1%8B%20%D0%B2%20%D1%81%D0%BD%D0%BE%D1%81%D0%BA%D0%B5%2C%20%D0%B5%D1%81%D0%BB%D0%B8%20%D0%BF%D1%80%D0%B8%D1%81%D1%83%D1%82%D1%81%D1%82%D0%B2%D1%83%D0%B5%D1%82%20%D0%BF%D0%BE%D1%81%D1%82%D1%81%D0%BD%D0%BE%D1%81%D0%BA%D0%B0%3F.png)
Для своей диссертации я использую biblatex
стиль oxnotes
, который довольно похож на подробный и использует сноски.
Если я использую\footcite
команду с указанием сноски для записи с номерами страниц (например, главы книги), сноска будет напечатанаобаномер страницы и постсноска. Я хотел бы указать, biblatex
чтобы номер страницы в сноске не отображался, когда присутствует постсноска.
В настоящее время, \footcite
например, так:
\footcite[1-5]{barkan2003}
...будет производить сноску
Баркан, «Название»,Название журнала(2003),1-20 в 1-5.
Я хотел бы отключить страницы (например, «1-20») в \footcite
командах, где указывается постсноска, чтобы она выглядела так:
Баркан, «Название»,Название журнала(2003), 1-5.
Я попробовал следующую команду, но она подавляет поле страниц как в цитатах, так и в библиографии.
\DeclareFieldFormat{pages}{%
\iffieldundef{pages}{}{\iffieldundef{postnote}{}{\clearfield{pages}}}}
Есть ли способ узнатьbiblatex
что нужно подавить поле страниц?тольков \footcite
командах, а не в библиографии?
Любая помощь в решении этой проблемы будет высоко оценена!
\documentclass{article}
\usepackage[style=oxnotes]{biblatex}
\RequireBibliographyStyle{oxref}
\begin{filecontents*}{document.bib}
@article{barkan2003,
title = {Title},
journaltitle = {Journal Title},
date = {2003},
pages = {1-20},
author = {Barkan},
}
\end{filecontents*}
\addbibresource{document.bib}
\begin{document}
Text.\footcite[1-5]{barkan2003}
\end{document}
решение1
biblatex-oxref
Стиль oxnotes
цитирования основан на verbose.cbx
всех его опциях и поддерживает их. В частности, вы можете использовать опцию citepages
, которая задокументирована вverbose
пример стиля. (В более ранних версиях biblatex-oxref
некоторые аспектыcitepages
были немного нелогичны, но это было улучшено в версии 1.1, см.https://github.com/alex-ball/biblatex-oxref/issues/8.)
Параметр
oxnotes
-defaultcitepages=separate
дает вамВольфганг А. Херрманн и др., «Карбоциклический карбен как эффективный каталитический лиганд для реакций сочетания C–C»,Angew. Chem. Int. Ed.45/23 (2006), 3859–62 в 3860–1.
С
citepages=omit
полемpages
, которое автоматически опускается, если примечание числовоеВольфганг А. Херрманн и др., «Карбоциклический карбен как эффективный каталитический лиганд для реакций сочетания C–C»,Angew. Chem. Int. Ed.45/23 (2006), 3860–1.
citepages=suppress
пропускаетpages
поле, даже если примечание не является числовым.citepages=permit
(значение по умолчанию стандартныхverbose
стилей) просто отображает оба поляВольфганг А. Херрманн и др., «Карбоциклический карбен как эффективный каталитический лиганд для реакций сочетания C–C»,Angew. Chem. Int. Ed.45/23 (2006), 3859–62, 3860–1.
Так что вы можете попробовать
\documentclass{article}
\usepackage[style=oxnotes, citepages=omit]{biblatex}
\addbibresource{biblatex-examples.bib}
\begin{document}
Text.\footcite[3860-3861]{herrmann}
\printbibliography
\end{document}
Идея \DeclareFieldFormat
не сработала, потому что \iffieldundef{pages}{}{\iffieldundef{postnote}{}{\clearfield{pages}}}
это не команда, которая что-либо печатает. Она только говорит, biblatex
что нужно удалить pages
в определенной ситуации. Но ее \DeclareFieldFormat
следует использовать, чтобы сказать, biblatex
как печатать что-то, сравните со значением по умолчанию
\DeclareFieldFormat{pages}{\mkpageprefix[bookpagination]{#1}}
или проще
\DeclareFieldFormat{title}{\mkbibemph{#1}}
A \DeclareFieldFormat
всегда должно включать в себя a #1
.
По сути, это определение удаляет поле в том случае, когда вам это нужно (и оно не удалит поле в библиографии, поскольку \iffieldundef{postnote}
там будет true), но оно перезаписывает определение, которое изначально говорит biblatex
, как печатать поле, а это значит, что оно всегда удаляется при выводе.pages
Удаление поля только в \DeclareFieldFormat
может привести к ложной пунктуации, поскольку biblatex
система подумает, что что-то напечатано, хотя на самом деле это не так.
Поэтому я бы не стал здесь дальше пытаться придерживаться этого подхода.
Обратите внимание, что
\RequireBibliographyStyle{oxref}
не требовалось. В общем случае вам не следует использовать \RequireBibliographyStyle
или \RequireCitationStyle
в документе. Стиль загружается через biblatex
опцию style
(или отдельно через bibstyle
и citestyle
).