Я пытаюсь настроить свой файл конфигурации так, чтобы он biblatex
не печатался pagetotal
даже для книг. Я бы предпочел сохранить информацию в своем bib-файле, поэтому вместо того, чтобы удалять pagetotal
информацию оттуда, я задался вопросом, можно ли отключить ее печать.
Я попытался использовать " pagetotal=false
", как здесь:документ
Но я получаю сообщение об ошибке, что команда неизвестна:Package xkeyval Error: pagetotal undefined in families blx@opt@pre.
МВЭ
%----------------------------------------------------------------------------
% LAYOUT
%----------------------------------------------------------------------------
\documentclass[
12pt,
a4paper,
%parskip,
headings=standardclasses,
listof=totoc,
numbers=noenddot
]{scrartcl}
\usepackage[hmargin=2.5cm, top=2.5cm, bottom=2cm, footskip=1cm]{geometry}
\usepackage[onehalfspacing]{setspace}
\usepackage[main=ngerman, english]{babel}
\usepackage[babel, german=quotes]{csquotes}
\usepackage[ngerman]{isodate}
\usepackage[ngerman]{datetime}
\usepackage{hyphenat}% create hypen without overfull box
%----------------------------------------------------------------------------
% TOC
%----------------------------------------------------------------------------
\KOMAoptions{toc=sectionentrydotfill}
\KOMAoption{captions}{tableheading}% correct TOC count for tables
\renewcaptionname{ngerman}{\contentsname}{TOC}
\BeforeTOCHead[toc]{{\pdfbookmark[1]{\contentsname}{toc}}}% TOC in bookmarks
\AddtoDoHook{heading/preinit/part}{\clearpage\vspace*{\stretch{1}}}
\AddtoDoHook{heading/endgroup/part}{\vspace*{\stretch{2}}\clearpage}
\setkomafont{partprefix}{\usekomafont{part}}
%----------------------------------------------------------------------------
% BIB
%----------------------------------------------------------------------------
\usepackage[
backend=biber,
style=ext-authoryear,
sorting=nyvt,
datamodel=customstyles,
maxnames=25,
innamebeforetitle=true,
usetranslator=true,
alldates=terse,
labeldate=year,
dashed=false,
doi=false,
isbn=false,
url=false,
pagetotal=false
]{biblatex}
\AtEveryBibitem{\clearlist{language}}
\addbibresource{library.bib}
\usepackage[hidelinks, pdfencoding=auto]{hyperref}
\usepackage{microtype}% avoid bib formatting issues
%----------------------------------------------------------------------------
% MAIN
%----------------------------------------------------------------------------
\begin{document}
\nocite{*}
\clearpage
\printbibliography
\end{document}
Мой файл library.bib:
@book{Lakoff.1987-WomenFireDangerous,
title = {Women, Fire, and Dangerous Things. What Categories Reveal about the Mind},
author = {Lakoff, George},
date = {1987},
publisher = {The University of Chicago Press},
location = {Chicago},
isbn = {978-0-226-46804-4},
pagetotal = {614},
}
решение1
Связанная документация предназначена для стилей пакета biblatex-iso690
. biblatex-ext
И стандартные стили не поддерживают pagetotal
опцию.
Вы можете удалить поля с помощью приема \AtEveryBibitem
- \clearfield
// \clearlist
, \clearname
который вы уже используете дляlanguage
\AtEveryBibitem{%
\clearlist{language}%
\clearfield{pagetotal}%
}
Или вы можете использовать sourcemap, чтобы избавиться от данных, пока они считываются из файла .bib
. Обычно это мой предпочтительный вариант, потому что тогда содержимое поля фактически не будет видно biblatex
ни Biber, ни вам, а это значит, что оно также не будет учитываться в «менее заметных вещах», таких как сортировка. (Другое преимущество sourcemap в том, что вам не нужно беспокоиться о «типе» поля [поле/список/имя], вы можете использовать одну и ту же идиому для всех типов.)
MWE с исходной картой
\documentclass[12pt, a4paper,]{scrartcl}
\usepackage[main=ngerman, english]{babel}
\usepackage[babel, german=quotes]{csquotes}
\usepackage[
backend=biber,
style=ext-authoryear,
sorting=nyvt,
maxnames=25,
innamebeforetitle=true,
usetranslator=true,
alldates=terse,
labeldate=year,
dashed=false,
doi=false,
isbn=false,
url=false,
]{biblatex}
\DeclareSourcemap{
\maps[datatype=bibtex, overwrite]{
\map{
\step[fieldset=language, null]
\step[fieldset=pagetotal, null]
}
}
}
\usepackage[hidelinks, pdfencoding=auto]{hyperref}
\usepackage{microtype}
\begin{filecontents}{\jobname.bib}
@book{Lakoff.1987-WomenFireDangerous,
title = {Women, Fire, and Dangerous Things. What Categories Reveal about the Mind},
author = {Lakoff, George},
date = {1987},
publisher = {The University of Chicago Press},
location = {Chicago},
isbn = {978-0-226-46804-4},
pagetotal = {614},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\nocite{*}
\printbibliography
\end{document}