
Я наконец сдался и перешел на biblatex, по крайней мере для моей диссертации. Я использую стиль надстрочных числовых ссылок, и это прекрасно работает. Однако иногда полезно иметь возможность сказать что-то вроде «Данные взяты из ссылки 1». Если я использую cite{some_ref}
, я получаю «...из ссылки [1]». Это сделано по замыслу, согласно руководству, но у меня былохороший способ сделать это в бибтексе-- так как же мне это повторить?
Кроме того (я подозреваю, что ответ будет связан) моя библиография указана с номерами ссылок в квадратных скобках.
Я начинаю жалеть, что не остановился на bibtex — преимущества использования biblatex кажутся ничтожными по сравнению с хлопотами, связанными с переключением между форматами в процессе работы над документом.
решение1
Вам может понравиться попробовать
\DeclareFieldFormat{labelnumberwidth}{#1}
\DeclareFieldFormat{shorthandwidth}{#1}
\DeclareCiteCommand{\cite}
{\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\usebibmacro{cite}}
{\multicitedelim}
{\usebibmacro{postnote}}
\DeclareMultiCiteCommand{\cites}{\cite}{\multicitedelim}
В вашей преамбуле.
Первые две команды гарантируют, что вокруг чисел в библиографии не будет скобок. В то время как второй блок убирает скобки из \cite{}
(и его версии multicite \cites{}
; \parencite{}
хотя скобки все еще есть).
\documentclass[english]{article}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[style=numeric, backend=biber]{biblatex}
\usepackage{hyperref}
\addbibresource{biblatex-examples.bib}
\DeclareFieldFormat{labelnumberwidth}{#1}
\DeclareFieldFormat{shorthandwidth}{#1}
\DeclareCiteCommand{\cite}
{\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\usebibmacro{cite}}
{\multicitedelim}
{\usebibmacro{postnote}}
\DeclareMultiCiteCommand{\cites}{\cite}{\multicitedelim}
\begin{document}
See \cite{wilde} as noted before\supercite{wilde}.
\printbibliography
\end{document}
производит
Поскольку ОП, похоже, использует numeric-comp
, исправление этой проблемы следующее:
\DeclareCiteCommand{\cite}
{\usebibmacro{cite:init}%
\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\usebibmacro{cite:comp}}
{}
{\usebibmacro{cite:dump}%
\usebibmacro{postnote}}
вместо переопределения \cite
вышеизложенного.
Потому что numeric-verb
это
\DeclareCiteCommand{\cite}
{\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\usebibmacro{cite}}
{\multicitedelim}
{\usebibmacro{postnote}}