
У меня возникли проблемы с печатью моей библиографии.
У меня есть файл с нагрудным номером, который выглядит вот так
@Article{Sample:01,
Title = {Some Title},
Author = {Doe, John},
Year = {111},
Pages = {pp. 1-2},
Journal = {Really Cool Journal},
}
@Article{Sample:02,
Title = {Different Title},
Author = {Doe, Jane},
Year = {222},
Pages = {3-4},
Journal = {Other Cool Journal},
}
Я использую это с biblatex
и biber
.
Однако моя библиография напечатана правильно для второго типа, но не для первого (т.е.страницы 3-4), тогда как во втором случае говорится толькостраницы.
У меня получается такой неунифицированный стиль списка страниц, поскольку я собираю цитаты из разных интернет-источников, которые иногда относятся к первому, иногда ко второму типу.
Могу ли я как-то сказать Биберу игнорировать любыестр.в спискеСтраницыи всегда распечатывайтестраницы ab?
Мой обходной путь на данный момент — вручную изменить списки и удалитьстр.Однако я считаю, что должен быть какой-то способ сделать это автоматически.
Пока что я не смог найти ни одного. Есть ли у кого-нибудь идеи по этому поводу?
Для справки: я использую MikTex 2,9 и компилирую с помощью pdflatex
invoked через latexmk
пакет.
Вот минимальный рабочий пример, который создает ошибку с указанным выше файлом bib, сохраненным как mybib в той же папке.
\documentclass{scrartcl}
\usepackage[
backend=biber, natbib
]{biblatex}
\bibliography{mybib}
\begin{document}
\citet{Sample:01}, \citet{Sample:02}
\printbibliography
\end{document}
решение1
Вы можете попросить biber сделать такие замены для вас. Мои возможности с регулярными выражениями в лучшем случае неравномерны, но я думаю, что это работает:
\DeclareSourcemap{
\maps[datatype=bibtex,overwrite=true]{
\map{
\step[fieldsource=pages,
match=\regexp{pp\.(.+)},
replace=\regexp{$1}]
}
}
}
решение2
Просто замените все '{pp. ' на '{ ', используя опцию Replace любого текстового редактора!